OSDN Git Service

a538ccde6688e865fc401b3c0900f76ee324c97b
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
2
3         * config/s390/s390.c (z10_cost): New cost function for z10.
4         (s390_handle_arch_option, override_options): Support
5         -march=z10 switch.
6         (s390_issue_rate): Adjust issue rate for z10.
7         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
8         (processor_flags): Add PF_Z10.
9         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
10         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
11         * gcc/config.gcc: Add z10.
12
13 2008-05-28  Richard Guenther  <rguenther@suse.de>
14
15         PR tree-optimization/36291
16         * tree-flow. h (struct gimple_df): Remove var_anns member.
17         * tree-flow-inline.h (gimple_var_anns): Remove.
18         (var_ann): Simplify.
19         * tree-dfa.c (create_var_ann): Simplify.
20         (remove_referenced_var): Clear alias info from var_anns of globals.
21         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
22         (delete_tree_ssa): Clear alias info from var_anns of globals.
23         Do not free var_anns.
24         (var_ann_eq): Remove.
25         (var_ann_hash): Likewise.
26
27 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
28
29         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
30         and loongson2f entries.
31         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
32         * config/mips/mips.h (processor_type): Add Loongson-2E
33         and Loongson-2F entries.
34         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
35         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
36         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
37         * doc/invoke.texi (MIPS Options): Document loongson2e
38         and loongson2f processor names.
39
40 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
41
42         PR target/35767
43         PR target/35771
44         * config/i386/i386.c (ix86_function_arg_boundary): Use
45         alignment of canonical type.
46         (ix86_expand_vector_move): Check unaligned memory access for
47         all SSE modes.
48
49 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
50
51         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
52         Moved to the front of file.
53
54 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
55             H.J. Lu  <hongjiu.lu@intel.com>
56
57         * dwarf2out.c (current_fde): New.
58         (add_cfi): Use it.
59         (lookup_cfa:): Likewise.
60         (dwarf2out_end_epilogue): Likewise.
61         (dwarf2out_note_section_used): Likewise.
62
63 2008-05-27  Michael Matz  <matz@suse.de>
64
65         PR c++/27975
66         * c.opt (Wenum-compare): New warning option.
67         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
68
69 2008-05-27  Michael Matz  <matz@suse.de>
70
71         PR middle-end/36326
72         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
73         non-BLKmode types.
74         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
75         into memory as tail calls.
76
77 2008-05-27  Richard Guenther  <rguenther@suse.de>
78
79         PR tree-optimization/36339
80         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
81         pointers cause all addressable variables to be call clobbered.
82
83 2008-05-27  Richard Guenther  <rguenther@suse.de>
84
85         PR tree-optimization/36245
86         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
87         bases.
88
89 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
90
91         * config/s390/s390.md: Replace all occurences of the 'm'
92         constraint with 'RT'.
93
94 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
95
96         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
97         definitions added.
98         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
99         "*movdi_64".
100         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
101         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
102         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
103
104 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
105
106         * reload.c: (find_reloads): Skip alternatives according to the
107         "enabled" attribute. Constify the constraint variable.
108         * recog.c (get_attr_enabled): Add default implementation.
109         (extract_insn): Set the alternative_enabled_p array
110         in the recog_data struct.
111         (preprocess_constraints, constrain_operands): Skip
112         alternatives according to the "enabled" attribute
113         * recog.h (struct recog_data): New field alternative_enabled_p.
114         (skip_alternative): New inline function.
115         * regclass.c: (record_operand_costs): Check the "enabled"
116         attribute.
117         (record_reg_classes): Skip alternative according to the
118         "enabled" attribute.
119
120         * doc/md.texi: Add documention for the "enabled" attribute.
121
122 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
123
124         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
125         * postreload.c (reload_cse_simplify_operands): Replace 'm'
126         constraint with TARGET_MEM_CONSTRAINT.
127         * recog.c (asm_operand_ok, preprocess_constraints,
128         constrain_operands): Likewise.
129         * regclass.c (record_reg_classes): Likewise.
130         * reload.c (find_reloads, alternative_allows_const_pool_ref):
131         Likewise.
132         * reload1.c (maybe_fix_stack_asms): Likewise.
133         * stmt.c (parse_output_constraint, parse_input_constraint):
134         Likewise.
135         * recog.h: Adjust comment.
136         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
137         * genoutput.c (note_constraint): Don't emit error for 'm'
138         constraint.
139         * doc/md.texi: Add a note to description of 'm' constraint.
140         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
141
142 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
143
144         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
145         that the bitfield is of integral type before testing its precision.
146
147 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
148             Sa Liu  <saliu@de.ibm.com> 
149
150         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
151         __modti3, __udivti3, __umodti3 and __udivmodti4.
152         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
153         that implement TImode mul and div functions.
154         * config/spu/multi3.c: New. Implement __multi3.
155         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
156         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
157         functions on SPU.
158
159 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
160
161         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
162         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
163         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
164         tls_sysv_suffix): New mode and mode attribute iterators.
165         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
166         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
167         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
168         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
169         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
170         iterators.
171
172 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
173
174         PR tree-optimization/36329
175         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
176         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
177         * cgraphbuild.c (initialize_inline_failed): Use the latter
178         macro in lieu of the former.
179         * ipa-inline.c (cgraph_mark_inline): Likewise.
180         (cgraph_decide_inlining_of_small_function): Likewise.
181         (cgraph_decide_inlining): Likewise.
182         (cgraph_decide_inlining_incrementally): Likewise.
183
184 2008-05-26  Tristan Gingold  <gingold@adacore.com>
185             Anatoly Sokolov  <aesok@post.ru>
186
187         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
188         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
189         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
190         optimization for 'avr6' architecture.
191
192 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
193
194         PR target/34932
195         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
196
197 2008-05-26  Richard Guenther  <rguenther@suse.de>
198
199         * tree-ssa-sccvn.c (expr_has_constants): Declare.
200         (visit_reference_op_load): Initialize VN_INFO->has_constants
201         properly.
202
203 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
204
205         PR middle-end/36253
206         * caller-save.c (insert_restore): Verify alignment of spill
207         space.
208         (insert_save): Likewise.
209
210         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
211
212         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
213         (STACK_SLOT_ALIGNMENT): Likewise.
214
215         * function.c (LOCAL_ALIGNMENT): Removed.
216         (get_stack_local_alignment): New.
217         (assign_stack_local): Use it.  Set alignment on stack slot.
218         (assign_stack_temp_for_type): Use get_stack_local_alignment.
219
220         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
221         (STACK_SLOT_ALIGNMENT): New.
222
223         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
224         stack slot in XFmode.
225
226         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
227
228 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
229
230         PR/36321
231         * config/i386/i386.md (allocate_stack_worker_64): Make sure
232         argument operand in rax isn't removed.
233
234 2008-05-26  Richard Guenther  <rguenther@suse.de>
235
236         PR middle-end/36300
237         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
238         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
239
240 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
241
242         PR bootstrap/36331
243         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
244
245 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
246
247         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
248         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
249
250 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
251
252          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
253         build a trampoline if we don't want one.
254         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
255         return zero for nested functions if we don't want a trampoline.
256
257 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
258
259         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
260
261 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
262
263         PR fortran/18428
264         * c.opt: Removed undocumented option '-lang-fortran'.
265         * c-common.h: Removed global variable 'lang_fortran'.
266         * c-opts.c (c_common_handle_option): Removed code to handle
267         option '-lang-fortran'. Updated includes.
268         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
269         definition of '__GFORTRAN__'.
270         (define__GNUC__): Reimplemented to use BASEVER and
271         cpp_define_formatted.
272         (builtin_define_with_value_n): Removed.
273         * c-incpath.h: Renamed to ...
274         * incpath.h: ... this.
275         * c-incpath.c: Renamed to ...
276         * incpath.c: ... this. Updated includes.
277         * fix-header.c: Updated includes.
278         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
279         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
280         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
281
282 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
283
284         * tree.h: Update the table of flags used on tree nodes.
285         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
286         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
287         (FORCED_LABEL): Add access check.
288         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
289         (ASM_INPUT_P): Likewise.
290         (ASM_VOLATILE_P): Likewise.
291         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
292         (OMP_SECTION_LAST): Access private_flag directly.
293         (OMP_RETURN_NOWAIT): Likewise.
294         (OMP_PARALLEL_COMBINED): Likewise.
295         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
296         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
297         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
298         deprecated_flag directly.
299
300 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
301
302         * final.c (frame_pointer_needed): Removed.
303         * flags.h (frame_pointer_needed): Likewise.
304
305         * function.h (rtl_data): Add frame_pointer_needed.
306         (frame_pointer_needed): New.
307
308 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
309
310         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
311
312 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
313
314         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
315         SRC is a REG.
316
317 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
318
319         * c-common.c (strip_array_types): Move function to..
320         * tree.c: ..here.
321         (get_inner_array_type): Delete.
322         * c-common.h (strip_array_types): Move declaration to..
323         * tree.h: ..here.
324         (get_inner_array_type): Delete.
325         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
326         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
327         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
328         * config/pa/pa.c (emit_move_sequence): Likewise.
329
330 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
331
332         * config/i386/i386.md (*sse_prologue_save_insn): Set length
333         attribute to 34.
334
335 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
336
337         * function.c: Include target hook for nonlocal_goto frame value.
338
339 2008-05-24  Richard Guenther  <rguenther@suse.de>
340
341         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
342         a scalar variable can be only accessed through a pointer
343         or a union.
344
345 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
346
347         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
348         * doc/extend.texi: Likewise.
349
350 2008-05-23  DJ Delorie  <dj@redhat.com>
351
352         * config/m32c/jump.md (untyped_call): Add.
353
354         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
355         for A24 to PSImode.
356         (m32c_address_cost): Detail costs for indirect offsets.
357
358 2008-05-23  Rafael Espindola  <espindola@google.com>
359
360         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
361         if a node is a SUBREG.
362         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
363         is a SUBREG.
364
365 2008-05-23  Paul Brook  <paul@codesourcery.com>
366             Carlos O'Donell  <carlos@codesourcery.com>
367
368         * doc/extend.texi: Clarify use of __attribute__((naked)).
369         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
370         * target.h (gcc_target): Add allocate_stack_slots_for_args.
371         * function.c (use_register_for_decl): Use
372         targetm.calls.allocate_stack_slots_for_args.
373         * target-def.h (TARGET_CALLS): Add 
374         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
375         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
376         New function.
377         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
378
379 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
380
381         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
382
383 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
384
385         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
386         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
387         is only rounded once.
388
389 2008-05-23  Richard Guenther  <rguenther@suse.de>
390
391         * tree-ssa-operands.c (mark_difference_for_renaming): Use
392         bitmap_xor.
393
394 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
395             Jakub Jelinek  <jakub@redhat.com>
396
397         PR target/36079
398         * configure.ac: Handle --enable-cld.
399         * configure: Regenerated.
400         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
401         * config/i386/i386.h (struct machine_function): Add needs_cld field.
402         (ix86_current_function_needs_cld): New define.
403         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
404         (cld): New isns pattern.
405         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
406         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
407         * config/i386/i386.opt (mcld): New option.
408         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
409         TARGET_CLD and ix86_current_function_needs_cld.
410         (override_options): Use -mcld by default for 32-bit code if
411         USE_IX86_CLD.
412
413         * doc/install.texi (Options specification): Document --enable-cld.
414         * doc/invoke.texi (Machine Dependent Options)
415         [i386 and x86-64 Options]: Add -mcld option.
416         (Intel 386 and AMD x86-64 Options): Document -mcld option.
417
418 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
419         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
420         (return_in_memory_64): Likewise.
421         (return_in_memory_ms_64): Likewise.
422
423 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
424
425         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
426         * builtins.c (fold_builtin_fpclassify): New.
427         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
428         * builtins.def (BUILT_IN_FPCLASSIFY): New.
429         * c-common.c (handle_type_generic_attribute): Adjust to accept
430         fixed arguments before an elipsis.
431         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
432         * doc/extend.texi: Document __builtin_fpclassify.
433
434 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
435
436         * omp-low.c (gate_expand_omp_ssa): Remove.
437         (pass_expand_omp_ssa): Remove.
438         (gate_expand_omp): Do not check for flag_openmp_ssa.
439         * common.opt (-fopenmp-ssa): Remove.
440         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
441
442 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
443
444         * config/sh/sh.opt (mfixed-range): New option.
445         * config/sh/sh-protos.h (sh_fix_range): Declare.
446         * config/sh/sh.c (sh_fix_range): New function.
447         * config/sh/sh.h (sh_fixed_range_str): Declare.
448         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
449         is not empty.
450         * doc/invoke.texi (SH Options): Document -mfixed-range.
451
452 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
453
454         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
455         it before the redeclaration.
456
457 2008-05-22  Anatoly Sokolov <aesok@post.ru>
458
459         * config/avr/avr.c (get_sequence_length): Add new function.
460         (expand_prologue, expand_epilogue): Remove duplicate code.
461
462 2008-05-22  Rafael Espindola  <espindola@google.com>
463
464         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
465         sharing.
466
467 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
468
469         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
470         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
471
472         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
473         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
474         (vect_update_misalignment_for_peel): Likewise.
475         (vector_alignment_reachable_p): Likewise.
476         * tree-vect-transform.c (vectorizable_load): Likewise.
477         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
478         (get_vectype_for_scalar_type): Pass mode of scalar_type
479         to UNITS_PER_SIMD_WORD.
480
481         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
482         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
483         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
484         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
485         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
486
487 2008-05-22  Ira Rosen  <irar@il.ibm.com>
488
489         PR tree-optimization/36293
490         * tree-vect-transform.c (vect_transform_strided_load): Don't check
491         if the first load must be skipped because of a gap.
492
493 2008-05-22  Richard Guenther  <rguenther@suse.de>
494
495         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
496         more cases of offset disambiguation that is possible if
497         strict-aliasing rules apply.
498         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
499         for basic offset and type-based disambiguation.
500
501 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
502
503         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
504         ix86_expand_vector_set on V16QImode for SSE4.1.
505
506 2008-05-21  Tom Tromey  <tromey@redhat.com>
507
508         * c.opt (Wimport): Mark as undocumented.
509         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
510         -Wno-import.
511         (Warning Options): Likewise.
512         * doc/cppopts.texi: Don't mention -Wimport.
513
514 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
515
516         PR tree-optimization/36287
517         PR tree-optimization/36286
518         * lambda-code.c (build_access_matrix): Do not use the loop->num
519         for computing the number of induction variables: use the loop depth
520         instead.
521
522 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
523
524         PR/36280
525         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
526         option -f(no-)leading-underscore.
527
528 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
529
530         * config/i386/i386.c (ix86_expand_vector_init_general): Use
531         GET_MODE_NUNITS (mode).
532
533 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
534
535         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
536         (-mmulhw): Add 464 to description.
537         (-mdlmzb): Likewise.
538         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
539         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
540         464fp entries.
541         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
542         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
543         * config/rs6000/rs6000.md: Update comments for 464.
544
545 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
546
547         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
548
549 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
550
551         * config/i386/sse.md (vec_extractv4sf): Removed.
552         (vec_extractv2df): Likewise.
553         (vec_extractv2di): Likewise.
554         (vec_extractv4si): Likewise.
555         (vec_extractv8hi): Likewise.
556         (vec_extractv16qi): Likewise.
557         (vec_extract<mode>): New.
558
559 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
560
561         * config/i386/sse.md (vec_setv4sf): Removed.
562         (vec_setv2df): Likewise.
563         (vec_setv2di): Likewise.
564         (vec_setv4si): Likewise.
565         (vec_setv8hi): Likewise.
566         (vec_setv16qi): Likewise.
567         (vec_set<mode>): New.
568
569 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
570
571         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
572         goto for vec_concat and vec_interleave.
573
574 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
575
576         * config/i386/sse.md (vec_initv4sf): Removed.
577         (vec_initv2df): Likewise.
578         (vec_initv2di): Likewise.
579         (vec_initv4si): Likewise.
580         (vec_initv8hi): Likewise.
581         (vec_initv16qi): Likewise.
582         (vec_init<mode>): New.
583
584 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
585
586         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
587
588 2008-05-21  Tom Tromey  <tromey@redhat.com>
589
590         * ggc-zone.c (lookup_page_table_if_allocated): New function.
591         (zone_find_object_offset): Likewise.
592         (gt_ggc_m_S): Likewise.
593         (highest_bit): Likewise.
594         * ggc-page.c (gt_ggc_m_S): New function.
595         * stringpool.c (string_stack): Remove.
596         (init_stringpool): Update.
597         (ggc_alloc_string): Use ggc_alloc.
598         (maybe_delete_ident): New function.
599         (ggc_purge_stringpool): Likewise.
600         (gt_ggc_m_S): Remove.
601         * ggc-common.c (ggc_protect_identifiers): New global.
602         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
603         ggc_protect_identifiers.
604         * ggc.h (ggc_protect_identifiers): Declare.
605         (gt_ggc_m_S): Update.
606         (ggc_purge_stringpool): Declare.
607         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
608         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
609         special case.
610         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
611
612 2008-05-21  David S. Miller  <davem@davemloft.net>
613
614         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
615         tmake_file.
616
617 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
618
619         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
620         once finished.
621
622 2008-05-20  David Daney  <ddaney@avtrex.com>
623
624         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
625         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
626         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
627         UNSPEC_UPDATE_GOT_VERSION): Renumber.
628         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
629         (atomic_hiqi_op): New define_code_iterator.
630         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
631         mips_expand_compare_and_swap_12.
632         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
633         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
634         (sync_<optab><mode>, sync_old_<optab><mode>,
635         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
636         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
637         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
638         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
639         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
640         (test_and_set_12): New insn.
641         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
642         sync_new_<optab><mode>, sync_old_nand<mode>,
643         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
644         clobber to operand 0 for SI and DI mode insns.
645         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
646         mips_gen_fn_4): New typedefs.
647         (mips_gen_fn_ptrs): Define new union type.
648         (mips_expand_compare_and_swap_12): Remove declaration.
649         (mips_expand_atomic_qihi): Declare function.
650         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
651         (mips_expand_atomic_qihi): ... this.  Use new generator function
652         parameter.
653         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
654         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
655         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
656         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
657         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
658         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
659         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
660         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
661         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
662         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
663         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
664         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
665
666 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
667
668         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
669         the missing break.
670
671 2008-05-20  Anatoly Sokolov <aesok@post.ru>
672
673         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
674         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
675         (avr_attribute_table): Add 'OS_main' function attribute.
676         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
677         functions with 'OS_main' attribute.
678
679 2008-05-20  Richard Guenther  <rguenther@suse.de>
680
681         PR tree-optimization/35204
682         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
683         helper, split out from ...
684         (DFS): ... here.  Make the DFS walk non-recursive.
685
686 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
687             Jan Sjodin  <jan.sjodin@amd.com>
688
689         PR tree-optimization/36181
690         * tree-parloops.c (loop_has_vector_phi_nodes): New.
691         (parallelize_loops): Don't parallelize when the loop has vector
692         phi nodes.
693
694 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
695             Sebastian Pop  <sebastian.pop@amd.com>
696
697         * tree-loop-linear.c (gather_interchange_stats): Look in the access
698         matrix, and never look at the tree representation of the memory
699         accesses.
700         (linear_transform_loops): Computes parameters and access matrices.
701         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
702         when fails.
703         (access_matrix_get_index_for_parameter): New.
704         * tree-data-ref.h (struct access_matrix): New.
705         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
706         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
707         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
708         am_vector_index_for_loop): New.
709         (struct data_reference): Add field access_matrix.
710         (DR_ACCESS_MATRIX): New.
711         (compute_data_dependences_for_loop): Update declaration.
712         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
713         * lambda.h (lambda_vector_vec_p): Declared.
714         * lambda-code.c: Depend on pointer-set.h.
715         (lambda_collect_parameters_from_af, lambda_collect_parameters,
716         av_for_af_base, av_for_af, build_access_matrix,
717         lambda_compute_access_matrices): New.
718         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
719
720 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
721
722         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
723         $SOURCEDIR/include.
724
725 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
726             Sebastian Pop  <sebastian.pop@amd.com>
727
728         PR tree-optimization/36206
729         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
730         FOLD_CONVERSIONS.
731         (instantiate_scev_1): Rename flags to fold_conversions.
732         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
733         outeside instantiation_loop.
734         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
735         (evolution_function_is_affine_or_constant_p): Removed.
736         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
737         instantiate_scev.
738         (analyze_siv_subscript): Pass in the loop nest number.
739         Call evolution_function_is_affine_in_loop instead of 
740         evolution_function_is_affine_p.
741         (analyze_overlapping_iterations): Pass in the loop nest number.
742
743 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
744             Sebastian Pop  <sebastian.pop@amd.com>
745
746         PR tree-optimization/36206
747         * tree-chrec.h (chrec_fold_op): New.
748         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
749         and other trees.
750
751 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
752
753         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
754         (DIRS_EQ): New.
755         (remove_duplicates): Do not set inode on non-inode systems.
756         Use DIRS_EQ.
757
758 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
759
760         * config.gcc (tm_file): Update comments about relative pathnames.
761
762 2008-05-20  Richard Guenther  <rguenther@suse.de>
763
764         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
765         * tree-ssa-sccvn.c (process_scc): Likewise.
766         * tree-ssa-sink.c (execute_sink_code): Likewise.
767         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
768         * tree-vrp.c (process_assert_insertions): Likewise.
769         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
770         (perform_tree_ssa_dce): Likewise.
771         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
772         (dump_dominator_optimization_stats): Likewise.
773         * tree-vectorizer.c (vectorize_loops): Likewise.
774
775 2008-05-20  Richard Guenther  <rguenther@suse.de>
776
777         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
778
779 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
780
781         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
782         (ix86_i386elf_return_in_memory): Likewise.
783         (ix86_i386interix_return_in_memory): Likewise.
784         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
785         (SUBTARGET_RETURN_IN_MEMORY): New.
786         * config/i386/i386elf.h: Likewise.
787         * config/i386/ptx4-i.h: Likewise.
788         * config/i386/sol2-10.h: Likewise.
789         * config/i386/sysv4.h: Likewise.
790         * config/i386/vx-common.h: Likewise.
791         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
792         * config/i386/i386.c (ix86_return_in_memory): Made static and
793         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
794         (ix86_i386elf_return_in_memory): Removed.
795         (ix86_i386interix_return_in_memory): Removed.
796         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
797         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
798
799 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
800
801         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
802
803 2008-05-19  Xinliang David Li  <davidxl@google.com>
804
805         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
806         * opts.c: Ditto.
807         * common.opt: Ditto.
808         * doc/invoke.texi: Ditto.
809
810 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
811
812         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
813         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
814
815 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
816
817         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
818         sizes of operand array from 8/4 to 4/2.
819         (ix86_expand_vector_init_general): Change size of operand array
820         from 32 to 16.  Remove op0, op1 and half_mode.
821
822 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
823
824         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
825         (ix86_expand_vector_init_interleave): Likewise.
826         (ix86_expand_vector_init_general): Use them.  Assert word_mode
827         == SImode when n_words == 4.
828
829 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
830
831         * config/i386/i386.c (ix86_secondary_reload): New static function.
832         (TARGET_SECONDARY_RELOAD): New define.
833         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
834         * config/i386/i386.md (reload_outqi): Remove.
835
836 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
837
838         PR middle-end/35509
839         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
840         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
841         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
842         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
843         (fold_builtin_1): Likewise.
844         * builtins.def (BUILT_IN_ISINF_SIGN): New.
845         c-common.c (check_builtin_function_arguments): Handle
846         BUILT_IN_ISINF_SIGN.
847         * doc/extend.texi: Document __builtin_isinf_sign.
848         * fold-const.c (operand_equal_p): Handle COND_EXPR.
849
850 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
851
852         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
853         EH cleanup at the end of the pass, search for those that have been
854         turned into forwarder blocks and do the cleanup on their successor.
855
856 2008-05-18  Richard Guenther  <rguenther@suse.de>
857
858         * tree-cfg.c (verify_gimple_expr): Allow conversions from
859         pointers to sizetype and vice versa.
860
861 2008-05-18 Xinliang David Li   <davidxl@google.com>
862
863         * gcc/tree-ssa-dce.c: Coding style fix.
864         (check_pow): Documentation comment. 
865         (check_log): Documenation comment. Coding style fix.
866         (is_unnecessary_except_errno_call): Ditto.
867         (gen_conditions_for_pow): Ditto.
868         (gen_conditions_for_log): Ditto.
869         (gen_shrink_wrap_conditions): Ditto.
870         (shrink_wrap_one_built_in_calls): Ditto.
871         * gcc/doc/invoke.texi: Better documentation string.
872         * ChangeLog: Fix wrong change log entries from 
873         May 17 checkin on function call DCE.
874
875 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
876
877         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
878
879 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
880
881         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
882         * df-problems.c (simulation routines): Fixed block comment to
883         properly say how to add forwards scanning functions.
884         
885 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
886
887         * tree-inline.c (setup_one_parameter): Remove dead code.
888
889 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
890
891         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
892         a BIT_AND_EXPR only for an INTEGER_TYPE.
893
894 2008-05-17 Xinliang David Li   <davidxl@google.com>
895
896         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
897         (check_pow, check_log, is_unnecessary_except_errno_call): New 
898         functions to check for eliminating math functions that are pure 
899         except for setting errno.
900         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
901         general condition expressions for shrink-wrapping pow/log calls.
902         (gen_shrink_wrap_conditions): Ditto.
903         (shrink_wrap_one_built_in_call): Ditto.
904         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
905         (mark_operand_necessary): If debugging, output if OP is necessary.
906         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
907         unnecessary.
908         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
909         opt level >= 2.
910         * gcc/common.opt: New user flag -ftree-builtin-dce.
911         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
912
913 2008-05-16  David S. Miller  <davem@davemloft.net>
914
915         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
916         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
917
918 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
919
920         PR target/36246
921         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
922
923 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
924
925         * ifcvt.c (dead_or_predicable): Rename
926         df_simulate_one_insn_backwards to df_simulate_one_insn.
927         * recog.c (peephole2_optimize): Ditto.
928         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
929         Ditto.
930         * df.h: Rename df_simulate_one_insn_backwards to
931         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
932         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
933         scanning of defs and uses.
934         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
935         (df_simulate_one_insn_forwards): Removed.
936
937 2008-05-16  Doug Kwan  <dougkwan@google.com>
938
939         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
940         QNaN & SNaN.
941         (real_from_string): Handle NaNs and Inf as approriate.
942
943 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
944
945         * doc/gty.texi (Source Files Containing Type Information): Note
946         that headers should appear first in the gtfiles list.
947
948 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
949
950         * tree.def (COND_EXEC): Properly documented this code.
951
952 2008-05-16  Diego Novillo  <dnovillo@google.com>
953
954         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
955         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
956         the new field.
957
958 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
959
960         * tree-ssa-dse (max_stmt_uid): Removed.
961         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
962         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
963         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
964         * function.h (cfun.last_stmt_uid): New field.
965         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
966         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
967         New functions.
968         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
969         (create_stmt_ann): Initialize the ann->uid field.
970         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
971         with new calls.
972         * tree-flow.h (renumber_gimple_stmt_uids): New function.
973
974 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
975
976         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
977         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
978         (init_empty_tree_cfg): Call it.
979
980 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
981
982         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
983         Update all users.
984
985 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
986
987         * doc/invoke.text (-fdump-tree-*-verbose): New option.
988         * tree-dump.c (dump_options): New verbose option.
989         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
990         Add verbose dump.
991         * tree-pass.h (TDF_VERBOSE): New dump flag.
992         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
993         (tree-flow.h): Added include.
994         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
995
996 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
997
998         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
999
1000         From Jie Zhang  <jie.zhang@analog.com>
1001         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1002         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
1003         mcpu=bf561-none and mcpu=bf561-0.2.
1004         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1005         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1006         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1007         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
1008         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
1009         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
1010         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
1011         option.
1012         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1013         (cputype_selected): Remove.
1014         (bfin_handle_option): Don't use cputype_selected.
1015         (override_options): When no mcpu option, enable all workarounds.
1016         Don't use bfin_workarounds.
1017         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1018         processor type.
1019         (DEFAULT_CPU_TYPE): Don't define.
1020
1021 2008-05-16  Richard Guenther  <rguenther@suse.de>
1022
1023         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1024         on deletion of the last stmt.
1025
1026 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1027
1028         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1029         V8HImode for SSE2 and V16QImode for SSE4.1.
1030
1031 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1032
1033         * cgraph.h (compute_inline_parameters): Made public.
1034         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1035         variable_generate_summary, function_write_summary,
1036         variable_write_summary, variable_read_summary.  Added generate_summary,
1037         write_summary, read_summary.
1038         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1039         pass_ipa_inline.function_generate_summary, to
1040         compute_inline_parameters. 
1041         * ipa-inline.c (compute_inline_parameters): Made public and added
1042         node parameter.
1043         (compute_inline_parameters_for_current): New function.
1044         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1045         (inline_generate_summary): Removed parameter and made to loop over
1046         all cgraph nodes.
1047         (pass_ipa_inline): Updated for new IPA_PASS structure.
1048         * passes.c (execute_ipa_summary_passes): Now is called once per
1049         pass rather than once per node*pass.
1050         
1051 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1052
1053         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1054         avr_have_mul_p, avr_asm_only_p): Remove variables.
1055         (avr_override_options): Remove initialization of removed variables.
1056         (avr_file_start):  Convert removed variables to fields of 
1057         'struct base_arch_s *avr_current_arch'. 
1058         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1059         (AVR_HAVE_MUL): (Ditto.).
1060         (AVR_HAVE_MOVW): (Ditto.).
1061         (AVR_HAVE_LPMX): (Ditto.). 
1062         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1063         avr_asm_only_p): Remove declaration.
1064
1065 2008-05-15  Diego Novillo  <dnovillo@google.com>
1066
1067         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1068         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1069
1070 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1071
1072         PR middle-end/36194
1073         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1074         Don't call record_truncated_value from here.
1075         (record_truncated_value): Turn it into a for_each_rtx callback.
1076         (record_truncated_values): New function.
1077         (combine_instructions): Call note_uses with record_truncated_values.
1078         Change name of check_conversion to check_promoted_subreg. 
1079
1080 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1081
1082         * doc/sourcebuild.texi: Document support for torture tests.
1083
1084 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1085
1086         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1087         to alternative 4 of operand 2.
1088
1089 2008-05-15  Richard Guenther  <rguenther@suse.de>
1090
1091         * tree-pass.h (current_pass): Declare.
1092         (get_pass_for_id): Likewise.
1093         * passes.c (passes_by_id, passes_by_id_size): New globals.
1094         (set_pass_for_id): New function.
1095         (get_pass_for_id): Likewise.
1096         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1097         (execute_function_todo): Flush per function statistics.
1098         * toplev.c (compile_file): Init statistics.
1099         (general_init): Do early statistics initialization.
1100         (finalize): Finish statistics.
1101         * statistics.h (statistics_early_init): Declare.
1102         (statistics_init): Likewise.
1103         (statistics_fini): Likewise.
1104         (statistics_fini_pass): Likewise.
1105         (statistics_counter_event): Likewise.
1106         (statistics_histogram_event): Likewise.
1107         * statistics.c: New file.
1108         * Makefile.in (OBJS-common): Add statistics.o.
1109         (statistics.o): Add dependencies.
1110         * doc/invoke.texi (-fdump-statistics): Document.
1111
1112         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1113         (insert): Likewise.
1114         (execute_pre): Use statistics_counter_event.
1115         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1116         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1117
1118 2008-05-15  Diego Novillo  <dnovillo@google.com>
1119
1120         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1121
1122         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1123         * tree-ssa-alias.c (new_type_alias): Remove references to
1124         sub-variables from comment.
1125         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1126
1127 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1128
1129         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1130         attribute to 1 only for insertps alternative.
1131
1132 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1133
1134         * config/bfin/bfin.md (loadbytes): New pattern.
1135         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1136         (bfin_init_builtins): Initialize it.
1137         (bdesc_1arg): Add it.
1138
1139 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1140
1141         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1142         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1143         * testsuite/lib/target-supports.exp: Add
1144         check_effective_target_fortran_integer_16.
1145
1146 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1147
1148         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1149         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1150         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1151         (TARGET_RETURN_IN_MEMORY): Define.
1152
1153 2008-05-15  Richard Guenther  <rguenther@suse.de>
1154
1155         PR middle-end/36244
1156         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1157         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1158         represent unmodifiable vars.
1159
1160 2008-05-15  Richard Guenther  <rguenther@suse.de>
1161
1162         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1163         INDIRECT_REF and TARGET_MEM_REF.
1164         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1165         TARGET_MEM_REF.
1166
1167 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1168             H.J. Lu  <hongjiu.lu@intel.com>
1169
1170         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1171         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1172         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1173         insn alternatives.  Add missing alternatives.
1174         (*vec_concatv2di_rex64_sse4_1): Likewise.
1175         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1176         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1177         Require TARGET_SSE.
1178
1179 2008-05-15  Richard Guenther  <rguenther@suse.de>
1180
1181         PR tree-optimization/36009
1182         PR tree-optimization/36204
1183         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1184         (determine_invariantness_stmt): Record the loop a store is
1185         always executed in.
1186         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1187         dependency.
1188
1189 2008-05-15  Richard Guenther  <rguenther@suse.de>
1190
1191         PR tree-optimization/34330
1192         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1193         through the pointer will alias the SMT.
1194
1195 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1196
1197         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1198
1199 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1200
1201         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1202
1203 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1204             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1205
1206         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1207         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1208         (vashl_optab): New optab for vector/vector shifts.
1209         (vashr_optab): Ditto.
1210         (vlshr_optab): Ditto.
1211         (vrotl_optab): Ditto.
1212         (vrotr_optab): Ditto.
1213         (optab_subtype): New enum for optab_for_tree_code call.
1214         (optab_for_tree_code): Add enum optab_subtype argument.
1215
1216         * optabs.c (optab_for_tree_code): Take an additional argument to
1217         distinguish between a vector shift by a scalar and vector shift by
1218         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1219         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1220         vector shift by a vector.
1221         (expand_widen_pattern_expr): Pass additional argument to
1222         optab_for_tree_code.
1223
1224         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1225         vrotl_optab, vrotr_optab.
1226
1227         * expr.c (expand_expr_real_1): Update calls to
1228         optab_for_tree_code to distinguish between vector shifted by a
1229         scalar and vector shifted by a vector.
1230         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1231         (supportable_narrowing_operation): Ditto.
1232         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1233         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1234         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1235         (vect_create_epilog_for_reduction): Ditto.
1236         (vectorizable_reduction): Ditto.
1237         (vectorizable_operation): Ditto.
1238         (vect_strided_store_supported): Ditto.
1239         (vect_strided_load_supported): Ditto.
1240         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1241         * expmed.c (expand_shift): Ditto.
1242
1243         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1244         scalar type.
1245         (ashr@var{m}3): Ditto.
1246         (vashl@var{m}3): Document new vector/vector shift standard name.
1247         (vashr@var{m}3): Ditto.
1248         (vlshr@var{m}3): Ditto.
1249         (vrotl@var{m}3): Ditto.
1250         (vrotr@var{m}3): Ditto.
1251
1252         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1253         (PPERM_INVERT): Ditto.
1254         (PPERM_REVERSE): Ditto.
1255         (PPERM_REV_INV): Ditto.
1256         (PPERM_ZERO): Ditto.
1257         (PPERM_ONES): Ditto.
1258         (PPERM_SIGN): Ditto.
1259         (PPERM_INV_SIGN): Ditto.
1260         (PPERM_SRC1): Ditto.
1261         (PPERM_SRC2): Ditto.
1262
1263         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1264         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1265         allows a memory operand to be the value being added, and split it
1266         to improve vectorization.
1267         (sse5_pmacsdqh_mem): Ditto.
1268         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1269         (sse5_mulv2div2di3_high): Ditto.
1270         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1271         (vec_pack_trunc_v4si): Ditto.
1272         (vec_pack_trunc_v2di): Ditto.
1273         (sse5_pcmov_<mode>): Remove code that tried to use use
1274         andps/andnps instead of pcmov.
1275         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1276         pmacsdqh instructions.
1277         (vec_widen_smult_lo_v4si): Ditto.
1278
1279         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1280         (PPERM_INVERT): Ditto.
1281         (PPERM_REVERSE): Ditto.
1282         (PPERM_REV_INV): Ditto.
1283         (PPERM_ZERO): Ditto.
1284         (PPERM_ONES): Ditto.
1285         (PPERM_SIGN): Ditto.
1286         (PPERM_INV_SIGN): Ditto.
1287         (PPERM_SRC1): Ditto.
1288         (PPERM_SRC2): Ditto.
1289         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1290         true/false tests.
1291         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1292         comparisons.
1293         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1294         says ignore whether the last reference is a memory operand.
1295
1296 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1297             Paolo Bonzini <bonzini at gnu dot org>
1298
1299         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1300         shift patterns.
1301
1302         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1303         (vlshr<mode>3): Rename from vlshr<mode>3.
1304         (vashr<mode>3): Rename from vashr<mode>3.
1305         (mulv4sf3): Change the names of vector shift patterns.
1306         (mulv4si3): Ditto.
1307         (negv4sf2): Ditt.
1308
1309         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1310         shift insns.
1311
1312         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1313         (SI_SHLHI): Ditto.
1314         (SI_SHL): Ditto.
1315         (SI_SHLI): Ditto.
1316         (SI_ROTH): Ditto.
1317         (SI_ROTHI): Ditto.
1318         (SI_ROT): Ditto.
1319         (SI_ROTI): Ditto.
1320         (SPU_RL_0): Ditto.
1321         (SPU_RL_1): Ditto.
1322         (SPU_RL_2): Ditto.
1323         (SPU_RL_3): Ditto.
1324         (SPU_RL_4): Ditto.
1325         (SPU_RL_5): Ditto.
1326         (SPU_RL_6): Ditto.
1327         (SPU_RL_7): Ditto.
1328         (SPU_SL_0): Ditto.
1329         (SPU_SL_1): Ditto.
1330         (SPU_SL_2): Ditto.
1331         (SPU_SL_3): Ditto.
1332         (SPU_SL_4): Ditto.
1333         (SPU_SL_5): Ditto.
1334         (SPU_SL_6): Ditto.
1335         (SPU_SL_7): Ditto.
1336
1337         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1338         (floatunssidf2_internal): Change vector/vector shift names.
1339         (floatunsdidf2_internal): Ditto.
1340         (mulv8hi3): Ditto.
1341         (ashrdi3): Ditto.
1342         (ashrti3): Ditto.
1343         (cgt_df): Ditto.
1344         (cgt_v2df): Ditto.
1345         (dftsv): Ditto.
1346         (vashl<mode>3): Rename from ashl<mode>3.
1347         (vashr<mode>3): Rename from ashr<mode>3.
1348         (vlshr<mode>3): Rename from lshr<mode>3.
1349         (vrotl<mode>3): Rename from rotl<mode>3.
1350
1351 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1352
1353         PR target/36224
1354         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1355         multiply gives the wrong value when doing widening multiplies.
1356         (vec_widen_smult_lo_v4si): Ditto.
1357
1358 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1359
1360         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1361         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1362         emit_library_call_value. 
1363         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1364         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1365         * calls.c (initialize_argument_information, precompute_arguments, 
1366         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1367         (precompute_arguments): Removed flags parameter.
1368         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1369         
1370 2008-05-14  Richard Guenther  <rguenther@suse.de>
1371
1372         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1373         Make sure to register the store if the use is a PHI_NODE.
1374
1375 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1376
1377         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1378         memory if the component is to be referenced in BLKmode according
1379         to get_inner_reference.
1380
1381 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1382
1383         * calls.c (emit_library_call_value_1): Restore code clearing
1384         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1385
1386 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1387             Nicolas Roche  <roche@adacore.com>
1388
1389         * configure.ac: Add support for a "gcc_subdir" variable in
1390         config-lang.in, to denote a subdirectory where the language/GCC
1391         integration files are to be found.
1392         * configure: Regenerate.
1393
1394 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1395
1396         PR tree-optimization/36098
1397         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1398         value for the first load in the group in case of a gap.
1399         (vect_build_slp_tree): Check that there are no gaps in loads.
1400
1401 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1402
1403         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1404         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1405         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1406         emit_insn and remove unneeded code to construct extra args.
1407         (emit_no_conflict_block): Removed.
1408         * optabls.h: (emit_no_conflict_block): Removed.
1409         * cse.c (cse_extended_basic_block): Remove search for
1410         REG_NO_CONFLICT note.
1411         * global.c: Removed incorrect comment added in revision 117.
1412         * expr.c (convert_move): Change call to emit_no_conflict_block to
1413         emit_insn.
1414         * recog.c: Change comments so that they do not mention
1415         REG_NO_CONFLICT.
1416         * local_alloc.c (combine_regs): Removed last parameter.
1417         (no_conflict_p): Removed.
1418         (block_alloc): Removed note, no_conflict_combined_regno and set
1419         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1420         (combine_regs): Removed already_dead and code to look for
1421         REG_NO_CONFLICT notes.
1422         * lower_subreg (remove_retval_note): Removed code to look for
1423         REG_NO_CONFLICT block.
1424         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1425         (resolve_clobber): Remove code to process libcalls that have
1426         REG_NO_CONFLICT notes.
1427         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1428         case.
1429         * combine.c (can_combine_p, distribute_notes):  Removed
1430         REG_NO_CONFLICT case.
1431         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1432         to emit_insns.
1433         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1434         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1435         Ditto.
1436         * reg-notes.def (NO_CONFLICT): Removed.
1437
1438 2008-05-14  David S. Miller  <davem@davemloft.net>
1439
1440         * config/sparc/sparc.c (sparc_profile_hook): If
1441         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1442         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1443         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1444
1445 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1446
1447         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1448
1449 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1450
1451         PR target/36222
1452         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1453         and op1 expansion before vector concat to have less live pseudos.
1454
1455 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1456
1457         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1458         ix86_expand_vector_set if supported.
1459
1460 2008-05-13  Diego Novillo  <dnovillo@google.com>
1461             Kenneth Zadeck  <zadeck@naturalbridge.com>
1462
1463         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1464
1465         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1466         phinodes_print_statistics, init_ssanames, fini_ssanames,
1467         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1468         release_ssa_name, release_defs, replace_ssa_name_symbol,
1469         ssanames_print_statistics): Move ...
1470         * tree-flow.h: ... here.
1471         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1472         Use FN instead of cfun.
1473         (make_ssa_name_fn): Rename from make_ssa_name.
1474         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1475         * tree-flow-inline.h (make_ssa_name): Move from
1476         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1477         * omp-low.c (expand_omp_parallel):
1478         * tree-flow-inline.h (redirect_edge_var_map_result):
1479         * tree-ssa.c (init_tree_ssa): Add argument FN.
1480         Use it instead of cfun.  Update all users.
1481
1482 2008-05-13  Tom Tromey  <tromey@redhat.com>
1483
1484         PR preprocessor/22168:
1485         * doc/cpp.texi (Top): Update menu.
1486         (Alternatives to Wrapper #ifndef): New node.
1487         (Other Directives): Document deprecation.
1488         (Obsolete Features): Remove menu.
1489         (Assertions): Merge node into Obsolete Features.
1490         (Obsolete once-only headers): Move earlier; rename to Alternatives
1491         to Wrapper #ifndef.
1492         * doc/cppopts.texi: Update.
1493         * c.opt (Wdeprecated): Enable for C and ObjC.
1494         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1495         (C++ Dialect Options): Move -Wno-deprecated from here to...
1496         (Warning Options): ... here.
1497
1498 2008-05-13  Richard Guenther  <rguenther@suse.de>
1499
1500         PR middle-end/36227
1501         * fold-const.c (fold_sign_changed_comparison): Do not allow
1502         changes in pointer-ness.
1503
1504 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1505
1506         PR target/24713
1507         * config/sh/sh.c (sh_expand_prologue): Don't clear
1508         RTX_FRAME_RELATED_P for push insns.
1509
1510 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1511
1512         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1513
1514 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1515
1516         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1517         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1518         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1519
1520 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1521
1522         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1523         (*vec_concatv4sf_sse): This.
1524         (*sse2_concatv2si): Renamed to ...
1525         (*vec_concatv2si_sse2): This.
1526         (*sse1_concatv2si): Renamed to ...
1527         (*vec_concatv2si_sse): This.
1528         (*vec_concatv2di_rex): Renamed to ...
1529         (*vec_concatv2di_rex64): This.
1530         (*vec_concatv2si_sse4_1): New.
1531         (*vec_concatv2di_rex64_sse4_1): Likewise.
1532
1533 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1534
1535         PR rtl-optimization/36111
1536         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1537         that was created for swappable operands.
1538
1539 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1540
1541         PR ada/36001
1542         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1543         * configure.ac: Add call to ACX_PROG_GNAT.
1544
1545 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1546
1547         * optc-gen.awk: Fix comment typo.
1548
1549 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1550
1551         * pretty-print.c (pp_integer_with_precision): Use
1552         HOST_LONG_LONG_FORMAT.
1553
1554 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1555
1556         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1557                 
1558 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1559
1560         * config/i386/i386.c (bdesc_ptest): Removed.
1561         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1562         (bdesc_args): Add __builtin_ia32_ptestz128,
1563         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1564         (ix86_init_mmx_sse_builtins): Updated.
1565         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1566         (ix86_expand_builtin): Updated.
1567
1568 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1569
1570         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1571         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1572
1573 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1574
1575         * value-prof.c (interesting_stringop_to_profile): Do not
1576         return early for BUILT_IN_MEMPCPY.
1577
1578 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1579
1580         * calls.c (expand_call): Don't use callgraph to increase
1581         preferred_stack_boundary.
1582
1583         * cgraph.h (cgraph_rtl_info): Use unsigned on
1584         preferred_incoming_stack_boundary.
1585
1586         * final.c (rest_of_clean_state): Use unsigned on
1587         preferred_stack_boundary.
1588
1589 2008-05-09  Tom Tromey  <tromey@redhat.com>
1590
1591         PR preprocessor/22231:
1592         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1593         proceeding.
1594
1595 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1596
1597         PR tree-optimization/36129
1598         * tree-ssa-ccp.c: Include value-prof.h.
1599         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1600         built-in function was folded to a constant.
1601         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1602
1603 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1604             Sebastian Pop  <sebastian.pop@amd.com>
1605
1606         * tree-scalar-evolution.c: Document instantiate_scev.
1607         (instantiate_parameters_1): Renamed instantiate_scev_1.
1608         Don't use the same loop for instantiation_loop and evolution_loop.
1609         (instantiate_scev): New.
1610         (instantiate_parameters): Moved...
1611         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1612         same loop twice.  Maintains the semantics for this function.
1613         * tree-scalar-evolution.h (instantiate_scev): Declare.
1614         (instantiate_parameters): ...here.  Now static inline.
1615         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1616         instead of resolve_mixers.
1617
1618 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1619
1620         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1621
1622 2008-05-09  Tomas Bily  <tbily@suse.cz>
1623
1624         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1625         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1626         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1627         * c-common.c (c_common_truthvalue_conversion): Likewise.
1628         * tree-object-size.c (compute_object_offset): Likewise.
1629         * tree-inline.c (estimate_num_insns_1): Likewise.
1630         * varasm.c (const_hash_1, compare_constant, copy_constant)
1631         (compute_reloc_for_constant, output_addressed_constants)
1632         (initializer_constant_valid_p): Likewise.
1633         * c-omp.c (check_omp_for_incr_expr): Likewise.
1634         * gimplify.c (gimplify_expr): Likewise.
1635         * c-typeck.c (c_finish_return): Likewise.
1636         * tree-vectorizer.c (supportable_widening_operation)
1637         (supportable_narrowing_operation): Likewise.
1638         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1639         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1640         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1641         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1642         (descr_info_loc): Likewise.
1643         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1644         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1645         (fold_unary): Likewise.
1646         * builtins.c (get_pointer_alignment): Likewise.
1647         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1648         (instantiate_parameters_1): Likewise.
1649         * tree.c (expr_align, stabilize_reference): Likewise.
1650         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1651         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1652         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1653         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1654         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1655         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1656         Likewise.
1657         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1658         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1659         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1660         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1661         (forward_propagate_comparison)
1662         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1663         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1664         * emit-rtl.c (component_ref_for_mem_expr)
1665         (set_mem_attributes_minus_bitpos): Likewise.
1666         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1667         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1668         Likewise.
1669         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1670         (build_function_call, pointer_diff, build_compound_expr)
1671         (c_finish_return): Likewise.
1672         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1673         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1674         Likewise.
1675         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1676         * expr.c (is_aligning_offset): Likewise.
1677         * tree-ssa-alias.c (is_escape_site): Likewise.
1678         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1679         (check_all_va_list_escapes): Likewise.
1680         * tree-ssa-loop-ivopts.c (determine_base_object)
1681         (determine_common_wider_type): Likewise.
1682         * dojump.c (do_jump): Likewise.
1683         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1684         * tree-gimple.c (is_gimple_cast): Likewise.
1685         * fold-const.c (decode_field_reference, )
1686         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1687         (fold_binary): Likewise.
1688         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1689         (already_warned_in_frontend_p): Likewise.
1690         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1691         * tree.c (really_constant_p, get_unwidened): Likewise.
1692         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1693         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1694         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1695         Likewise.
1696         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1697         CONVERT_EXPR_P.
1698         (CONVERT_EXPR_P): Define.
1699         (CASE_CONVERT): Define.
1700         
1701 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1702
1703         PR middle-end/36117
1704         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1705         (delete_unmarked_insns): When deleting a call, call
1706         delete_unreachable_blocks.
1707         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1708         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1709
1710 2008-05-08  Richard Guenther  <rguenther@suse.de>
1711
1712         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1713         (-ftree-salias): Likewise.
1714         (salias-max-implicit-fields): Remove param documentation.
1715         (salias-max-array-elements): Likewise.
1716         * tree-pass.h (pass_create_structure_vars): Remove.
1717         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1718         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1719         * tree-ssa-alias.c (create_structure_vars): Remove.
1720         (gate_structure_vars): Likewise.
1721         (pass_create_structure_vars): Likewise.
1722         (gate_build_alias): Likewise.
1723         (pass_build_alias): Adjust to run always and dump the function.
1724         * common.opt (ftree-salias): Hide.
1725         * passes.c (init_optimization_passes): Remove
1726         pass_create_structure_vars, adjust comment.
1727         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1728         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1729         * opts.c (decode_options): Do not set flag_tree_salias.
1730         (common_handle_option): Add OPT_ftree_salias to the backward
1731         compatibility section.
1732
1733 2008-05-08  Richard Guenther  <rguenther@suse.de>
1734
1735         * tree-flow-inline.h (var_can_have_subvars): Move ...
1736         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1737         * tree-flow.h (var_can_have_subvars): Remove.
1738         (push_fields_onto_fieldstack): Remove.
1739         (sort_fieldstack): Likewise.
1740         (struct fieldoff): Move ...
1741         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1742         alias_set and base_for_components fields.
1743         (sort_fieldstack): Make static.
1744         (push_fields_onto_fieldstack): Likewise.  Remove code that
1745         handles anything but RECORD_TYPEs.  Remove alias_set and
1746         base_for_components handling.
1747         (create_variable_info_for): Adjust.
1748
1749 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1750
1751         * common.opt (Wframe-larger-than=): Shorten the help message
1752         to one line.
1753         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1754
1755 2008-05-08  Rafael Espindola  <espindola@google.com>
1756
1757         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1758         trap.
1759         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1760         trap and that both operands are gimple values.
1761         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1762         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1763         is a fp operation.
1764
1765 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1766
1767         * read-rtl.c (join_c_conditions): Return the first string if the
1768         two strings are equal.
1769
1770 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1771
1772         * gensupport.h (pred_data): Add a "num_codes" field.
1773         (add_predicate_code): Declare.
1774         * gensupport.c (add_predicate_code): New function.
1775         (std_pred_table): Add an "allows_const_p" field.
1776         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1777         Remove the (incomplete) list of such codes from the codes field.
1778         (init_predicate_table): Use add_predicate_code.  Add all
1779         RTX_CONST_OBJs if allows_const_p is true.
1780         * genrecog.c (process_define_predicate): Use add_predicate_code.
1781
1782 2008-05-08  David Daney  <ddaney@avtrex.com>
1783             Richard Sandiford  <rsandifo@nildram.co.uk>
1784         
1785         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1786         special case of constant zero operands.
1787         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1788         old and new values.  Special case constant zero values.
1789         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1790         fails.
1791         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1792         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1793
1794 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1795
1796         PR target/36090
1797         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1798         similar RTX_CONST_OBJ before CONST_INT.
1799
1800 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1801
1802         * stmt.c (expand_stack_restore): Change sa mode if needed.
1803
1804 2008-05-08  Richard Guenther  <rguenther@suse.de>
1805
1806         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1807         return type to bool.
1808         (ix86_sol10_return_in_memory): Likewise.
1809         (ix86_i386elf_return_in_memory): Likewise.
1810         (ix86_i386interix_return_in_memory): Likewise.
1811         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1812         (ix86_sol10_return_in_memory): Likewise.
1813         (ix86_i386elf_return_in_memory): Likewise.
1814         (ix86_i386interix_return_in_memory): Likewise.
1815
1816 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1817
1818         PR bootstrap/36180
1819         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1820         fndecl argument.
1821         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1822         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1823         declared in front.
1824
1825 2008-05-08  Richard Guenther  <rguenther@suse.de>
1826
1827         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1828         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1829         (DR_SUBVARS): Remove.
1830         * tree-dfa.c (dump_subvars_for): Remove.
1831         (debug_subvars_for): Likewise.
1832         (dump_variable): Do not dump subvars.
1833         (remove_referenced_var): Do not remove subvars.
1834         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1835         (lookup_subvars_for_var): Remove.
1836         (get_subvars_for_var): Likewise.
1837         (get_subvars_at): Likewise.
1838         (get_first_overlapping_subvar): Likewise.
1839         (overlap_subvar): Likewise.
1840         * tree-flow.h (subvar_t): Remove.
1841         (struct var_ann_d): Remove subvars field.
1842         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1843         argument.  Remove special handling of SFTs.
1844         (compute_tag_properties): Likewise.
1845         (set_initial_properties): Likewise.
1846         (compute_call_clobbered): Likewise.
1847         (count_mem_refs): Likewise.
1848         (compute_memory_partitions): Likewise.
1849         (compute_flow_insensitive_aliasing): Likewise.
1850         (setup_pointers_and_addressables): Likewise.
1851         (new_type_alias): Likewise.
1852         (struct used_part): Remove.
1853         (used_portions): Likewise.
1854         (struct used_part_map): Likewise.
1855         (used_part_map_eq): Likewise.
1856         (used_part_map_hash): Likewise.
1857         (free_used_part_map): Likewise.
1858         (up_lookup): Likewise.
1859         (up_insert): Likewise.
1860         (get_or_create_used_part_for): Likewise.
1861         (create_sft): Likewise.
1862         (create_overlap_variables_for): Likewise.
1863         (find_used_portions): Likewise.
1864         (create_structure_vars): Likewise.
1865         * tree.def (STRUCT_FIELD_TAG): Remove.
1866         * tree.h (MTAG_P): Adjust.
1867         (struct tree_memory_tag): Remove base_for_components and
1868         unpartitionable flags.
1869         (struct tree_struct_field_tag): Remove.
1870         (SFT_PARENT_VAR): Likewise.
1871         (SFT_OFFSET): Likewise.
1872         (SFT_SIZE): Likewise.
1873         (SFT_NONADDRESSABLE_P): Likewise.
1874         (SFT_ALIAS_SET): Likewise.
1875         (SFT_UNPARTITIONABLE_P): Likewise.
1876         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1877         (union tree_node): Remove sft field.
1878         * alias.c (get_alias_set): Remove special handling of SFTs.
1879         * print-tree.c (print_node): Remove handling of SFTs.
1880         * tree-dump.c (dequeue_and_dump): Likewise.
1881         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1882         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1883         * tree-predcom.c (set_alias_info): Do not set subvars.
1884         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1885         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1886         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1887         (add_vars_for_offset): Remove.
1888         (add_virtual_operand): Remove special handling of SFTs.
1889         (add_call_clobber_ops): Likewise.
1890         (add_call_read_ops): Likewise.
1891         (get_asm_expr_operands): Likewise.
1892         (get_modify_stmt_operands): Likewise.
1893         (get_expr_operands): Likewise.
1894         (add_to_addressable_set): Likewise.
1895         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1896         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1897         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1898         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1899         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1900         (tree_node_structure): Likewise.
1901         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1902         handling of SFTs.
1903         (find_what_p_points_to): Likewise.
1904
1905 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1906
1907         * config/spu/spu.md: Fixed subti3 pattern.
1908
1909 2008-05-08  Richard Guenther  <rguenther@suse.de>
1910
1911         PR middle-end/36154
1912         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1913         sure to create a representative for trailing arrays for PTA.
1914
1915 2008-05-08  Richard Guenther  <rguenther@suse.de>
1916
1917         PR middle-end/36172
1918         * fold-const.c (operand_equal_p): Two objects which types
1919         differ in pointerness are not equal.
1920
1921 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1922
1923         * calls.c (compute_argument_block_size): Add argument tree fndecl.
1924         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
1925         (emit_library_call_value_1): Add new variable fndecl initialized by
1926         NULL_TREE. It should be the decl type of orgfun, but this information
1927         seems not to be available here, so it uses the default calling abi.
1928         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
1929         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
1930         by TARGET_RETURN_IN_MEMORY.
1931         * config/i386/i386-interix.h: Likewise.
1932         * config/i386/i386.h: Likewise.
1933         * config/i386/i386elf.h: Likewise.
1934         * config/i386/ptx4-i.h: Likewise.
1935         * config/i386/sol2-10.h: Likewise.
1936         * config/i386/sysv4.h: Likewise.
1937         * config/i386/vx-common.h: Likewise.
1938         * config/cris/cris.h: Removed #if 0 clause.
1939         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
1940         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
1941         argument.
1942         (ix86_sol10_return_in_memory): Likewise.
1943         (ix86_i386elf_return_in_memory): New.
1944         (ix86_i386interix_return_in_memory): New.
1945         * config/mt/mt-protos.h (mt_return_in_memory): New.
1946         * config/mt/mt.c: Likewise.
1947         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1948         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
1949         * config/bfin/bfin.h: Likewise.
1950         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
1951         argument.
1952         * config/bfin/bfin.c: Likewise.
1953         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1954         * config/alpha/unicosmk.h: Likewise.
1955         * config/i386/cygming.h: Likewise.
1956         * config/iq2000/iq2000.h: Likewise.
1957         * config/mips/mips.h: Likewise.
1958         * config/mn10300/mn10300.h: Likewise.
1959         * config/rs6000/rs6000.h: Likewise.
1960         * config/score/score.h: Likewise.
1961         * config/spu/spu.h: Likewise.
1962         * config/v850/v850.h: Likewise.
1963         * defaults.h: Likewise.
1964         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
1965         * expr.c (emit_block_move): Adjust use of
1966         OUTGOING_REG_PARM_STACK_SPACE.
1967         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
1968         OUTGOING_REG_PARM_STACK_SPACE.
1969         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
1970
1971 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
1972
1973         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
1974         on OMP_RETURN for OMP_FOR.
1975
1976         PR debug/35896
1977         * dwarf2out.c (dw_expand_expr, common_check): Removed.
1978         (fortran_common): New function.
1979         (gen_variable_die): Call fortran_common instead of common_check,
1980         adjust for it returning tree instead of rtx.  Formatting.
1981
1982 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
1983
1984         PR rtl/7335
1985         PR rtl/33826
1986         * see.c (see_copy_insn): Copy new pure const attributes for new call.
1987         * c-decl.c (merge_decls): Ditto.
1988         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
1989         to RTL_CONST_OR_PURE_CALL_P.
1990         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
1991         Initialized DECL_LOOPING_CONST_PURE.
1992         (process_call_operands): Set tree_side_effects properly.
1993         * tree.h (TREE_READONLY_DECL_P): Removed.
1994         (DECL_IS_PURE): Renamed to DECL_PURE_P.
1995         (DECL_LOOPING_OR_CONST_P): New macro.
1996         (struct tree_function_decl): Added looping_const_or_pure_p.
1997         (ECF_*) Renumbered.
1998         (ECF_LOOPING_OR_CONST_P): New macro.
1999         * rtlanal.c (pure_const_p): Removed.
2000         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
2001         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
2002         to RTL_CONST_CALL_P.
2003         * ipa-pure-const.c (pure_const_state_e): Added looping field.
2004         (check_decl, check_tree, check_call, scan_function): Initialize
2005         looping.
2006         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
2007         (static_execute): Set looping true for recursive functions.
2008         Undo setting state to IPA_NEITHER for recursive functions.
2009         * cse.c (cse_insn): 
2010         * ifcvt.c (noce_can_store_speculate_p): Changed
2011         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2012         RTL_CONST_OR_PURE_CALL_P.
2013         * dse.c (scan_insn): Ditto.
2014         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2015         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2016         RTL_CONST_OR_PURE_CALL_P.
2017         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2018         pure_call_p to RTL_CONST_CALL_P.
2019         * gimplify.c (gimplify_call_expr): Clear side effects for
2020         non-looping pure and constant calls.
2021         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2022         (flags_from_decl_or_type): Set ecf flags from decl flags.
2023         (initialize_argument_information): Turn off
2024         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2025         Change const to pure if callee_copies is true rather than just
2026         turning off const.
2027         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2028         way of marking pure calls.
2029         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2030         Remove hack that was supposed to fix pr7335 and remove old
2031         way of marking pure calls.
2032         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2033         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2034         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2035         RTL_CONST_OR_PURE_CALL_P.
2036         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2037         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2038         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2039         * sched-deps.c (schedule_analyze): Ditto.
2040         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2041         return_val field of calls to represent pure and const function info.
2042         (CONST_OR_PURE_CALL_P): Deleted macro.
2043         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2044         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2045         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2046         TREE_READONLY.
2047         * tree-optimize.c (execute_fixup_cfg): Added test for
2048         ECF_LOOPING_CONST_OR_PURE.
2049         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2050         DECL_PURE_P.
2051         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2052         effects for looping pure or const calls.
2053         (verify_gimple_expr): Added verification code. 
2054         * config/alpha/alpha.c (alpha_legitimize_address,
2055         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2056         RTL_CONST_CALL_P.
2057         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2058         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2059         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2060         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2061         RTL_CONST_OR_PURE_CALL_P.
2062         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2063         and const calls to be deleted.
2064
2065 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2066
2067         PR target/35714
2068         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2069         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2070         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2071         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2072         to handle nonimmediate operands.
2073         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2074         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2075         to handle nonimmediate operands.
2076         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2077         (mmx_pmulhrwv4hi3): New expander.  Use
2078         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2079         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2080         (sse2_umulv1siv1di3): New expander.  Use
2081         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2082         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2083         (mmx_eq<mode>3): New expander.  Use
2084         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2085         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2086         (mmx_uavgv8qi3): New expander.  Use
2087         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2088         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2089         (mmx_uavgv4hi3): New expander.  Use
2090         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2091
2092         * config/i386/sse.md
2093         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2094         to handle nonimmediate operands.
2095         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2096         to handle nonimmediate operands.
2097         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2098         to handle nonimmediate operands.
2099         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2100         to handle nonimmediate operands.
2101         (sse2_unpckhpd_exp): New expander.  Use
2102         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2103         (sse2_unpcklpd_exp): New expander.  Use
2104         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2105         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2106         to handle nonimmediate operands.
2107         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2108         to handle nonimmediate operands.
2109         (*sse2_<plusminus_insn><mode>3): Rename from
2110         sse2_<plusminus_insn><mode>3 insn pattern.
2111         (sse2_<plusminus_insn><mode>3): New expander.  Use
2112         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2113         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2114         (sse2_umulv2siv2di3): New expander.  Use
2115         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2116         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2117         (sse4_1_mulv2siv2di3): New expander.  Use
2118         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2119         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2120         (sse2_pmaddwd): New expander.  Use
2121         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2122         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2123         (sse2_eq<mode>3): New expander.  Use
2124         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2125         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2126         (sse4_1_eqv2di3): New expander.  Use
2127         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2128         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2129         (sse2_uavgv16qi3): New expander.  Use
2130         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2131         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2132         (sse2_uavgv16qi3): New expander.  Use
2133         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2134         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2135         (sse2_uavgv8hi3): New expander.  Use
2136         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2137         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2138         (ssse3_pmulhrswv8hi3): New expander.  Use
2139         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2140         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2141         (ssse3_pmulhrswv4hi3): New expander.  Use
2142         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2143
2144         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2145         (<sse>_vmmul<mode>3): Ditto.
2146         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2147         (divv2df3): Ditto.
2148         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2149         (ssse3_pmaddubsw): Ditto.
2150
2151         * config/i386/i386.c (struct_builtin_description)
2152         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2153         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2154         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2155         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2156         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2157         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2158         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2159         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2160         (ix86_fixup_binary_operands): Assert that src1
2161         and src2 must have the same mode when swapped.
2162         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2163         and ix86_binary_operator_ok.  Do not force operands in registers
2164         when optimizing.
2165
2166 2008-05-07  Jan Hubicka  <jh@suse.cz>
2167
2168         * cgraph.c (dump_cgraph_node): Update.
2169         * cgraph.h (cgraph_local_info): Break out inline summary.
2170         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2171         hook.
2172         * ipa-inline (inline_summary): New accestor function.
2173         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2174         cgraph_decide_inlining, compute_inline_parameters): Update.
2175         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2176
2177 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2178
2179         Cleanup ColdFire scheduling support and add V4 pipeline model.
2180
2181         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2182         (define_attr cpu): Add cfv4 value.
2183         (define_attr type, define_attr type1): Merge into a single 'type'
2184         attribute.  Update all uses.
2185         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2186         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2187         Update all uses.
2188         (define_attr opx_mem, define_attr opy_mem): Remove.
2189         (define_attr op_mem): Clean up, update comment.
2190         (define_attr size): Use specific values instead of general int.
2191         (define_attr guess, define_attr split): Remove.  Update all uses.
2192         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2193         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2194         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2195         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2196         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2197         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2198         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2199         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2200         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2201         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2202         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2203         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2204         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2205         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2206         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2207         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2208         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2209         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2210         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2211         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2212         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2213         Update or set attributes.
2214         (stack_tie): New fake instruction.
2215
2216         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2217         (m68k_sched_attr_size): Update declaration.
2218         (m68k_sched_attr_type2): Remove.
2219         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2220         Declare new bypass predicates.
2221
2222         * config/m68k/m68k.c (m68k_sched_issue_rate,
2223         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2224         implementations.
2225         (TARGET_SCHED_ISSUE_RATE,
2226         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2227         (override_options): Handle scheduling for ColdFire V4 core.
2228         (m68k_expand_prologue): Emit stack_tie.
2229         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2230         'OP_TYPE_FPN'.  Update all uses.
2231         (sched_guess_p): Remove.
2232         (sched_address_type): Handle symbolic addresses.
2233         (sched_get_operand): New static function.
2234         (sched_operand_type): Merge into sched_attr_op_type.
2235         (sched_attr_op_type): Handle FP registers, handle quick constants,
2236         update.
2237         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2238         (m68k_sched_attr_size): Update.  Move logic to ...
2239         (sched_get_attr_size_int): New static function.
2240         (sched_get_opxy_mem_type): New static function.
2241         (m68k_sched_attr_op_mem): Update.
2242         (m68k_sched_attr_type2): Remove.
2243         (sched_cfv4_bypass_data): New static variable.
2244         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2245         (m68k_sched_issue_rate): Implement scheduler hook.
2246         (struct _sched_ib: enabled_p): New field.
2247         (m68k_sched_variable_issue): Update.  Handle V4.
2248         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2249         sched_dump_class_func_t, sched_dump_split_class,
2250         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2251         sched_dump_dfa_class, m68k_sched_dump): Remove.
2252         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2253         hook.
2254         (m68k_sched_init_global): Remove statisctics dumping, introduce
2255         sanity check that all instructions have pipeline reservations.  Handle
2256         ColdFire V4 core.
2257         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2258         Handle ColdFire V4 core.
2259         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2260         New static functions.
2261         (m68k_sched_address_bypass_p): New bypass predicate.
2262         (sched_get_indexed_address_scale): New static function.
2263         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2264
2265         * cf.md: Update comments.
2266         (define_attr type2): Remove.  Use 'type' attribute instead.
2267         Update all uses.
2268         (cf_ib): Rename to cfv123_ib.  Update all uses.
2269         (cf_oep): Rename to cfv123_oep.  Update all uses.
2270         (cf_chr): Rename to cfv123_chr.  Update all uses.
2271         (cf_mem): Rename to cfv123_mem.  Update all uses.
2272         (cf_mac): Move to more appropriate place.
2273         (cfv123_guess): New automaton and cpu_unit.
2274         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2275         Update uses of 'size' attribute.  Handle before reload scheduling.
2276         (cfv123_guess): New dummy reservation for unhandled instructions.
2277         (cfv4_*): Pipeline description of ColdFire V4 core.
2278         (ignore): New reservation to handle 'ignore' type.
2279
2280 2008-05-07  Ian Lance Taylor  <iant@google.com>
2281
2282         PR middle-end/36013
2283         * gimplify.c (find_single_pointer_decl_1): Don't look through
2284         indirections.
2285         (find_single_pointer_decl): Adjust comments.
2286
2287 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2288
2289         PR middle-end/36137
2290         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2291         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2292
2293         PR middle-end/36106
2294         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2295         integral type rather than floating point, then VIEW_CONVERT_EXPR
2296         to the floating point type.
2297
2298 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2299
2300         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2301         TFmode op0 to register.
2302
2303 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2304
2305         * c-decl.c (grokdeclarator): Comment typo.
2306
2307 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2308
2309         * tree-flow.h: Remove prototype for computed_goto_p.
2310         * tree-cfg.c (computed_goto_p): Make static.
2311
2312 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2313
2314         PR target/35657
2315         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2316         (contains_aligned_value_p): This.  Handle _Decimal128.
2317         (ix86_function_arg_boundary): Only align _Decimal128 to its
2318         natural boundary and handle it properly.
2319
2320 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2321
2322         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2323         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2324         (ipcp_method_set_orig_node): Removed.
2325         (ipcp_cval_get_cvalue_type): Removed.
2326         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2327         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2328         (ipcp_cval_set_cvalue_type): Removed.
2329         (ipcp_cval_get_cvalue): Removed.
2330         (ipcp_cval_set_cvalue): Removed.
2331         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2332         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2333         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2334         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2335         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2336         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2337         (ipcp_get_ith_lattice): Changed parameters.
2338         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2339         (ipcp_lattice_from_jfunc): Changed parameters.
2340         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2341         (ipcp_method_cval_print): Added temporary variable info.
2342         (ipcp_redirect): Removed already unused local variable caller.
2343         (ipcp_redirect): New temporary variable orig_callee_info
2344         (ipcp_redirect): Removed newly unused local variable callee.
2345         (ipcp_redirect): Removed (a bit confusing) local variable type.
2346         (ipcp_insert_stage): Added local variable info.
2347         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2348         renamed too
2349         (ipcp_formal_create): Removed.
2350         (ipcp_method_cval_set): Removed.
2351         (ipcp_propagate_stage): Renamed lattice variables.
2352         (ipcp_method_cval_set_cvalue_type): Removed.
2353         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2354         (ipcp_print_all_lattices): Changed printed strings to refer to 
2355         lattices rather than cvals.
2356         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2357         (ipcp_propagate_const): Changed formal parameters.
2358         (build_const_val): Changed formal parameters.
2359         (ipcp_insert_stage): Removed useless variable cvalue
2360         (build_const_val): Changed formal parameters.
2361         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2362         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2363         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2364         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2365         (ipcp_print_func_profile_counts): Changed string from "method" to 
2366         "function"
2367         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2368         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2369         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2370         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2371         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2372         (ipcp_lat_is_const): Changed parameters and made inline.
2373         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2374         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2375         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2376         the predicate condition directly
2377         (ipcp_propagate_stage): Added local variable args. Removed local
2378         variable callee.  (Both are mere code simplifications.)
2379         (ipcp_method_dont_insert_const): Renamed to
2380         ipcp_node_not_modifiable_p.
2381         (ipcp_node_not_modifiable_p): Made inline.
2382         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2383         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2384         (ipcp_print_all_lattices): Removed variable cvalue
2385         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2386         Updated comments.
2387
2388 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2389
2390         * tree-sra.c (try_instantiate_multiple_fields): Early return
2391         if field has POINTER_TYPE.
2392
2393 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2394
2395         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2396         by using 'q' specifier for instruction.
2397         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2398
2399 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2400
2401         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2402         Change mode of zero_extract from QImode to HImode.
2403         (sign bit tests peepholes): (Ditto.).
2404
2405 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2406
2407         * config/i386/mmx.md: Remove double backslashes from asm templates.
2408         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2409         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2410         to handle nonimmediate operands.
2411         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2412         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2413         to handle nonimmediate operands.
2414         (*mmx_<code>v2sf3_finite): New insn pattern.
2415         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2416         (mmx_<code>v2sf3): New expander.  Use
2417         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2418         (mmx_<plusminus_insn><mode>3): New expander.  Use
2419         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2420         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2421         (mmx_add<mode>3): Removed.
2422         (mmx_ssadd<mode>3): Ditto.
2423         (mmx_usadd<mode>3): Ditto.
2424         (mmx_sub<mode>3): Ditto.
2425         (mmx_sssub<mode>3): Ditto.
2426         (mmx_ussub<mode>3): Ditto.
2427         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2428         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2429         to handle nonimmediate operands.
2430         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2431         insn pattern.
2432         (mmx_smulv4hi3_highpart): New expander.  Use
2433         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2434         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2435         insn pattern.
2436         (mmx_umulv4hi3_highpart): New expander.  Use
2437         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2438         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2439         (mmx_<code>v4hi3): New expander.  Use
2440         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2441         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2442         (mmx_<code>v8qi3): New expander.  Use
2443         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2444         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2445         (mmx_<code><mode>3): New expander.  Use
2446         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2447
2448 2008-05-05  Jan Hubicka  <jh@suse.cz>
2449
2450         PR tree-optimization/36118
2451         * passes.c (pass_init_dump_file): Fix dump header.
2452
2453 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2454
2455         PR middle-end/36141
2456         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2457         VCE for function decls.
2458
2459 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2460
2461         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2462
2463 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2464
2465         * config/i386/i386.md (sat_plusminus): New.
2466         (plusminus_insn): Likewise.
2467         (plusminus_mnemonic): Likewise.
2468         (addsub): Removed.
2469         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2470         (*<addsub><mode>3_cc_overflow): Renamed to ...
2471         (*<plusminus_insn><mode>3_cc_overflow): This.
2472         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2473         (*<plusminus_insn>si3_zext_cc_overflow): This.
2474
2475         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2476         (<plusminus_insn><mode>3): This.
2477         (*<addsub><mode>3): Renamed to ...
2478         (*<plusminus_insn><mode>3): This.
2479         (<sse>_vm<addsub><mode>3): Renamed to ...
2480         (<sse>_vm<plusminus_insn><mode>3): This.
2481         (sse3_h<addsub>v4sf3): Renamed to ...
2482         (sse3_h<plusminus_insn>v4sf3): This.
2483         (sse3_h<addsub>v2df3): Renamed to ...
2484         (sse3_h<plusminus_insn>v2df3): This.
2485         (<plusminus_insn><mode>3): New.
2486         (*<plusminus_insn><mode>3): Likewise.
2487         (sse2_<plusminus_insn><mode>3): Likewise.
2488         (add<mode>): Removed.
2489         (*add<mode>3): Likewise.
2490         (sse2_ssadd<mode>3): Likewise.
2491         (sse2_usadd<mode>3): Likewise.
2492         (sub<mode>3): Likewise.
2493         (*sub<mode>3): Likewise.
2494         (sse2_sssub<mode>3): Likewise.
2495         (sse2_ussub<mode>3): Likewise.
2496
2497 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2498
2499         * gthr-single.h: Add in required interface elements as per gthr.h.
2500         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2501         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2502         Generalize UNUSED macro. 
2503         (__gthread_once): Add.
2504         (__gthread_key_create): Add.
2505         (__gthread_key_delete): Add.
2506         (__gthread_getspecific): Add.
2507         (__gthread_setspecific): Add.
2508         
2509 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2510
2511         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2512         the same size types for the indirect reference on the rhs, then
2513         create a VCE.
2514
2515 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2516
2517         * config/i386/i386.md
2518         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2519         one insn template instead of template series.
2520         (*xordi_1_rex64): Ditto.
2521         (*xordi_2_rex64): Ditto.
2522
2523 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2524
2525         PR tree-optimization/36119
2526         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2527         in case of SLP.
2528
2529 2008-06-04  Jan Hubicka  <jh@suse.cz>
2530
2531         tree-optimization/36100
2532         * tree-pass.h (pass_O0_always_inline): Declare.
2533         * ipa-inline.c (inline_transform): Remove dead code.
2534         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2535         pass_O0_always_inline): New.
2536         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2537
2538 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2539
2540         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2541         mnemonic in this_param move for TARGET_64BIT.
2542
2543 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2544
2545         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2546         (*strmovsi_rex_1): Ditto.
2547         (*strsetsi_1): Ditto.
2548         (*strsetsi_rex_1): Ditto.
2549
2550         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2551         adddicc expanders using SWI mode iterator.
2552
2553 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2554
2555         PR target/36121
2556         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2557         argument handling.
2558
2559 2008-05-04  David S. Miller  <davem@davemloft.net>
2560
2561         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2562         (sparc*-*-linux*): Use linux.h in tm_file.
2563         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2564         compiler defaulting to 32-bit.
2565         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2566         no longer needed.
2567         * config/sparc/linux.h: Remove definitions now obtained
2568         properly from linux.h
2569         * config/sparc/linux64.h: Likewise.
2570         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2571         don't want this setting for 32-bit builds in a biarch compiler.
2572         * doc/install.texi: Add sparc-linux to list of targets
2573         supporting --enable-targets=all.
2574
2575 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2576
2577         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2578
2579 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2580
2581         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2582         after V4SI_FTYPE_V8HI.
2583         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2584         case V4SI_FTYPE_V2DF.
2585
2586 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2587
2588         * doc/invoke.texi (max-flow-memory-locations): Removed.
2589         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2590         
2591 2008-05-03  Richard Guenther  <rguenther@suse.de>
2592
2593         PR middle-end/34973
2594         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2595
2596 2008-05-02  David S. Miller  <davem@davemloft.net>
2597
2598         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2599
2600 2008-05-02  Simon Baldwin <simonb@google.com>
2601
2602         PR bootstrap/36108
2603         * c-common.h (warn_array_subscript_range): Removed.
2604         * c-common.c (warn_array_subscript_range): Ditto.
2605         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2606         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2607
2608 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2609
2610         * config/i386/i386.c (ix86_special_builtin_type): New.
2611         (bdesc_special_args): Likewise.
2612         (ix86_expand_special_args_builtin): Likewise.
2613         (ix86_init_mmx_sse_builtins): Updated.
2614         (ix86_expand_builtin): Updated.
2615         (ix86_expand_store_builtin): Removed.
2616         (ix86_expand_unop_builtin): Likewise.
2617
2618         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2619         * config/i386/mmintrin.h (__v2sf): Here.
2620
2621         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2622         const __v2sf.
2623         (_mm_loadl_pi): Likewise.
2624         (_mm_storeh_pi): Replace __v2si with __v2sf.
2625         (_mm_storel_pi): Likewise.
2626
2627         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2628         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2629         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2630         __builtin_ia32_loadlpd.
2631
2632 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2633
2634         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2635         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2636         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2637         (ix86_init_mmx_sse_builtins): Updated.
2638         (ix86_expand_args_builtin): Likewise.
2639         (ix86_expand_builtin): Likewise.
2640         (ix86_expand_unop1_builtin): Renamed to ...
2641         (ix86_expand_unop_vec_merge_builtin): This.
2642
2643 2008-05-01  Jan Hubicka  <jh@suse.cz>
2644
2645         PR bootstrap/36100
2646         * ipa-inline.c (inline_generate_summary): Make static.
2647         (inline_transform): Do not call inlining at -O0; make static.
2648         * passes.c (execute_todo): Add sanity check.
2649         (execute_one_ipa_transform_pass): Execute proper flags.
2650
2651 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2652
2653         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2654         (DECL_NONADDRESSABLE_P): Likewise.
2655         * alias.c (record_component_aliases): Fix comment.
2656
2657 2008-05-01  Simon Baldwin <simonb@google.com>
2658
2659         * c-common.h (warn_array_subscript_range): New function.
2660         * c-common.c (warn_array_subscript_range): Ditto.
2661         * tree-vrp.c (check_array_ref): Corrected code to agree with
2662         comment, ignoring only arrays of size 0 or size 1.
2663         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2664
2665 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2666
2667         * config/i386/i386.c (ix86_builtin_type): Replace
2668         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2669         (bdesc_args): Updated.
2670         (ix86_init_mmx_sse_builtins): Likewise.
2671         (ix86_expand_args_builtin): Likewise.
2672
2673         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2674         with __v1di.
2675
2676         * doc/extend.texi: Correct __builtin_ia32_palignr.
2677
2678 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2679
2680         PR target/36095
2681         * config/i386/i386.c (bdesc_crc32): Removed.
2682         (ix86_expand_crc32): Likewise.
2683         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2684         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2685         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2686         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2687         UINT_FTYPE_UINT_UCHAR.
2688         (bdesc_args): Updated. Add crc32 builtins.
2689         (ix86_init_mmx_sse_builtins): Updated.
2690         (ix86_expand_args_builtin): Updated to support subreg.
2691
2692         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2693
2694 2008-05-01  Jan Hubicka  <jh@suse.cz>
2695
2696         * tree-pass.h (opt_pass): Add IPA_PASS.
2697         (varpool_node, cgraph_node): Forward declare.
2698         (ipa_opt_pass): Define.
2699         (pass_ipa_inline): Turn into ipa_opt_pass.
2700         (pass_apply_inline): Remove.
2701         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2702         (apply_inline): Turn into ....
2703         (inline_transform): ... this one.
2704         (inline_generate_summary): New function.
2705         (pass_apply_inline): Remove.
2706         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2707         vector.
2708         (struct function): Add ipa_transforms_to_apply.
2709         * passes.c (register_one_dump_file): Work on IPA_PASS.
2710         (init_optimization_passes): Remove pass_inline_parameters and
2711         pass_apply_inline.
2712         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2713         (execute_one_pass) ... here; apply transforms when possible.
2714         (add_ipa_transform_pass, execute_ipa_summary_asses,
2715         execute_one_ipa_transform_pass): New.
2716         (execute_ipa_pass_list): Update for IPA_PASS type.
2717
2718 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2719
2720         * config/i386/i386.c (ix86_builtin_type): Add
2721         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2722         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2723         (bdesc_args): Add SSE4a builtins.
2724         (ix86_init_mmx_sse_builtins): Updated.
2725         (ix86_expand_args_builtin): Likewise.
2726         (ix86_expand_builtin): Likewise.
2727
2728 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2729
2730         * config/i386/i386.c (ix86_builtin_type): Add
2731         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2732         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2733         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2734         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2735         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2736         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2737         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2738         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2739         and DI_FTYPE_DI_DI_INT.
2740         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2741         (ix86_init_mmx_sse_builtins): Updated.
2742         (ix86_expand_args_builtin): Likewise.
2743         (ix86_expand_builtin): Likewise.
2744         (ix86_expand_binop_imm_builtin): Removed.
2745
2746         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2747
2748 2008-04-30  Richard Guenther  <rguenther@suse.de>
2749
2750         PR tree-optimization/32921
2751         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2752
2753 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2754
2755         * config/arm/arm.c (arm_unwind_emit): Use
2756         crtl->all_throwers_are_sibcalls instead of
2757         cfun->all_throwers_are_sibcalls.
2758         (arm_output_fn_unwind): Likewise.
2759         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2760         instead of cfun->uses_pic_offset_table.
2761         (frv_expand_prologue): Likewise.
2762         (frv_frame_pointer_required): Likewise.
2763         (frv_expand_fdpic_call): Likewise.
2764         (frv_emit_movsi): Likewise.
2765         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2766         cfun->returns_pcc_struct instead of
2767         current_function_returns_pcc_struct.
2768         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2769         instead of cfun->calls_eh_return.
2770         (m32c_pushm_popm): Likewise.
2771         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2772         "extern" declaration.
2773
2774 2008-04-30  Richard Guenther  <rguenther@suse.de>
2775
2776         PR tree-optimization/21636
2777         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2778         constant address.
2779         (evaluate_stmt): Print the likely value.
2780         (ccp_visit_stmt): Avoid excessive vertical spacing.
2781
2782 2008-04-30  Rafael Espindola  <espindola@google.com>
2783
2784         * builtins.c (fold_call_expr): Return realret.
2785         * tree-ssa-threadedge.c
2786         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2787         __builtin_object_size.
2788
2789 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2790
2791         * gcc.c (wrapper_string): New variable.
2792         (insert_wrapper): New function.
2793         (execute): New option -wrapper.
2794         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2795
2796 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2797
2798         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2799         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2800         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2801         from...
2802         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2803         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2804         config/rs6000/e500crtres64gprctr.asm,
2805         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2806         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2807         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2808         config/rs6000/e500crtsav64gprctr.asm,
2809         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2810         config/rs6000/e500crtsavg64gprctr.asm: New files.
2811         * config/rs6000/t-ppccomm: Add build rules for new files.
2812         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2813         * config/rs6000/t-netbsd: Add build rules for new files.
2814         (LIB2FUNCS_STATIC_EXTRA): New variable.
2815         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2816         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2817         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2818
2819 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2820
2821         * config/i386/i386.c (ix86_builtin_type): Add
2822         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2823         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2824         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2825         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2826         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2827         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2828         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2829         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2830         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2831         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2832         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2833         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2834         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2835         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2836         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2837         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2838         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2839         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2840         V1DI_FTYPE_V2SI_V2SI.
2841         (bdesc_2arg): Moved to ...
2842         (bdesc_args): Here.
2843         (ix86_init_mmx_sse_builtins): Updated.
2844         (ix86_expand_args_builtin): Updated.  Take a pointer
2845         to const struct builtin_description.  Handle comparison
2846         builtin functions.
2847         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2848         (ix86_expand_builtin): Updated.
2849
2850         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2851         (ssse3_pmaddubsw128): This.
2852         (ssse3_pmaddubswv4hi3): Renamed to ...
2853         (ssse3_pmaddubsw): This.
2854
2855         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2856         (__builtin_ia32_packssdw128): Likewise.
2857         (__builtin_ia32_packuswb128): Likewise.
2858         (__builtin_ia32_pmaddubsw): Likewise.
2859         (__builtin_ia32_pmaddubsw128): Likewise.
2860
2861 2008-04-30  Richard Guenther  <rguenther@suse.de>
2862
2863         PR tree-optimization/14847
2864         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2865         (recognize_bits_test): Use it.
2866         (recognize_single_bit_test): Likewise.
2867
2868 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2869
2870         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2871         instead of setting number of formal parameters to zero.
2872         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2873         either.
2874         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2875         which are called with variable number of arguments.
2876         (ipcp_insert_stage): Explicitely skipping all nodes which are
2877         called with variable number of arguments.
2878         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2879         number of parameters.
2880
2881         * ipa-prop.h (struct ipa_node_params): Added flag
2882         called_with_var_arguments
2883         (ipa_set_param_count): Added.  Changed sole setter to use it.
2884         (ipa_get_param_count): Added.  All readers of param_count
2885         converted to use it instead.
2886         (ipa_set_called_with_variable_arg): Added.
2887         (ipa_is_called_with_var_arguments): Added.
2888         (ipa_get_ith_param): Added.  All readers of param_decls converted
2889         to use it instead.
2890         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2891         changed to use it. 
2892         (ipa_get_cs_argument_count): Added, all readers of argument_count
2893         changed to cal it.
2894         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2895         to use it.
2896         
2897         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2898         (struct ipcp_lattice): Renamed cval_type to type
2899         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2900
2901         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2902         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2903         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2904         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2905         (build_const_val): Changed the type of parameter cvalue to tree
2906         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2907         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2908         
2909         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2910         constant 
2911
2912         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2913         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2914         (ipa_add_method): Renamed to ipa_push_func_to_list
2915         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2916         (ipa_callsite_param_count): Removed.
2917         (ipa_callsite_param_count_set): Removed.
2918         (ipa_callsite_param): Removed.
2919         (ipa_callsite_callee): Removed.
2920         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
2921         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
2922         (ipa_method_formal_count): Removed.
2923         (ipa_method_formal_count_set): Removed.
2924         (ipa_method_get_tree): Removed.
2925         (ipa_method_tree_map_create): Removed.
2926         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
2927         (ipa_create_param_decls_array): Creates the array itself
2928         (ipa_create_param_decls_array): Temporary variable info instead of 
2929         a few dereferences.
2930         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
2931         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
2932         (get_type): Removed.
2933         (ipa_jf_get_info_type): Removed.
2934         (ipa_node_create): Renamed to ipa_create_node_params
2935         (ipa_free): Renamed to ipa_free_all_node_params
2936         (ipa_nodes_create): Renamed to ipa_create_all_node_params
2937         (ipa_edges_create): Renamed to ipa_create_all_edge_args
2938         (ipa_edges_free): Renamed to ipa_free_all_edge_args
2939         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
2940         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
2941         ipa_free_all_edge_args
2942         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
2943         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
2944         (ipa_create_methodlist_node): Removed.
2945         (ipa_methodlist_method): Removed.
2946         (ipa_methodlist_method_set): Removed.
2947         (ipa_methodlist_next_method): Removed.
2948         (ipa_methodlist_next_method_set): Removed.
2949         (ipa_method_is_modified): Removed.
2950         (ipa_method_modify_create): Removed.
2951         (ipa_method_modify_init): Temporary variable info instead of a few 
2952         dereferences.
2953         (ipa_detect_param_modifications): Temporary variable info instead of 
2954         a few dereferences.
2955         (ipa_compute_jump_functions): Temporary variable info instead of 
2956         a few dereferences.
2957         (ipa_method_modify_set): Removed.
2958         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
2959         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
2960         than craph_node as the first parameter.
2961         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
2962         (ipa_method_modify_init): Removed.
2963         (ipa_compute_jump_functions): Added a temp variable instead of 
2964         repeatadly dereferencing the cgraph_edge.aux pointer
2965         (ipa_callsite_param_set_type): Removed.
2966         (ipa_compute_jump_functions): i renamed to index and moved to 
2967         an inner block
2968         (ipa_callsite_param_set_info_type_formal): Removed.
2969         (ipa_callsite_param_set_info_type): Removed.
2970         (ipa_callsite_param_map_create): Removed.
2971         (ipa_callsite_tree): Removed.
2972         (ipa_callsite_caller): Removed.
2973         (ipa_pop_func_from_list): return_method removed to return_func
2974
2975         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
2976         prefixed all values with IPA_. Changed all users.
2977         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
2978         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
2979         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
2980         (union parameter_info): Renamed to jump_func_value.
2981         (union jump_func_value): Renamed value to constant
2982         (struct ipa_jump_func): Renamed info_type to value
2983         (struct ipa_node): Renamed to ipa_node_params
2984         (struct ipa_node_params): Renamed ipa_arg_num to param_count
2985         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
2986         (struct ipa_node_params): Renamed ipa_mod to modified_flags
2987         (struct ipa_edge): Renamed to ipa_edge_args
2988         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
2989         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
2990         (struct ipa_methodlist): Renamed to ipa_func_list
2991         (struct ipa_func_list): method_p renamed to node, next_method
2992         renamed to next
2993         (ipa_methodlist_p): Removed, switched all users to struct pointer
2994         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
2995
2996 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
2997
2998         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
2999         (rs6000_emit_epilogue): Use backchain to restore only when we
3000         have a large frame.  Make use of frame pointer to restore if we
3001         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
3002
3003 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
3004
3005         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
3006         Add mode to zero_extract.
3007         (sign bit tests peepholes): (Ditto.).
3008
3009 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3010
3011         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3012         Instructions in comments with SSE3.
3013         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3014         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3015         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3016         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3017         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3018         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3019         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3020         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3021         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3022         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3023         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3024         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3025         (bdesc_sse_args): Renamed to ...
3026         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3027         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3028         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3029         IX86_BUILTIN_FABSQ.
3030         (bdesc_1arg): Moved to ...
3031         (bdesc_args): Here.
3032         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3033         Instructions in comments with SSE3.
3034         (ix86_expand_sse_operands_builtin): Renamed to ...
3035         (ix86_expand_args_builtin): This.  Updated.
3036         (ix86_expand_unop1_builtin): Update comments.
3037         (ix86_expand_builtin): Updated.
3038
3039 2008-04-29  Richard Guenther  <rguenther@suse.de>
3040
3041         PR tree-optimization/36078
3042         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3043         Update virtual SSA form after cleaning up the CFG.
3044
3045 2008-04-29  Richard Guenther  <rguenther@suse.de>
3046
3047         PR middle-end/15255
3048         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3049
3050 2008-04-29  Richard Guenther  <rguenther@suse.de>
3051
3052         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3053         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3054         (compute_flow_insensitive_aliasing): Do not treat
3055         PTR_IS_REF_ALL pointers special.
3056         (get_smt_for): Likewise.
3057         (may_alias_p): Re-structure.
3058         (is_escape_site): A ref-all pointer conversion is not an escape site.
3059         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3060         PTR_IS_REF_ALL pointers special.
3061         * tree-ssa-structalias.h (struct alias_info): Remove
3062         ref_all_symbol_mem_tag field.
3063         (PTR_IS_REF_ALL): Remove.
3064
3065 2008-04-29  Richard Guenther  <rguenther@suse.de>
3066
3067         PR middle-end/36077
3068         * fold-const.c (extract_muldiv_1): In combining division constants
3069         make sure to never overflow.
3070
3071 2008-04-29  Nick Clifton  <nickc@redhat.com>
3072
3073         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3074
3075 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3076
3077         PR bootstrap/35169
3078         * optc-gen.awk: Work around HP-UX/IA awk bug.
3079
3080 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3081
3082         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3083         2008-04-25 commit.
3084
3085 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3086
3087         PR target/36073
3088         * config/i386/i386.md
3089         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3090         Change operand 1 predicate to nonimmediate_operand.
3091
3092 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3093
3094         PR debug/36060
3095         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3096         die_sub field.
3097         * gengtype.c (walk_type, write_func_for_structure): Handle
3098         chain_circular.
3099         * doc/gty.texi: Document chain_circular.
3100
3101 2008-04-28  Richard Guenther  <rguenther@suse.de>
3102
3103         PR tree-optimization/36066
3104         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3105         SCEV and loop.
3106
3107 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3108
3109         PR target/36064
3110         * config/i386/i386.md
3111         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3112         Use match_scratch instead of match_operand for operands 3 and 4.
3113
3114 2008-04-27  Richard Guenther  <rguenther@suse.de>
3115
3116         PR tree-optimization/18754
3117         PR tree-optimization/34223
3118         * tree-pass.h (pass_complete_unrolli): Declare.
3119         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3120         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3121         Rewrite loop into loop closed SSA form if it is not already.
3122         (tree_unroll_loops_completely): Re-structure to iterate over
3123         innermost loops with intermediate CFG cleanups.
3124         Unroll outermost loops only if requested or the code does not grow
3125         doing so.
3126         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3127         loops are available.
3128         (tree_vectorize): Instead do so here.
3129         (tree_complete_unroll): Also unroll outermost loops.
3130         (tree_complete_unroll_inner): New function.
3131         (gate_tree_complete_unroll_inner): Likewise.
3132         (pass_complete_unrolli): New pass.
3133         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3134         uses outside of the loop.
3135         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3136         form if it is available.  
3137         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3138         * passes.c (init_optimization_passes): Schedule complete inner
3139         loop unrolling pass before the first CCP pass after final inlining.
3140
3141 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3142
3143         * targhooks.h (default_emutls_var_fields,
3144         default_emutls_var_init): Declare.
3145         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3146         * target.h (struct gcc_target): Add struct emutls member.
3147         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3148         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3149         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3150         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3151         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3152         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3153         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3154         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3155         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3156         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3157         emit debug information.
3158         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3159         * varasm.c: Include targhooks.h.
3160         (emutls_object_section, emutls_tmpl_section): New.
3161         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3162         (EMUTLS_SEPARATOR): New.
3163         (prefix_name): New.
3164         (get_emutls_object_name): New.
3165         (default_emutls_var_fields): New, broken out of ...
3166         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3167         (get_emutls_init_templ_addr): Adjust to use target hooks.
3168         (emutls_decl): Adjust to use target hooks.
3169         (emutls_finish): Likewise.
3170         (default_emutls_var_init): New, broken out of ...
3171         (assemble_variable): ... here.  Adjust to use target hooks.
3172         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3173         SECCAT_EMUTLS_TMPL.
3174         * c-common.c (handle_section_attribute): Prevent overriding
3175         sections for emulated tls with special sections.
3176         * config/i386/i386.c (x86_64_elf_select_section): Add
3177         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3178         (x86_64_elf_unique_section): Likewise.
3179         * config/vxworks.c: Include tree.h.
3180         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3181         (vxworks_override_options): Set TLS scheme.
3182         * doc/tm.texi (Emulated TLS): New node.
3183
3184 2008-04-26  Simon Baldwin <simonb@google.com>
3185
3186         PR c/35652
3187         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3188         with propagated string constants.
3189
3190 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3191
3192         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3193         constraint for operand 2 when operand 0 is memory operand.
3194         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3195         operand 0 is memory operand.
3196         (fix_trunc<mode>_i387_with_temp): Ditto.
3197         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3198         operand 2 when operand 1 is memory operand.
3199         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3200         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3201         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3202         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3203         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3204         operands 2,3 and 4 when operand 1 is memory operand.
3205         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3206         is memory operand.
3207         (fistdi2_floor_with_temp): Ditto.
3208         (fist<mode>2_floor_with_temp): Ditto.
3209         (fistdi2_ceil_with_temp): Ditto.
3210         (fist<mode>2_ceil_with_temp): Ditto.
3211         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3212
3213 2008-04-26  David Daney  <ddaney@avtrex.com>
3214
3215         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3216         unspec_volitile.
3217         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3218         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3219         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3220         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3221         (compare_and_swap_12): New insn.
3222         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3223         * config/mips/mips.c (mips_force_binary): New function.
3224         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3225         (mips_expand_compare_and_swap_12): New function.
3226         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3227
3228 2008-04-25  Jan Hubicka  <jh@suse.cz>
3229
3230         PR testsuite/35843
3231         * cfgexpand.c (pass_expand): Turn into RTL pass.
3232         * passes.c (execute_one_pass): Do pass typechecking after execution.
3233         * tree-pass.h (pass_expand): Turn into RTL pass.
3234
3235         * function.h (struct rtl_data): Move here fields
3236         accesses_prior_frames, calls_eh_return, saves_all_registers,
3237         has_nonlocal_goto, has_asm_statement, is_thunk,
3238         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3239         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3240         arg_pointer_save_area_init from struct function; turn into bool.
3241         (struct function): Move
3242         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3243         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3244         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3245         tail_call_emit, arg_pointer_save_area_init
3246         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3247         (current_function_returns_struct, current_function_returns_pcc_struct,
3248         current_function_calls_setjmp, current_function_calls_alloca,
3249         current_function_accesses_prior_frames,
3250         current_function_calls_eh_return, current_function_is_thunk,
3251         current_function_stdarg, current_function_profile,
3252         current_function_limit_stack, current_function_uses_pic_offset_table,
3253         current_function_uses_const_pool, current_function_has_nonlocal_label,
3254         current_function_saves_all_registers,
3255         current_function_has_nonlocal_goto,
3256         current_function_has_asm_statement): Remove accesor macros.
3257         * ra-conflict.c (global_conflicts): Update.
3258         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3259         (suitable_for_tail_call_opt_p): Update.
3260         * builtins.c (expand_builtin_return_addr): Update.
3261         (expand_builtin_setjmp_setup): Update.
3262         (expand_builtin_nonlocal_goto): Update.
3263         * final.c (final_start_function): Update.
3264         (profile_function): Update.
3265         (leaf_function_p): Update.
3266         (only_leaf_regs_used): Update.
3267         * df-scan.c (df_get_exit_block_use_set): Update.
3268         * dojump.c (clear_pending_stack_adjust): Update.
3269         * tree-stdarg.c (gate_optimize_stdarg): Update.
3270         * gimple-low.c (lower_function_body): Update.
3271         * global.c (compute_regsets): Update.
3272         (global_alloc): Update.
3273         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3274         * expr.c (expand_assignment): Update.
3275         * dse.c (dse_step0): Update.
3276         (dse_step1): Update.
3277         * c-decl.c (store_parm_decls): Update.
3278         * local-alloc.c (combine_regs): Update.
3279         (find_free_reg): Update.
3280         * function.c (assign_parms_augmented_arg_list): Update.
3281         (assign_parm_find_data_types): Update.
3282         (assign_parms): Update.
3283         (allocate_struct_function): Update.
3284         (expand_function_start): Update.
3285         (expand_function_end): Update.
3286         (get_arg_pointer_save_area): Update.
3287         (thread_prologue_and_epilogue_insns): Update.
3288         (rest_of_match_asm_constraints): Update.
3289         * stor-layout.c (variable_size): Update.
3290         * gcse.c (gcse_main): Update.
3291         (bypass_jumps): Update.
3292         * gimplify.c (gimplify_function_tree): Update.
3293         * calls.c (emit_call_1): Update.
3294         (expand_call): Update.
3295         * bt-load.c (compute_defs_uses_and_gen): Update.
3296         * except.c (sjlj_assign_call_site_values): Update.
3297         (sjlj_emit_function_enter): Update.
3298         (can_throw_external): Update.
3299         (set_nothrow_function_flags): Update.
3300         (expand_builtin_unwind_init): Update.
3301         (expand_eh_return): Update.
3302         (convert_to_eh_region_ranges): Update.
3303         (output_function_exception_table): Update.
3304         * emit-rtl.c (gen_tmp_stack_mem): Update.
3305         * cfgexpand.c (expand_used_vars): Update.
3306         (tree_expand_cfg): Update.
3307         * cfgcleanup.c (rest_of_handle_jump): Update.
3308         * explow.c (allocate_dynamic_stack_space): Update.
3309         * varasm.c (assemble_start_function): Update.
3310         (force_const_mem): Update.
3311         (mark_constant_pool): Update.
3312         * tree-optimize.c (tree_rest_of_compilation): Update.
3313         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3314         * tree-cfg.c (notice_special_calls): Update.
3315         (is_ctrl_altering_stmt): Update.
3316         (tree_can_make_abnormal_goto): Update.
3317         (tree_purge_dead_abnormal_call_edges): Update.
3318         * config/alpha/predicates.md: Update.
3319         * config/alpha/alpha.c (alpha_sa_mask): Update.
3320         (alpha_sa_size): Update.
3321         (alpha_does_function_need_gp): Update.
3322         (alpha_expand_prologue): Update.
3323         (alpha_start_function): Update.
3324         (alpha_output_function_end_prologue): Update.
3325         (alpha_expand_epilogue): Update.
3326         * config/frv/frv.c (frv_stack_info): Update.
3327         (frv_expand_epilogue): Update.
3328         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3329         (s390_register_info): Update.
3330         (s390_frame_info): Update.
3331         (s390_init_frame_layout): Update.
3332         (s390_can_eliminate): Update.
3333         (save_gprs): Update.
3334         * config/spu/spu.c (spu_split_immediate): Update.
3335         (need_to_save_reg): Update.
3336         (spu_expand_prologue): Update.
3337         (spu_expand_epilogue): Update.
3338         * config/sparc/sparc.md: Update.
3339         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3340         (sparc_tls_got): Update.
3341         (legitimize_pic_address): Update.
3342         (sparc_emit_call_insn): Update.
3343         (sparc_expand_prologue): Update.
3344         (output_return): Update.
3345         (print_operand): Update.
3346         (sparc_function_ok_for_sibcall): Update.
3347         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3348         * config/m32r/m32r.md: Update.
3349         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3350         (m32r_compute_frame_size): Update.
3351         (m32r_expand_prologue): Update.
3352         (m32r_expand_epilogue): Update.
3353         (m32r_legitimize_pic_address): Update.
3354         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3355         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3356         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3357         (gen_push): Update.
3358         (ix86_save_reg): Update.
3359         (ix86_compute_frame_layout): Update.
3360         (ix86_expand_prologue): Update.
3361         (ix86_expand_epilogue): Update.
3362         * config/sh/sh.c (output_stack_adjust): Update.
3363         (calc_live_regs): Update.
3364         (sh5_schedule_saves): Update.
3365         (sh_expand_prologue): Update.
3366         (sh_expand_epilogue): Update.
3367         (sh_setup_incoming_varargs): Update.
3368         (sh_allocate_initial_value): Update.
3369         (sh_get_pr_initial_val): Update.
3370         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3371         * config/sh/sh.md (label:): Update.
3372         * config/avr/avr.c (out_movhi_mr_r): Update.
3373         * config/crx/crx.h (enum): Update.
3374         * config/xtensa/xtensa.h (along): Update.
3375         * config/stormy16/stormy16.c Update.
3376         (xstormy16_compute_stack_layout): Update.
3377         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3378         (fr30_expand_prologue): Update.
3379         * config/cris/cris.c (cris_conditional_register_usage): Update.
3380         (cris_reg_saved_in_regsave_area): Update.
3381         (cris_initial_frame_pointer_offset): Update.
3382         (cris_simple_epilogue): Update.
3383         (cris_expand_prologue): Update.
3384         (cris_expand_epilogue): Update.
3385         (cris_expand_pic_call_address): Update.
3386         (cris_asm_output_symbol_ref): Update.
3387         (cris_asm_output_label_ref): Update.
3388         * config/cris/cris.md Update.
3389         * config/iq2000/iq2000.c (compute_frame_size): Update.
3390         (iq2000_expand_epilogue): Update.
3391         * config/mt/mt.h (save_direction): Update.
3392         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3393         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3394         (ia64_secondary_reload_class): Update.
3395         * config/m68k/m68k.c (m68k_save_reg): Update.
3396         (m68k_expand_prologue): Update.
3397         (m68k_expand_epilogue): Update.
3398         (legitimize_pic_address): Update.
3399         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3400         (first_reg_to_save): Update.
3401         (first_altivec_reg_to_save): Update.
3402         (compute_vrsave_mask): Update.
3403         (compute_save_world_info): Update.
3404         (rs6000_stack_info): Update.
3405         (spe_func_has_64bit_regs_p): Update.
3406         (rs6000_ra_ever_killed): Update.
3407         (rs6000_emit_eh_reg_restore): Update.
3408         (rs6000_emit_allocate_stack): Update.
3409         (rs6000_emit_prologue): Update.
3410         (rs6000_emit_epilogue): Update.
3411         (rs6000_output_function_epilogue): Update.
3412         (output_profile_hook): Update.
3413         (rs6000_elf_declare_function_name): Update.
3414         * config/rs6000/rs6000.h (rs6000_args): Update.
3415         * config/rs6000/rs6000.md: Update.
3416         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3417         * config/arc/arc.c (arc_output_function_epilogue): Update.
3418         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3419         * config/darwin.c (machopic_function_base_name): Update.
3420         * config/score/score3.c (score3_compute_frame_size): Update.
3421         (rpush): Update.
3422         (rpop): Update.
3423         (score3_epilogue): Update.
3424         * config/score/score7.c (score7_compute_frame_size): Update.
3425         (score7_prologue): Update.
3426         (score7_epilogue): Update.
3427         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3428         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3429         * config/arm/arm.c (use_return_insn): Update.
3430         (require_pic_register): Update.
3431         (arm_load_pic_register): Update.
3432         (arm_compute_save_reg0_reg12_mask): Update.
3433         (arm_compute_save_reg_mask): Update.
3434         (thumb1_compute_save_reg_mask): Update.
3435         (output_return_instruction): Update.
3436         (arm_output_function_prologue): Update.
3437         (arm_output_epilogue): Update.
3438         (arm_get_frame_offsets): Update.
3439         (arm_expand_prologue): Update.
3440         (thumb_pushpop): Update.
3441         (thumb_exit): Update.
3442         (thumb1_expand_prologue): Update.
3443         (thumb1_expand_epilogue): Update.
3444         (arm_unwind_emit): Update.
3445         (arm_output_fn_unwind): Update.
3446         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3447         * config/arm/arm.md: Update.
3448         * config/pa/pa.md: Update.
3449         * config/pa/pa.c (legitimize_pic_address): Update.
3450         (compute_frame_size): Update.
3451         (hppa_expand_prologue): Update.
3452         (hppa_expand_epilogue): Update.
3453         (borx_reg_operand): Update.
3454         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3455         (HARD_REGNO_RENAME_OK): Update.
3456         * config/mips/mips.c (mips_global_pointer): Update.
3457         (mips_save_reg_p): Update.
3458         (mips_compute_frame_info): Update.
3459         (mips_frame_pointer_required): Update.
3460         (mips_expand_prologue): Update.
3461         (mips_expand_epilogue): Update.
3462         (mips_can_use_return_insn): Update.
3463         (mips_reorg_process_insns): Update.
3464         * config/v850/v850.c (compute_register_save_size): Update.
3465         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3466         * config/mmix/mmix.c (along): Update.
3467         (mmix_expand_epilogue): Update.
3468         * config/bfin/bfin.c (legitimize_pic_address): Update.
3469         (must_save_p): Update.
3470         (stack_frame_needed_p): Update.
3471         (add_to_reg): Update.
3472         (bfin_expand_prologue): Update.
3473         * stmt.c (expand_asm_operands): Update.
3474         * reload1.c (reload): Update.
3475         (init_elim_table): Update.
3476
3477 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3478         
3479         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3480         
3481 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3482
3483         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3484         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3485         (mov<mode>): Removed.
3486         (*movv4sf_internal): Likewise.
3487         (*movv2df_internal): Likewise.
3488
3489 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3490
3491         * config.gcc (crx-*-elf): Remove deprecation.
3492
3493 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3494
3495         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3496         __gcc_deregister_frame with atexit.
3497         (deregister_frame_dtor): Remove.
3498
3499 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3500             Nathan Sidwell  <nathan@codesourcery.com>
3501
3502         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3503         (misel): Likewise.
3504         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3505         (rs6000_isel): Likewise.
3506         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3507         (rs6000_isel): New variable.
3508         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3509
3510 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3511
3512         PR c++/35758
3513         * c-common.c (handle_vector_size_attribute): Call
3514         lang_hooks.types.reconstruct_complex_type instead of
3515         reconstruct_complex_type.
3516         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3517         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3518         * langhooks.h (struct lang_hooks_for_types): Add
3519         reconstruct_complex_type hook.
3520         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3521         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3522
3523 2008-04-24  Richard Guenther  <rguenther@suse.de>
3524
3525         * c-common.h (check_builtin_function_arguments): Declare.
3526         * c-common.c (validate_nargs): New function.
3527         (check_builtin_function_arguments): Likewise.
3528         * c-typeck.c (build_function_call): Call
3529         check_builtin_function_arguments.
3530         * builtins.c (fold_builtin_classify): Remove error reporting code.
3531         (fold_builtin_unordered_cmp): Likewise.
3532         (fold_builtin_1): Likewise.
3533         (fold_builtin_n): Likewise.
3534
3535 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3536
3537         PR tree-optimization/36008
3538         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3539         the original op1, rather than delta by step.
3540
3541 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3542             Sebastian Pop  <sebastian.pop@amd.com>
3543
3544         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3545         eliminate_local_variables_stmt, eliminate_local_variables,
3546         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3547         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3548         of code delimited by two edges in the CFG.
3549         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3550         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3551         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3552         the case of parallelisation of reductions.
3553         (expr_invariant_in_region_p): New.
3554
3555         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3556         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3557
3558 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3559             Richard Guenther  <rguenther@suse.de>
3560
3561         PR tree-optimization/36034
3562         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3563         incapable of dealing with loads with gaps.
3564
3565 2008-04-24  Rafael Espindola  <espindola@google.com>
3566
3567         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3568         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3569         vrp_evaluate_conditional.
3570         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3571         (vrp_evaluate_conditional): Split the cond argument.
3572         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3573         (simplify_stmt_for_jump_threading): Update call to
3574         vrp_evaluate_conditional.
3575
3576 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3577
3578         PR tree-optimization/35982
3579         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3580         interleaved data-refs are of the same type.
3581
3582 2008-04-24  Danny Smith  <dannysmith@users.net>
3583
3584         * c-format.c (check_format_info_main): Use strncmp rather than a
3585         magic prefix to handle multichar length specs.
3586         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3587         Don't prefix "I64" and "I32" with '\0'.
3588
3589 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3590
3591         PR target/36015
3592         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3593         in registers for -m32 only if stdarg_p (fntype).
3594
3595 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3596
3597         PR rtl-optimization/36006
3598         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3599         temp to op0 in order to avoid invalid rtx sharing.
3600
3601 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3602
3603         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3604         check TREE_INVARIANT.
3605         * tree-gimple.c (is_gimple_address): New.
3606         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3607         * tree-gimple.h (is_gimple_address): New.
3608         * tree.h (decl_address_invariant_p): New.
3609         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3610         (build_string): Likewise.
3611         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3612         (tree_invariant_p_1): Likewise.
3613         (save_expr): Use it.
3614         (tree_invariant_p): New.
3615         (skip_simple_arithmetic): Use it.
3616         (stabilize_reference_1): Use it.
3617         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3618         simplify.
3619         (build1_stat): Drop code to compute TREE_INVARIANT.
3620         (build2_stat): Drop code to compute TREE_INVARIANT.
3621         (build3_stat): Drop code to compute TREE_INVARIANT.
3622         (build4_stat): Drop code to compute TREE_INVARIANT.
3623         (build5_stat): Drop code to compute TREE_INVARIANT.
3624         (build7_stat): Drop code to compute TREE_INVARIANT.
3625         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3626         * tree.h (struct tree_base): Remove invariant_flag.
3627         (TREE_INVARIANT): Remove.
3628         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3629         (fold_builtin_expect): Check TREE_CONSTANT.
3630         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3631         * c-tree.h (c_expr_to_decl): Drop third parameter.
3632         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3633         (build_c_cast): Don't set TREE_INVARIANT.
3634         (pop_init_level): Don't set TREE_INVARIANT.
3635         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3636         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3637         TREE_CONSTANT.
3638         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3639         (gimplify_addr_expr): Adjust comment.
3640         * tree-mudflap.c (mf_build_string):
3641         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3642         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3643         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3644         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3645         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3646         * langhooks.h (struct lang_hooks): Drop third parameter from
3647         expr_to_decl.
3648
3649 2008-04-23  Richard Guenther  <rguenther@suse.de>
3650
3651         PR tree-optimization/27799
3652         PR tree-optimization/32921
3653         PR tree-optimization/32624
3654         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3655         SMTs aliases and the tag itself into the solution.
3656         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3657         merge the points-to solution back into the SMT aliases.
3658         (may_alias_p): Use alias_set_subset_of instead of
3659         aliases_conflict_p.  A pointer which points to
3660         memory with alias set zero may access any variable.
3661
3662 2008-04-23  Richard Guenther  <rguenther@suse.de>
3663
3664         * alias.c (alias_set_subset_of): Correctly handle asking
3665         if zero is a subset of an alias set with zero child.
3666         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3667         (compute_flow_insensitive_aliasing): Correctly walk all
3668         pointers.  Do not unnecessarily union sets.
3669
3670 2008-04-23  Richard Guenther  <rguenther@suse.de>
3671
3672         PR middle-end/36021
3673         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3674
3675 2008-04-22  Tomas Bily  <tbily@suse.cz>
3676
3677         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3678         unreachable case.
3679         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3680         NON_LVALUE_EXPR.
3681         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3682         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3683         * tree-inline.c (estimate_num_insns_1): Likewise.
3684         * varasm.c (const_hash_1, compare_constant, copy_constant)
3685         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3686         * emit-rtl.c (component_ref_for_mem_expr)
3687         (set_mem_attributes_minus_bitpos): Likewise.
3688         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3689         (is_aligning_offset): Likewise.
3690         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3691         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3692         * dojump.c (do_jump): Likewise.
3693         * builtins.c (get_pointer_alignment, get_memory_rtx)
3694         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3695         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3696
3697 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3698
3699         PR rtl-optimization/36017
3700         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3701         expanding the library call.
3702
3703 2008-04-22  Ian Lance Taylor  <iant@google.com>
3704
3705         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3706         than size_in_bytes.
3707
3708 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3709
3710         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3711         of LR/CTR moves for Power6.
3712
3713 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3714
3715         PR middle-end/36003
3716         * passes.c (init_optimization_passes): Remove
3717         pass_fast_rtl_byte_dce.
3718         
3719 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3720
3721         PR target/29096
3722         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3723         builtin functions to generate faster code.
3724         (_mm_cvtpu16_ps): Ditto.
3725         (_mm_cvtpi32x2_ps): Ditto.
3726
3727 2008-04-22  Nick Clifton  <nickc@redhat.com>
3728
3729         * common.opt (ftree-loop-distribution): Add Optimization
3730         attribute.
3731
3732         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3733         (frv_expand_builtin_va_start): Likewise.
3734
3735         * config/arm/arm.c (thumb_find_work_register): Fix location of
3736         argument register count.
3737
3738 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3739
3740         Support scheduling for ColdFire V1 and V3 microarchitecture.
3741         Improve scheduling of multiplication instructions.
3742
3743         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3744         (mac): New instruction attribute.
3745         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3746         (m68k_sched_mac): New variable.
3747         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3748         Handle cfv1 and cfv3.
3749         (max_insn_size): New static variable.
3750         (struct _sched_ib): New type.
3751         (sched_ib): New static variable.
3752         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3753         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3754         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3755         Update.
3756         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3757         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3758         new variables.  Update.
3759         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3760         Add modeling of cfv3 instruction buffer.  Update.
3761         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3762         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3763         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3764         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3765         a particular reservation applies to.
3766         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3767         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3768         to mul_l and mul_w.
3769         (cf_ib_*): Simplify description of instruction buffer.
3770         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3771         (cf_mem): Split into cf_mem1 and cf_mem2.
3772         (cf_v2_move_??): Rename to cfv12_alu_??.
3773         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3774         (cf_v2_mul_??): Remove reservations.
3775         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3776         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3777         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3778         appropriate place.
3779         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3780         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3781         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3782         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3783         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3784         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3785         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3786         expansions of the above reservations for instructions of sizes
3787         1, 2 and 3 words.
3788
3789 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3790
3791         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3792
3793 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3794
3795         * coverage.c: Include tree-pass.h.
3796         (coverage_counter_alloc): Print da_file_name to the dump file.
3797
3798 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3799
3800         * sbitmap.c (sbitmap_range_empty_p): New function.
3801         * sbitmap.h (sbitmap_range_empty_p): New function.
3802         * bitmap.h: Now includes obstack.h.
3803
3804 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3805             Kenneth Zadeck  <zadeck@naturalbridge.com>
3806
3807         * dbgcnt.def (ra_byte_scan): Added.
3808         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3809         when the last hit happens for a counter.  
3810         * timevar.def (TV_DF_BYTE_LR): New variable.
3811         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3812         * passes.c (pass_fast_rtl_byte_dce): New pass.
3813         * fwprop.c (update_df): Added mode to call df_ref_create.
3814         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3815         DF_REF_EXTRACT_OFFSET.
3816         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3817         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3818         (df_mm): New enum.
3819         (df_ref_extract): Added mode field.
3820         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3821         DF_REF_EXTRACT_OFFSET.
3822         (DF_REF_EXTRACT_MODE): New macro.
3823         (df_byte_lr_bb_info): New structure.
3824         (df_print_byte_regset, df_compute_accessed_bytes, 
3825         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3826         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3827         df_byte_lr_simulate_uses,
3828         df_byte_lr_simulate_artificial_refs_at_top,
3829         df_byte_lr_simulate_artificial_refs_at_end,
3830         df_compute_accessed_bytes): New function.
3831         (df_ref_create): Add parameter.
3832         (df_byte_lr_get_bb_info): New inline function.
3833         * df-scan.c (df_ref_record, df_uses_record,
3834         df_ref_create_structure): Added mode parameter.
3835         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3836         df_defs_record, df_uses_record, df_get_conditional_uses,
3837         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3838         df_entry_block_defs_collect, df_exit_block_uses_collect):
3839         Added mode parameter to calls to df_ref_record, df_uses_record,
3840         df_ref_create_structure.
3841         (df_ref_equal_p, df_ref_compare): Added test for modes.
3842         (df_ref_create_structure): Added code to set mode.  Renamed
3843         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3844         DF_REF_EXTRACT_OFFSET.
3845         * df-core.c (df_print_byte_regset): New function.
3846         * df-byte-scan.c: New file.
3847         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3848         calls to BITMAP_FREE.  
3849         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3850         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3851         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3852         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3853         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3854         df_byte_lr_local_compute, df_byte_lr_init,
3855         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3856         df_byte_lr_transfer_function, df_byte_lr_free, 
3857         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3858         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3859         df_byte_lr_simulate_uses,
3860         df_byte_lr_simulate_artificial_refs_at_top,
3861         df_byte_lr_simulate_artificial_refs_at_end): New function.
3862         * dce.c (byte_dce_process_block): New function.
3863         (dce_process_block): au is now passed in rather than computed
3864         locally.  Changed loops that look at artificial defs to not look
3865         for conditional or partial ones, because there never are any.  
3866         (fast_dce): Now is able to drive byte_dce_process_block or 
3867         dce_process_block depending on the kind of dce being done.
3868         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3869         (rest_of_handle_fast_byte_dce): New function.
3870         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3871         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3872
3873 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3874
3875         PR fortran/35019
3876         * gcc.h: Added fortran options that take arguments to
3877         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3878         macros.
3879
3880 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3881
3882         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
3883         scalarization if on the LHS and not a full access.
3884
3885 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3886
3887         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
3888
3889 2008-04-18  Rafael Espindola  <espindola@google.com>
3890
3891         * tree-vrp.c (find_case_label_index): Fix the binary search.
3892         (find_case_label_range): New.
3893         (vrp_visit_switch_stmt): Use find_case_label_range.
3894         (simplify_switch_using_ranges): Use find_case_label_range.
3895
3896 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3897
3898         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
3899         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
3900
3901 2008-04-18  Tom Tromey  <tromey@redhat.com>
3902
3903         PR libcpp/15500:
3904         * doc/cpp.texi (Implementation-defined behavior): Mention
3905         -finput-charset.
3906
3907 2008-04-18  Ian Lance Taylor  <iant@google.com>
3908
3909         * fold-const.c (pointer_may_wrap_p): New static function.
3910         (fold_comparison): Add another test for pointer overflow.  Use
3911         pointer_may_wrap_p to disable some false positives.
3912
3913 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
3914           
3915         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
3916         (fname_as_string): Match updated cpp_interpret_string prototype.
3917         (fix_string_type): Support char16_t* and char32_t*.
3918         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
3919         derivative) nodes.  Register as builtin if C++0x.
3920         (c_parse_error): Support CPP_CHAR{16,32}.
3921         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
3922         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
3923         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
3924         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
3925         CTI_CHAR32_ARRAY_TYPE>: New elements.
3926         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
3927         char32_type_node, signed_char32_type_node, char16_array_type_node,
3928         char32_array_type_node): New defines.
3929         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
3930         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
3931         (lex_string): Support CPP_STRING{16,32}, match updated
3932         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
3933         (lex_charconst): Support CPP_CHAR{16,32}.
3934         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
3935         and CPP_STRING{16,32}.
3936
3937 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
3938
3939         PR bootstrap/35457
3940         * aclocal.m4: Regenerate.
3941         * configure: Regenerate.
3942
3943 2008-04-18  Jan Hubicka  <jh@suse.cz>
3944
3945         * except.c (dw2_size_of_call_site_table,
3946         sjlj_size_of_call_site_table): Use vector API for call_site_record.
3947
3948         * cgraphbuild.c (build_cgraph_edges): Update.
3949         * tree-pass.h: Update comment.
3950         * final.c (leaf_function_p): Update.
3951         (leaf_renumber_regs): Update.
3952         (rest_of_clean_state): Update.
3953         * omp-low.c (expand_omp_parallel): Update.
3954         * ipa-reference.c (analyze_function): Update.
3955         * reorg.c (find_end_label): Update.
3956         (optimize_skip): Update.
3957         (fill_simple_delay_slots): Update.
3958         (fill_simple_delay_slots): Update.
3959         (make_return_insns): Update.
3960         (dbr_schedule): Update.
3961         * gimple-low.c (record_vars_into): Update.
3962         * cfgbuild.c (make_edges): Update.
3963         * function.c (assign_stack_local): Update.
3964         (assign_parm_adjust_stack_rtl): Update.
3965         (locate_and_pad_parm): Update.
3966         (allocate_struct_function): Do not initialize stack_alignment_needed
3967         and preferred_stack_boundary here.
3968         (stack_protect_prologue): Update.
3969         (stack_protect_epilogue): Update.
3970         (expand_function_start): Initialize stack_alignment_needed,
3971         preferred_stack_boundary and max_jumptable_ents.
3972         (expand_function_end): Update.
3973         (free_after_compilation): Do not NULLify epilogue_delay_list.
3974         * function.h (struct rtl_data): Add stack_protect_guard,
3975         stack_alignment_needed,
3976         preferred_stack_boundary, epilogue_delay_list.
3977         (struct function): Remove value_histograms, stack_alignment_needed,
3978         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
3979         last_label_uid,
3980         unexpanded_var_list, stack_protect_guard.
3981         (current_function_epilogue_delay_list): Remove.
3982         * ipa-type-escape.c (analyze_function): Update.
3983         * gimplify.c (pop_gimplify_context): Update comment.
3984         * calls.c (expand_call): Update.
3985         (emit_library_call_value_1): Update.
3986         * except.c (set_nothrow_function_flags): Update.
3987         * cfgexpand.c (get_decl_align_unit): Update.
3988         (create_stack_guard): Update.
3989         (estimated_stack_frame_size): Update.
3990         (expand_used_vars): Update.
3991         (tree_expand_cfg): Free histogram earliers, init expansion variables.
3992         * explow.c (allocate_dynamic_stack_space): Update.
3993         * tree-ssa-live.c (remove_unused_locals): Update.
3994         * varasm.c (mark_constant_pool): Update.
3995         * tree-inline.c (remap_decls): Update.
3996         (initialize_cfun): Update.
3997         (declare_return_variable): Update.
3998         (inline_forbidden_p): Update.
3999         (expand_call_inline): Update.
4000         (declare_inline_vars): Update.
4001         (tree_function_versioning): Update.
4002         * tree-flow.h (value_histograms): New.
4003         (VALUE_HISTOGRAMS): New macro.
4004         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
4005         last_label_uid.
4006         * tree-cfg.c (set_bb_for_stmt): Update.
4007         (replace_by_duplicate_decl): Update.
4008         (move_block_to_fn): Update.
4009         (new_label_mapper): Update.
4010         (dump_function_to_file): Update.
4011         * ipa-struct-reorg.c (build_data_structure): Update.
4012         * cfgrtl.c (print_rtl_with_bb): Update.
4013         * reload1.c (reload): Update.
4014         (reload): Update.
4015         * config/i386/i386.c (setup_incoming_varargs_64,
4016         ix86_compute_frame_layout): Update.
4017         * config/arc/arc.c (arc_output_function_epilogue): Update.
4018
4019 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4020
4021         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4022         for FreeBSD as well.
4023         * gthr-posix95.h: Likewise.
4024
4025 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4026
4027         PR rtl-optimization/35838
4028         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4029         out the byte offset of the first subreg.
4030
4031 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4032
4033         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4034         to split_ti instead of three separate calls with single member arrays.
4035         (subti3 splitter): Ditto.
4036         (adddi3 splitter): Ditto with split_di.
4037         (subdi3 splitter): Ditto.
4038         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4039         two separate calls with single member arrays.  Swap match_dup
4040         operands 1 and 2 to better fit into the array.
4041         (negdi2 splitter): Ditto with split_di.
4042         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4043         two separate calls with single member arrays.  Swap match_dup operands
4044         6 and 7 to better fit into the array.
4045
4046 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4047
4048         * config/i386/i386.c (sse_builtin_type): New.
4049         (bdesc_sse_args): Likewise.
4050         (bdesc_sse_3arg): Removed.
4051         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4052         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4053         IX86_BUILTIN_ROUNDPS.
4054         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4055         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4056         IX86_BUILTIN_ROUNDPS.
4057         (ix86_expand_sse_4_operands_builtin): Removed.
4058         (ix86_expand_sse_operands_builtin): New.
4059         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4060         and CODE_FOR_sse4_1_roundps.
4061         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4062         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4063
4064 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4065
4066         PR target/35907
4067         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4068         regs before frame pop when needed.  If use_backchain_to_restore_sp
4069         then load backchain into a temp reg to restore vr and vrsave.  Add
4070         code to restore vr after frame pop if possible.
4071
4072 2008-04-17  Richard Guenther  <rguenther@suse.de>
4073
4074         * tree-vn.c (expressions_equal_p): Do not check type
4075         equality or compatibility before calling operand_equal_p.
4076         * fold-const.c (operand_equal_p): Check equivalence of
4077         integer constants before bailing out due to signedness or
4078         precision differences.
4079         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4080         spurious differences in type qualification.  Ignore types
4081         for COMPONENT_REFs at all.
4082
4083 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4084
4085         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4086         msw_skip comparison.
4087         
4088 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4089
4090         PR c/35739
4091         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4092         reg type.
4093
4094         PR tree-optimization/35899
4095         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4096         rather than TREE_OPERAND.
4097
4098 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4099
4100         PR target/35944
4101         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4102         temporary registers.  Change operand predicate to general_operand.
4103         (remainderxf3): Ditto.
4104
4105 2008-04-16  Richard Guenther  <rguenther@suse.de>
4106
4107         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4108         * tree-affine.c (aff_combination_expand): Look through some
4109         conversions.
4110
4111 2008-04-15  Doug Kwan  <dougkwan@google.com>
4112
4113         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4114         for hex printing.
4115         * tree-pretty-print.c (dump_generic_node): Ditto.
4116         * final.c (output_addr_const): Ditto.
4117         * dwarf2out.c (output_cfi): Ditto.
4118         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4119         * print-rtl.c (print_rtx): Ditto.
4120         * print-tree.c (print_node_brief, print_node): Ditto.
4121         * c-common.c (match_case_to_enum_1): Ditto.
4122         * sched-vis.c (print_value): Ditto.
4123         * config/i386/i386.c (print_operand): Cast to long unsigned int
4124         for hex printing.
4125
4126 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4127         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4128         MS Windows VirtualProtect function.
4129
4130 2008-04-15  Jan Hubicka  <jh@suse.cz>
4131
4132         * gengtype.c (write_root): Param_is argument is OK.
4133         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4134         * function.h: Include varray.h
4135         (rtl_eh): New stucture based on except.c one.
4136         (call_site_record): New forward declaration and vector type.
4137         * calls.c (emit_call_1): Do not call
4138         note_current_region_may_contain_throw.
4139         * except.c (eh_status): Remove cur_region, try_region since they are
4140         unused.
4141         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4142         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4143         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4144         Remove call_site_data_used, call_site_data_size.
4145         Turn call_site_record into vector in function.h.
4146         (note_current_region_may_contain_throw): Remove.
4147         (get_exception_pointer, get_exception_filter): Do not take struct
4148         function argument; update.
4149         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4150         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4151         build_post_landing_pads, dw2_build_landing_pads,
4152         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4153         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4154         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4155         sjlj_build_landing_pads, finish_eh_generation,
4156         remove_exception_handler_label, remove_eh_handler,
4157         maybe_remove_eh_handler, add_reachable_handler,
4158         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4159         add_action_record, collect_one_action_chain, add_call_site,
4160         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4161         sjlj_output_call_site_table, output_function_exception_table,
4162         * except.h (note_current_region_may_contain_throw): Remove
4163         (get_exception_pointer, get_exception_filter): Do not take struct
4164         function argument.
4165         * Makefile.in (GTFILES): Put varargs before struct function.
4166
4167 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4168
4169         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4170         punt for STRING_CST.
4171         (get_constraint_for): Deal with STRING_CST here instead.
4172
4173 2008-04-15  Richard Guenther  <rguenther@suse.de>
4174
4175         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4176         statements in a basic-block with a backward walk.  Do not
4177         substitute into dead statements but instead remove those.
4178
4179 2008-04-15  Richard Guenther  <rguenther@suse.de>
4180
4181         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4182         to zero, thus disable creation of SFTs.
4183
4184 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4185
4186         * tree-predcom.c (suitable_reference_p): Return false if the
4187         reference can throw.
4188
4189 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4190
4191         PR c/35751
4192         * c-decl.c (finish_decl): If extern or static var has variable
4193         size, set TREE_TYPE (decl) to error_mark_node.
4194
4195 2008-04-15  Rafael Espindola  <espindola@google.com>
4196
4197         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4198         variable arg1.
4199
4200 2008-04-15  Richard Guenther  <rguenther@suse.de>
4201
4202         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4203         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4204         (visit_reference_op_load): Do walk vuse-vdef chains on
4205         vn_reference_lookup.
4206         (visit_reference_op_store): But do not here.
4207         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4208         vn_reference_lookup.
4209         (vn_lookup_with_vuses): But do so here.
4210
4211 2008-04-14  Ian Lance Taylor  <iant@google.com>
4212
4213         * fold-const.c (fold_overflow_warning): Remove assertion.
4214
4215 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4216
4217         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4218         temp1 local variables.
4219
4220 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4221
4222         PR target/35661
4223         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4224         ".text.unlikely" section as executable.
4225
4226 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4227
4228         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4229         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4230         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4231         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4232         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4233         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4234         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4235
4236 2008-04-14  Ian Lance Taylor  <iant@google.com>
4237
4238         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4239         * fold-const.c (fold_comparison): If appropriate, test
4240         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4241         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4242         reassociating a pointer type.
4243         * doc/invoke.texi (Optimize Options): Document that
4244         -fstrict-overflow applies to pointer wraparound.
4245
4246 2008-04-13  Jan Hubicka  <jh@suse.cz>
4247
4248         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4249
4250 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4251
4252         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4253         we are going to "save the world".
4254
4255 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4256
4257         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4258         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4259         operand 0 constraint, not "=".
4260
4261 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4262
4263         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4264
4265 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4266
4267         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4268         of size of positions_needed * CHAR_BIT.
4269
4270 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4271
4272         PR middle-end/35897
4273         * dse.c (store_info): Change positions_needed to unsigned
4274         HOST_WIDE_INT.
4275         (lowpart_bitmask): New.
4276         (record_store): Cast to unsigned HOST_WIDE_INT for
4277         positions_needed.  Assert width <= size of positions_needed *
4278         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4279         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4280         lowpart_bitmask to set mask.
4281
4282 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4283
4284         * config/bfin/constraints.md: New file.
4285         * config/bfin/bfin.md: Include it.
4286         (adddi3): Use satisfies_constraint functions instead of the old macros.
4287         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4288         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4289         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4290         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4291         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4292         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4293         EXTRA_CONSTRAINT): Delete.
4294         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4295         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4296         of the old macros.
4297         * config/bfin/bfin.c: Include "tm-constrs.h".
4298         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4299         Use satisfies_constraint functions instead of the old macros.
4300         * doc/md.texi (Blackfin Constraints): Update file name reference.
4301
4302 2008-04-11  Richard Guenther  <rguenther@suse.de>
4303
4304         PR tree-optimization/35869
4305         * tree-vrp.c (execute_vrp): Move switch statement update after
4306         jump threading.  Schedule another cfg cleanup run.
4307
4308 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4309
4310         PR c/35744
4311         * attribs.c (decl_attributes): Return early on errorneous node.
4312
4313 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4314
4315         * tree.h (struct tree_base): Added a new flag default_def_flag.
4316         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4317
4318 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4319
4320         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4321
4322 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4323
4324         PR target/35768
4325         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4326         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4327         (icacheflush): Likewise.
4328         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4329         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4330
4331 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4332
4333         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4334
4335 2008-04-10  Rafael Espindola  <espindola@google.com>
4336
4337         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4338         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4339         (extract_range_from_expr): The same.
4340
4341 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4342
4343         * config/mips/mips.md (GPR2): New mode iterator.
4344         (seq): Add comment.
4345         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4346         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4347         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4348         Rewrite these to take two modes, the mode of comparison and the
4349         mode of the destination.
4350         * config/mips/mips.c (mips_expand_scc): Instead of having
4351         paradoxical subreg as destination, expand "narrowing" scc if mode
4352         of comparison is SI and target is requested in DI mode.
4353         (mips_emit_int_order_test): Update comment.  Make mode of
4354         comparison match CMP0 rather than TARGET.  When creating inverse
4355         target use mode of TARGET.
4356
4357 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4358
4359         * gcov-dump.c (tag_summary): Only print summaries for the first
4360         GCOV_COUNTERS_SUMMABLE counters.
4361
4362 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4363
4364         * config/i386/i386.md (absneg): New code iterator.
4365         (absnegprefix): New code attribute.
4366         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4367         patterns using absneg code iterator.
4368         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4369         using absneg code iterator.
4370         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4371         *neg<mode>2 patterns using absneg code iterator.
4372         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4373         *negextendsfdf2 patterns using absneg code iterator.
4374         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4375         *negextendsfxf2 patterns using absneg code iterator.
4376         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4377         *negextendsfdf2 patterns using absneg code iterator.
4378         * config/i386/sse.md (<code><mode>2): Macroize expander from
4379         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4380
4381 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4382
4383         * config/s390/s390.h: Remove the remains of the recent search
4384         & replace action of current_function_outgoing_args_size.
4385
4386 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4387
4388         PR tree-optimization/35821
4389         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4390         NEW_STMT_LIST is not NULL.
4391
4392 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4393
4394         PR libstdc++/35597
4395         * toplev.c (process_options): Remove -ffunction-sections debugging
4396         warning.
4397
4398 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4399
4400         PR middle-end/PR28690
4401         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4402         than gen_rtx_fmt_ee to perform more canonicalizations.
4403
4404 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4405
4406         PR driver/35665
4407         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4408
4409 2008-04-09  Richard Guenther  <rguenther@suse.de>
4410
4411         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4412         (dump_function_to_file): Dump function arguments with types.
4413
4414 2008-04-08  Richard Guenther  <rguenther@suse.de>
4415
4416         * fold-const.c (fold_widened_comparison): Do not allow
4417         sign-changes that change the result.
4418
4419 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4420
4421         PR target/35839
4422         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4423         kinds of indirect references.
4424
4425 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4426
4427         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4428         GNU Fortran language string.
4429
4430 2008-04-08  Rafael Espindola  <espindola@google.com>
4431
4432         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4433         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4434         * tree.h (tree_call_nonnegative_warnv_p): New.
4435
4436 2008-04-08  Jan Hubicka  <jh@suse.cz>
4437
4438         * function.c (free_after_compilation): Clear out regno_reg_rtx
4439         pointer.
4440
4441 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4442
4443         Revert
4444         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4445
4446         PR middle-end/PR28690
4447         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4448         same precedence as REG_POINTER and MEM_POINTER operands.
4449
4450 2008-04-08  Richard Guenther  <rguenther@suse.de>
4451
4452         PR middle-end/35834
4453         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4454         for adding index to base.
4455
4456 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4457
4458         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4459         (MINGW_ENABLE_EXECUTE_STACK): New.
4460         (IN_LIBGCC2): For libgcc include windows.h file for
4461         function declarations.
4462
4463 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4464
4465         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4466         and tem2 if tem1 is not a REG or MULT.
4467
4468 2008-04-08  Jan Hubicka  <jh@suse.cz>
4469
4470         * function.h (incomming_args): Break out of struct function.
4471         (function_subsections): Break out of struct function.
4472         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4473         return_rtx and hard_reg_initial_vals from struct function.
4474         Kill inl_max_label_num.
4475         (current_function_pops_args, current_function_args_info,
4476         current_function_args_size, current_function_args_size,
4477         current_function_pretend_args_size,
4478         current_function_outgoing_args_size,
4479         current_function_internal_arg_pointer, current_function_return_rtx):
4480         Kill compatibility accestor macros.
4481         * builtins.c (expand_builtin_apply_args_1): Update.
4482         (expand_builtin_next_arg): Update.
4483         * df-scan.c (df_get_call_refs): Update.
4484         * dbxout.c (dbxout_function_end): Update.
4485         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4486         (output_line_info): Update.
4487         (secname_for_decl): Update.
4488         (dwarf2out_var_location): Update.
4489         * function.c (free_after_compilation): Update.
4490         (assign_parm_find_stack_rtl): Update.
4491         (assign_parms): Update.
4492         (expand_dummy_function_end): Update.
4493         (expand_function_end): Update.
4494         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4495         (expand_call): Update.
4496         (emit_library_call_value_1): Update.
4497         (store_one_arg): Update.
4498         * varasm.c (initialize_cold_section_name): Update.
4499         (unlikely_text_section): Update.
4500         (unlikely_text_section_p): Update.
4501         (assemble_start_function): Update.
4502         (assemble_end_function): Update.
4503         (default_section_type_flags): Update.
4504         (switch_to_section): Update.
4505         * integrate.c (set_decl_abstract_flags): Update.
4506         (get_hard_reg_initial_val): Update.
4507         (has_hard_reg_initial_val): Update.
4508         (allocate_initial_values): Update.
4509         * resource.c (init_resource_info): Update.
4510         * config/alpha/alpha.c (NUM_ARGS): Update.
4511         (direct_return): Update.
4512         (alpha_va_start): Update.
4513         (alpha_sa_size): Update.
4514         (alpha_initial_elimination_offset): Update.
4515         (alpha_expand_prologue): Update.
4516         (alpha_start_function): Update.
4517         (alpha_expand_epilogue): Update.
4518         (unicosmk_initial_elimination_offset):
4519         * config/alpha/alpha.md (call expander): Update.
4520         * config/s390/s390.c (s390_register_info): Update.
4521         (s390_register_info): Update.
4522         (s390_frame_info): Update.
4523         (s390_initial_elimination_offset): Update.
4524         (s390_build_builtin_va_list): Update.
4525         (s390_va_start): Update.
4526         * config/spu/spu.c (direct_return): Update.
4527         (spu_expand_prologue): Update.
4528         (spu_initial_elimination_offset): Update.
4529         (spu_build_builtin_va_list): Update.
4530         (spu_va_start): Update.
4531         * config/sparc/sparc.c (sparc_init_modes): Update.
4532         (sparc_compute_frame_size): Update.
4533         (function_value): Update.
4534         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4535         * config/i386/i386.md (return expander): Update.
4536         * config/i386/i386.c (ix86_va_start): Update.
4537         (ix86_can_use_return_insn_p): Update.
4538         (ix86_compute_frame_layout): Update.
4539         (ix86_expand_epilogue): Update.
4540         * config/sh/sh.c (output_stack_adjust): Update.
4541         (calc_live_regs): Update.
4542         (sh_expand_prologue): Update.
4543         (sh_builtin_saveregs): Update.
4544         (sh_va_start): Update.
4545         (initial_elimination_offset): Update.
4546         (sh_allocate_initial_value): Update.
4547         (sh_function_ok_for_sibcall): Update.
4548         (sh_get_pr_initial_val): Update.
4549         * config/sh/sh.md (return expander): Update.
4550         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4551         * config/crx/crx.c (crx_compute_frame): UPdate.
4552         (crx_initial_elimination_offset): UPdate.
4553         * config/xtensa/xtensa.c (compute_frame_size): Update
4554         (xtensa_builtin_saveregs): Update.
4555         (xtensa_va_start): Update.
4556         (order_regs_for_local_alloc): Update.
4557         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4558         (xstormy16_expand_builtin_va_start): Update.
4559         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4560         * config/m68hc11/m68hc11.md (return expanders): Update.
4561         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4562         (expand_epilogue): Update.
4563         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4564         (cris_simple_epilogue): Update.
4565         (cris_expand_prologue): Update.
4566         (cris_expand_epilogue): Update.
4567         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4568         (compute_frame_size): Update.
4569         * config/mt/mt.c (mt_compute_frame_size): Update.
4570         * config/mn10300/mn10300.c (expand_prologue): Update.
4571         (expand_epilogue): Update.
4572         (initial_offset): Update.
4573         (mn10300_builtin_saveregs):
4574         * config/mn10300/mn10300.md (return expander): Update.
4575         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4576         (ia64_initial_elimination_offset): Update.
4577         (ia64_initial_elimination_offset): Update.
4578         (ia64_expand_prologue): Update.
4579         * config/m68k/m68k.md (return expander): Update.
4580         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4581         (rs6000_stack_info): Update.
4582         * config/mcore/mcore.c (layout_mcore_frame): Update.
4583         (mcore_expand_prolog): Update.
4584         * config/arc/arc.c (arc_compute_frame_size): Update.
4585         * config/score/score3.c (score3_compute_frame_size): Update.
4586         * config/score/score7.c (score7_compute_frame_size): Update.
4587         * config/arm/arm.c (use_return_insn): Update.
4588         (thumb_find_work_register): Update.
4589         (arm_compute_save_reg_mask): Update.
4590         (arm_output_function_prologue): Update.
4591         (arm_output_epilogue): Update.
4592         (arm_size_return_regs): Update.
4593         (arm_get_frame_offsets): Update.
4594         (arm_expand_prologue): Update.
4595         (thumb_exit): Update.
4596         (thumb_unexpanded_epilogue): Update.
4597         (thumb1_output_function_prologue): Update.
4598         * config/pa/pa.md (return expander): Update.
4599         * config/pa/pa.c (compute_frame_size): Update.
4600         (hppa_builtin_saveregs): Update.
4601         * config/mips/mips.c (mips_va_start): Update.
4602         (mips16_build_function_stub): Update.
4603         (mips_compute_frame_info): Update.
4604         (mips_restore_gp): Update.
4605         (mips_output_function_prologue): Update.
4606         (mips_expand_prologue): Update.
4607         * config/v850/v850.c (compute_frame_size): Update.
4608         (expand_prologue): * config/mmix/mmix.c (along): update.
4609         (mmix_initial_elimination_offset): update.
4610         (mmix_reorg): update.
4611         (mmix_use_simple_return): update.
4612         (mmix_expand_prologue): update.
4613         (mmix_expand_epilogue): Update.
4614         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4615         (emit_link_insn): Update.
4616
4617 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4618
4619         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4620         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4621         instructions.
4622         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4623         atmega103 device.
4624
4625 2008-04-07  Jan Hubicka  <jh@suse.cz>
4626
4627         * function.h (rtl): Rename to x_rtl.
4628         (crtl): New define.
4629         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4630         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4631         used_temp_slots avail_temp_slots, temp_slot_level,
4632         nonlocal_goto_handler_labels): Update accesstors.
4633         (rtl): New global variable.
4634         (struct function): Move some fileds to rtl_data.
4635         (get_arg_pointer_save_area): Update prototype.
4636         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4637         get_arg_pointer_save_area.
4638         * expr.c (init_expr): Update
4639         * function.c (get_frame_size): Update
4640         (assign_stack_local): Update
4641         (expand_function_end): Update.
4642         (get_art_pointer_save_area): Update
4643         * function.h 
4644         * emit-rtl.c (rtl): Declare.
4645         (regno_reg_rtx): Declare.
4646         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4647         Update.
4648         (gen_reg_rtx): Update.
4649         * varasm.c (n_deferred_constatns): Update accestor.
4650         (init_varasm_status): Do not allocate varasm_status.
4651         (force_const_mem, get_pool_size, output_constant_pool): Update.
4652         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4653         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4654         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4655         * sparc/sparc.h (INIT_EXPANDERS): Update.
4656         * ia64/ia64.h (INIT_EXPANDERS): Update.
4657
4658 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4659
4660         * reload.c (push_secondary_reload): Add missing break to for loop.
4661
4662 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4663
4664         PR middle-end/PR28690
4665         * rtlanal.c: Update copyright years.
4666         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4667         as REG_POINTER and MEM_POINTER operands.
4668         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4669         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4670         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4671         * gcse.c: Update copyright years.
4672         (pre_delete): Call gen_reg_rtx_and_attrs.
4673         (hoist_code): Likewise.
4674         (build_store_vectors): Likewise.
4675         (delete_store): Likewise.
4676         * loop-invariant.c (move_invariant_reg): Likewise.
4677         Update copyright years.
4678
4679 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4680
4681         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4682         control string instead of quoted.
4683
4684 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4685
4686         * doc/rtl.texi: Rewrite of subreg section.
4687
4688 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4689
4690         PR/35842
4691         * config/i386/i386.c (legitimize_pic_address): Add treating
4692         of dllimport SYM_REF's.
4693         (legitimize_dllimport_symbol): Add prototype.
4694
4695 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4696
4697         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4698         reference in constructor with non self-referential type.
4699
4700 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4701
4702         Removal of Return with Depressed Stack Pointer support
4703         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4704         (ECF_SP_DEPRESSED): Likewise.
4705         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4706         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4707         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4708         (expand_call): Do not test ECF_SP_DEPRESSED.
4709         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4710         * function.c (keep_stack_depressed): Delete.
4711         (handle_epilogue_set): Likewise.
4712         (update_epilogue_consts): Likewise.
4713         (emit_equiv_load): Likewise.
4714         (thread_prologue_and_epilogue_insns): Remove support for Return with
4715         Depressed Stack Pointer.
4716         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4717
4718 2008-04-06  Richard Guenther  <rguenther@suse.de>
4719
4720         PR tree-optimization/35400
4721         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4722         information from SSA_NAMEs.
4723
4724 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4725
4726         * config/avr/avr.h (avr_mega_p): Remove declaration.
4727         (AVR_MEGA): Remove macro.
4728         * config/avr/avr.c (avr_mega_p): Remove variable.
4729         (avr_override_options): Remove inicializion of avr_mega_p.
4730         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4731         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4732         (avr_jump_mode): (Ditto.).
4733         (avr_output_progmem_section_asm_op): (Ditto.).
4734         (avr_asm_init_sections): (Ditto.).
4735         (avr_asm_init_sections): (Ditto.).
4736         (avr_rtx_costs): (Ditto.).
4737         * config/avr/avr.md: (Ditto.).
4738         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4739         '__AVR_MEGA__'.
4740
4741 2008-04-06  Richard Guenther  <rguenther@suse.de>
4742
4743         PR tree-optimization/35842
4744         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4745         is_gimple_invariant_address.
4746
4747 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4748
4749         * gcc.c (default_compilers): Sync Fortran extensions list with
4750         that in fortran/lang-specs.h.
4751         * doc/invoke.texi: Likewise.
4752         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4753         * dwarf2out.c (gen_compile_unit_die): Likewise.
4754
4755 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4756
4757         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4758
4759 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4760
4761         PR target/12329
4762         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4763         attribute is used for nested functions.
4764
4765 2008-04-05  Jan Hubicka  <jh@suse.cz>
4766
4767         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4768
4769         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4770         letter argument.
4771         (dump_files): Update.
4772         (enable_rtl_dump_file): Do not accept letter argument.
4773         * tree-pass.h (dump_file_info): Remove letter argument.
4774         * toplev.c (decode_d_option): Update -da handling.
4775         * toplev.h (enable_rtl_dump_file): Update prototype.
4776         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4777         it out based on pass type.
4778         (register_dump_files_1): Likewise.
4779         (init_optimization_passes): Update register_one_dump_file calls.
4780         (execute_one_pass): Sanity check that IPA passes are called at IPA
4781         level and RTL passes at RTL level.
4782         (execute_pass_list): IPA pass can not be after or subpass of
4783         GIMPLE/RTL pass.
4784         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4785         disallov RTL subpasses of IPA subpasses.
4786
4787 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4788
4789         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4790         builtins that return exactly once and do not throw. Cache call to
4791         call_expr_flags.
4792
4793 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4794
4795         PR rtl-optimization/34916
4796         PR middle-end/35519
4797         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4798         between instruction pairs.
4799
4800 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4801
4802         * doc/invoke.texi: Document -mbitops for SH.
4803         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4804         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4805         * config/sh/sh.c (print_operand): Add %t operand code.
4806         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4807         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4808         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4809         (extendqihi2): Likewise.
4810         (movqi_i): Likewise.
4811         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4812         (extv): Use bld instruction for SH2A if possible.
4813         (extzv): Likewise.
4814         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4815         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4816         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4817         (bset.b, bclr.b): Define peepholes.
4818         * config/sh/sh.opt (mbitops): New option.
4819
4820 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4821
4822         PR target/35620
4823         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4824         and view convert expression.
4825
4826 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4827
4828         PR target/35364
4829         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4830
4831 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4832
4833         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4834
4835         * config/i386/cpuid.h (bit_AES): New.
4836         (bit_PCLMUL): Likewise.
4837
4838         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4839         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4840         SSE2 if AES or PCLMUL is enabled.
4841         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4842         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4843         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4844         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4845         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4846         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4847         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4848         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4849         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4850         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4851         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4852         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4853         __builtin_ia32_aeskeygenassist128 and
4854         __builtin_ia32_pclmulqdq128.
4855         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4856         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4857         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4858
4859         * config/i386/i386.h (TARGET_AES): New.
4860         (TARGET_PCLMUL): Likewise.
4861         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4862
4863         * config/i386/i386.md (UNSPEC_AESENC): New.
4864         (UNSPEC_AESENCLAST): Likewise.
4865         (UNSPEC_AESDEC): Likewise.
4866         (UNSPEC_AESDECLAST): Likewise.
4867         (UNSPEC_AESIMC): Likewise.
4868         (UNSPEC_AESKEYGENASSIST): Likewise.
4869         (UNSPEC_PCLMUL): Likewise.
4870
4871         * config/i386/i386.opt (maes): New.
4872         (mpclmul): Likewise.
4873
4874         * config/i386/sse.md (aesenc): New pattern.
4875         (aesenclast): Likewise.
4876         (aesdec): Likewise.
4877         (aesdeclast): Likewise.
4878         (aesimc): Likewise.
4879         (aeskeygenassist): Likewise.
4880         (pclmulqdq): Likewise.
4881
4882         * config/i386/wmmintrin.h: New.
4883
4884         * doc/extend.texi: Document AES and PCLMUL built-in function.
4885
4886         * doc/invoke.texi: Document -maes and -mpclmul.
4887
4888 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
4889
4890         * function.c (free_after_parsing): Replace with
4891         cxx_push_function_context from C++ front-end.
4892         (allocate_struct_function): Don't call langhook.
4893         * langhooks.h (struct lang_hooks_for_functions): Delete.
4894         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
4895         member "function".
4896         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
4897         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
4898         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4899         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
4900         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
4901         remove LANG_HOOKS_FUNCTION_INITIALIZER.
4902         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
4903
4904         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
4905         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
4906         
4907 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4908
4909         PR c/35440
4910         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
4911         for all types.
4912
4913 2008-04-04  Richard Guenther  <rguenther@suse.de>
4914
4915         PR middle-end/35823
4916         * fold-const.c (optimize_minmax_comparison): Use the correct
4917         type for the constant in the simplified comparison.
4918
4919 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
4920
4921         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
4922         Pass L2 size as "--param l2-cache-size" to the compiler.
4923         (decode_l2_cache): New function to decode L2 cache parameters using
4924         0x8000006 extended cpuid function.
4925         (detect_caches_amd): Determine parameters of L2 cache using
4926         decode_l2_caches function.
4927         (decode_caches_intel): Decode L2 cache parameters.
4928         (detect_caches_intel): Determine L2 cache parameters using
4929         decode_caches_intel and decode_l2_caches functions.
4930
4931 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
4932
4933         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
4934         secondary input reload for subword loads from the constant pool.
4935
4936 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
4937
4938         PR target/35713
4939         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
4940           constants of the appropriate size for runtime calculations.
4941
4942         PR c/35712
4943         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
4944           decimal-float literal constant zero.
4945
4946 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
4947
4948         PR c/35738
4949         * c-parser.c (c_parser_omp_atomic): Call
4950         default_function_array_conversion on the RHS.
4951
4952         PR middle-end/35818
4953         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
4954         call is_variable_sized if decl has incomplete type.
4955
4956 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
4957
4958         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
4959
4960 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
4961
4962         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
4963         iterators.
4964         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
4965         (sgt<u>): Merge sgt and sgtu into new expander.
4966         (sgt, sgtu): Remove expanders.
4967         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
4968         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
4969         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
4970         *sgtu_<mode>_mips16 into new pattern.
4971         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
4972         (sge<u>): Merge sge and sgeu into new expander.
4973         (sge, sgeu): Remove expanders.
4974         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
4975         new pattern.
4976         (*sge_<mode>, second *sge_<mode>): Remove patterns.
4977         (slt<u>): Merge slt and sltu into new expander.
4978         (slt, sltu): Remove expanders.
4979         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
4980         (*slt_<mode>, *sltu_<mode>): Remove patterns.
4981         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
4982         *sltu_<mode>_mips16 into new pattern.
4983         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
4984         (sle<u>): Merge sle and sleu into new expander.
4985         (sle, sleu): Remove expanders.
4986         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
4987         (*sle_<mode>, *sleu_<mode>): Remove patterns.
4988         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
4989         *sleu_<mode>_mips16 into new pattern.
4990         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
4991
4992 2008-04-03  Jan Hubicka  <jh@suse.cz>
4993
4994         PR tree-optimization/35795
4995         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
4996         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
4997         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
4998         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
4999         * score/score3.c (score3_output_mi_thunk): Likewise.
5000         * score/score7.c (score7_output_mi_thunk): Likewise.
5001         * mips/mips.c (mips_output_mi_thunk): Likewise.
5002
5003 2008-04-03  Richard Guenther  <rguenther@suse.de>
5004
5005         * tree-vrp.c (extract_range_from_unary_expr): Handle all
5006         conversions.  Simplify code.
5007
5008 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5009
5010         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
5011
5012 2008-04-03  Tom Tromey  <tromey@redhat.com>
5013             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5014
5015         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5016         * config/bfin/t-bfin-linux (generated_files): Add
5017         linux-sysroot-suffix.h.
5018         * doc/install.texi (Prerequisites): Require make 3.80.
5019         * doc/sourcebuild.texi (Front End Directory): Document new
5020         variable.
5021         * Makefile.in (generated_files): New variable.
5022         (ALL_HOST_OBJS): New variable.
5023         ($(ALL_HOST_OBJS)): New target.
5024
5025 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5026
5027         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5028         (remap_block): Call id->transform_lang_insert_block instead
5029         of langhook.
5030         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5031         Set id.transform_lang_insert_block to NULL.
5032         (clone_body): Move to cp/optimize.c
5033         * tree-inline.h (struct copy_body_data): Change
5034         transform_lang_insert_block to function pointer.
5035         (copy_generic_body, copy_decl_no_change): Export.
5036         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5037         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5038         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5039
5040         * c-tree.h (insert_block): Kill.
5041         * c-decl.c (insert_block): Kill.
5042
5043 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5044
5045         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5046         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5047         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5048         argument.
5049         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5050         argument, call {push,pop}_function_context from here.
5051         * c-parser.c: Use c_{push,pop}_function_context.
5052
5053         * function.c (push_function_context_to): Move meat ...
5054         (push_function_context): ... here.  Simplify.
5055         * function.c (pop_function_context_from): Move meat ...
5056         (pop_function_context): ... here.  Simplify.
5057         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5058         leave_nested).
5059         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5060         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5061         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5062         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5063
5064 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5065
5066         * expmed.c (extract_force_align_mem_bit_field): Remove.
5067
5068 2008-04-03  Richard Guenther  <rguenther@suse.de>
5069
5070         PR middle-end/35800
5071         * expr.h (try_casesi): Adjust prototype.
5072         * expr.c (try_casesi): Take fallback label as extra parameter.
5073         Use that for gen_casesi if default_label is NULL.
5074         * stmt.c (expand_case): Pass fallback label to try_casesi,
5075         make sure to fill gaps with a fallback label if default_label
5076         is not present.
5077
5078 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5079
5080         PR target/35801
5081         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5082
5083 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5084
5085         * expmed.c (extract_split_bit_field): Remove if (0) code.
5086         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5087         (do_ds_constraint): Likewise.
5088
5089 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5090
5091         * doc/cppopts.texi (-dU): Document.
5092         * c-common.h (flag_dump_macros): Update comment.
5093         * c-opts.c (handle_OPT_d): Handle -dU.
5094         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5095         dump_queued_macros, cb_used_define, cb_used_undef): New.
5096         (init_pp_output): Handle -dU.
5097         (cb_line_change): Call dump_queued_macros.
5098         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5099
5100 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5101
5102         * config/avr/predicates.md (io_address_operand): New predicate. 
5103         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5104         * config/avr/avr.c (avr_io_address_p): Remove function.
5105         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5106         'avr_io_address_p' function.
5107         (out_movhi_r_mr): (Ditto.).
5108         (out_movqi_mr_r): (Ditto.).
5109         (out_movhi_mr_r): (Ditto.).
5110         (avr_address_cost): (Ditto.).
5111
5112 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5113
5114         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5115         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5116         in 32bit mode when XMM registers are available to avoid store
5117         forwarding stalls.
5118         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5119         corresponding post-reload splitters.
5120
5121 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5122
5123         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5124         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5125         __builtin_ia32_roundss.
5126         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5127         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5128         __builtin_ia32_roundss.
5129         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5130         IX86_BUILTIN_SHUFPD here.
5131
5132 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5133
5134         * config/i386/i386.md (plogic): New.
5135         (plogicprefix): Likewise.
5136
5137         * config/i386/mmx.md (mmx_<code><mode>3): New.
5138         (mmx_and<mode>3): Removed.
5139         (mmx_ior<mode>3): Likewise.
5140         (mmx_xor<mode>3): Likewise.
5141
5142         * config/i386/sse.md (<code><mode>3): New.
5143         (*<code><mode>3): Likewise.
5144         (*<code><mode>3): Likewise.
5145         (<code><mode>3): Likewise.
5146         (*sse_<code><mode>3): Likewise.
5147         (*sse2_<code><mode>3): Likewise.
5148         (<code>tf3): Likewise.
5149         (*<code>tf3): Likewise.
5150         (and<mode>3): Likewise.
5151         (*and<mode>3): Likewise.
5152         (ior<mode>3): Removed.
5153         (*ior<mode>3): Likewise.
5154         (xor<mode>3): Likewise.
5155         (*xor<mode>3): Likewise.
5156         (*and<mode>3): Likewise.
5157         (*ior<mode>3): Likewise.
5158         (*xor<mode>3): Likewise.
5159         (and<mode>3): Likewise.
5160         (*sse_and<mode>3): Likewise.
5161         (*sse2_and<mode>3): Likewise.
5162         (andtf3): Likewise.
5163         (*andtf3): Likewise.
5164         (ior<mode>3): Likewise.
5165         (*sse_ior<mode>3): Likewise.
5166         (*sse2_ior<mode>3): Likewise.
5167         (iortf3): Likewise.
5168         (*iortf3): Likewise.
5169         (xor<mode>3): Likewise.
5170         (*sse_xor<mode>3): Likewise.
5171         (*sse2_xor<mode>3): Likewise.
5172         (xortf3): Likewise.
5173         (*xortf3): Likewise.
5174
5175 2008-04-02  Richard Guenther  <rguenther@suse.de>
5176
5177         PR tree-optimization/14495
5178         PR tree-optimization/34793
5179         * tree-vrp.c (struct switch_update): New structure.
5180         (to_remove_edges, to_update_switch_stmts): New VECs.
5181         (simplify_switch_using_ranges): New function.  Remove not taken
5182         case labels and edges.
5183         (simplify_stmt_using_ranges): Call it.
5184         (identify_jump_threads): Mark edges we have queued for removal
5185         so we don't thread them.
5186         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5187         case label vector.
5188         * tree-cfg.c (group_case_labels): Deal with missing default label.
5189         (tree_verify_flow_info): Allow missing default label.
5190         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5191         (emit_case_nodes): Likewise.
5192         (expand_case): Do not rely on the default label to be present.
5193         * expr.c (try_casesi): Deal with NULL default_label.
5194         (do_tablejump): Likewise.
5195
5196 2008-04-02  Richard Guenther  <rguenther@suse.de>
5197
5198         PR tree-optimization/14495
5199         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5200         SWITCH_EXPR here ...
5201         (vrp_visit_switch_stmt): ... but here (new function).
5202         (find_case_label_index): New helper function.
5203         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5204
5205 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5206
5207         * fwprop.c: Fix ISO-C99ism.
5208
5209 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5210
5211         PR bootstrap/35752
5212         * Makefile.in (objdir): Set it here.
5213         * configure.ac: Not here.  Find dynamic linker characteristics.
5214         * exec-tool.in: Use them.
5215         * aclocal.m4: Regenerate.
5216         * configure: Regenerate.
5217
5218 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5219
5220         * expr.c (expand_var): Delete it.
5221         * expr.h (expand_var): Delete prototype.
5222         * function.c (expand_function_start): Use expand_decl instead.
5223         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5224         langhook.
5225
5226 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5227
5228         PR rtl-optimization/35542
5229         * fwprop.c (forward_propagate_and_simplify): Replace
5230         loc_reg_mentioned_in_p with reg_mentioned_p.
5231
5232 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5233
5234         PR rtl-optimization/35281
5235         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5236         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5237         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5238         (varying_mem_p): Move above propagate_rtx.
5239         (all_uses_available_at): Do not check MEMs.
5240
5241 2008-04-02  Rafael Espindola  <espindola@google.com>
5242
5243         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5244         (register_edge_assert_for_2): Split the cond argument.
5245         (register_edge_assert_for_1): Adjust for the change in
5246         register_edge_assert_for_2.
5247         (register_edge_assert_for): Split the cond argument.
5248         (find_switch_asserts): Adjust for the change in
5249         register_edge_assert_for.
5250
5251 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5252
5253         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5254         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5255         offsets for 64-bit mingw.
5256         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5257         abi for x86_64-pc-mingw.
5258
5259 2008-04-02  Richard Guenther  <rguenther@suse.de>
5260
5261         * tree-vrp.c (extract_range_from_assert): Make sure to not
5262         produce range min/max with TREE_OVERFOW set.
5263         If merging a anti-range and a range keep the anti-range if
5264         the range covers all values of the type.
5265         (register_edge_assert_for_2): Only allow sign-changing
5266         conversions in detecting canonical range checks.  Also
5267         register an assert for the unsigned name if useful.
5268
5269         PR tree-optimization/35787
5270         * tree-vrp.c (vrp_val_max): New function.
5271         (vrp_val_min): Likewise.
5272         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5273         (vrp_val_is_min): Likewise.
5274         (supports_overflow_infinity): Use vrp_val_{min,max}.
5275         (negative_overflow_infinity): Likewise.
5276         (positive_overflow_infinity): Likewise.
5277         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5278         (is_positive_overflow_infinity): Likewise.
5279         (is_overflow_infinity): Likewise.
5280         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5281         vrp_val_is_{min,max}.
5282         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5283         to ranges if possible.  Avoid empty ranges.
5284
5285 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5286
5287         PR middle-end/35705
5288         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5289         the expression is a function address.
5290
5291 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5292
5293         PR fortran/35154, fortran/23057
5294         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5295         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5296         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5297         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5298         in common.
5299         (dbxout_syms): Check for COMMON-based symbol and wrap in
5300         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5301         in bracket for efficiency.
5302
5303         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5304         using DW_TAG_common_block + member offset.
5305         (add_pubname_string): New function.
5306         (dw_expand_expr): New function to find block name and offset for
5307         COMMON var.
5308         (common_check): New function to check whether symbol in Fortran COMMON.
5309         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5310
5311 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5312
5313         PR c/35436
5314         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5315
5316 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5317
5318         * config/v850/v850.md (casesi): Remove if (0) code.
5319         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5320         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5321
5322 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5323
5324         * config/i386/i386.md (rex64suffix): New mode attribute.
5325         (floathi<mode>2): Disable expander for SSE math.
5326         (*floathi<mode>2_1): New insn insn_and_split pattern.
5327         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5328         corresponding post-reload splitters.
5329         (*floathi<mode>2_i387): New macroized insn pattern.
5330         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5331         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5332         insn_and_split pattern.
5333         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5334         New macroized instruction patterns and corresponding post-reload
5335         splitters.
5336         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5337         and corresponding post-reload splitters.
5338         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5339         New macroized instruction patterns.
5340         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5341         macroized instruction patterns and corresponding post-reload splitters.
5342         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5343         corresponding post-reload splitters.
5344         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5345         New macroized instruction patterns.
5346         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5347         corresponding post-reload splitters.
5348         (*floatsi<mode>2_i387): New macroized instruction patterns.
5349
5350 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5351
5352         * config/i386/i386.md (smaxmin): New.
5353         (umaxmin): Likewise.
5354         (maxminiprefix): Likewise.
5355         (maxminfprefix): Likewise.
5356         (<code><mode>3): Likewise.
5357         (smin<mode>3): Removed.
5358         (smax<mode>3): Likewise.
5359
5360         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5361         (mmx_<code>v4hi3): Likewise.
5362         (mmx_<code>v8qi3): Likewise.
5363         (mmx_smaxv2sf3): Removed.
5364         (mmx_sminv2sf3): Likewise.
5365         (mmx_umaxv8qi3): Likewise.
5366         (mmx_smaxv4hi3): Likewise.
5367         (mmx_uminv8qi3): Likewise.
5368         (mmx_sminv4hi3): Likewise.
5369
5370         * config/i386/sse.md (<addsub><mode>3): New.
5371         (*<addsub><mode>3): Likewise.
5372         (<sse>_vm<addsub><mode>3): Likewise.
5373         (<maxmin><mode>3): Likewise.
5374         (*<maxmin><mode>3_finite): Likewise.
5375         (*<maxmin><mode>3): Likewise.
5376         (<sse>_vm<maxmin><mode>3): Likewise.
5377         (sse3_h<addsub>v4sf3): Likewise.
5378         (sse3_h<addsub>v2df3): Likewise.
5379         (<maxmin>v16qi3): Likewise.
5380         (*<maxmin>v16qi3): Likewise.
5381         (<maxmin>v8hi3): Likewise.
5382         (*<maxmin>v8hi3): Likewise.
5383         (*sse4_1_<maxmin><mode>3): Likewise.
5384         (*sse4_1_<maxmin><mode>3): Likewise.
5385         (add<mode>3): Removed.
5386         (*add<mode>3): Likewise.
5387         (<sse>_vmadd<mode>3): Likewise.
5388         (sub<mode>3): Likewise.
5389         (*sub<mode>3): Likewise.
5390         (<sse>_vmsub<mode>3): Likewise.
5391         (smin<mode>3): Likewise.
5392         (*smin<mode>3_finite): Likewise.
5393         (*smin<mode>3): Likewise.
5394         (<sse>_vmsmin<mode>3): Likewise.
5395         (smax<mode>3): Likewise.
5396         (*smax<mode>3_finite): Likewise.
5397         (*smax<mode>3): Likewise.
5398         (<sse>_vmsmax<mode>3): Likewise.
5399         (sse3_haddv4sf3): Likewise.
5400         (sse3_haddv2df3): Likewise.
5401         (sse3_hsubv4sf3): Likewise.
5402         (sse3_hsubv2df3): Likewise.
5403         (umaxv16qi3): Likewise.
5404         (*umaxv16qi3): Likewise.
5405         (smaxv8hi3): Likewise.
5406         (*smaxv8hi3): Likewise.
5407         (*sse4_1_smax<mode>3): Likewise.
5408         (*sse4_1_umax<mode>3): Likewise.
5409         (uminv16qi3): Likewise.
5410         (*uminv16qi3): Likewise.
5411         (sminv8hi3): Likewise.
5412         (*sminv8hi3): Likewise.
5413         (*sse4_1_smin<mode>3): Likewise.
5414         (*sse4_1_umin<mode>3): Likewise.
5415
5416 2008-04-01  Rafael Espindola  <espindola@google.com>
5417
5418         * tree-cfg.c (verify_expr): remove in_phi.
5419         (verify_stmt): Don't call walk_tree with verify_expr. Use
5420         is_gimple_min_invariant instead of is_gimple_val.
5421
5422 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5423
5424         * doc/include/gpl_v3.texi: Update for manpage generation.
5425         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5426         gpl.texi.
5427         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5428         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5429         gpl_v3.texi instead of gpl.texi.
5430         (gpl.pod): New.
5431
5432 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5433
5434         PR pch/13675
5435         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5436
5437 2008-04-01  Rafael Espindola  <espindola@google.com>
5438
5439         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5440         (extract_code_and_val_from_cond): Use
5441         extract_code_and_val_from_cond_with_ops.
5442
5443 2008-04-01  Jan Hubicka  <jh@suse.cz>
5444
5445         * function.c (free_after_compilation): Free epilogue_delay_list.
5446         (prepare_function_start): Assert that previous compilation was freed.
5447
5448 2008-04-01  Jan Hubicka  <jh@suse.cz>
5449             Jim Wilson  <wilson@tuliptree.org>
5450             Andreas Tobler <andreast@gcc.gnu.org>
5451
5452         PR middle-end/35781
5453         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5454         rtl.emit instead cfun->emit.
5455         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5456         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5457
5458 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5459
5460         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5461
5462 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5463
5464         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5465         New options
5466         (fprofile-use): Add var flag_profile_use
5467         * coverage.c (coverage_begin_output): Do not open a gcno file for
5468         output only if -ftest-coverage is set.
5469         Do not add getpwd() to gcda file path.
5470         (build_gcov_info): Check the new flag
5471         flag_profile_datafile_relative_path.
5472         (coverage_init): Use profile_data_prefix.
5473         Read profile counter only if flag_profile_use is set.
5474         * opts.c (common_handle_option): New option fprofile-use=,
5475         fprofile-dir=, fprofile-generate=.
5476         * toplev.c (profile_data_prefix): New variable definition.
5477         * toplev.h (profile_data_prefix): New declaration.
5478         * doc/invoke.tex (Option Summary, Optimization Options):
5479         Add new options.
5480
5481 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5482
5483         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5484         use tmp consistently.
5485
5486         PR target/35695
5487         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5488         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5489         UNSPEC_FR_RECIP_APPROX_RES.
5490         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5491
5492 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5493
5494         PR c/35750
5495         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5496
5497 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5498
5499         PR middle-end/30186
5500         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5501         element of the vector via a pointer.
5502
5503 2008-03-31  Ian Lance Taylor  <iant@google.com>
5504
5505         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5506
5507 2008-03-31  Jan Hubicka  <jh@suse.cz>
5508
5509         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5510         get_arg_pointer_save_area.
5511         * expr.c (init_expr): Just clear out rtl.expr.
5512         * function.c (free_after_compilation): Clear out whole RTL structure.
5513         (get_func_frame_size): Merge into ...
5514         (get_frame_size): ... this one.
5515         (assign_stack_local_1): Merge into ...
5516         (assign_stack_local): ... this one.
5517         (expand_function_end): Update call of get_arg_pointer_save_area.
5518         (get_art_pointer_save_area): Remove cfun argument.
5519         * function.h (emit_status): regno_pointer_align does not need length
5520         attribute. Move x_regno_reg_rtx to ...
5521         (regno_reg_rtx): ... new global array.
5522         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5523         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5524         apply_args_value, forced_labels, stack_pointer_delta):
5525         Update accestors.
5526         (struct varasm_status): Move here from varasm.c
5527         (struct rtl_data): New. Move here some fields from struct function.
5528         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5529         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5530         used_temp_slots avail_temp_slots, temp_slot_level,
5531         nonlocal_goto_handler_labels): Update accesstors.
5532         (rtl): New global variable.
5533         (struct function): Move some fileds to rtl_data.
5534         (get_arg_pointer_save_area): Update prototype.
5535         * emit-rtl.c (rtl): Declare.
5536         (regno_reg_rtx): Declare.
5537         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5538         Update.
5539         (gen_reg_rtx): Update.
5540         (init_virtual_regs): Do not tate emit_status argument.
5541         (init_emit): Do not allocate emit.
5542         * varasm.c (varasm_statuc): Move to function.h.
5543         (n_deferred_constatns): Update accestor.
5544         (init_varasm_status): Do not allocate varasm_status.
5545         (force_const_mem, get_pool_size, output_constant_pool): Update.
5546         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5547         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5548
5549 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5550
5551         PR rtl-optimization/35729
5552         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5553         references.
5554
5555 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5556
5557         PR target/32000
5558         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5559         load/store if memory is unaligned.
5560         (*movti_rex64): Likewise.
5561
5562         * config/i386/predicates.md (misaligned_operand): New.
5563
5564 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5565
5566         PR tree-opt/35431
5567         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5568         complex types.
5569
5570 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5571
5572         * config/ia64/constraints.md: Add 'j' constraint.
5573         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5574         (movdi_internal): Likewise.
5575
5576 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5577
5578         PR c/35748
5579         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5580
5581 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5582
5583         PR target/35757
5584         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5585         proper error message for the third argument on blendpd and
5586         blendps.
5587
5588         * config/i386/sse.md (blendbits): New.
5589         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5590
5591 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5592
5593         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5594
5595 2008-03-30  Richard Guenther  <rguenther@suse.de>
5596
5597         PR middle-end/31023
5598         * fold-const.c (fold_sign_changed_comparison): Do leave
5599         conversions to base-types alone.
5600
5601 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5602
5603         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5604         the link register if one altivec register is be saved.
5605
5606 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5607
5608         * final.c (final_scan_insn): Remove if (0) code.
5609
5610 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5611
5612         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5613
5614 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5615
5616         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5617         of V4SFmode to ix86_binary_operator_ok.
5618
5619 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5620
5621         * config/i386/i386.c (override_options): Initialize
5622         ix86_veclib_handler to ix86_veclibabi_svml when
5623         -mveclibabi=svml is used.
5624         (ix86_veclibabi_svml): New function for SVML ABI style
5625         vectorization support.
5626         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5627
5628 2008-03-28  Rafael Espindola  <espindola@google.com>
5629
5630         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5631         (tree_binary_nonnegative_warnv_p): Make it public.
5632         (tree_single_nonnegative_warnv_p): Make it public.
5633         (tree_invalid_nonnegative_warnv_p): Make it public.
5634         (tree_unary_nonzero_warnv_p): Make it public.
5635         (tree_binary_nonzero_warnv_p): Make it public
5636         (tree_single_nonzero_warnv_p): Make it public.
5637         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5638         (extract_range_from_binary_expr): Split the expr argument.
5639         (extract_range_from_unary_expr): Split the expr argument.
5640         (extract_range_from_comparison): Split the expr argument.
5641         (extract_range_from_expr): Use the new aux functions.
5642         (vrp_evaluate_conditional_warnv): Use
5643         vrp_evaluate_conditional_warnv_with_ops.
5644         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5645         (tree_binary_nonzero_warnv_p): Declare.
5646         (tree_single_nonzero_warnv_p): Declare.
5647         (tree_expr_nonzero_warnv_p): Declare.
5648         (tree_unary_nonnegative_warnv_p): Declare.
5649         (tree_binary_nonnegative_warnv_p): Declare.
5650         (tree_single_nonnegative_warnv_p): Declare.
5651         (tree_invalid_nonnegative_warnv_p): Declare.
5652
5653 2008-03-28  Richard Guenther  <rguenther@suse.de>
5654
5655         PR tree-optimization/30317
5656         PR tree-optimization/30911
5657         PR tree-optimization/34793
5658         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5659         (struct assert_locus_d): New member EXPR.
5660         (register_new_assert_for): Add EXPR parameter to support
5661         ASSERT_EXPR <name, expr OP limit>.
5662         (register_edge_assert_for_1): Adjust callers.
5663         (find_assert_locations): Likewise.
5664         (process_assert_insertions_for): Build condition from expression.
5665         (extract_range_from_assert): Handle ASSERT_EXPRs
5666         of the form ASSERT_EXPR <name, expr OP limit>.
5667         (register_edge_assert_for_2): New helper registering
5668         asserts for comparisons.  Recognize range tests of the form
5669         (unsigned)i - CST1 OP CST2.
5670         (register_edge_assert_for_1): Use it.
5671         (register_edge_assert_for): Likewise.
5672         (needs_overflow_infinity): Integer sub-types
5673         do not need overflow infinities.
5674         (vrp_val_is_max): The extreme values of integer sub-types
5675         are those of the base type.
5676         (vrp_val_is_min): Likewise.
5677         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5678         expressions.
5679
5680 2008-03-28  Nick Clifton  <nickc@redhat.com>
5681
5682         PR target/31110
5683         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5684         Return GENERAL_REGS for stack adjustment reloads.
5685
5686 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5687
5688         PR target/31334
5689         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5690         const_vector when all the vectors are constant.
5691
5692 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5693
5694         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5695         comparisons.
5696         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5697         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5698         (scc_sf): New.
5699         (s<code>_sf): Use new scc_sf attribute for opcode names.
5700
5701 2008-03-27  Tom Tromey  <tromey@redhat.com>
5702
5703         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5704         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5705         config/spu/t-spu-elf, config/i386/t-interix,
5706         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5707         config/i386/x-darwin, config/i386/x-mingw32,
5708         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5709         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5710         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5711         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5712         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5713         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5714         config/score/t-score-elf, config/arm/t-strongarm-pe,
5715         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5716         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5717         Revert automatic dependency patch.
5718
5719 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5720
5721         PR target/35657
5722         * config/i386/i386.c (ix86_function_arg_boundary): Align
5723         decimal floating point to its natural boundary.
5724
5725 2008-03-27  Richard Guenther  <rguenther@suse.de>
5726
5727         PR middle-end/35716
5728         * fold-const.c (fold_comparison): Restrict distinct decl
5729         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5730         solely rely on operand_equal_p.
5731
5732 2008-03-27  Richard Guenther  <rguenther@suse.de>
5733
5734         PR c/32511
5735         * c-common.c (handle_weak_attribute): Reject combination of
5736         weak and inline.
5737
5738 2008-03-27  Richard Guenther  <rguenther@suse.de>
5739
5740         PR tree-optimization/32810
5741         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5742         conversions from DECL_INITIAL.
5743         (fold_const_aggregate_ref): Likewise from constructor elements.
5744
5745 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5746
5747         * tree-affine.h (aff_combination_expand): Declare.
5748         (get_inner_reference_aff): Likewise.
5749         * tree-affine.c (aff_combination_expand): Split out from
5750         tree_to_aff_combination_expand.
5751         (get_inner_reference_aff): New function.
5752         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5753         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5754         (struct lim_aux_data): sm_done field removed.
5755         (mem_ref_loc_p, mem_ref_locs_p): New types.
5756         (struct mem_ref): Added id, stored, accesses_in_loop,
5757         indep_loop, dep_loop, indep_ref, dep_ref fields.
5758         Removed is_stored, locs and next fields.
5759         (memory_accesses): New variable.
5760         (movement_possibility): Do not allow moving statements
5761         that store to memory.
5762         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5763         New functions.
5764         (determine_max_movement): For statements with memory references,
5765         find the outermost loop in that the reference is independent.
5766         (move_computations_stmt): Mark the virtual operands for renaming.
5767         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5768         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5769         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5770         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5771         create_vop_ref_mapping, analyze_memory_references,
5772         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5773         get_all_locs_in_loop, ref_always_accessed_p,
5774         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5775         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5776         store_motion_loop, store_motion): New functions.
5777         (struct vop_to_refs_elt): New type.
5778         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5779         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5780         (schedule_sm): Replaced by...
5781         (execute_sm): ... this.
5782         (determine_lsm_ref, hoist_memory_references,
5783         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5784         find_more_ref_vops, free_mem_ref, free_mem_refs,
5785         determine_lsm_loop, determine_lsm): Removed.
5786         (tree_ssa_lim_finalize): Free data structures used by store motion.
5787         (tree_ssa_lim): Call analyze_memory_references.  Use
5788         store_motion instead of determine_lsm.
5789
5790 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5791
5792         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5793         rename tmake_file to m68hc11/t-m68hc11.
5794         (mcore): Set inhibit_libc to true.
5795         * config.host (alpha*-dec-*vms*): Set extra_programs.
5796         (interix3*): Don't use host_xmake_file.
5797         * configure.ac: Let config.gcc override inhibit_libc.
5798         * configure: Regenerate.
5799
5800         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5801         * config/t-openbsd-thread: Remove commented out lines.
5802         
5803         * config/x-interix: Remove.
5804
5805         * config/m68hc11/t-m68hc11-gas: Rename to...
5806         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5807
5808         * config/mcore/t-mcore: Remove T_CFLAGS.
5809         * config/mcore/t-mcore-pe: Likewise.
5810
5811 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5812
5813         * configure.ac: Replace custom __GNU_SOURCE test with
5814         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5815         * aclocal.m4: Regenerate.
5816         * configure: Regenerate.
5817         * config.in: Regenerate.
5818
5819 2008-03-27  Richard Guenther  <rguenther@suse.de>
5820
5821         * fold-const.c (target.h): Include.
5822         (fold_comparison): Fold comparison of addresses of decls
5823         that bind locally or of constants.  Consolidate address folding code.
5824         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5825         results from fold_binary_to_constant.
5826         (compare_values_warnv): Likewise.
5827
5828 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5829
5830         PR middle-end/35429
5831         * fold-const.c (fold_truthop): Check for integeral types when folding
5832         a == 0 && b == 0 and a != 0 || b != 0 .
5833
5834 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5835
5836         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5837
5838 2008-03-26  Andreas Schwab  <schwab@suse.de>
5839
5840         * doc/invoke.texi: Fix use of @item vs. @itemx.
5841
5842 2008-03-26  Tom Tromey  <tromey@redhat.com>
5843
5844         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5845         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5846         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5847         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5848         build/genconstants.o, build/genemit.o, build/genextract.o,
5849         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5850         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5851         options.h.
5852
5853 2008-03-26  Richard Guenther  <rguenther@suse.de>
5854
5855         Revert
5856         2008-03-26  Richard Guenther  <rguenther@suse.de>
5857
5858         * fold-const.c (target.h): Include.
5859         (fold_comparison): Fold comparison of addresses of two decls
5860         that bind locally.  Consolidate address folding code.
5861
5862 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5863
5864         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5865         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5866         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5867         dconstsqrt2, dconstthird, dconste and/or dconst10.
5868         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5869         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5870         dconstsqrt2, dconste): Delete.
5871         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5872         Constify variable.
5873         * real.c (get_real_const): New.
5874         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5875         dconstsqrt2, dconste): Delete.
5876         (real_value_const, get_real_const): New.
5877
5878 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
5879
5880         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
5881
5882         * config/i386/i386.c (ix86_function_arg_boundary): Check
5883         BIGGEST_ALIGNMENT instead of 128.
5884         (setup_incoming_varargs_64): Likewise.
5885
5886 2008-03-26  Tom Tromey  <tromey@redhat.com>
5887
5888         * Makefile.in (DEPFILES): Add missing '/'.
5889
5890 2008-03-26  Richard Guenther  <rguenther@suse.de>
5891
5892         * fold-const.c (target.h): Include.
5893         (fold_comparison): Fold comparison of addresses of two decls
5894         that bind locally.  Consolidate address folding code.
5895
5896 2008-03-26  Nick Clifton  <nickc@redhat.com>
5897
5898         PR target/31232
5899         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
5900         not allow INT+INT as a legitimate addressing mode.
5901
5902 2008-03-26  Richard Guenther  <rguenther@suse.de>
5903
5904         * tree-flow.h (widen_bitfield): Remove declaration.
5905         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
5906         (widen_bitfield): Remove function.
5907         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
5908         code.
5909
5910 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5911
5912         PR target/31558
5913         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
5914         error_mark_node's.
5915
5916 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5917
5918         PR rtl-optimization/35232
5919         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
5920         (forget_old_reloads_1, forget_marked_reloads): Don't clear
5921         reg_reloaded_call_part_clobbered here.
5922         (reload_regs_reach_end_p): New function.
5923         (reload_reg_rtx_for_input): New variable.
5924         (reload_reg_rtx_for_output): Likewise.
5925         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
5926         when reassigning a pseudo register.  Load reloadreg from 
5927         reload_reg_rtx_for_input, moving the mode and register
5928         calculation to...
5929         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
5930         instead of the original when deciding whether an input reload
5931         would be a no-op or whether an output reload can be deleted.
5932         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
5933         when setting up new_spill_reg_store.  Load it from
5934         reload_reg_rtx_for_output, moving the mode and register
5935         calculation to...
5936         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
5937         instead of the original when deciding whether an output reload
5938         would be a no-op.  Do the same when modifying insn notes.
5939         Use rtx_equal_p instead of == to compare the registers.
5940         (inherit_piecemeal_p): Take a mode and two register numbers
5941         as argument.
5942         (emit_reload_insns): Clear new_spill_reg_store for every hard
5943         register in the reload register.  Remove spill registers
5944         from reg_reloaded_valid before considering whether to record
5945         inheritance information for them.  Use reload_reg_rtx_for_output
5946         instead of reg_rtx when recording output reloads.  Use
5947         reload_reg_rtx_for_input instead of reg_rtx when recording
5948         input reloads.  Set or clear reg_reloaded_call_part_clobbered
5949         at the same time as setting reg_reloaded_valid.
5950         (delete_output_reload): Add a new_reload_reg parameter and use it
5951         instead of rld[j].reg_rtx.
5952         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
5953         calls accordingly.
5954
5955 2008-03-25  Tom Tromey  <tromey@redhat.com>
5956
5957         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
5958         (build/genattr.o): Likewise.
5959         (build/genattrtab.o): Likewise.
5960         (build/gencodes.o): Likewise.
5961         (build/genconfig.o): Likewise.
5962         (build/genconstants.o): Likewise.
5963         (build/genemit.o): Likewise.
5964         (build/genextract.o): Likewise.
5965         (build/genflags.o): Likewise.
5966
5967 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
5968         
5969         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
5970         instead of size_int for integer types.
5971         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
5972         to match type of MINUS_EXPR.
5973         
5974 2008-03-25  Tom Tromey  <tromey@redhat.com>
5975
5976         * configure: Rebuilt.
5977         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
5978         Makefile.
5979
5980 2008-03-25  Tom Tromey  <tromey@redhat.com>
5981
5982         * config/x-solaris (host-solaris.o): Update.
5983         * config/x-linux (host-linux.o): Update.
5984         * config/x-hpux (host-hpux.o): Update.
5985         * config/x-darwin (host-darwin.o): Update.
5986         * config/v850/t-v850e (v850-c.o): Update.
5987         * config/v850/t-v850 (v850-c.o): Update.
5988         * config/t-vxworks (vxworks.o): Update.
5989         * config/t-sol2 (sol2-c.o, sol2.o): Update.
5990         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
5991         * config/spu/t-spu-elf (spu-c.o): Update.
5992         (spu.o): Remove.
5993         * config/sh/t-symbian (sh-c.o): Update.
5994         (symbian.o): Update.
5995         * config/sh/t-sh (sh-c.o): Update.
5996         * config/score/t-score-elf (score7.o, score3.o): Update.
5997         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
5998         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
5999         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
6000         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
6001         (rs6000.o): Remove.
6002         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
6003         * config/m32c/t-m32c (m32c-pragma.o): Update.
6004         * config/ia64/t-ia64 (ia64-c.o): Update.
6005         * config/i386/x-mingw32 (host-mingw32.o): Update.
6006         * config/i386/x-i386 (driver-i386.o): Update.
6007         * config/i386/x-darwin (host-i386-darwin.o): Update.
6008         * config/i386/x-cygwin (host-cygwin.o): Update.
6009         * config/i386/t-nwld (nwld.o): Update.
6010         * config/i386/t-netware (netware.o): Update.
6011         * config/i386/t-interix (winnt.o): Update.
6012         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6013         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6014         msformat-c.o): Update.
6015         * config/bfin/t-bfin-linux (generated_files): Add
6016         linux-sysroot-suffix.h.
6017         * config/arm/t-wince-pe (pe.o): Update.
6018         * config/arm/t-strongarm-pe (pe.o): Update.
6019         * config/arm/t-pe (pe.o): Update.
6020         * config/arm/t-arm (arm-c.o): Update.
6021         * doc/install.texi (Prerequisites): Require make 3.80.
6022         * Makefile.in: Remove .o targets.
6023         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6024         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6025         (simple_generated_h, simple_generated_c): Move earlier.
6026         (generated_files): New variable.
6027         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6028         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6029         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6030         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6031         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6032         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6033         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6034         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6035         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6036         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6037         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6038         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6039         (.c.o): Remove.
6040         (COMPILE.base, COMPILE): New variables.
6041         (%.o): New pattern rule.
6042         (ALL_HOST_OBJS): New variable.
6043         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6044         (dummy-checksum.o, cc1-checksum.o): Remove.
6045         (DRIVER_SHLIB): New variable.
6046         (DRIVER_DEFINES): Use it.
6047         (gencondmd.c): Move out of build/.
6048         (s-conditions): Update.
6049         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6050         (ALL_BUILD_OBJS): Likewise.
6051         (build/%.o): Use BUILDCOMPILE.
6052         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6053         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6054         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6055         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6056         build/genconfig.o, build/genconstants.o, build/genemit.o,
6057         build/genextract.o, build/genflags.o, build/genmddeps.o,
6058         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6059         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6060         build/gen-protos.o, build/scan.o, build/fix-header.o,
6061         build/scan-decls.o): Simplify.
6062         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6063         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6064         prefix.o, toplev.o): Reduce to variable setting.
6065         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6066         ($(out_object_file), gcc-options.o): New targets.
6067         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6068         * configure: Rebuilt.
6069         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6070         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6071
6072 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6073
6074         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6075         complain when we hit an error, return ERROR_MARK_NODE.
6076
6077 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6078
6079         * config/sh/constraints.md (Pso, Psz): New constraints.
6080         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6081         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6082
6083 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6084
6085         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6086         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6087
6088 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6089
6090         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6091         (prefetch_sh2a): New.   
6092
6093 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6094             Naveen.H.S  <naveen.hs@kpitcummins.com>
6095
6096         * config/sh/constraints.md (I28): New constraint.
6097         * config/sh/sh.c (broken_move): Add support for movi20s.
6098         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6099
6100 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6101             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6102             Naveen.H.S  <naveen.hs@kpitcummins.com>
6103
6104         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6105         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6106         (print_operand): Handle resbank in %@ operand code.
6107         (sh_encode_section_info): New.
6108         (push_regs): Add conditions for resbank.
6109         (sh_expand_epilogue): Likewise.
6110         (sh_insert_attributes): Likewise.
6111         (sh_attribute_table): Likewise.
6112         (sh_handle_resbank_handler_attribute): New.
6113         (sh2a_handle_function_vector_handler_attribute): New.
6114         (sh2a_is_function_vector_call): New.
6115         (sh2a_get_function_vector_number): New.
6116         (sh2a_function_vector_p): New.
6117         (sh_cfun_resbank_handler_p): New.
6118         * config/sh/sh.md (calli): Emit jsr/n if possible.
6119         (calli_tbr_rel): New.
6120         (calli_pcrel): Emit jsr/n if possible.
6121         (return_i): Emit rts/n if possible.
6122         (call_valuei_tbr_rel): New.
6123         (call_valuei_pcrel): Add condition for SH2A target.
6124         (call_value): Likewise.
6125         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6126         (sh2a_get_function_vector_number): Likewise.
6127         (sh2a_is_function_vector_call): Likewise.
6128         * doc/extend.texi: Document TBR relative addressing of SH2A.
6129         (resbank): Add description for SH2A.
6130
6131 2008-03-24  Richard Guenther  <rguenther@suse.de>
6132
6133         PR c/22371
6134         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6135         pointer assignments change conversions according to middle-end rules.
6136         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6137         * configure.ac: Include type checking in yes.
6138         * configure: Regenerate.
6139
6140 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6141
6142         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6143         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6144         
6145 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6146
6147         * gthr-vxworks.h (UNUSED): Define.
6148
6149 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6150
6151         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6152
6153 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6154
6155         * doc/extend.texi (Function Attributes): Add missing comma in the
6156         example of the "alloc_size" attribute.
6157         
6158 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6159
6160         Revert:
6161         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6162
6163         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6164         32bit host.
6165
6166         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6167
6168         PR target/35496
6169         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6170         of the underlying type of a MS bitfield layout to the natural
6171         alignment of the type.
6172
6173         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6174
6175         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6176         to their natural alignment to avoid store forwarding stalls.
6177
6178 2008-03-22  Richard Guenther  <rguenther@suse.de>
6179
6180         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6181         For PHI nodes verify the address is invariant.
6182         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6183         (get_symbol_constant_value): Use is_gimple_min_invariant.
6184         (maybe_fold_stmt_indirect): Likewise.
6185
6186 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6187
6188         PR rtl-optimization/33927
6189         * Makefile.in (dse.o): Depend on $(TM_P_H).
6190         * expr.h (extract_low_bits): Declare.
6191         * expmed.c (extract_low_bits): New function.
6192         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6193         * dse.c: Include tm_p.h.
6194         (find_shift_sequence): Remove the read_reg argument and return the
6195         read value.  Emit the instructions instead of returning them.
6196         Iterate on new_mode rather than calculating it each time.
6197         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6198         source to NEW_MODE and extract_low_bits to convert the shifted
6199         value to READ_MODE.
6200         (replace_read): Allow the load and store to have different mode
6201         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6202         or extraction instructions before trying the replacement.  Update
6203         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6204
6205 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6206
6207         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6208         to their natural alignment to avoid store forwarding stalls.
6209
6210 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6211
6212         PR target/27946
6213         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6214         encouraging but not allowing gprs for input;
6215         change the input constraint to !f#r.
6216         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6217         gprs for output;
6218         change the output constraint to !f#r.
6219
6220 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6221
6222         PR target/13958
6223         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6224         corresponding post-reload splitters.
6225         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6226         when x87 FP math is selected.
6227         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6228         New function prototype.
6229         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6230         unreachable function to ease macroization of insn patterns.
6231
6232 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6233
6234         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6235         reference dumps if ddr is NULL or dependence is unknown.
6236
6237 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6238
6239         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6240         unsigned extension into account.
6241         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6242         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6243         Do computations on a scratch register.
6244
6245 2008-03-21  Richard Guenther  <rguenther@suse.de>
6246
6247         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6248         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6249         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6250         * tree-ssa-dom.c (record_equality): Likewise.
6251         * tree-inline.c (copy_body_r): Likewise.
6252         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6253         TREE_INVARIANT.
6254
6255 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6256
6257         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6258         as 'delete_unused' argument.
6259
6260 2008-03-20  Richard Guenther  <rguenther@suse.de>
6261
6262         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6263         special casing of constant qualifiers.
6264         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6265         care about them in general.
6266         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6267         regardless of their type.
6268         (fold_stmt_r): Forcefully fold *& if we end up with that.
6269
6270 2008-03-20  Paul Brook  <paul@codesourcery.com>
6271
6272         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6273         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6274         linker flags.
6275         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6276         definition.
6277         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6278         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6279
6280 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6281
6282         * common.opt (Wmudflap): New option.
6283         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6284         (mx_register_decls): Likewise.
6285         (mudflap_finish_file): Likewise.
6286         * doc/invoke.texi: Document -Wno-mudflap.
6287
6288 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6289
6290         * c-format.c (replace_format_name_to_system_name): New.
6291         (cmp_attribs): New.
6292         (convert_format_name_to_system_name): New.
6293         (decode_format_attr): Add use of convert_format_name_to_system_name.
6294         (format_types_orig): Add gnu_ prefix to names.
6295         (check_format_info_main): Special treating of \0 escaped names for
6296         supporting multi-character format specifiers as I32, I64.
6297         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6298         (gnu_target_overrides_format_attributes): New.
6299         * c-format.h: Add structure target_ovr_attr to hold
6300         system specific formatter names.
6301         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6302         msformat-c.o file to c_target_objs and cxx_target_objs.
6303         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6304         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6305         (TARGET_N_FORMAT_TYPES): New.
6306         * config/i386/msformat-c.c: New.
6307         * config/i386/t-cygming: Add build rule for msformat-c.o.
6308         * doc/extend.texi: Add new format names gnu_* and ms_* and
6309         further details.
6310         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6311
6312 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6313
6314         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6315         optimizations turned on under -O3.
6316         (ftree-vectorize): Add that the flag is turned on with -O3.
6317
6318 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6319
6320         * regmove.c (try_auto_increment): Fix spelling error in comment.
6321         * final.c (final_scan_insn): Likewise.
6322
6323 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6324
6325         PR target/14552
6326         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6327         allocator preferences for "y" and "r" class registers.
6328         ("*mov<mode>_internal"): Ditto.
6329         ("*movv2sf_internal_rex64"): Ditto.
6330         ("*movv2sf_internal"): Ditto.
6331
6332 2008-03-19  Michael Matz  <matz@suse.de>
6333
6334         PR middle-end/35616
6335         * calls.c (expand_call): Check overlap of arguments with call
6336         address for sibcalls.
6337
6338 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6339
6340         PR target/35496
6341         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6342         of the underlying type of a MS bitfield layout to the natural
6343         alignment of the type.
6344
6345 2008-03-19  Jan Hubicka  <jh@suse.cz>
6346
6347         PR other/35094
6348         * toplev.c (decode_d_option): Handle all CPP flags.
6349         * tree-vrp.c: Update tree_pass descriptors.
6350         * regrename.c: Update tree_pass descriptors.
6351         * fwprop.c: Update tree_pass descriptors.
6352         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6353         * tree-into-ssa.c: Update tree_pass descriptors.
6354         * tree-dump.c: Update tree_pass descriptors.
6355         * tree-complex.c: Update tree_pass descriptors.
6356         * tree-dump.h: Update tree_pass descriptors.
6357         * see.c: Update tree_pass descriptors.
6358         * cgraphbuild.c: Update tree_pass descriptors.
6359         * tracer.c: Update tree_pass descriptors.
6360         * tree-loop-distribution.c: Update tree_pass descriptors.
6361         * cgraph.c: Update tree_pass descriptors.
6362         * postreload-gcse.c: Update tree_pass descriptors.
6363         * postreload.c: Update tree_pass descriptors.
6364         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6365         * tree-tailcall.c: Update tree_pass descriptors.
6366         * tree-pass.h (tree_opt_pass): Rename to ...
6367         (opt_pass) ... this one; add "type" field and remove letter field.
6368         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6369         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6370         all_lowering_passes): Update declaration.
6371         * ipa-cp.c: Update tree_pass descriptors.
6372         * final.c: Update tree_pass descriptors.
6373         * omp-low.c: Update tree_pass descriptors.
6374         * tree-ssa-dse.c: Update tree_pass descriptors.
6375         * ipa-reference.c: Update tree_pass descriptors.
6376         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6377         * auto-inc-dec.c: Update tree_pass descriptors.
6378         * reorg.c: Update tree_pass descriptors.
6379         * cgraphunit.c: Update tree_pass descriptors.
6380         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6381         * tree-ssa-ccp.c: Update tree_pass descriptors.
6382         * df-core.c: Update tree_pass descriptors.
6383         * mode-switching.c: Update tree_pass descriptors.
6384         * tree-nomudflap.c: Update tree_pass descriptors.
6385         * modulo-sched.c: Update tree_pass descriptors.
6386         * ipa-pure-const.c: Update tree_pass descriptors.
6387         * cse.c: Update tree_pass descriptors.
6388         * web.c: Update tree_pass descriptors.
6389         * tree-stdarg.c: Update tree_pass descriptors.
6390         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6391         * tree-ssa-dom.c: Update tree_pass descriptors.
6392         * tree-nrv.c: Update tree_pass descriptors.
6393         * tree-ssa-alias.c: Update tree_pass descriptors.
6394         * loop-init.c: Update tree_pass descriptors.
6395         * gimple-low.c: Update tree_pass descriptors.
6396         * ipa-inline.c: Update tree_pass descriptors.
6397         * tree-ssa-sink.c: Update tree_pass descriptors.
6398         * global.c: Update tree_pass descriptors.
6399         * ifcvt.c: Update tree_pass descriptors.
6400         * jump.c: Update tree_pass descriptors.
6401         * predict.c: Update tree_pass descriptors.
6402         * tree-ssa-loop.c: Update tree_pass descriptors.
6403         * recog.c: Update tree_pass descriptors.
6404         * dse.c: Update tree_pass descriptors.
6405         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6406         * tree-eh.c: Update tree_pass descriptors.
6407         * regmove.c: Update tree_pass descriptors.
6408         * local-alloc.c
6409         * function.c: Update tree_pass descriptors.
6410         * tree-vectorizer.c: Update tree_pass descriptors.
6411         * gcse.c: Update tree_pass descriptors.
6412         * ipa-type-escape.c: Update tree_pass descriptors.
6413         * tree-if-conv.c: Update tree_pass descriptors.
6414         * init-regs.c: Update tree_pass descriptors.
6415         * ipa.c: Update tree_pass descriptors.
6416         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6417         * rtl-factoring.c: Update tree_pass descriptors.
6418         * lower-subreg.c: Update tree_pass descriptors.
6419         * bt-load.c: Update tree_pass descriptors.
6420         * tree-dfa.c: Update tree_pass descriptors.
6421         * except.c: Update tree_pass descriptors.
6422         * emit-rtl.c: Update tree_pass descriptors.
6423         * cfgexpand.c: Update tree_pass descriptors.
6424         * tree-cfgcleanup.c: Update tree_pass descriptors.
6425         * cfgcleanup.c: Update tree_pass descriptors.
6426         * tree-ssa-pre.c: Update tree_pass descriptors.
6427         * tree-sra.c: Update tree_pass descriptors.
6428         * tree-mudflap.c: Update tree_pass descriptors.
6429         * tree-ssa-copy.c: Update tree_pass descriptors.
6430         * cfglayout.c: Update tree_pass descriptors.
6431         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6432         * tree-ssa-dce.c: Update tree_pass descriptors.
6433         * tree-ssa.c: Update tree_pass descriptors.
6434         * regclass.c: Update tree_pass descriptors.
6435         * integrate.c: Update tree_pass descriptors.
6436         * tree-optimize.c: Update tree_pass descriptors.
6437         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6438         * tree-object-size.c: Update tree_pass descriptors.
6439         * combine.c: Update tree_pass descriptors.
6440         * tree-outof-ssa.c: Update tree_pass descriptors.
6441         * bb-reorder.c: Update tree_pass descriptors.
6442         * stack-ptr-mod.c: Update tree_pass descriptors.
6443         * var-tracking.c: Update tree_pass descriptors.
6444         * tree-profile.c: Update tree_pass descriptors.
6445         * tree-vect-generic.c: Update tree_pass descriptors.
6446         * reg-stack.c: Update tree_pass descriptors.
6447         * sched-rgn.c: Update tree_pass descriptors.
6448         * tree-ssa-structalias.c: Update tree_pass descriptors.
6449         * tree-cfg.c: Update tree_pass descriptors.
6450         * passes.c (current_pass): Update declaration.
6451         (finish_optimization_passes): Update.
6452         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6453         (register_one_dump_file, register_dump_files_1, next_pass_1):
6454         Update arguments.
6455         (init_optimization_passes): Update handling of new types.
6456         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6457         * ipa-struct-reorg.c: Update tree_pass descriptors.
6458         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6459         * combine-stack-adj.c: Update tree_pass descriptors.
6460         * cfgrtl.c: Update tree_pass descriptors.
6461         * dce.c: Update tree_pass descriptors.
6462         * tree-ssanames.c: Update tree_pass descriptors.
6463
6464 2008-03-19  Richard Guenther  <rguenther@suse.de>
6465
6466         PR middle-end/35609
6467         * tree-ssa.c (walk_data): New structure.
6468         (warn_uninitialized_var): If not always_executed warn with "maybe"
6469         instead of "is".
6470         (execute_early_warn_uninitialized): Compute post-dominators.
6471         Initialize always_executed before processing each basic block.
6472
6473 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6474
6475         PR target/35504
6476         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6477         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6478
6479 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6480
6481         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6482
6483 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6484
6485         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6486         is true.
6487         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6488         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6489         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6490         target after ignore has been set, and move there also the commputation
6491         of subtarget and original_target.
6492         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6493         (LANG_HOOKS_INITIALIZER): Remove it.
6494         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6495
6496 2008-03-18  Richard Guenther  <rguenther@suse.de>
6497
6498         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6499         found an expression with constants, note that in the VN for the lhs.
6500         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6501         fold them to constants if possible.  Run cleanup_cfg if done so.
6502         (execute_pre): Return todo.
6503         (do_pre): Likewise.
6504         (execute_fre): Likewise.
6505         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6506         of constants.
6507         (get_prop_source_stmt): Look through pointer conversions.
6508
6509 2008-03-18  Jan Hubicka  <jh@suse.cz>
6510
6511         * tree-pretty-print.c: Include predict.h.
6512         (dump_generic_node): Dump predictor.
6513         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6514         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6515         * gimple-low.c (lower_stmt): Likewise.
6516         * expr.c (expand_expr_real): Likewise.
6517         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6518         them.
6519         (build_predict_expr, build_predict_expr): New.
6520         * predict.h (predictor_name, build_predict_expr): Update.
6521         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6522         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6523         * predict.def (PRED_CONTINUE): Update hitrate.
6524         * tree.def (PREDICT_EXPR): Define.
6525         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6526         do not handle BIND_EXPR.
6527         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6528         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6529         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6530         operands.
6531
6532 2008-03-18  Michael Matz  <matz@suse.de>
6533
6534         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6535
6536 2008-03-18  Richard Guenther  <rguenther@suse.de>
6537
6538         * tree-gimple.h (is_gimple_invariant_address): Declare.
6539         (is_gimple_constant): Likewise.
6540         * tree-gimple.c (is_gimple_constant): New function.
6541         (is_gimple_invariant_address): Likewise.
6542         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6543         and is_gimple_invariant_address.
6544         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6545         previous change.
6546         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6547         an addressable base.
6548
6549 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6550
6551         PR middle-end/35611
6552         * gimplify.c (gimplify_expr): Gimplify second operand of
6553         OMP_ATOMIC_LOAD.
6554
6555 2008-03-17  Richard Guenther  <rguenther@suse.de>
6556
6557         PR tree-optimization/19637
6558         * fold-const.c (fold_unary): Remove restrictions of removing
6559         intermediate pointer-conversions (P2)(P1)P0.
6560         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6561         conversion to void pointer.
6562         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6563
6564 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6565
6566         PR debug/31510
6567         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6568         emulated thread local variables.
6569
6570 2008-03-16  Richard Guenther  <rguenther@suse.de>
6571
6572         PR middle-end/35607
6573         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6574         expand TREE_INVARIANT operations that are not gimple invariant.
6575
6576 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6577
6578         * doc/extend.texi (Alignment): Say that the ABI controls
6579         the __alignof__ for non-strict-alignment targets rather
6580         than being a recommendation.
6581
6582 2008-03-15  Paul Brook  <paul@codesourcery.com>
6583
6584         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6585         annotations.
6586         (arm_output_fn_unwind): Mark functions that can not be unwound.
6587
6588 2008-03-15  Paul Brook  <paul@codesourcery.com>
6589
6590         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6591         extension instructions.
6592
6593 2008-03-15  Richard Guenther  <rguenther@suse.de>
6594
6595         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6596         and fold constant aggregate refs.
6597         (fold_const_aggregate_ref): Handle string constants
6598         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6599         (evaluate_stmt): Simplify now that ccp_fold folds constant
6600         aggregate refs.
6601
6602 2008-03-15  Paul Brook  <paul@codesourcery.com>
6603
6604         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6605         (extzv): Use gen_extzv_t2.
6606         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6607
6608 2008-03-15  Richard Guenther  <rguenther@suse.de>
6609
6610         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6611         (fold_const_aggregate_ref): Likewise.
6612         (get_value): Return NULL if we don't have any values.
6613         (ccp_finalize): Set const_val to NULL after freeing it.
6614         * tree-flow.h (get_symbol_constant_value): Declare.
6615         (fold_const_aggregate_ref): Likewise.
6616         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6617
6618 2008-03-15  Richard Guenther  <rguenther@suse.de>
6619
6620         PR middle-end/35593
6621         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6622         to not produce negative array indices if not allowed.  Add
6623         parameter to indicate that.
6624         (maybe_fold_offset_to_component_ref): Allow negative array
6625         indices only for the first member of a structure.
6626         (maybe_fold_offset_to_reference): Allow negative array indices.
6627         (maybe_fold_stmt_addition): Likewise.
6628
6629 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6630             Anatoly Sokolov <aesok@post.ru>
6631
6632         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6633         (avr_arch): Add ARCH_AVR6.
6634         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6635         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6636         instead of fixed value 2.
6637         (print_operand_address): Use gs() asm specifier instead of pm().
6638         (avr_assemble_integer): (Ditto.).
6639         (avr_output_addr_vec_elt): (Ditto.).
6640         (print_operand): Handle "!" code.
6641         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6642         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6643         (AVR_HAVE_EIJMP_EICALL): Define.
6644         (AVR_3_BYTE_PC): Redefine.
6645         (AVR_2_BYTE_PC): (Ditto.).
6646         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6647         (LINK_SPEC): Add atmega2560 and atmega2561.
6648         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6649         (crtm2561.o).
6650         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6651         for 3 byte PC devices.
6652         (call_value_insn): (Ditto.).
6653         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6654         (indirect_jump): Use only for for 2 byte PC devices.
6655         (*tablejump): (Ditto.).
6656         (*indirect_jump_avr6): Add insn.
6657         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6658         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6659         instead of ijmp for 3 byte PC devices.
6660         (__tablejump2__): (Ditto.).
6661         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6662         (MULITLIB_DIRNAMES): (Ditto.). 
6663         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6664
6665 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6666
6667         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6668         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6669         ("mmx_psadbw"): Use V1DI mode for operand 0.
6670         * config/i386/i386-modes.def (V1SI): New vector mode.
6671         * config/i386/i386.c (struct builtin_description)
6672         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6673         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6674         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6675         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6676         v1di_ftype_v8qi_v8qi type.
6677         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6678
6679         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6680         __builtin_ia32_pmuludq]: Fix the mode of return value.
6681
6682 2008-03-15  Richard Guenther  <rguenther@suse.de>
6683
6684         PR middle-end/35595
6685         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6686         being a PHI_NODE.
6687
6688 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6689         
6690         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6691         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6692         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6693         unless TARGET_SERIALIZE_VOLATILE is enabled.
6694         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6695         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6696         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6697
6698 2008-03-14  Richard Guenther  <rguenther@suse.de>
6699
6700         PR tree-optimization/34172
6701         * tree-flow.h (refs_may_alias_p): Declare.
6702         (get_single_def_stmt): Likewise.
6703         (get_single_def_stmt_from_phi): Likewise.
6704         (get_single_def_stmt_with_phi): Likewise.
6705         * tree-dfa.c (refs_may_alias_p): New function.
6706         (get_single_def_stmt): Likewise.
6707         (get_single_def_stmt_from_phi): Likewise.
6708         (get_single_def_stmt_with_phi): Likewise.
6709         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6710         (vn_reference_lookup_1): New helper function.
6711         (vn_reference_lookup): Walk the virtual use-def chain to
6712         continue searching for a match if the def does not alias the
6713         reference we are looking for.
6714
6715 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6716
6717         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6718         archive and Perzl.  Update The Written Word listing.
6719
6720 2008-03-14  Richard Guenther  <rguenther@suse.de>
6721
6722         PR tree-optimization/34043
6723         PR tree-optimization/33989
6724         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6725         when doing FRE.
6726         (bitmap_find_leader): Use extra argument to verify dominance
6727         relationship inside a basic-block.
6728         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6729         (find_leader_in_sets): Adjust.
6730         (create_component_ref_by_pieces): Take extra argument for
6731         dominance check, handle lookup failures.
6732         (find_or_generate_expression): Likewise.
6733         (create_expression_by_pieces): Likewise.
6734         (insert_into_preds_of_block): Adjust.
6735         (create_value_expr_from): If asked for, verify all operands
6736         are in the blocks AVAIL_OUT set.
6737         (make_values_for_stmt): Check for SSA_NAMEs that are life
6738         over an abnormal edge.
6739         (compute_avail): Remove such check.
6740         (do_SCCVN_insertion): New function.
6741         (eliminate): If we do not find a leader suitable for replacement
6742         insert a replacement expression from SCCVN if available.
6743         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6744         (struct vn_ssa_aux): Add needs_insertion flag.
6745         * tree-ssa-sccvn.c (may_insert): New global flag.
6746         (copy_reference_ops_from_ref): Value-number union member access
6747         based on its size, not type and member if insertion is allowed.
6748         (visit_reference_op_load): For a weak match from union type
6749         punning lookup a view-converted value and insert a SSA_NAME
6750         for that value if that is not found.
6751         (visit_use): Make dumps shorter.  Do not disallow value numbering
6752         SSA_NAMEs that are life over an abnormal edge to constants.
6753         (free_scc_vn): Release inserted SSA_NAMEs.
6754         (run_scc_vn): New flag to specify whether insertion is allowed.
6755         Process SSA_NAMEs in forward order.
6756         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6757         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6758         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6759         pointer type to/from integral types that do not change the
6760         precision to regular conversions.
6761
6762 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6763
6764         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6765         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6766         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6767         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6768         input arguments and the mode of return value.  Built-in functions
6769         that operate on whole 64-bit MMX register now use V1DI mode.
6770
6771 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6772             Olga Golovanevsky  <olga@il.ibm.com>
6773
6774         PR tree-optimization/35041
6775         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6776         to locate the right position in a statement.
6777
6778 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6779
6780         PR target/34000
6781         PR target/35553
6782         * config/i386/xmmintrin.h:  Change all static inline functions to
6783         extern inline and add __gnu_inline__ attribute.
6784         * config/i386/bmintrin.h: Ditto.
6785         * config/i386/smmintrin.h: Ditto.
6786         * config/i386/tmmintrin.h: Ditto.
6787         * config/i386/mmintrin-common.h: Ditto.
6788         * config/i386/ammintrin.h: Ditto.
6789         * config/i386/emmintrin.h: Ditto.
6790         * config/i386/pmmintrin.h: Ditto.
6791         * config/i386/mmintrin.h: Ditto.
6792         * config/i386/mm3dnow.h: Ditto.
6793
6794 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6795
6796         PR middle-end/35185
6797         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6798         (lower_omp_2): New function.
6799         (lower_omp_1, lower_omp): Rewritten.
6800
6801 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6802
6803         PR 35054
6804         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6805         with the phrase "Microsoft Windows compilers".
6806         (Push/Pop Macro Pragmas): New subsection. Document
6807         #pragma push_macro and pragma pop_macro.
6808
6809 2008-03-12  Paul Brook  <paul@codesourcery.com>
6810
6811         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6812
6813 2008-03-12  Paul Brook  <paul@codesourcery.com>
6814
6815         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6816         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6817         (thumb2_addsi_shortim): Rename ...
6818         (thumb2_addsi_short): ... to this.  Allow register operands.
6819         (thumb2_subsi_short): New pattern.
6820         (thumb2_one_cmplsi2_short,
6821         thumb2_negsi2_short): New patterns and peepholes.
6822
6823 2008-03-12  Paul Brook  <paul@codesourcery.com>
6824
6825         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6826
6827 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6828
6829         * config/i386/i386.md (int_cond): New code iterator.
6830         (fp_cond): Ditto.
6831         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6832         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6833         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6834         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6835         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6836         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6837         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6838         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6839
6840 2008-03-12  Paul Brook  <paul@codesourcery.com>
6841
6842         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6843         instead of {arm,thumb}_compute_save_reg_mask.
6844         (output_return_instruction): Ditto.
6845         (thumb_unexpanded_epilogue): Ditto.
6846         (thumb1_expand_prologue): Ditto.
6847         (thumb1_output_function_prologue): Ditto.
6848         (arm_set_return_address): Ditto.
6849         (thumb_set_return_address): Ditto.
6850         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6851         regs to achieve stack alignment.
6852         (thumb1_compute_save_reg_mask): Fix compiler warning.
6853         (arm_output_epilogue): Use offsets->saved_regs_mask.
6854         Adjust stack pointer by poping call clobered registers.
6855         (arm_expand_prologue): Use offsets->saved_regs_mask.
6856         Adjust stack pointer by pushing extra registers.
6857         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6858
6859 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6860
6861         PR tree-opt/35422
6862         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6863         conversion to the operands of a multiplication.
6864
6865 2008-03-12  Richard Guenther  <rguenther@suse.de>
6866
6867         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6868         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6869         * timevar.def (TV_TREE_PHIPROP): Add.
6870         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6871         pass description.  Use TV_TREE_PHIPROP.
6872         * tree-ssa-forwprop.c: Remove phiprop code.
6873
6874 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6875
6876         PR middle-end/35549
6877         * omp-low.c (maybe_lookup_decl): Constify first argument.
6878         (use_pointer_for_field): Change last argument from bool to
6879         omp_context *.  Disallow shared copy-in/out in nested
6880         parallel if decl is shared in outer parallel too.
6881         (build_outer_var_ref, scan_sharing_clauses,
6882         lower_rec_input_clauses, lower_copyprivate_clauses,
6883         lower_send_clauses, lower_send_shared_vars): Adjust callers.
6884
6885 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
6886             Ira Rosen  <irar@il.ibm.com>
6887
6888         * tree-vectorizer.c (free_stmt_vec_info): New function.
6889         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
6890         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
6891         * tree-vectorizer.h (free_stmt_vec_info): Declare.
6892         * tree-vect-transform.c (vectorizable_conversion): Free
6893         vec_oprnds0 if it was allocated.
6894         (vect_permute_store_chain): Remove unused VECs.
6895         (vectorizable_store): Free VECs that are allocated in the..
6896         function.
6897         (vect_transform_strided_load, vectorizable_load): Likewise.
6898         (vect_remove_stores): Simplify the code.
6899         (vect_transform_loop): Move code to vect_remove_stores().
6900         Call vect_remove_stores() and free_stmt_vec_info().
6901
6902 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6903
6904         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
6905         TARGET_HPUX.  Revise comment.
6906         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
6907         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
6908         Use sr4 variant of `be' instruction when not generating PIC code.
6909         (attr_length_call): Adjust for above change.
6910
6911 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6912
6913         * ipa-reference.c (static_execute): Remove module_statics_const and
6914         associated setting code.
6915
6916 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6917
6918         PR target/35540
6919         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
6920         predicate for operand 1.
6921         (paritysi2_cmp): Use register_operand predicate for operand 2.
6922         Use earlyclobber modifier for operand 1.  Remove support for
6923         memory operands.
6924         (paritydi2_cmp): Use register_operand predicate for operand 3.
6925         Use earlyclobber modifier for operand 1.  Remove support for
6926         memory operands.
6927
6928 2008-03-11  Paul Brook  <paul@codesourcery.com>
6929             Vladimir Prus  <vladimir@codesourcery.com>
6930
6931         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
6932         (arm_compute_save_reg0_reg12_mask): Always
6933         check if register 11 must be saved.  Always safe hard frame pointer
6934         when frame_pointer_needeed.
6935         (arm_compute_save_reg_mask): Save IP and PC
6936         only with apcs frames.
6937         (arm_output_epilogue): Adjust Thumb2 codepath to
6938         be also invoked and work for ARM non-apcs frames.
6939         (arm_expand_prologue): Don't bother saving IP
6940         for non-apcs frame, since it's not clobbered by
6941         prologue code.  Implement non-apcs frame
6942         layout.
6943
6944 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
6945
6946         PR rtl-optimization/35281
6947         * expr.c (convert_move): Use a new pseudo for the intermediate
6948         from_mode->word_mode result.
6949
6950 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
6951
6952         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
6953         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
6954         * toplev.c (compile_file): Don't call it.
6955
6956 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6957
6958         PR middle-end/35526
6959         * expr.c (store_expr): Call emit_block_move if the mode
6960         of "temp" RTX is BLKmode.
6961
6962 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6963             Richard Guenther  <rguenther@suse.de>
6964
6965         PR tree-optimization/31358
6966         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
6967         the step with a NULL_TREE.
6968         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
6969         to sizetype if type is a pointer type.
6970         (add_candidate_1): Don't convert the base and step to
6971         the generic type if the orginal type is a pointer type.
6972         (add_iv_value_candidates): Use sizetype for the step
6973         if type is a pointer type.
6974         (cand_value_at): Likewise.
6975         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
6976         for pointer types.
6977         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
6978         Don't convert the tem affine to the type.
6979         (add_elt_to_tree): Use sizetype for the step if a pointer.
6980         Use POINTER_PLUS_EXPR for pointers.
6981         (aff_combination_to_tree): Use sizetype for the step if a
6982         pointer.
6983
6984 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
6985
6986         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
6987         Remove commutativity hint.
6988
6989 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
6990
6991         PR c/35438
6992         PR c/35439
6993         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
6994         errorneous type.  Check that v is a VAR_DECL.
6995
6996         PR middle-end/35099
6997         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
6998
6999 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
7000
7001         PR tree-optimization/35494
7002         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
7003         may be overriden at link and run time.
7004
7005 2008-03-10  Richard Guenther  <rguenther@suse.de>
7006
7007         PR tree-optimization/34677
7008         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
7009         (poolify_tree): Likewise.
7010         (modify_expr_template): Likewise.
7011         (poolify_modify_stmt): Likewise.
7012         (insert_fake_stores): Handle all component-ref style stores
7013         in addition to INDIRECT_REF.  Also handle complex types.
7014         Do not poolify the inserted load.
7015         (realify_fake_stores): Do not rebuild the tree but only
7016         make it a SSA_NAME copy.
7017         (init_pre): Remove initialzation of modify_expr_template.
7018         Do not allocate modify_expr_node_pool.
7019         (fini_pre): Do not free modify_expr_node_pool.
7020
7021 2008-03-10  Paul Brook  <paul@codesourcery.com>
7022
7023         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7024         to avoid conflicts.
7025
7026 2008-03-10  Paul Brook  <paul@codesourcery.com>
7027             Mark Shinwell  <shinwell@codesourcery.com>
7028
7029         * config/arm/cortex-r4.md: New.
7030         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7031         insn attributes.
7032         * config/arm/arm.md: Include cortex-r4.md.
7033         (insn): Add smmls, sdiv and udiv values.
7034         (generic_sched): Don't use generic scheduling for Cortex-R4.
7035         (arm_issue_rate): New function.
7036         (TARGET_SCHED_ISSUE_RATE): Define.
7037
7038 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7039
7040         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7041
7042 2008-03-10  Richard Guenther  <rguenther@suse.de>
7043
7044         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7045         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7046
7047 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7048
7049         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7050         Set default to true.
7051
7052 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7053
7054         * c.opt (Wsynth): Deprecate.
7055         * doc/invoke.texi (Option Summary, Warning Options): Document
7056         -Wno-format-contains-nul.
7057
7058 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7059
7060         PR target/35496
7061         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7062         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7063
7064 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7065
7066         * config/rs6000/rs6000.c (builtin_description): Rename vector
7067         left shift operations.
7068         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7069         (altivec_vsl<VI_char>): Rename to ...
7070         (ashl<mode>3): ... new name.
7071         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7072         gen_ashlv4si3.
7073         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7074
7075 2008-03-08  Richard Guenther  <rguenther@suse.de>
7076
7077         * coverage.h (tree_coverage_counter_addr): Declare.
7078         * coverage.c (tree_coverage_counter_addr): New function.
7079         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7080         before using again.
7081         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7082         (tree_gen_one_value_profiler): Likewise.
7083         (tree_gen_ic_profiler): Likewise.
7084         (tree_gen_average_profiler): Likewise.
7085         (tree_gen_ior_profiler): Likewise.
7086
7087 2008-03-08  Richard Guenther  <rguenther@suse.de>
7088
7089         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7090         (vn_binary_op_insert): Likewise.
7091         (vn_unary_op_lookup): Likewise.
7092         (vn_unary_op_insert): Likewise.
7093         (vn_nary_op_lookup): Declare.
7094         (vn_nary_op_insert): Likewise.
7095         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7096         and binary hashes, use a single obstack for unary_op_pool
7097         and binary_op_pool.
7098         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7099         a single struct vn_nary_op_s.  Store tree code length and
7100         a variable number of operands.
7101         (struct vn_reference_op_struct): Remove unused op2.
7102         (vn_reference_op_eq): Do not compare op2.
7103         (vn_reference_op_compute_hash): Do not compute hash of op2.
7104         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7105         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7106         with vn_nary_op_compute_hash.
7107         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7108         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7109         vn_nary_op_lookup.
7110         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7111         vn_nary_op_insert.
7112         (visit_unary_op): Call nary functions.
7113         (visit_binary_op): Likewise.
7114         (process_scc): Adjust for struct vn_tables_s changes.
7115         (allocate_vn_table): Likewise.
7116         (free_vn_table): Likewise.
7117         * tree-vn.c (vn_add): Call nary functions.
7118         (vn_lookup): Likewise.
7119
7120 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7121
7122         PR target/35498
7123         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7124         wdst back after sync_compare_and_swapqhi_internal.
7125
7126 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7127
7128         PR target/22152
7129         * config/i386/i386-modes.def (V1DI): New vector mode.
7130         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7131         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7132         (MMXMODE248): Ditto.
7133         (MMXMODE): Add V1DI mode.
7134         (mmxvecsize): Change DI mode to V1DI mode.
7135         ("mov<mode>): Use MMXMODEI8 mode iterator.
7136         ("*mov<mode>_internal_rex64"): Ditto.
7137         ("*mov<mode>_internal"): Ditto.
7138         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7139         ("mmx_sub<mode>3"): Ditto.
7140         ("mmx_adddi3"): Remove insn pattern.
7141         ("mmx_subdi3"): Ditto.
7142         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7143         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7144         ("mmx_ashl<mode>3"): Ditto.
7145         ("mmx_lshrdi3"): Remove insn pattern.
7146         ("mmx_ashldi3"): Ditto.
7147         * config/i386/i386.c (classify_argument): Handle V1DImode.
7148         (function_arg_advance_32): Ditto.
7149         (function_arg_32): Ditto.
7150         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7151         mmx_addv1di3 insn pattern.
7152         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7153         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7154         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7155         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7156         Remove definitions of built-in functions.
7157         (V1DI_type_node): New node.
7158         (v1di_ftype_v1di_int): Ditto.
7159         (v1di_ftype_v1di_v1di): Ditto.
7160         (v2si_ftype_v2si_si): Ditto.
7161         (v4hi_ftype_v4hi_di): Remove node.
7162         (v2si_ftype_v2si_di): Ditto.
7163         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7164         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7165         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7166         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7167         Add new builtins using def_builtin_const.
7168         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7169         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7170         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7171         * config/i386/mmintrin.h (__v1di): New typedef.
7172         (_mm_add_si64): Cast arguments to __v1di type.
7173         (_mm_sub_si64): Ditto.
7174         (_mm_sll_pi16): Cast __count to __v4hi type.
7175         (_mm_sll_pi32): Cast __count to __v2si type.
7176         (_mm_sll_si64): Cast arguments to __v1di type.
7177         (_mm_srl_pi16): Cast __count to __v4hi type.
7178         (_mm_srl_pi32): Cast __count to __v2si type.
7179         (_mm_srl_si64): Cast arguments to __v1di type.
7180         (_mm_sra_pi16): Cast __count to __v4hi type.
7181         (_mm_sra_pi32): Cast __count to __v2si type.
7182         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7183         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7184         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7185         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7186         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7187         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7188         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7189         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7190         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7191         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7192         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7193         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7194
7195 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7196
7197         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7198
7199 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7200
7201         PR target/35373
7202         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7203         reg+const addressing for Altivec modes.  Don't generate reg+reg
7204         addressing for TFmode or TDmode quantities.
7205
7206 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7207
7208         * c-common.c (vector_types_convertible_p): Call langhook
7209         instead of comptypes.
7210
7211 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7212
7213         PR tree-opt/35402
7214         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7215         integral and scalar float variables which have a
7216         NULL DECL_INITIAL.
7217
7218 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7219
7220         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7221         dwarf_register_span hook when emitting unwind information for
7222         register-to-memory saves.
7223         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7224         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7225
7226 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7227
7228         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7229         for the same VAR_DECL.
7230
7231 2008-03-06  Tom Tromey  <tromey@redhat.com>
7232
7233         * treelang: Delete.
7234         * doc/standards.texi (Standards): Don't mention treelang.
7235         * doc/invoke.texi (Overall Options): Don't mention treelang.
7236         * doc/install.texi (Prerequisites): Don't mention bison or
7237         treelang.
7238         (Configuration): Don't mention treelang.
7239         (Building): Likewise.
7240         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7241
7242 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7243
7244         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7245         word-extractions out of a multi-word object.
7246
7247 2008-03-06  Richard Guenther  <rguenther@suse.de>
7248
7249         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7250         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7251         result type and precision.
7252         * expr.c (get_inner_reference): Set unsignedp based on the result
7253         type of BIT_FIELD_REF.
7254         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7255         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7256         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7257         for BIT_FIELD_REF.
7258         (sra_build_assignment): Likewise.
7259         (sra_build_elt_assignment): Likewise.
7260         (sra_explode_bitfield_assignment): Likewise.
7261         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7262         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7263         set BIT_FIELD_REF_UNSIGNED.
7264         (vectorizable_load): Likewise.
7265
7266 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7267
7268         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7269         at bb start.
7270
7271 2008-03-06  Richard Guenther  <rguenther@suse.de>
7272
7273         * alias.c (struct alias_set_entry): Move has_zero_child field
7274         to pack with alias_set.
7275
7276 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7277
7278         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7279         32bit host.
7280
7281 2008-03-05  Ian Lance Taylor  <iant@google.com>
7282
7283         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7284
7285 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7286
7287         * fwprop.c (update_df): Support width and offset parameters of
7288         df_ref_create.
7289         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7290         global_conflicts): Change DF_REF_EXTRACT to either
7291         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7292         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7293         * df-scan.c (df_ref_record, df_defs_record,
7294         df_ref_create_structure, df_def_record_1, df_uses_record,
7295         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7296         df_bb_refs_collect, df_entry_block_defs_collect,
7297         df_exit_block_uses_collect): Support new width and offset fields.
7298         (ref_extract_pool): New storage pool.
7299         (df_free_ref): New function.
7300         (df_reg_chain_unlink, df_free_collection_rec,
7301         df_sort_and_compress_refs): Call df_free_ref.
7302         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7303         of df_ref_extract.
7304         (df_ref_create_structure): Allocate df_ref_extract if offset and
7305         width fields are used.
7306         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7307         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7308         and SIGN_EXTRACT.
7309         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7310         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7311         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7312         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7313         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7314         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7315         (df_ref_extract): New structure.
7316         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7317         (df_ref_create): Add width and offset parameters.
7318         
7319 2008-03-05  Richard Guenther  <rguenther@suse.de>
7320
7321         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7322         Use ranges_overlap_p.
7323         (offset_overlaps_with_access): Rename
7324         to ranges_overlap_p and move ...
7325         * tree-flow-inline.h (ranges_overlap_p): ... here.
7326
7327         * tree.h (get_inner_reference, handled_component_p): Update
7328         comments.
7329
7330         * tree.h (record_component_aliases, get_alias_set,
7331         alias_sets_conflict_p, alias_sets_must_conflict_p,
7332         objects_must_conflict_p): Move declarations ...
7333         * alias.h (record_component_aliases, get_alias_set,
7334         alias_sets_conflict_p, alias_sets_must_conflict_p,
7335         objects_must_conflict_p): ... here.
7336         Include coretypes.h.
7337         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7338
7339 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7340
7341         * cfg.c: Include tree-flow.h.
7342         (remove_edge_raw): Call redirect_edge_var_map_clear.
7343         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7344         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7345         (redirect_edge_var_map_result): New.
7346         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7347         PENDING_STMT use with redirect_edge_var_map_*.
7348         * tree-ssa.c (edge_var_maps): New definition.
7349         (redirect_edge_var_map_add): New.
7350         (redirect_edge_var_map_clear): New.
7351         (redirect_edge_var_map_dup): New.
7352         (redirect_edge_var_map_vector): New.
7353         (redirect_edge_var_map_destroy): New.
7354         (ssa_redirect_edge): Replace PENDING_STMT use with
7355         redirect_edge_var_map_*.
7356         (flush_pending_stmts): Same.
7357         (delete_tree_ssa): Destroy edge var map.
7358         * tree-flow.h (struct _edge_var_map): New.
7359         Define edge_var_map vector type.
7360         Declare redirect_edge_var_map_* prototypes.
7361         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7362         * tree-cfg.c (reinstall_phi_args): Replace
7363         PENDING_STMT use with redirect_edge_var_map_*.
7364
7365 2008-03-05  Richard Guenther  <rguenther@suse.de>
7366
7367         PR tree-optimization/35472
7368         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7369         whose single use_stmt has a overlapping set of loaded and
7370         stored symbols as that use_stmt might be a noop assignment then.
7371
7372 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7373
7374         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7375
7376 2008-03-05  Richard Guenther  <rguenther@suse.de>
7377
7378         PR c++/35336
7379         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7380         should be constants.
7381         * tree-cfg.c (verify_expr): Verify it.
7382         * fold-const.c (fold_truthop): Remove code generating
7383         BIT_FIELD_REFs of structure bases.
7384         (fold_binary): Likewise.
7385         (fold_ternary): Position and size of BIT_FIELD_REFs are
7386         always host integers.
7387         (make_bit_field_ref): Remove.
7388         (optimize_bit_field_compare): Remove.
7389         (all_ones_mask_p): Remove.
7390
7391 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7392
7393         PR gcc/33009
7394         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7395         (split_block_and_df_analyze): New. Split basic block and rebuild
7396         dataflow.
7397         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7398         SPLIT_BLOCK.
7399         (split_pattern_seq): Likewise.
7400         (erase_matching_seqs): Likewise.
7401         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7402
7403 2008-03-04  Geoff Keating  <geoffk@apple.com>
7404
7405         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7406         declaration and code.
7407         (tree_invalid_nonnegative_warnv_p): Likewise.
7408
7409 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7410
7411         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7412         examples.  Truncate option-names then causing overfull hbox.
7413
7414 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7415
7416         PR target/35222
7417         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7418         on hpux10.
7419         * configure: Rebuilt.
7420
7421 2008-03-04  Rafael Espindola  <espindola@google.com>
7422
7423         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7424         (tree_unary_nonnegative_warnv_p): New.
7425         (tree_binary_nonnegative_warnv_p): New.
7426         (tree_single_nonnegative_warnv_p): New.
7427         (tree_invalid_nonnegative_warnv_p): New.
7428         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7429
7430 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7431
7432         PR 28322
7433         * opts.c (handle_option): Postpone 'unknown option' errors only for
7434         warning options.
7435
7436 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7437
7438         PR target/35453
7439         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7440         (_SIDD_XXX): This.
7441
7442 2008-03-04  Rafael Espindola  <espindola@google.com>
7443
7444         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7445         (tree_binary_nonzero_warnv_p): New.
7446         (tree_single_nonzero_warnv_p): New.
7447         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7448
7449 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7450
7451         PR middle-end/35456
7452         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7453         transformations for modes that have signed zeros.
7454         * ifcvt.c (noce_try_abs): Ditto.
7455
7456 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7457
7458         * config/i386/i386.c (override_options): Force
7459         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7460
7461 2008-03-04  Jan Hubicka  <jh@suse.cz>
7462
7463         PR c++/35262
7464         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7465         in last commit.
7466
7467 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7468
7469         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7470         label to probe the stack.
7471
7472 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7473
7474         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7475         (__gthr_win32_mutex_destroy): Declare.
7476         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7477         __gthr_win32_mutex_destroy.
7478         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7479
7480 2008-03-03  Jan Hubicka  <jh@suse.cz>
7481
7482         PR c++/35262
7483         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7484         aggressive on inlining cold calls.
7485
7486 2008-03-03  Richard Guenther  <rguenther@suse.de>
7487
7488         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7489         struct copies into the expression table.
7490         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7491         (try_to_simplify): Likewise.
7492         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7493         integral and pointer arguments which do not change the
7494         precision to NOP_EXPRs.
7495         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7496         VIEW_CONVERT_EXPR case.
7497
7498 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7499
7500         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7501         defined in a loop at depth 0 is invariant.
7502         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7503         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7504         be called at loop depth 0.
7505
7506 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7507
7508         PR driver/35420
7509         * gcc.c (process_command): Update copyright notice dates.
7510         * gcov.c (print_version): Likewise.
7511         * gcov-dump.c (print_version): Likewise.
7512         * mips-tfile.c (main): Likewise.
7513         * mips-tdump.c (main): Likewise.
7514
7515 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7516
7517         PR 24924
7518         * c-common.c (flag_permissive): Delete.
7519         (constant_expression_warnings): Check flags first.
7520         (constant_expression_error): New.
7521         * c-common.h (flag_permissive): Delete.
7522         (constant_expression_error): Declare.
7523         * flags.h (flag_permissive): Declare. Update description.
7524         * diagnostic.c (pedwarn): Update.
7525         (permerror): New.
7526         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7527         (permissive_error_kind): New.
7528         * toplev.c (flag_permissive): Define. Update description.
7529         * toplev.h (permissive_error_kind): Declare.
7530         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7531         (pedwarn_c90): Use pedantic_warning_kind.
7532         * c-opts.c (c_common_post_options): flag_permissive does not affect
7533         flag_pedantic_errors.
7534
7535 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7536
7537         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7538         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7539         __absvsi2, __absvDI2): Use unsigned arithmetic.
7540
7541 2008-03-02  Andi Kleen  <ak@suse.de>
7542             Richard Guenther  <rguenther@suse.de>
7543
7544         * struct-equiv.c: Remove file.
7545         * cfg_cleanup.c (condjump_equiv_p): Remove.
7546         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7547         (struct-equiv.o): Remove rule.
7548         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7549         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7550         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7551
7552 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7553
7554         * ifcvt.c (noce_process_if_block): Try to handle only the then
7555         block if the else block exists but isn't suitable.
7556
7557 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7558
7559         PR gcc/35063
7560         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7561         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7562         regression from previous patch.
7563
7564 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7565
7566         PR gcc/35063
7567         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7568         implemented.
7569         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7570         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7571         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7572         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7573         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7574         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7575         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7576         (__gthread_mutex_destroy_function): Rename to
7577         __gthread_mutex_destroy.
7578         * gthr-dce.h (__gthread_mutex_destroy): Call
7579         pthread_mutex_destroy.
7580         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7581         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7582         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7583
7584 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7585
7586         * df-scan.c (df_ref_chain_change_bb): Simplify.
7587         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7588         set_block_for_insn if there's any change.
7589         * df.h ((df_insn_change_bb): Fix prototype.
7590         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7591         df_insn_change_bb, don't call set_block_for_insn.
7592         * emit-rtl.c (reorder_insns): Likewise.
7593         * haifa-sched.c (move_insn): Likewise.
7594
7595 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7596
7597         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7598
7599 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7600
7601         * tree-flow-inline.h (next_readonly_imm_use): Return
7602         NULL_USE_OPERAND_P after the end.
7603
7604 2008-03-01  Richard Guenther  <rguenther@suse.de>
7605
7606         PR tree-optimization/35411
7607         * tree-sra.c (sra_build_assignment): Split conversion to
7608         final type to a separate statement if we are not assigning
7609         to a register.
7610
7611 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7612
7613         * fold-const.c (fold_convertible_p): Correct the logic to follow
7614         that in fold_convert().
7615
7616 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7617
7618         PR c++/35315
7619         * tree-inline.c (build_duplicate_type): When we make a
7620         duplicate type, make it unique in the canonical types system.
7621
7622 2008-02-29  Tom Tromey  <tromey@redhat.com>
7623
7624         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7625         input_file_stack_history, input_file_stack_restored): Remove.
7626         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7627         * input.h (struct file_stack): Remove.
7628         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7629         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7630         Likewise.
7631         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7632         type.
7633         (diagnostic_last_module_changed): Add 'map' argument.
7634         (diagnostic_set_last_function): Likewise.
7635         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7636         line map, not input_file_stack.
7637         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7638
7639 2008-02-29  Paul Brook  <paul@codesourcery.com>
7640
7641         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7642
7643 2008-02-29  Paul Brook  <paul@codesourcery.com>
7644
7645         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7646
7647 2008-02-29  Richard Guenther  <rguenther@suse.de>
7648
7649         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7650         vn_lookup_or_add.
7651         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7652         value for comparing for a store match.
7653         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7654         (try_to_simplify): Do not do a full-blown reference lookup.
7655
7656 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7657
7658         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7659         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7660
7661         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7662
7663 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7664
7665         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7666         strides against cache sizes.
7667
7668 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7669
7670         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7671         constant to fpul.
7672
7673 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7674
7675         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7676         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7677         is smaller than the original promoted value.
7678         (simplify_subreg): If OP is a SUBREG, try to preserve its
7679         SUBREG_PROMOTED_VAR_P information.
7680
7681 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7682
7683         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7684         (VN_INFO_GET): Allocate new objects on the obstack.
7685         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7686         for rpo_numbers_temp, for consistency.
7687         (free_scc_vn): Free the obstack.
7688
7689 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7690
7691         * doc/invoke.texi: Document -ftree-loop-distribution.
7692         * tree-loop-distribution.c: New.
7693         * tree-pass.h (pass_loop_distribution): New.
7694         * graphds.h (struct graph): Add htab_t indices.
7695         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7696         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7697         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7698         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7699         * tree-data-ref.c (debug_data_dependence_relations): New.
7700         (dump_data_dependence_relation): Also print data references.
7701         (free_data_ref): Extern.
7702         (same_access_functions): Moved...
7703         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7704         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7705         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7706         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7707         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7708         (stmts_from_loop): Skip LABEL_EXPR.
7709         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7710         New.
7711         (build_rdg): Initialize rdg->indices htab.
7712         (free_rdg, stores_from_loop, ref_base_address,
7713         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7714         have_similar_memory_accesses_1, ref_base_address_1,
7715         remove_similar_memory_refs): New.
7716         * tree-data-ref.h: Depend on tree-chrec.h.
7717         (debug_data_dependence_relations, free_data_ref): Declared.
7718         (same_access_functions): ... here.
7719         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7720         New.
7721         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7722         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7723         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7724         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7725         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7726         rdg_vertex_for_stmt): Declared.
7727         (struct rdg_edge): Add level.
7728         (RDGE_LEVEL): New.
7729         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7730         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7731         Declared.
7732         (rdg_has_similar_memory_accesses): New.
7733         * tree-vect-analyze.c: Remove unused static decls.
7734         * lambda.h (dependence_level): New.
7735         * common.opt (ftree-loop-distribution): New.
7736         * tree-flow.h (mark_virtual_ops_in_bb, 
7737         slpeel_tree_duplicate_loop_to_edge_cfg,
7738         rename_variables_in_loop): Declared.
7739         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7740         (OBJS-common): Add tree-loop-distribution.o.
7741         (tree-loop-distribution.o): New rule.
7742         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7743         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7744         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7745
7746 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7747
7748         PR target/33963
7749         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7750         other than structures and unions.
7751
7752 2008-02-28  Richard Guenther  <rguenther@suse.de>
7753
7754         Revert:
7755         2008-02-26  Richard Guenther  <rguenther@suse.de>
7756
7757         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7758         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7759         (lookup_decl_from_uid): Declare.
7760         (remove_decl_from_map): Likewise.
7761         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7762         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7763         (decl_for_uid_map): New global hashtable mapping DECL_UID
7764         to the decl tree.
7765         (init_ttree): Allocate it.
7766         (insert_decl_to_uid_decl_map): New helper function.
7767         (make_node_stat): Insert new decls into the map.
7768         (copy_node_stat): Likewise.
7769         (lookup_decl_from_uid): New function.
7770         (remove_decl_from_map): Likewise.
7771         (print_decl_for_uid_map_statistics): New helper.
7772         (dump_tree_statistics): Call it.
7773
7774         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7775         (referenced_var_iterator): Adjust.
7776         (FOR_EACH_REFERENCED_VAR): Adjust.
7777         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7778         (num_referenced_vars): Adjust.
7779         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7780         (first_referenced_var): Remove.
7781         (end_referenced_vars_p): Likewise.
7782         (next_referenced_var): Likewise.
7783         (referenced_var_iterator_set): New helper function.
7784         * tree-dfa.c (referenced_var_lookup): Adjust.
7785         (referenced_var_check_and_insert): Likewise.
7786         (remove_referenced_var): Likewise.
7787         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7788         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7789         (verify_call_clobbering): Likewise.
7790         (verify_memory_partitions): Likewise.
7791         (init_tree_ssa): Allocate bitmap instead of hashtable for
7792         referenced_vars.
7793         (delete_tree_ssa): Adjust.
7794         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7795         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7796         (compute_tag_properties): Likewise.
7797         (set_initial_properties): Likewise.
7798         (find_partition_for): Likewise.
7799         (update_reference_counts): Likewise.
7800         (dump_may_aliases_for): Likewise.
7801         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7802         (add_call_clobber_ops): Likewise.
7803         (add_call_read_ops): Likewise.
7804         (get_asm_expr_operands): Likewise.
7805         * tree-into-ssa.c (dump_decl_set): Likewise.
7806         (update_ssa): Likewise.
7807         * tree-sra.c (scan_function): Likewise.
7808         (decide_instantiations): Likewise.
7809         (scalarize_parms): Likewise.
7810         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7811         (dsa_named_for): Likewise.
7812         * tree-ssa-structalias.c (update_alias_info): Likewise.
7813         (merge_smts_into): Likewise.
7814
7815 2008-02-27  David Daney  <ddaney@avtrex.com>
7816
7817         PR target/34409
7818         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7819         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7820         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7821         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7822         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7823
7824 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7825
7826         PR target/25477
7827         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7828         (BUILT_IN_NEXTTOWARD): Remove.
7829         (BUILT_IN_NEXTTOWARDF): Ditto.
7830         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7831         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7832
7833 2008-02-27  Tom Tromey  <tromey@redhat.com>
7834
7835         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7836         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7837
7838 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7839
7840         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7841         update the respective field on newdecl.
7842
7843 2008-02-27  Revital Eres  <eres@il.ibm.com>
7844
7845         PR rtl-optimization/34999
7846         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7847         crossing edges that ends with a call insn.
7848         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7849         call insn and clear the EDGE_CROSSING flag of the crossing edge
7850         when fixing fallthru edges.
7851
7852 2008-02-27  Richard Guenther  <rguenther@suse.de>
7853
7854         PR middle-end/35390
7855         * fold-const.c (fold_unary): Return the correct argument,
7856         converted to the result type.
7857
7858 2008-02-27  Richard Guenther  <rguenther@suse.de>
7859
7860         PR middle-end/34971
7861         * expr.c (expand_expr_real_1): Assert on rotates that operate
7862         on partial modes.
7863         * fold-const.c (fold_binary): Use the types precision, not the
7864         bitsize of the mode if folding rotate expressions.  Build rotates
7865         only for full modes.
7866
7867 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7868
7869         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7870         and CPP_PRAGMA_EOL.
7871         * c-pragma.c (pragma_ns_name): New typedef.
7872         (registered_pp_pragmas): New variable.
7873         (c_pp_lookup_pragma): New function.
7874         (c_register_pragma_1): If flag_preprocess_only, do nothing
7875         for non-expanded pragmas, for expanded ones push pragma's
7876         namespace and name into registered_pp_pragmas vector.
7877         (c_invoke_pragma_handler): Register OpenMP pragmas even when
7878         flag_preprocess_only, don't register GCC pch_preprocess
7879         pragma if flag_preprocess_only.
7880         * c-opts.c (c_common_init): Call init_pragma even if
7881         flag_preprocess_only.
7882         * c-pragma.c (c_pp_lookup_pragma): New prototype.
7883         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
7884         cpp_register_pragma if flag_preprocess_only.
7885
7886 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7887
7888         PR c/28800
7889         * c-parser.c (c_parser_translation_unit): Warn for empty
7890         translation unit, not empty source file.
7891
7892 2008-02-26  Paul Brook  <paul@codesourcery.com>
7893
7894         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
7895         operand for Thumb-2.
7896         * config/arm/arm.h (reg_class): Add CORE_REGS.
7897         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
7898         (BASE_REG_CLASS): Use CORE_REGS.
7899         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
7900         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
7901         (REGNO_OK_FOR_INDEX_P): Exclude SP.
7902         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
7903         ARM_REGNO_OK_FOR_INDEX_P.
7904         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
7905         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
7906         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
7907         (ldm/stm peepholes): Ditto.
7908         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
7909         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
7910         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
7911         * config/arm/constraints.md: Enable "k" constraint on ARM.
7912
7913 2008-02-27  Ben Elliston  <bje@au.ibm.com>
7914
7915         * config/rs6000/rs6000.c: Annotate cache line size field in all
7916         instances of struct processor_costs.
7917
7918 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
7919
7920         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
7921         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
7922         jump_bypass): New counters.
7923         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
7924         * dce.c (gate_ud_dce): Same.
7925         (gate_fast_dce): Same.
7926         * dse.c (gate_dse1): New function.
7927         (gate_dse2): New function.
7928         (gate_dse): Merge results of new gate functions.
7929         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
7930         (gate_handle_jump_bypass): Add dbg_cnt.
7931         (gate_handle_gcse): Add dbg_cnt.
7932         * ifcvt.c (gate_handle_if_conversion): Same.
7933         (gate_handle_if_after_combine): Same.
7934         (gate_handle_if_after_reload): Same.
7935         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
7936
7937 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
7938
7939         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
7940         line sizes.
7941         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
7942
7943 2008-02-26  Jason Merrill  <jason@redhat.com>
7944
7945         PR c++/35315
7946         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
7947         alone if it's the naming decl for the type's main variant.
7948
7949 2008-02-26  Tom Tromey  <tromey@redhat.com>
7950
7951         * system.h (USE_MAPPED_LOCATION): Poison.
7952         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
7953         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
7954         (make_goto_expr_edges): Likewise.
7955         (remove_bb): Likewise.
7956         (execute_warn_function_return): Likewise.
7957         * basic-block.h (struct edge_def) <goto_locus>: Change type to
7958         location_t.
7959         * c-common.c (fname_decl): Remove old location code.
7960         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
7961         location code.
7962         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
7963         variant.
7964         (ASM_INPUT_SOURCE_LOCATION): Likewise.
7965         (gen_rtx_ASM_INPUT): Likewise.
7966         (gen_rtx_ASM_INPUT_loc): Likewise.
7967         (get_rtx_asm_OPERANDS): Remove.
7968         * cfglayout.c (insn_locators_alloc): Remove old location code.
7969         (set_curr_insn_source_location): Likewise.
7970         (curr_insn_locator): Likewise.
7971         * print-tree.c (print_node): Remove old location code.
7972         * tree-mudflap.c (mf_varname_tree): Remove old location code.
7973         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
7974         * cfgexpand.c (expand_gimple_cond_expr): Don't use
7975         location_from_locus.
7976         (construct_exit_block): Remove old location code.
7977         * emit-rtl.c (force_next_line_note): Remove old location code.
7978         * profile.c (branch_prob): Remove old location code.
7979         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
7980         LOC_LINE): Remove old-location variants.
7981         * langhooks.c (lhd_print_error_function): Remove old location
7982         code.
7983         * configure, config.in: Rebuilt.
7984         * configure.ac (--enable-mapped-location): Remove.
7985         * c-decl.c (c_init_decl_processing): Remove old location code.
7986         (finish_function): Likewise.
7987         * recog.c (decode_asm_operands): Remove old location code.
7988         * c-pch.c (c_common_read_pch): Remove old location code.
7989         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
7990         variants.
7991         * gimple-low.c (lower_function_body): Remove old location code.
7992         * toplev.c (unknown_location): Remove.
7993         (push_srcloc): Remove old-location variant.
7994         (process_options): Remove old location code.
7995         (lang_dependent_init): Likewise.
7996         * input.h (UNKNOWN_LOCATION): Move definition.
7997         (location_t): Undeprecate.
7998         (source_locus): Remove.
7999         (location_from_locus): Remove.
8000         (struct location_s): Remove.
8001         Remove all old-location code.
8002         (input_line, input_filename): Remove.
8003         * final.c (final_scan_insn): Remove old location code.
8004         * diagnostic.c (diagnostic_build_prefix): Remove
8005         USE_MAPPED_LOCATION test.
8006         * tree.h (gimple_stmt) <locus>: Now a location_t.
8007         (tree_exp) <locus>: Likewise.
8008         (DECL_IS_BUILTIN): Remove old-location variant.
8009         (annotate_with_file_line, annotate_with_locus): Likewise.
8010         (expr_locus, set_expr_locus): Update.
8011         * tree.c (build1_stat): Remove old location code.
8012         (last_annotated_node): Remove.
8013         (annotate_with_file_line): Remove old-location variant.
8014         (annotate_with_locus): Likewise.
8015         (expr_location): Remove old location code.
8016         (set_expr_location): Likewise.
8017         (expr_has_location): Likewise.
8018         (expr_locus): Likewise.
8019         (set_expr_locus): Likewise.
8020         (expr_filename): Don't use location_from_locus.
8021         (expr_lineno): Likewise.
8022         * rtl-error.c (location_for_asm): Remove old location code.
8023         * c-lex.c (cb_line_change): Remove old location code.
8024         (fe_file_change): Likewise.
8025         (cb_def_pragma): Likewise.
8026         (c_lex_with_flags): Likewise.
8027         * gengtype.c (do_typedef): Don't special-case location types.
8028         (define_location_structures): Remove.
8029         (main): Don't call define_location_structures.
8030         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8031         code.
8032
8033 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8034
8035         PR 26264
8036         * builtins.def (BUILT_IN_STDARG_START): Remove.
8037         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8038         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8039         * tree-inline.c (inline_forbidden_p_1): Likewise.
8040         
8041 2008-02-26  Richard Guenther  <rguenther@suse.de>
8042
8043         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8044         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8045         (lookup_decl_from_uid): Declare.
8046         (remove_decl_from_map): Likewise.
8047         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8048         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8049         (decl_for_uid_map): New global hashtable mapping DECL_UID
8050         to the decl tree.
8051         (init_ttree): Allocate it.
8052         (insert_decl_to_uid_decl_map): New helper function.
8053         (make_node_stat): Insert new decls into the map.
8054         (copy_node_stat): Likewise.
8055         (lookup_decl_from_uid): New function.
8056         (remove_decl_from_map): Likewise.
8057         (print_decl_for_uid_map_statistics): New helper.
8058         (dump_tree_statistics): Call it.
8059
8060         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8061         (referenced_var_iterator): Adjust.
8062         (FOR_EACH_REFERENCED_VAR): Adjust.
8063         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8064         (num_referenced_vars): Adjust.
8065         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8066         (first_referenced_var): Remove.
8067         (end_referenced_vars_p): Likewise.
8068         (next_referenced_var): Likewise.
8069         (referenced_var_iterator_set): New helper function.
8070         * tree-dfa.c (referenced_var_lookup): Adjust.
8071         (referenced_var_check_and_insert): Likewise.
8072         (remove_referenced_var): Likewise.
8073         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8074         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8075         (verify_call_clobbering): Likewise.
8076         (verify_memory_partitions): Likewise.
8077         (init_tree_ssa): Allocate bitmap instead of hashtable for
8078         referenced_vars.
8079         (delete_tree_ssa): Adjust.
8080         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8081         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8082         (compute_tag_properties): Likewise.
8083         (set_initial_properties): Likewise.
8084         (find_partition_for): Likewise.
8085         (update_reference_counts): Likewise.
8086         (dump_may_aliases_for): Likewise.
8087         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8088         (add_call_clobber_ops): Likewise.
8089         (add_call_read_ops): Likewise.
8090         (get_asm_expr_operands): Likewise.
8091         * tree-into-ssa.c (dump_decl_set): Likewise.
8092         (update_ssa): Likewise.
8093         * tree-sra.c (scan_function): Likewise.
8094         (decide_instantiations): Likewise.
8095         (scalarize_parms): Likewise.
8096         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8097         (dsa_named_for): Likewise.
8098         * tree-ssa-structalias.c (update_alias_info): Likewise.
8099         (merge_smts_into): Likewise.
8100
8101 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8102
8103         PR 34351
8104         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8105         * c-opts.c (c_common_handle_option): Wall enables
8106         Wvolatile-register-var.
8107         * common.opt: Move Wvolatile-register-var to...
8108         * c.opt: ...here.
8109         
8110 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8111
8112         * common.opt (Wlarger-than=): New.
8113         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8114         -Wlarger-than=.
8115         * opts.c (common_handle_option): Handle -Wlarger-than=.
8116         * optc-gen.awk: Likewise.
8117         * opth-gen.awk: Likewise.
8118         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8119         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8120         
8121 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8122
8123         * c-common.c (match_case_to_enum_1): Add appropriate
8124         OPT_W* parameter to warning.
8125         (c_do_switch_warnings): Likewise.
8126         * c-typeck.c (warning_init): Add one more parameter following
8127         'warning' function.
8128         (push_init_level): Update call to warning_init.
8129         (pop_init_level): Likewise.
8130         (add_pending_init): Likewise.
8131         (output_init_element: Likewise.
8132
8133 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8134
8135         PR 28322
8136         * toplev.c (toplev_main): If there are warnings or error, print
8137         errors for ignored options.
8138         * opts.c (ignored_options): New static variable.
8139         (postpone_unknown_option_error): New.
8140         (print_ignored_options): New.
8141         (handle_option): Postpone errors for unknown -Wno-* options.
8142         * opts.h (print_ignored_options): Declare.
8143         
8144 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8145
8146         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8147         to "ghost".
8148
8149 2008-02-25  Richard Guenther  <rguenther@suse.de>
8150
8151         Revert:
8152         2008-02-25  Richard Guenther  <rguenther@suse.de>
8153
8154         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8155         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8156         (lookup_decl_from_uid): Declare.
8157         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8158         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8159         (decl_for_uid_map): New global hashtable mapping DECL_UID
8160         to the decl tree.
8161         (init_ttree): Allocate it.
8162         (insert_decl_to_uid_decl_map): New helper function.
8163         (make_node_stat): Insert new decls into the map.
8164         (copy_node_stat): Likewise.
8165         (lookup_decl_from_uid): New function.
8166         (print_decl_for_uid_map_statistics): New helper.
8167         (dump_tree_statistics): Call it.
8168
8169         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8170         (referenced_var_iterator): Adjust.
8171         (FOR_EACH_REFERENCED_VAR): Adjust.
8172         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8173         (num_referenced_vars): Adjust.
8174         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8175         (first_referenced_var): Remove.
8176         (end_referenced_vars_p): Likewise.
8177         (next_referenced_var): Likewise.
8178         (referenced_var_iterator_set): New helper function.
8179         * tree-dfa.c (referenced_var_lookup): Adjust.
8180         (referenced_var_check_and_insert): Likewise.
8181         (remove_referenced_var): Likewise.
8182         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8183         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8184         (verify_call_clobbering): Likewise.
8185         (verify_memory_partitions): Likewise.
8186         (init_tree_ssa): Allocate bitmap instead of hashtable for
8187         referenced_vars.
8188         (delete_tree_ssa): Adjust.
8189         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8190         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8191         (compute_tag_properties): Likewise.
8192         (set_initial_properties): Likewise.
8193         (find_partition_for): Likewise.
8194         (update_reference_counts): Likewise.
8195         (dump_may_aliases_for): Likewise.
8196         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8197         (add_call_clobber_ops): Likewise.
8198         (add_call_read_ops): Likewise.
8199         (get_asm_expr_operands): Likewise.
8200         * tree-into-ssa.c (dump_decl_set): Likewise.
8201         (update_ssa): Likewise.
8202         * tree-sra.c (scan_function): Likewise.
8203         (decide_instantiations): Likewise.
8204         (scalarize_parms): Likewise.
8205         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8206         (dsa_named_for): Likewise.
8207         * tree-ssa-structalias.c (update_alias_info): Likewise.
8208         (merge_smts_into): Likewise.
8209
8210 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8211
8212         PR fortran/29549
8213         * doc/invoke.texi (-fcx-limited-range): Document new option.
8214         * toplev.c (process_options): Handle -fcx-fortran-rules.
8215         * common.opt: Add documentation for -fcx-fortran-rules.
8216
8217 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8218
8219         PR c/35162
8220         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8221         actual behaviour and C99.
8222         
8223 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8224
8225         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8226         (ASM_CPU_POWER6_SPEC): Likewise.
8227         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8228         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8229         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8230
8231 2008-02-25  Richard Guenther  <rguenther@suse.de>
8232
8233         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8234         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8235         (lookup_decl_from_uid): Declare.
8236         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8237         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8238         (decl_for_uid_map): New global hashtable mapping DECL_UID
8239         to the decl tree.
8240         (init_ttree): Allocate it.
8241         (insert_decl_to_uid_decl_map): New helper function.
8242         (make_node_stat): Insert new decls into the map.
8243         (copy_node_stat): Likewise.
8244         (lookup_decl_from_uid): New function.
8245         (print_decl_for_uid_map_statistics): New helper.
8246         (dump_tree_statistics): Call it.
8247
8248         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8249         (referenced_var_iterator): Adjust.
8250         (FOR_EACH_REFERENCED_VAR): Adjust.
8251         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8252         (num_referenced_vars): Adjust.
8253         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8254         (first_referenced_var): Remove.
8255         (end_referenced_vars_p): Likewise.
8256         (next_referenced_var): Likewise.
8257         (referenced_var_iterator_set): New helper function.
8258         * tree-dfa.c (referenced_var_lookup): Adjust.
8259         (referenced_var_check_and_insert): Likewise.
8260         (remove_referenced_var): Likewise.
8261         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8262         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8263         (verify_call_clobbering): Likewise.
8264         (verify_memory_partitions): Likewise.
8265         (init_tree_ssa): Allocate bitmap instead of hashtable for
8266         referenced_vars.
8267         (delete_tree_ssa): Adjust.
8268         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8269         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8270         (compute_tag_properties): Likewise.
8271         (set_initial_properties): Likewise.
8272         (find_partition_for): Likewise.
8273         (update_reference_counts): Likewise.
8274         (dump_may_aliases_for): Likewise.
8275         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8276         (add_call_clobber_ops): Likewise.
8277         (add_call_read_ops): Likewise.
8278         (get_asm_expr_operands): Likewise.
8279         * tree-into-ssa.c (dump_decl_set): Likewise.
8280         (update_ssa): Likewise.
8281         * tree-sra.c (scan_function): Likewise.
8282         (decide_instantiations): Likewise.
8283         (scalarize_parms): Likewise.
8284         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8285         (dsa_named_for): Likewise.
8286         * tree-ssa-structalias.c (update_alias_info): Likewise.
8287         (merge_smts_into): Likewise.
8288
8289 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8290
8291         PR target/35258
8292         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8293         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8294         * alias.h (nonoverlapping_memrefs_p): Likewise.
8295
8296 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8297
8298         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8299         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8300         __emultls_get_address, __emultls_register_common,
8301         __floatundi?f, and _Unwind_GetIPInfo.
8302         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8303         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8304         (gen_regparm_prefix): Likewise.
8305         (i386_nlm_encode_section_info): Sync with
8306         config/i386/winnt.c:i386_pe_encode_section_info().
8307         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8308         i386_nlm_mangle_decl_assembler_name): New.
8309         (netware_override_options): New.
8310         * config/i386/netware.h (netware_override_options): Declare.
8311         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8312         (i386_nlm_mangle_decl_assembler_name): Declare.
8313         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8314
8315 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8316
8317         PR other/32948
8318         * c-decl.c (grokdeclarator): Remove unused local variables
8319         `typedef_type' and `type_as_written'.
8320         * bb-reorder.c
8321         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8322         unused local variable `has_hot_blocks'.
8323         (fix_crossing_conditional_branches): Remove unused local variable
8324         `prev_bb'.
8325         
8326 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8327
8328         PR middle-end/19984
8329         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8330         using DEF_C99_BUILTIN.
8331         (BUILT_IN_NANF): Ditto.
8332         (BUILT_IN_NANL): Ditto.
8333
8334 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8335             Revital Eres  <eres@il.ibm.com>
8336
8337         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8338         regarding the order of two dependent insns in the same row.
8339
8340 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8341
8342         * stor-layout.c (layout_decl): Do not bump the alignment of a
8343         bit-field to more than byte alignment if it is packed.
8344
8345 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8346
8347         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8348         e300c2 and e300c3.
8349
8350 2008-02-24  Diego Novillo  <dnovillo@google.com>
8351
8352         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8353
8354         PR 33738
8355         * tree-vrp.c (vrp_evaluate_conditional): With
8356         -Wtype-limits, emit a warning when comparing against a
8357         constant outside the natural range of OP0's type.
8358         * c.opt (Wtype-limits): Move ...
8359         * common.opt (Wtype-limits): ... here.
8360
8361 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8362
8363         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8364         * config/rs6000/e300c2c3.md: New file.
8365         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8366         e300c2 and e300c3.
8367         (rs6000_override_options): Add e300c2 and e300c3 cases to
8368         processor_target_table. Do not allow usage of Altivec or Spe
8369         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8370         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8371         * config/rs6000/rs6000.h (processor_type): Add
8372         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8373         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8374         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8375         and ppce300c3. Include e300c2c3.md.
8376
8377 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8378
8379         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8380         instead of TARGET_STRICT_ALIGN.
8381
8382 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8383
8384         * explow.c (memory_address): Assert that the generated address is
8385         valid.
8386
8387 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8388
8389         PR target/25477
8390         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8391         * config/darwin-ppc-ldouble-patch.def: New file.
8392         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8393         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8394         SUBTARGET_INIT_BUILTINS if defined.
8395         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8396         New functions.
8397
8398 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8399
8400         PR rtl-opt/33512
8401         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8402         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8403
8404 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8405
8406         PR pch/35027
8407         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8408         file" warning condtional on -Winvalid-PCH.
8409
8410 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8411
8412         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8413
8414 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8415
8416         PR target/22076
8417         PR target/34256 
8418         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8419         prevent reload from using MMX registers.
8420         (*mov<mode>_internal): Ditto.
8421         (*movv2sf_internal_rex64): Ditto.
8422         (*movv2sf_internal): Ditto.
8423
8424 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8425
8426         PR documentation/31569
8427         * doc/install.texi2html: Use makeinfo --no-number-sections.
8428
8429 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8430
8431         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8432         ensure that we can address an entire entity > 8 bytes.  Don't
8433         generate reg+reg addressing for such data.
8434
8435 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8436
8437         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8438         strings when optimizing for size, unless the target cares about
8439         alignment.
8440
8441 2008-02-22  Tom Tromey  <tromey@redhat.com>
8442
8443         * regclass.c (current_pass): Remove declaration.
8444
8445 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8446
8447         * config/avr/libgcc.S (__RAMPZ__): Define.
8448         (__do_copy_data): Add for devices with 128KB code memory.
8449
8450 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8451
8452         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8453         Use spe_abi.
8454         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8455
8456 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8457
8458         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8459         GENNONACR_REGS.
8460
8461 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8462
8463         PR c/19999
8464         * c-typeck.c (build_binary_op): Warn about floating point
8465         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8466
8467 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8468
8469         PR target/34526
8470         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8471         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8472         add vrsave.
8473         (rs6000_override_options): Set altivec_abi as default, not override,
8474         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8475         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8476         is used; use new member spe_abi.
8477         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8478         spe_abi and altivec_abi.
8479
8480 2008-02-22  Tomas Bily  <tbily@suse.cz>
8481
8482         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8483
8484 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8485
8486         PR bootstrap/35273
8487         * config.build (build_file_translate): Set to `CMD //c' only if
8488         it works.
8489         * Makefile.in (build_file_translate): Improve comment.
8490
8491 2008-02-21  Jan Hubicka  <jh@suse.cz>
8492
8493         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8494         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8495         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8496
8497 2008-02-21  Michael Matz  <matz@suse.de>
8498
8499         PR target/35264
8500         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8501
8502 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8503
8504         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8505         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8506         as insn constraint.
8507         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8508         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8509         SSE_VEC_FLOAT_MODE_P as insn constraint.
8510         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8511         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8512         sse4a_movntdf using MODEF mode iterator.
8513         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8514         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8515         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8516         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8517         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8518         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8519         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8520
8521 2008-02-21  Richard Guenther  <rguenther@suse.de>
8522
8523         * tree.def (PAREN_EXPR): New tree code.
8524         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8525         and PAREN_EXPR.
8526         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8527         * expr.c (expand_expr_real_1): Likewise.
8528         * tree-inline.c (estimate_num_insns_1): Likewise.
8529         * tree-complex.c (expand_complex_move): Likewise.
8530         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8531         as plain x.
8532
8533 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8534
8535         PR target/35225
8536         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8537
8538 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8539
8540         PR target/35190
8541         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8542
8543         * config/sh/sh.c (find_barrier): Don't go past
8544         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8545
8546 2008-02-20  DJ Delorie  <dj@redhat.com>
8547
8548         * config/h8300/h8300.md (insv): Force source operand to be a register.
8549
8550         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8551         as a jump, not as a plain insn.
8552         
8553 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8554
8555         * doc/invoke.texi (Warning Options): Add new option
8556         -Wframe-larger-than=.
8557         (-Wframe-larger-than): Document.
8558
8559         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8560         Add declarations for new option variables.
8561
8562         * final.c (final_start_function): Check the frame size
8563         before emission and issue a Wframe-larger-than warning.
8564
8565         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8566         Add definitions for new option variables.
8567         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8568
8569         * common.opt (Wframe-larger-than=): New option.
8570
8571 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8572
8573         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8574         (<sse>_div<mode>3): Ditto.
8575         (<sse>_vmdiv<mode>3): Ditto.
8576         (<sse>_vmsqrt<mode>2): Ditto.
8577         (*smax<mode>3): Ditto.
8578         (sse5_frcz<mode>2): Ditto.
8579         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8580         as insn constraint.
8581
8582 2008-02-20  Richard Guenther  <rguenther@suse.de>
8583
8584         PR middle-end/35265
8585         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8586         be happy with INTEGRAL_TYPE_P.
8587
8588 2008-02-20  Richard Guenther  <rguenther@suse.de>
8589
8590         * fold-const.c (split_tree): Associate floatig-point expressions
8591         if flag_associative_math is set.
8592
8593 2008-02-20  Richard Guenther  <rguenther@suse.de>
8594
8595         * tree.h (fold_real_zero_addition_p): Declare.
8596         * fold-const.c (fold_real_zero_addition_p): Export.
8597         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8598         floating-point operations with zero and one.
8599
8600 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8601
8602         * doc/install.texi: Correct references to CFLAGS, replacing them
8603         with BOOT_CFLAGS.  Document flags used during bootstrap for
8604         target libraries.
8605                                 
8606 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8607
8608         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8609         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8610         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8611         insn constraint.
8612         (smin<mode>3): Ditto from similar patterns.
8613         (smax<mode>3): Ditto.
8614         (*ieee_smin<mode>3): Ditto.
8615         (*ieee_smax<mode>3): Ditto.
8616         * config/i386/sse.md (sse): New mode attribute.
8617         (mov<mode>): Macroize expander from movv4sf and movv2df using
8618         SSEMODEF2P mode iterator.
8619         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8620         SSE_VEC_FLOAT_MODE_P as insn constraint.
8621         (storent<mode>): Ditto.
8622         (storent<mode>): Macroize expander from storentsf and storentdf using
8623         MODEF mode iterator.
8624         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8625         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8626         (abs<mode>2): Ditto from similar patterns.
8627         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8628         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8629         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8630         (<sse>_vmsqrt<mode>2): Ditto.
8631         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8632         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8633         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8634         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8635         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8636         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8637         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8638         insn constraint.
8639         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8640         iterator and SSE_FLOAT_MODE_P as insn constraint.
8641         (<sse>_ucomi): Ditto from similar patterns.
8642         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8643         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8644         SSE_VEC_FLOAT_MODE_P as insn constraint.
8645         (vcond<mode>): Ditto from similar patterns.
8646         (and<mode>3, *and<mode>3): Ditto.
8647         (<sse>_nand<mode>3): Ditto.
8648         (ior<mode>3, *ior<mode>3): Ditto.
8649         (xor<mode>3, *xor<mode>3): Ditto.
8650         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8651         iterator and SSE_FLOAT_MODE_P as insn constraint.
8652         (*nand<mode>3): Ditto from similar patterns.
8653         (*ior<mode>3): Ditto.
8654         (*xor<mode>3): Ditto.
8655
8656 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8657
8658         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8659         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8660         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8661
8662 2008-02-19  Jan Hubicka  <jh@suse.cz>
8663
8664         * predict.c (tree_bb_level_predictions): Remove variable next
8665         mistakely introduced by previous commit.
8666
8667 2008-02-19  Jan Hubicka  <jh@suse.cz>
8668
8669         * predict.c (predict_paths_leading_to): Rewrite.
8670         (predict_paths_for_bb): New.
8671         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8672
8673 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8674
8675         PR bootstrap/35218
8676         * Makefile.in (build_file_translate): New.
8677         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8678         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8679         * configure.ac (build_file_translate): Substitute it.
8680         * configure: Regenerate.
8681
8682 2008-02-19  Jan Hubicka  <jh@suse.cz>
8683
8684         PR rtl-optimization/34408
8685         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8686         invalid sharing.
8687
8688 2008-02-19  Jan Hubicka  <jh@suse.cz>
8689
8690         PR middle-end/28779
8691         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8692         call_expr.
8693
8694 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8695
8696         PR Ada/35186
8697         * config/i386/i386-modes.def: Revert the last DI alignment
8698         change until Ada people can look into it.
8699
8700 2008-02-19  Nick Clifton  <nickc@redhat.com>
8701
8702         * opts.c (print_specific_help): Fix typo in --help text.
8703
8704 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8705
8706         PR target/35239
8707         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8708         32-bit inline asm without asm alternatives for host GCC < 3.0.
8709
8710 2008-02-19  Richard Guenther  <rguenther@suse.de>
8711
8712         PR tree-optimization/34989
8713         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8714         Allow propagation to INDIRECT_REF if we can simplify only.
8715
8716 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8717
8718         * c-common.c (warn_for_collisions_1): Use appropriate option when
8719         warning.
8720
8721 2008-02-19  Nick Clifton  <nickc@redhat.com>
8722
8723         PR other/31349
8724         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8725         (handle_options): Fix indentation.
8726         (print_filtered_help): If no language-specific options were
8727         displayed tell the user how to list all the options supported by
8728         the language's front-end.
8729         (print_specific_help): Fix indentation and remove duplicate line.
8730         (common_handle_option): Handle the -v option.
8731         For --help enable the display of undocumented options if the -v
8732         switch has been included on the command line.
8733         For --help= check for overlaps in the arguments between the option
8734         classes and the language names and issue a warning when they
8735         cannot be disambiguated.
8736         * c.opt (v): Pass on to the common option handler.
8737
8738 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8739
8740         * modulo-sched.c (sms_schedule): Change dump message when
8741         create_ddg function fails.
8742         (try_scheduling_node_in_cycle): Rename row to cycle.
8743         (print_partial_schedule): Rename CYCLE to ROW.
8744
8745 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8746             Zdenek Dvorak  <ook@ucw.cz>
8747
8748         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8749
8750 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8751
8752         PR target/33555
8753         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8754         (*x86_movdicc_0_m1_se): Ditto.
8755
8756 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8757
8758         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8759         (CMPtype): Define as __gcc_CMPtype.
8760         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8761         (CMPtype): Define as __gcc_CMPtype.
8762
8763 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8764
8765         Support valgrind 3.3 for --enable-checking=valgrind.
8766         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8767         here.
8768         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8769         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8770         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8771         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8772         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8773         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8774         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8775         respectively.
8776         * ggc-zone.c: Similar.
8777         * ggc-page.c: Similar.
8778
8779 2008-02-19  Paul Brook  <paul@codesourcery.com>
8780
8781         PR target/35071
8782         * config/arm/ieee754-df.S: Fix do_it typo.
8783         * config/arm/ieee754-sf.S: Fix do_it typo.
8784
8785 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8786
8787         PR target/35189
8788         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8789         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8790         (OPTION_MASK_ISA_SSE_SET): Likewise.
8791         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8792         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8793         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8794         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8795         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8796         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8797         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8798         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8799         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8800         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8801         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8802         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8803         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8804         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8805         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8806         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8807         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8808         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8809         (OPTION_MASK_ISA_SSE4): Removed.
8810         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8811         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8812         (override_options): Don't turn on implied SSE/MMX bits in
8813         ix86_isa_flags.
8814
8815 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8816
8817         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8818         32bit host.
8819
8820 2008-02-18  Joey Ye  <joey.ye@intel.com>
8821
8822         PR middle-end/34921
8823         * tree-nested.c (insert_field_into_struct): Set type alignment
8824         to field alignment if the former is less than the latter.
8825
8826 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8827
8828         * BASE-VER: Set to 4.4.0.
8829
8830 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8831
8832         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8833         * doc/cfg.texi: Likewise.
8834         * doc/extend.texi: Likewise.
8835         * doc/gty.texi: Likewise.
8836         * doc/invoke.texi: Likewise.
8837         * doc/loop.texi: Likewise.
8838         * doc/md.texi: Likewise.
8839         * doc/passes.texi: Likewise.
8840         * doc/rtl.texi: Likewise.
8841         * doc/sourcebuild.texi: Likewise.
8842         * doc/tm.texi: Likewise.
8843         * doc/tree-ssa.texi: Likewise.
8844
8845 2008-02-17  Richard Guenther  <rguenther@suse.de>
8846
8847         PR middle-end/35227
8848         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8849         without default definition.
8850
8851 2008-02-17  Richard Guenther  <rguenther@suse.de>
8852
8853         PR tree-optimization/35231
8854         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8855         if A | B != 1.
8856
8857 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8858
8859         Revert:
8860         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8861         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8862         libgcc_cmp_return mode.
8863
8864 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8865
8866         PR c/28368
8867         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8868
8869 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8870
8871         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8872         multilibs.
8873
8874 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8875
8876         * doc/c-tree.texi: Use `@.' where appropriate.
8877         * doc/extend.texi: Likewise.
8878         * doc/install.texi: Likewise.
8879         * doc/invoke.texi: Likewise.
8880         * doc/loop.texi: Likewise.
8881         * doc/makefile.texi: Likewise.
8882         * doc/md.texi: Likewise.
8883         * doc/passes.texi: Likewise.
8884         * doc/standards.texi: Likewise.
8885         * doc/tm.texi: Likewise.
8886
8887 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8888
8889         PR middle-end/35196
8890         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
8891         in entry_bb.
8892         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
8893         rather than in entry_bb.
8894
8895 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8896
8897         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8898         libgcc_cmp_return mode.
8899
8900 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8901
8902         PR middle-end/35130
8903         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
8904         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
8905
8906 2008-02-15  Richard Guenther  <rguenther@suse.de>
8907             Zdenek Dvorak  <ook@ucw.cz>
8908
8909         PR tree-optimization/35164
8910         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
8911         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
8912         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8913         Only propagate addresses which do not have abnormal SSA_NAMEs
8914         in their operands.
8915
8916 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
8917
8918         PR target/35088
8919         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
8920
8921 2008-02-15  Jan Hubicka  <jh@suse.cz>
8922
8923         PR middle-end/35149
8924         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
8925
8926 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8927
8928         PR middle-end/34621
8929         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
8930         when calculating alignment_pad.
8931
8932 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8933
8934         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
8935         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
8936         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
8937         and STACK_BOUNDARY define.
8938
8939 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
8940
8941         PR preprocessor/35061
8942         * c-pragma.c (handle_pragma_pop_macro): Check that
8943         pushed_macro_table has been allocated.
8944
8945 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
8946
8947         PR middle-end/35136
8948         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
8949         (force_gimple_operand): Likewise.
8950         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
8951         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
8952         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
8953         (find_interesting_uses_address): Check addressability and alignment
8954         of the base expression only after substituting bases of IVs into it.
8955
8956 2008-02-14  Michael Matz  <matz@suse.de>
8957
8958         PR target/34930
8959         * function.c (instantiate_virtual_regs_in_insn): Reload address
8960         before falling back to reloading the whole operand.
8961
8962 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
8963
8964         * config/s390/s390.c (s390_mainpool_start): Emit the pool
8965         before the first section switch note.
8966
8967 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8968
8969         * doc/bugreport.texi: Update copyright years.
8970         * doc/c-tree.texi: Likewise.
8971         * doc/cfg.texi: Likewise.
8972         * doc/cpp.texi: Likewise.
8973         * doc/cppinternals.texi: Likewise.
8974         * doc/fragments.texi: Likewise.
8975         * doc/frontends.texi: Likewise.
8976         * doc/gcc.texi: Likewise.
8977         * doc/gty.texi: Likewise.
8978         * doc/hostconfig.texi: Likewise.
8979         * doc/implement-c.texi: Likewise.
8980         * doc/libgcc.texi: Likewise.
8981         * doc/loop.texi: Likewise.
8982         * doc/makefile.texi: Likewise.
8983         * doc/options.texi: Likewise.
8984         * doc/passes.texi: Likewise.
8985         * doc/rtl.texi: Likewise.
8986         * doc/sourcebuild.texi: Likewise.
8987         * doc/standards.texi: Likewise.
8988         * doc/tree-ssa.texi: Likewise.
8989         * doc/trouble.texi: Likewise.
8990
8991         * doc/extend.texi: Use @: or add comma where appropriate.
8992         * doc/invoke.texi: Likewise.
8993         * doc/tm.texi: Likewise.
8994
8995 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
8996
8997         PR target/34393
8998         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
8999         to a reg.
9000
9001 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
9002
9003         * doc/md.texi (clz, ctz): Add reference.
9004         * doc/rtl.texi (clz, ctz): Likewise.
9005
9006 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9007
9008         PR other/35148
9009         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
9010         srcdir.
9011
9012 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9013
9014         * config/s390/s390.c (struct constant_pool): New field
9015         emit_pool_after added.
9016         (s390_mainpool_start): Set the emit_pool_after flag according
9017         to the section switch notes.
9018         (s390_mainpool_finish): Consider emit_pool_after when emitting
9019         the literal pool at the end of the function.
9020         (s390_chunkify_start): Force literal pool splits at section
9021         switch notes.
9022
9023 2008-02-13  Michael Matz  <matz@suse.de>
9024
9025         PR debug/35065
9026         * var-tracking.c (clobber_variable_part): Correctly traverse the
9027         list.
9028
9029 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9030
9031         PR 29673
9032         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9033         Add -fdump-ipa-inline.
9034         * tree-dump.c (dump_files): Remove tree-inlined dump.
9035         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9036         
9037 2008-02-12  Richard Guenther  <rguenther@suse.de>
9038
9039         PR tree-optimization/35171
9040         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9041         default defs.
9042
9043 2008-02-12  Richard Guenther  <rguenther@suse.de>
9044
9045         PR middle-end/35163
9046         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9047         value-preserving mode.  Disallow final truncation.
9048
9049 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9050
9051         PR middle-end/35136
9052         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9053         code from here to...
9054         (force_gimple_operand): ...here.
9055
9056 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9057
9058         PR c++/35144
9059         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9060         non-compatible pointers.
9061         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9062         different FIELD_DECLs, try harder by comparing field offsets, sizes
9063         and types.
9064
9065         PR inline-asm/35160
9066         * function.c (match_asm_constraints_1): Don't replace the same input
9067         multiple times.
9068
9069 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9070
9071         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9072         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9073         (expand_epilogue): Restore RAMPZ register.
9074         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9075
9076 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9077
9078         * config/i386/cygwin.asm: (__alloca): Correct calling
9079         convention and alignment.
9080         (__chkstk): Force 8 byte stack alignment.
9081
9082 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9083             Richard Guenther  <rguenther@suse.de>
9084
9085         PR tree-optimization/33992
9086         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9087         the zero we compare against.
9088
9089 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9090
9091         PR libfortran/35063
9092         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9093         to CloseHandle after unlocking to prevent accumulation of handle
9094         count.
9095
9096 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9097
9098         PR middle_end/34150
9099         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9100         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9101         and update LABEL_NUSES during and after reload.
9102
9103 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9104
9105         PR middle-end/34627
9106         * combine.c (simplify_if_then_else): Make sure the comparison is
9107         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9108
9109 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9110
9111         PR bootstrap/35051
9112         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9113         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9114         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9115         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9116         * tree.h (get_type_static_bounds): Likewise.
9117
9118 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9119
9120         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9121         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9122         Make -Wfoo language annotations match what the compiler outputs.
9123
9124 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9125
9126         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9127         intrinsics spu_convts, spu_convtu, spu_convtf.
9128
9129 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9130
9131         * doc/extend.texi (Function Attributes) <noinline>: Mention
9132         asm ("") as method to keep calls.
9133
9134 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9135
9136         PR other/32754
9137         * doc/options.texi (Options): Replace references to opts.sh with
9138         optc-gen.awk.
9139         * opts-common.c: Likewise.
9140         * optc-gen.awk: Likewise.
9141         
9142 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9143
9144         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9145
9146 2008-02-07  Richard Henderson  <rth@redhat.com>
9147
9148         PR rtl-opt/33410
9149         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9150         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9151         funny mode.
9152
9153 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9154
9155         PR tree-optimization/35085
9156         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9157         for operand entry oe2 in addition to operand entry oe3 in order to
9158         expose more opportunities for vectorizer sum reduction.
9159
9160 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9161
9162         PR other/35107
9163         * Makefile.in (LIBS): Remove $(GMPLIBS).
9164         (cc1-dummy, cc1): Add $(GMPLIBS).
9165
9166 2008-02-06  Jan Hubicka  <jh@suse.cz>
9167
9168         PR target/23322
9169         * i386.md (moddf_integer): Do not produce partial memory stalls for
9170         targets where it hurts.
9171
9172 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9173
9174         PR target/35083
9175         * optabs.c (expand_float): Do not check for decimal modes when
9176         expanding unsigned integer through signed conversion.
9177
9178 2008-02-06  Nick Clifton  <nickc@redhat.com>
9179
9180         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9181         inside the clobber with a match_operand and duplicated operand
9182         number in the constraint.
9183         (ineqbranchsi): Delete redundant comment.
9184
9185 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9186
9187         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9188         builtin_define ("__USE_INIT_FINI__").
9189         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9190         -msx multilibs.
9191         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9192
9193 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9194
9195         PR documentation/30330
9196         * doc/invoke.texi (C++ Dialect Options)
9197         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9198         For each warning option -Wfoo that allows -Wno-foo, ensure both
9199         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9200         entry of -Wswitch-default, index -Wnormalized= including the
9201         `=', and -Wlarger-than-@var{len} including @var{len}.
9202
9203 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9204
9205         * config/i386/i386.md (floatunssisf2): Use
9206         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9207         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9208         Macroize expander using MODEF mode iterator.
9209
9210 2008-02-05  Diego Novillo  <dnovillo@google.com>
9211
9212         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9213
9214         PR 33738
9215         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9216
9217 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9218
9219         PR other/35070
9220         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9221
9222 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9223
9224         PR target/35084
9225         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9226         to indicate if a message should be generated.
9227         (init_cumulative_args): Updated.
9228         (function_value_32): Likewise.
9229
9230 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9231
9232         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9233
9234 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9235
9236         PR target/35083
9237         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9238         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9239
9240 2008-02-04  Diego Novillo  <dnovillo@google.com>
9241
9242         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9243
9244         PR 33738
9245         * tree-vrp.c (vrp_evaluate_conditional): With
9246         -Wtype-limits, emit a warning when comparing against a
9247         constant outside the natural range of OP0's type.
9248
9249 2008-02-04  Richard Guenther  <rguenther@suse.de>
9250
9251         PR middle-end/33631
9252         * expr.c (count_type_elements): Give for unions instead of
9253         guessing.
9254
9255 2008-02-04  Richard Guenther  <rguenther@suse.de>
9256
9257         PR middle-end/35043
9258         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9259         to TYPE_DOMAINs base type instead of using bitsizetype here.
9260
9261 2008-02-03  Jason Merrill  <jason@redhat.com>
9262
9263         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9264
9265 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9266
9267         PR other/29972
9268         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9269         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9270         (RS/6000 and PowerPC Options): Fix typos and markup.
9271         * doc/passes.texi (Tree-SSA passes): Likewise.
9272
9273 2008-02-02  Michael Matz  <matz@suse.de>
9274
9275         PR target/35045
9276         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9277         from record_last_reg_set_info.
9278         (record_last_reg_set_info): Take an RTX argument, iterate over all
9279         constituent hardregs.
9280         (record_last_set_info, record_opr_changes): Change calls to
9281         new signature or to record_last_reg_set_info_regno.
9282
9283 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9284
9285         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9286
9287 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9288
9289         PR rtl-optimization/34773
9290         * reg-notes.def (EQUAL): Mention significance of combination of
9291         REG_EQUAL and REG_RETVAL.
9292         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9293         insn that has a REG_RETVAL.
9294
9295 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9296
9297         PR bootstrap/33781
9298         * configure.ac (--enable-fixed-point): Disable unless explicitly
9299         requested on IRIX.
9300         * configure: Regenerate.
9301
9302 2008-02-01  Richard Guenther  <rguenther@suse.de>
9303
9304         PR other/35042
9305         * invoke.texi (-finline-limit): Remove no longer true parts
9306         of the documentation.  Note that there is no default value.
9307
9308 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9309             Mark Mitchell  <mark@codesourcery.com>
9310             Ben Elliston  <bje@au.ibm.com>
9311
9312         PR c/29326
9313         * doc/extend.texi (Other Builtins): Document.
9314
9315 2008-01-31  Tom Browder <tom.browder@gmail.com>
9316
9317         * doc/c-tree.texi (Types): Fix grammar.
9318         (Expression trees): Ditto.
9319         * doc/passes.texi (Tree-SSA passes): Ditto.
9320         
9321         * doc/configterms.texi (Configure Terms): Fix typo.
9322         * doc/cpp.texi (Common Predefined Macros): Ditto.
9323         * doc/md.texi (Machine Constraints): Ditto.
9324         
9325         * doc/makefile.texi (Makefile): Add comma.
9326
9327 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9328             Gerald Pfeifer  <gerald@pfeifer.com>
9329         
9330         * doc/sourcebuild.texi (Front End): Remove references to CVS
9331         and CVSROOT/modules.
9332         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9333         (Back End): Remove reference to CVS.
9334
9335 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9336
9337         PR target/34900
9338         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9339         comment from...
9340         (mips16_gp_pseudo_reg): ...here.
9341         * config/mips/mips.md (load_const_gp): Replace with...
9342         (load_const_gp_<mode>): ...this :P-based insn.
9343
9344 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9345
9346         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9347         options. Minor fixes.
9348         (-std): Move reference to standards closer to where language
9349         standards are first mentioned.
9350         
9351 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9352
9353         PR rtl-optimization/34995
9354         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9355         parameter and return a bool.  If the rtx parameter is nonnull,
9356         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9357         (find_reloads): Update call accordingly.  Pass the new operand
9358         if it needed no address reloads, otherwise pass null.
9359
9360 2008-01-30  Richard Henderson  <rth@redhat.com>
9361
9362         PR c/34993
9363         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9364         for unbounded arrays.
9365
9366 2008-01-30  Silvius Rus  <rus@google.com>
9367
9368         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9369
9370 2008-01-30  Jan Hubicka  <jh@suse.cz>
9371
9372         PR target/34982
9373         * i386.c (init_cumulative_args): Use real function declaration when
9374         calling locally.
9375
9376 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9377
9378         PR rtl-optimization/34998
9379         * global.c (build_insn_chain): Treat non-subreg_lowpart
9380         SUBREGs of pseudos as clobbering all the words covered by the
9381         SUBREG, not just all the bytes.
9382         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9383         original df_ref rather than an extract parameter.
9384         (global_conflicts): Update call accordingly.
9385
9386 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9387
9388         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9389         the overflow check to make it easier to read.
9390         (__fixtfdi): Change the type of the ll member in union
9391         long_double to UDItype_x.
9392
9393 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9394
9395         PR middle-end/34969
9396         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9397         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9398         * tree-inline.c (fold_marked_statements): Call
9399         cgraph_update_edges_for_call_stmt if folding a call statement.
9400         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9401         debug_generic_stmt calls, reset it back afterwards.
9402
9403         PR c/35017
9404         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9405         static decls.
9406         * c-typeck.c (build_external_ref): Don't pedwarn about
9407         static vars in current function's scope.
9408
9409 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9410
9411         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9412
9413 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9414
9415         PR c/35002
9416         * ipa-struct-reorg.c: Fix spelling.
9417         * params.def: Ditto.
9418
9419 2008-01-29  Richard Guenther  <rguenther@suse.de>
9420
9421         PR middle-end/35006
9422         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9423         field.
9424         * tree-inline.c (remap_type): Increment remapping_type_depth
9425         around remapping types.
9426         (copy_body_r): Only add referenced variables if they are referenced
9427         from code, not types.
9428
9429 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9430
9431         PR c++/34055
9432         PR c++/34103
9433         PR c++/34219
9434         PR c++/34606
9435         PR c++/34753
9436         PR c++/34754
9437         PR c++/34755
9438         PR c++/34919
9439         PR c++/34961
9440         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9441         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9442
9443 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9444
9445         PR target/34412
9446         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9447         pointer for tiny stack.
9448
9449 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9450
9451         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9452
9453 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9454
9455         * config/vx-common.h: Fix typo in comment.
9456
9457 2008-01-28  Ian Lance Taylor  <iant@google.com>
9458
9459         PR c++/34862
9460         PR c++/33407
9461         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9462         coalesce pointers if they have different DECL_NO_TBAA_P values.
9463         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9464         between variables with different DECL_NO_TBAA_P values.
9465
9466 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9467
9468         PR 31535
9469         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9470         are not legitimate small data references on SPE targets.
9471
9472 2008-01-28  David Daney  <ddaney@avtrex.com>
9473
9474         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9475
9476 2008-01-28  David Daney  <ddaney@avtrex.com>
9477
9478         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9479
9480 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9481
9482         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9483         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9484         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9485         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9486         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9487         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9488         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9489         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9490
9491 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9492
9493         * basic-block.h (condjump_equiv_p): Fix comment.
9494
9495 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9496
9497         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9498         print_generic_stmt_indented): Fix comment.
9499
9500 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9501
9502         * configure.ac (__stack_chk_fail): Add detecion for availability
9503         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9504         * configure: Regenerate.
9505
9506 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9507
9508         PR middle-end/34688
9509         * final.c (output_addr_const): Handle TRUNCATE.
9510
9511 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9512
9513         PR target/34711
9514         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9515         (zero_cost, infinite_cost): New constants.
9516         (struct cost_pair): Change type of cost to comp_cost.
9517         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9518         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9519         New functions.
9520         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9521         split_address_cost, ptr_difference_cost, difference_cost,
9522         get_computation_cost_at, get_computation_cost,
9523         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9524         determine_use_iv_cost_condition, determine_use_iv_costs,
9525         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9526         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9527         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9528         Change type of cost to comp_cost.
9529         (determine_iv_cost): Increase cost of non-original ivs, instead
9530         of decreasing the cost of original ones.
9531         (get_address_cost): Indicate the complexity of the addressing mode 
9532         in comp_cost.
9533         (try_add_cand_for): Prefer using ivs not specific to some object.
9534         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9535
9536 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9537             Janis Johnson  <janis187@us.ibm.com>
9538
9539         PR target/34814
9540         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9541         (TARGET_INSTANTIATE_DECLS): Likewise.
9542         * target.h (expand_to_rtl_hook): New target hook.
9543         (instantiate_decls): Likewise.
9544         * function.c (instantiate_decl): Make non-static.  Rename to...
9545         (instantiate_decl_rtl): ... this.
9546         (instantiate_expr): Use instantiate_decl_rtl.
9547         (instantiate_decls_1): Likewise.
9548         (instantiate_decls): Likewise.
9549         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9550         * function.h (instantiate_decl_rtl): Add prototype.
9551         * cfgexpand.c (target.h): New include.
9552         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9553         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9554         (TARGET_INSTANTIATE_DECLS): Likewise.
9555         (TARGET_INITIALIZER): New target hooks added.
9556         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9557         New prototype.
9558         * config/rs6000/rs6000.c (tree-flow.h): New include.
9559         (machine_function): Add sdmode_stack_slot field.
9560         (rs6000_alloc_sdmode_stack_slot): New function.
9561         (rs6000_instantiate_decls): Likewise.
9562         (rs6000_secondary_memory_needed_rtx): Likewise.
9563         (rs6000_check_sdmode): Likewise.
9564         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9565         (TARGET_INSTANTIATE_DECLS): Likewise.
9566         (rs6000_hard_regno_mode_ok): Allow SDmode.
9567         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9568         (rs6000_emit_move): Handle SDmode.
9569         (function_arg_advance): Likewise.
9570         (function_arg): Likewise.
9571         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9572         SDmode var args for 32-bit compiles.
9573         (rs6000_secondary_reload_class): Handle SDmode.
9574         (rs6000_output_function_epilogue): Likewise.
9575         (rs6000_function_value): Simplify if statement.
9576         (rs6000_libcall_value): Likewise.
9577         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9578         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9579         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9580         (movsd_hardfloat): New define_insn.
9581         (movsd_softfloat): Likewise.
9582         (movsd_store): Likewise.
9583         (movsd_load): Likewise.
9584         (extendsddd2): Likewise.
9585         (extendsdtd2): Likewise.
9586         (truncddsd2): Likewise.
9587         (movdd_hardfloat64): Fixup comment.
9588         (UNSPEC_MOVSD_LOAD): New constant.
9589         (UNSPEC_MOVSD_STORE): Likewise.
9590
9591 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9592
9593         PR c++/34965
9594         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9595         TRUTH_XOR_EXPR.
9596         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9597         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9598         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9599         and TRUTH_XOR_EXPR.
9600
9601 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9602
9603         PR target/34794
9604         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9605         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9606         __LONGDOUBLE128 too.
9607         * config/rs6000/aix61.h: New file.
9608
9609 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9610
9611         PR rtl-optimization/34959
9612         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9613         popcount and parity rtxes the same mode as their operand.
9614         Truncate or extend the result to the return value's mode
9615         if necessary.
9616
9617 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9618
9619         PR target/34981
9620         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9621         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9622         to GOT_VERSION_REGNUM.
9623         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9624         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9625         * config/mips/mips.c (mips_emit_call_insn): New function.
9626         (mips_call_tls_get_addr): Call mips_expand_call directly.
9627         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9628         emit_call_insn.
9629         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9630         (mips_expand_call): Update the call to mips16_build_call_stub
9631         accordingly and a remove redundant condition.  Assert that MIPS16
9632         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9633         the call insn.
9634         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9635         TARGET_USE_GOT.
9636         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9637         (mips_avoid_hazard): Remove hazard_set handling.
9638         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9639         (UNSPEC_RESTORE_GP): ...this.
9640         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9641         (FAKE_CALL_REGNO): Rename to...
9642         (GOT_VERSION_REGNUM): ...this.
9643         (type): Add "ghost" value.  Add an associated insn reservation.
9644         (hazard_set): Remove.
9645         (exception_receiver): Rename to...
9646         (restore_gp): ...this and update the unspec identifier accordingly.
9647         (exception_receiver, nonlocal_got_receiver): New expanders.
9648         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9649         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9650         (set_got_version, update_got_version): New patterns.
9651
9652 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9653
9654         PR target/34970
9655         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9656
9657 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9658
9659         PR other/31955
9660         * doc/install.texi2html: Generate gcc-vers.texi.
9661
9662 2008-01-25  DJ Delorie  <dj@redhat.com>
9663
9664         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9665
9666 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9667
9668         * config/c4x: Remove directory.
9669         * config.gcc (crx-*, mt-*): Mark obsolete.
9670         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9671         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9672         sh-*-rtemscoff*): Remove cases.
9673         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9674         * real.c (encode_c4x_single, decode_c4x_single,
9675         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9676         c4x_extended_format): Remove.
9677         * real.h (c4x_single_format, c4x_extended_format): Remove.
9678         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9679         on C4x.
9680         (Pragmas): Remove comment about c4x pragmas.
9681         * doc/install.texi (c4x): Remove target-specific instructions.
9682         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9683         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9684         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9685         refer to C4x source files as examples.
9686         (C4X_FLOAT_FORMAT): Remove documentation.
9687
9688 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9689
9690         * config/bfin/bfin.c (override_options): Reorder tests so that
9691         flag_pic gets enabled for -msep-data.
9692
9693 2008-01-25  Richard Guenther  <rguenther@suse.de>
9694
9695         PR middle-end/32244
9696         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9697         to its bitfield precision if required.
9698
9699 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9700
9701         PR middle-end/33880
9702         * tree-nested.c (walk_omp_for): New function.
9703         (convert_nonlocal_reference, convert_local_reference): Call
9704         walk_omp_for on OMP_FOR.
9705         (convert_call_expr): Call walk_body on OMP_FOR's
9706         OMP_FOR_PRE_INIT_BODY.
9707
9708 2008-01-25  Richard Guenther  <rguenther@suse.de>
9709
9710         PR tree-optimization/34966
9711         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9712         default defs and PHI_NODEs we have to insert after the
9713         defining statement.
9714
9715 2008-01-24  Nick Clifton  <nickc@redhat.com>
9716
9717         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9718         Provide a default definition.
9719         (LIBGCC2_UNITS_PER_WORD): Likewise.
9720
9721         * config/stormy16/stormy16.c: Include df.h for the prototype
9722         for df_regs_ever_live_p.
9723         (xstormy16_expand_builtin_va_start): Convert the stack offset
9724         into a component_ref and then use POINTER_PLUS_EXPR to add it
9725         to the incoming_virtual_args_rtx.
9726         (xstormy16_gimplify_va_arg_expr): Rename to
9727         xstormy16_gimplify_va_arg_expr.
9728         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9729         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9730         xstormy16_gimplify_va_arg_expr.
9731         Fix up some formatting issues.
9732
9733         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9734         Move to predicates.md.
9735         (xs_hi_general_operand): Likewise.
9736         (xs_hi_nonmemory_operand): Likewise.
9737         * config/stormy16/predicates.md:
9738         (xstormy16_carry_plus_operand): New predicate.
9739         (xs_hi_general_operand): New predicate.
9740         (xs_hi_nonmemory_operand): New predicate.
9741         * config/stormy16/stormy16-protos.h:
9742         (xstormy16_carry_plus_operand): Delete prototype.
9743         (xs_hi_general_operand): Likewise.
9744         (xs_hi_nonmemory_operand): Likewise.
9745
9746         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9747         modifiers as they are no longer needed and they can trigger
9748         reload spill failures.
9749
9750         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9751         with a match_operand in order to help reload.
9752
9753         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9754         constraint with 'e' for the 8th alternative as this version of
9755         the mov.w instruction only accepts the lower 8 registers.
9756
9757 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9758
9759         PR target/34856
9760         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9761         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9762         vector elements.
9763
9764 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9765
9766         PR middle-end/33333
9767         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9768
9769 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9770
9771         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9772         New functions.
9773         (remove_structure): Update allocations list before removing structure.
9774         
9775 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9776
9777         * ipa-struct-reorg.c (is_safe_cond_expr, 
9778         create_new_stmts_for_cond_expr): Use integer_zerop function,
9779         that recognize not only zero-pointer, but zero-integer too.
9780
9781 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9782
9783         PR other/22232
9784         * fixproto: Escape "." in sed expression that strips leading "./".
9785
9786 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9787
9788         PR driver/34904
9789         * gcc.c (SWITCH_OK): Removed.
9790         (SWITCH_LIVE): Changed to bit.
9791         (SWITCH_FALSE): Likewise.
9792         (SWITCH_IGNORE): Likewise.
9793         (switchstr): Change live_cond to unsigned int.
9794         (process_command): Replace SWITCH_OK with 0.
9795         (do_self_spec): Likewise.
9796         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9797         (give_switch): Likewise.
9798         (used_arg): Likewise.
9799         (do_spec_1): Set the SWITCH_IGNORE bit.
9800         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9801         bits.  Set the SWITCH_LIVE bit.
9802
9803 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9804
9805         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9806
9807 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9808
9809         PR tree-optimization/34472
9810         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9811         parameter to a "bool *" and set *DATA to false if there is
9812         an unsafe access.  Do not delete the structure here.
9813         (check_cond_exprs): Delete it here instead.
9814         (check_cond_exprs, exclude_cold_structs): Do not increase
9815         I when removing a structure.
9816
9817 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9818
9819         PR target/34856
9820         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9821         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9822
9823 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9824
9825         PR middle-end/34934
9826         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9827         a fixed vector for stack.
9828
9829 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9830
9831         PR c++/25701
9832         * doc/gcc.texi (Software development): Add a direntry for g++.
9833         
9834 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9835
9836         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9837         stale and straggling -fforce-addr comments above.
9838
9839         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9840         define.
9841         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9842         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9843
9844 2008-01-23  Michael Matz  <matz@suse.de>
9845
9846         PR debug/34895
9847         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9848         gen_type_die.
9849
9850 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9851
9852         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9853         malloc result type.
9854
9855 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9856
9857         * config/avr/avr.c (avr_current_arch): New variable.
9858         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9859         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9860         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9861         (avr_override_options): Init 'avr_current_arch'. 
9862         (base_arch_s): Move from here...
9863         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9864         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9865         'mega' to 'have_jmp_call'.
9866         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9867         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9868         macros.
9869         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9870         architectures.
9871         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9872         MULTILIB_MATCHES): (Ditto.).
9873
9874 2008-01-23  Richard Guenther  <rguenther@suse.de>
9875
9876         PR middle-end/31529
9877         * cgraphunit.c (cgraph_reset_node): Always mark the node
9878         not reachable if it is not queued already.
9879
9880 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9881
9882         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
9883         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
9884         (cputype_selected): New static variable.
9885         (bfin_handle_option): Set it if -mcpu is used.
9886         (override_option): Select default set of workarounds if no cpu type
9887         selected on the command line.
9888         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
9889
9890         From  Michael Frysinger  <michael.frysinger@analog.com>
9891         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
9892         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
9893
9894         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
9895         for bf547, bf523, bf524, and bf526.
9896         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
9897         bf526.
9898         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9899         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
9900         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
9901         __ADSPBF547__ and __ADSPBF54x__ for bf547.
9902         * doc/invoke.texi (Blackfin Options): Document that
9903         -mcpu now accept bf547, bf523, bf524, and bf526.
9904
9905 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9906
9907         PR rtl-optimization/34628
9908         * combine.c (try_combine): Stop and undo after the first combination
9909         if an autoincrement side-effect on the first insn has effectively
9910         been lost.
9911
9912 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
9913
9914         PR target/34529
9915         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9916         Offset addresses are not valid for Altivec or paired float modes.
9917
9918 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
9919
9920         PR c++/34607
9921         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
9922         if DECL_INITIAL (decl) is error_mark_node.
9923
9924         PR c++/34914
9925         * c-common.c (handle_vector_size_attribute): Only allow
9926         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
9927         the same way as pointer, array etc. types.
9928         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
9929
9930         PR c++/34917
9931         * tree.c (build_type_attribute_qual_variant): Call
9932         build_qualified_type if attributes are equal, but quals are not.
9933
9934 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9935
9936         PR 32102
9937         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
9938         * flags.h (warn_strict_aliasing): Remove.
9939         (warn_strict_overflow): Remove.
9940         * opts.c (warn_strict_aliasing): Remove.
9941         (warn_strict_overflow): Remove.
9942         * c-opts.c (c_common_handle_option): -Wall only sets
9943         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
9944         (c_common_post_options): Give default values to -Wstrict-aliasing
9945         and -Wstrict-overflow if they are uninitialized.
9946         * common.opt (Wstrict-aliasing): Specify Var and Init.
9947         (Wstrict-overflow): Likewise.
9948
9949 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9950
9951         PR rtl-optimization/26854
9952         PR rtl-optimization/34400
9953         PR rtl-optimization/34884
9954         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
9955         DF_RD->gen.
9956         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
9957         (df_rd_bb_info.expanded_lr_out): Deleted
9958         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
9959         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
9960         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
9961         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
9962         Removed code to allocate, initialize or free expanded_lr_out.
9963         (df_rd_bb_local_compute_process_def): Restructured to make more
9964         understandable.
9965         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
9966         sets if the sets are being trimmed.
9967
9968 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9969
9970         PR bootstrap/32287
9971         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
9972         (as_vers): Likewise.
9973         * configure: Regenerated.
9974
9975 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9976
9977         PR middle-end/33092
9978         * tree-pass.h (pass_build_alias): New pass.
9979         * tree-ssa-alias.c (gate_build_alias): New.
9980         (pass_build_alias): New.
9981         * passes.c (init_optimization_passes): Add pass_build_alias after
9982         pass_create_structure_vars.
9983
9984 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
9985
9986         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
9987         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
9988         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
9989         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
9990         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
9991         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
9992         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
9993         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
9994         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
9995         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
9996         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
9997         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
9998         * config/s390/s390.md (FP_ALL): New mode iterator.
9999         (_d): New mode attribute.
10000         ("*signbit<mode>2>"): Changed mode of first operand.
10001         ("isinf<mode>2"): Changed mode of first operand.
10002         ("*TDC_insn"): Adaptation for DFP modes.
10003
10004 2008-01-22  Ben Elliston  <bje@au.ibm.com>
10005
10006         * tree.c (check_qualified_type): Improve function description.
10007
10008 2008-01-21  Jason Merrill  <jason@redhat.com>
10009
10010         PR c++/34196
10011         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10012         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10013         if it is set.
10014
10015 2008-01-21  DJ Delorie  <dj@redhat.com>
10016
10017         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10018         return zero.
10019
10020 2008-01-21  Richard Guenther  <rguenther@suse.de>
10021
10022         PR middle-end/34856
10023         * tree-cfg.c (verify_expr): Allow all invariant expressions
10024         instead of just constant class ones as reference argument.
10025         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10026         like any other constant.
10027         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10028
10029 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10030
10031         * regmove.c (fixup_match_1): Update call crossed frequencies.
10032
10033 2008-01-21  Richard Guenther  <rguenther@suse.de>
10034
10035         PR c/34885
10036         * tree-inline.c (setup_one_parameter): Deal with mismatched
10037         types using a VIEW_CONVERT_EXPR.
10038
10039 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10040             Olga Golovanevsky  <olga@il.ibm.com>
10041         
10042         PR tree-optimization/34701
10043         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10044         when the structure size is not a power of 2.
10045
10046 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10047
10048         * doc/install.texi: Add doc for --enable-checking=df.
10049         
10050 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10051
10052         PR rtl-optimization/34808
10053         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10054
10055 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10056
10057         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10058         input.
10059
10060 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10061
10062         PR rtl-optimization/26854
10063         PR rtl-optimization/34400
10064         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10065         DF_RD->gen.
10066         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10067         (df_rd_bb_info.expanded_lr_out): New.
10068         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10069         * loop_iv.c (iv_analysis_loop_init): Ditto.
10070         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10071         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10072         Added code to allocate, initialize or free expanded_lr_out.
10073         (df_rd_bb_local_compute_process_def): Restructured to make
10074         more understandable.
10075         (df_rd_confluence_n): Add code to do nothing with fake edges and
10076         code to no apply invalidate_by_call sets if the sets are being trimmed.
10077         (df_lr_local_finalize): Renamed to df_lr_finalize.
10078         (df_live_local_finalize): Renamed to df_live_finalize.
10079
10080 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10081
10082         PR target/34831
10083         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10084         deciding whether to use reciprocal instructions.
10085
10086 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10087
10088         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10089         dwarf2out_note_section_used if cold_text_section is NULL.
10090
10091 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10092
10093         PR gcov-profile/34610
10094         * tree-cfg.c (make_edges): Mark both outgoing edges from
10095         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10096         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10097         from OMP_FOR and OMP_CONTINUE outgoing edges.
10098
10099         * tree-profile.c (tree_profiling): Return early if
10100         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10101         at the end.
10102         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10103         from cfun to child_cfun.
10104         * function.h (struct function): Add after_tree_profile bit.
10105
10106 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10107
10108         * config/avr/avr.S (_exit): Disable interrupt.
10109
10110 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10111             Steven Bosscher  <stevenb.gcc@gmail.com>
10112
10113         PR rtl-optimization/26854
10114         PR rtl-optimization/34400
10115         * df-problems.c (df_live_scratch): New scratch bitmap.
10116         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10117         (df_live_reset): Clear the proper bitmaps.
10118         (df_live_bb_local_compute): Only process the artificial defs once
10119         since the order is not important.
10120         (df_live_init): Init the df_live sets only with the variables
10121         found live by df_lr.
10122         (df_live_transfer_function): Use the df_lr sets to prune the
10123         df_live sets as they are being computed.  
10124         (df_live_free): Free df_live_scratch.
10125
10126 2008-01-18  Ian Lance Taylor  <iant@google.com>
10127
10128         * common.opt: Add fmerge-debug-strings.
10129         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10130         flag_merge_debug_strings rather than flag_merge_constants.
10131         * doc/invoke.texi (Option Summary): Mention
10132         -fmerge-debug-strings.
10133         (Debugging Options): Document -fmerge-debug-strings.
10134
10135 2008-01-18  Ian Lance Taylor  <iant@google.com>
10136
10137         PR c++/33407
10138         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10139         (struct tree_function_decl): Add new field operator_new_flag.
10140         * tree-inline.c (expand_call_inline): When inlining a call to
10141         operator new, force the return value to go into a variable, and
10142         set DECL_NO_TBAA_P on that variable.
10143         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10144
10145 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10146
10147         PR debug/34484
10148         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10149         DWARF2_DEBUGGING_INFO.
10150         (dwarf2out_note_section_used): Ditto.  Add prototype.
10151         (have_multiple_function_sections, text_section_used,
10152         cold_text_section_used, *cold_text_sections): Move declarations
10153         before their uses.
10154
10155 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10156
10157         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10158         field and add signal_ra.
10159         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10160         assignments to frame state pc.  Move end of stack check after
10161         MD_FALLBACK_FRAME_STATE_FOR.
10162         (uw_update_context_1): Use frame state signal_regs if set, instead
10163         of checking signal_frame flag.
10164         (uw_update_context): Use frame state signal_ra if set.
10165         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10166         * config/xtensa/linux-unwind.h: New file.
10167
10168 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10169
10170         * modulo-sched.c (get_sched_window): Fix comment typo.
10171
10172 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10173
10174         PR tree-optimization/34648
10175         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10176
10177 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10178
10179         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10180         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10181
10182 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10183
10184         PR rtl-optimization/34400
10185         * df-core.c (df_worklist_dataflow_overeager,
10186         df_worklist_dataflow_doublequeue): New functions.
10187         (df_worklist_dataflow): Two different worklist solvers.
10188         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10189         New param.
10190
10191 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10192
10193         PR testsuite/34821
10194         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10195         and ftree-parallelize-loops.
10196
10197 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10198
10199         PR rtl-optimization/34826
10200         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10201
10202 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10203
10204         * global.c (find_reg): Mark the eh regs as used if necessary.
10205         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10206         * ra.h (struct allocno): no_eh_reg field added.  Changed
10207         no_stack_reg type to bitfield.
10208
10209 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10210
10211         * tree.c (substitute_in_expr): Add missing 'break'.
10212
10213 2008-01-17  Richard Guenther  <rguenther@suse.de>
10214
10215         PR tree-optimization/34825
10216         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10217         x / x as division to handle.
10218
10219 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10220
10221         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10222         "-pthread" is specified.
10223         * pa-hpux11.h (LIB_SPEC): Likewise.
10224
10225 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10226             Peter Bergner  <bergner@vnet.ibm.com>
10227
10228         PR rtl-optimization/33796
10229         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10230
10231 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10232
10233         PR libgfortran/34699
10234         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10235         static links.
10236         * pa-hpux10.h (LINK_SPEC): Likewise.
10237         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10238
10239 2008-01-16  Richard Guenther  <rguenther@suse.de>
10240
10241         PR middle-end/32628
10242         * fold-const.c (fold_convert_const_int_from_int): Do not
10243         set overflow if that occured only because of a sign extension
10244         change when converting from/to a sizetype with the same
10245         precision and signedness.
10246
10247 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10248
10249         PR debug/34249
10250         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10251         location address to the correct place.  Update copyright year.
10252
10253 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10254
10255         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10256         no dependences in the dependence_relations vector.
10257
10258 2008-01-16  Jan Hubicka  <jh@suse.cz>
10259
10260         PR rtl-optimization/31396
10261         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10262         * cfg.c (dump_reg_info): Print it.
10263         * regs.h (struct reg_info_t): add freq_calls_crossed.
10264         (REG_FREQ_CALLS_CROSSED): New macro.
10265         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10266         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10267         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10268         regmove_optimize): Update call crossed frequencies.
10269         * local-alloc.c (struct qty): Add freq_calls_crossed.
10270         (alloc_qty): Copute freq_calls_crossed.
10271         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10272         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10273         * ra.h (struct allocno): Add freq_calls_crossed.
10274
10275 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10276
10277         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10278         libgomp when compiling with ftree-parallelize-loops.
10279         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10280
10281 2008-01-16  Richard Guenther  <rguenther@suse.de>
10282
10283         PR tree-optimization/34769
10284         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10285         * tree.c (int_cst_value): Instead make this function more
10286         permissive in what it accepts as valid input.  Document this
10287         function always sign-extends the value.
10288
10289 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10290             Richard Guenther  <rguenther@suse.de>
10291
10292         PR c/34668
10293         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10294         (gimple_fold_indirect_ref_rhs): ... this.
10295         (gimple_fold_indirect_ref): New function with foldings
10296         that preserve lvalueness.
10297         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10298         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10299         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10300         to fold an INDIRECT_REF, fall back to the old use of
10301         fold_indirect_ref_1.
10302
10303 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10304
10305         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10306         free_conflict_function.
10307         (compute_self_dependence): Same.
10308
10309 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10310
10311         PR debug/34249
10312         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10313         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10314         function global.
10315         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10316         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10317         for DWARF2_UNWIND_INFO targets.
10318
10319 2008-01-16  Richard Guenther  <rguenther@suse.de>
10320
10321         PR c/34768
10322         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10323         type qualifiers for function types.
10324
10325 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10326
10327         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10328         loop_iterator li from previous commit.
10329
10330 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10331
10332         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10333
10334 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10335
10336         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10337         (parallelize_loops): Don't parallelize irreducible components.
10338
10339 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10340
10341         PR c++/24924
10342         * c-opts (c_common_post_options): Do not enable CPP
10343         flag_pedantic_errors by default.
10344         
10345 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10346
10347         PR rtl-optimization/31944
10348         * cse.c (remove_pseudo_from_table): New function.
10349         (merge_equiv_classes): Use above function to remove pseudo-registers.
10350         (invalidate): Likewise.
10351
10352 2008-01-13  Richard Guenther  <rguenther@suse.de>
10353
10354         PR middle-end/34601
10355         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10356         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10357
10358 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10359
10360         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10361         validate_change to unshare the source of the PC set.
10362
10363 2008-01-12  Jan Hubicka  <jh@suse.cz>
10364
10365         PR middle-end/32135
10366         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10367         references above array bounds.  This might trigger bounds checks for
10368         pointers to arrays.
10369
10370 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10371
10372         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10373         new_replaceable_dependencies.
10374
10375 2008-01-12  Doug Kwan  <dougkwan@google.com>
10376
10377         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10378         instead of OPT_Wreturn_type in warning due to ignored return type
10379         qualifiers.
10380         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10381         options included in -Wextra.
10382         * c.opt: New option -Wignored_qualifiers.
10383         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10384         -Wignore_qualifiers.
10385         (-Wignored-qualifiers): Document.
10386         (-Wreturn-type): Remove description of functionality now handled
10387         by -Wignored-qualifiers.
10388
10389 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10390
10391         PR ada/33788
10392         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10393         NOP_EXPR if it is between integral types with the same precision.
10394
10395 2008-01-12  Jan Hubicka  <jh@suse.cz>
10396
10397         PR other/28023
10398         * invoke.texi (max-inline-recursive-depth): Fix default value.
10399
10400 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10401
10402         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10403         correct type.
10404
10405 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10406         
10407         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10408         
10409 2008-01-11  James E. Wilson  <wilson@specifix.com>
10410
10411         PR target/26015
10412         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10413
10414 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10415
10416         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10417         save/restore frame pointer register and don't use 'call-prologues' 
10418         optimization in function with "OS_task" attribute.
10419
10420 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10421
10422         PR middle-end/31309
10423         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10424         when copying to memory.
10425
10426 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10427
10428         PR rtl-optimization/30905
10429         * cfgcleanup.c: Include dce.h
10430         (crossjumps_occured): New global variable.
10431         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10432         If something changed, set crossjumps_occured to true.
10433         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10434         Don't add/remove fake edges to exit here...
10435         (cleanup_cfg): ...but do it here, when crossjumping.
10436         Run a fast DCE when successful crossjumps occured in the latest
10437         iteration of try_optimize_cfg.
10438
10439 2008-01-11  Richard Guenther  <rguenther@suse.de>
10440
10441         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10442         (struct vn_unary_op_s): Likewise.
10443         (vn_reference_insert): Free old reference on hash collision.
10444
10445 2008-01-10  Raksit Ashok  <raksit@google.com>
10446
10447         PR rtl-optimization/27971
10448         * combine.c (find_split_point): Split PLUS expressions which are
10449         inside a MEM rtx, and whose first operand is complex.
10450
10451 2008-01-10  DJ Delorie  <dj@redhat.com>
10452
10453         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10454         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10455         (m32c_hard_regno_ok): Call the underlying function.
10456
10457 2008-01-10  Richard Guenther  <rguenther@suse.de>
10458
10459         PR middle-end/34683
10460         * tree-cfg.c (tree_merge_blocks): Do not go through the
10461         full-blown folding and stmt updating path if we just deal
10462         with virtual operands.
10463         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10464         test for abnormal SSA_NAMEs.
10465
10466 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10467
10468         PR middle-end/34641
10469         * reload.c (push_reload): Add assertions.  All constants from
10470         reg_equiv_constant should have been used for replacing the respective
10471         pseudo earlier.
10472         (find_reloads_address): Invoke find_reloads_address_part for
10473         constant taken from the reg_equiv_constant array.
10474
10475 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10476
10477         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10478         field (valnum) the first in the struct.  Replace bools with
10479         unit bit fields.
10480
10481 2008-01-10  Richard Guenther  <rguenther@suse.de>
10482
10483         PR tree-optimization/34651
10484         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10485         types and ordering for masking and converting.
10486
10487 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10488
10489         PR tree-optimization/34017
10490         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10491         also for PHI_NODE expressions.
10492
10493 2008-01-09  Jan Hubicka  <jh@suse.cz>
10494
10495         PR tree-optimization/34708
10496         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10497         based on number of case labels.
10498         (init_inline_once): Remove switch_cost.
10499         * tree-inline.h (eni_weights_d): Remove switch_cost.
10500
10501 2008-01-09  Richard Guenther  <rguenther@suse.de>
10502         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10503
10504         PR middle-end/30132
10505         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10506         temporary if an rvalue is ok or an lvalue is not required.
10507
10508 2008-01-09  Richard Guenther  <rguenther@suse.de>
10509
10510         PR middle-end/34458
10511         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10512         adjust return type.
10513
10514 2008-01-09  Richard Guenther  <rguenther@suse.de>
10515
10516         PR middle-end/34679
10517         * tree.c (host_integerp): Check for sizetype only if the
10518         type is an integer type.
10519
10520 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10521
10522         PR debug/26364
10523         * opts.c (decode_options): Disable inlining of functions called
10524         once if not in unit-at-a-time mode.
10525
10526 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10527
10528         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10529
10530 2008-01-08  Richard Guenther  <rguenther@suse.de>
10531
10532         PR middle-end/31863
10533         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10534         out early if the result will be unused.
10535
10536 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10537
10538         PR target/34709
10539         Revert:
10540
10541         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10542         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10543         for TARGET_RECIP.       
10544         
10545 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10546         
10547         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10548         for vectorization tuned.
10549         
10550 2008-01-08  Richard Guenther  <rguenther@suse.de>
10551
10552         PR tree-optimization/34683
10553         * tree-ssa-operands.c (operand_build_cmp): Export.
10554         * tree-ssa-operands.h (operand_build_cmp): Declare.
10555         * tree-vn.c (vuses_compare): Remove.
10556         (sort_vuses): Use operand_build_cmp.
10557         (sort_vuses_heap): Likewise.
10558         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10559         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10560         (vdefs_to_vec): Do not sort already sorted VDEFs.
10561
10562 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10563
10564         PR middle-end/34694
10565         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10566
10567 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10568
10569         PR target/34702
10570         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10571         limitations of reciprocal sequences on x86 targets.
10572
10573 2008-01-08  Richard Guenther  <rguenther@suse.de>
10574
10575         PR tree-optimization/34683
10576         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10577
10578 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10579
10580         PR target/34622
10581         * config/darwin.c (darwin_mergeable_string_section): Don't use
10582         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10583
10584 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10585
10586         PR target/34682
10587         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10588         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10589         predicates of op0 and op1 to register_operand.
10590         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10591         expander using X87MODEF mode iterator.  Change predicates of
10592         op0 and op1 to register_operand.
10593         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10594         corresponding patterns and macroize using MODEF macro.  Change
10595         predicates of op0 and op1 to register_operand and remove
10596         "m" constraint. Disparage "r" alternative with "!".
10597         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10598         macroize using X87MODEF macro.  Change predicates of op0 and op1
10599         to register_operand and remove "m" constraint.  Disparage "r"
10600         alternative with "!".
10601         (absneg splitter with memory operands): Remove.
10602         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10603         patterns and macroize using X87MODEF mode iterator.
10604         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10605         Change predicate of op1 to register_operand.
10606         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10607         for memory operands.
10608
10609 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10610
10611         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10612
10613 2008-01-07  Richard Guenther  <rguenther@suse.de>
10614
10615         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10616         fields.
10617
10618 2008-01-07  Richard Guenther  <rguenther@suse.de>
10619
10620         PR tree-optimization/34683
10621         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10622         VOPs of the needed size to save memory.  Use VEC_quick_push
10623         to save compile-time.
10624         (vdefs_to_vec): Likewise.
10625
10626 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10627
10628         * config/spu/spu.md (divdf3): Genetate inline code for double
10629         division.  The implementation doesn't handle INF or NAN, therefore it
10630         only applies when -ffinite-math-only is given.
10631
10632 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10633
10634         PR libstdc++/34680
10635         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10636         * doc/cpp.texi ([Common Predefined Macros]): Document.
10637
10638 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10639
10640         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10641         order to use commutative addition instead of subtraction.
10642
10643 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10644             Mircea Namolaru  <namolaru@il.ibm.com>
10645             Vladimir Yanovsky  <yanov@il.ibm.com>
10646             Revital Eres  <eres@il.ibm.com>
10647
10648         PR tree-optimization/34263
10649         * tree-outof-ssa.c (process_single_block_loop_latch,
10650         contains_tree_r): New functions.
10651         (analyze_edges_for_bb): Call process_single_block_loop_latch
10652         function to empty single-basic-block latch block if possible.
10653
10654 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10655
10656         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10657         for TARGET_RECIP.
10658         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10659
10660 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10661
10662         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10663
10664 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10665
10666         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10667
10668 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10669
10670         PR tree-optimization/34618
10671         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10672         flag from T.
10673
10674 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10675
10676         PR target/34673
10677         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10678         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10679         Update copyright year.
10680
10681         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10682         Update copyright year.
10683         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10684         using NR fixup.
10685
10686 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10687
10688         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10689         edge does not point to current bb before changing need_assert.
10690
10691 2008-01-04  Richard Guenther  <rguenther@suse.de>
10692
10693         PR middle-end/34029
10694         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10695         for verifying purposes if they are is_gimple_min_invariant.
10696
10697 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10698
10699         PR tree-optimization/34448
10700         PR tree-optimization/34465
10701         * gimplify.c (gimplify_init_constructor): Add new parameter
10702         notify_temp_creation.  Use it.
10703         (gimplify_modify_expr_rhs): Take volatiles into account when
10704         optimizing constructors.
10705         Do not optimize constructors if gimplify_init_constructor will dump to
10706         memory.
10707         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10708         * gcc.c-torture/compile/pr34448.c: New.
10709
10710 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10711
10712         PR gcov-profile/34609
10713         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10714         return_slot if result is TREE_ADDRESSABLE.
10715
10716 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10717
10718         * config/mips/mips.md (sqrt_condition): Tweak comment.
10719         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10720
10721 2008-01-03  Tom Tromey  <tromey@redhat.com>
10722
10723         PR c/34457
10724         * c-common.c (c_type_hash): Handle VLAs.
10725
10726 2008-01-03  Jan Hubicka  <jh@suse.cz>
10727
10728         PR tree-optimization/31081
10729         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10730         0 when inlining and not inlining to first basic block.
10731         (remap_decl): When var is initialized to 0, don't set default_def.
10732         (expand_call_inline): Set entry_bb.
10733         * tree-inline.h (copy_body_data): Add entry_bb.
10734
10735 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10736
10737         PR c++/34619
10738         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10739         before returning.
10740
10741         PR tree-optimization/29484
10742         * tree-inline.c (inline_forbidden_p_2): New function.
10743         (inline_forbidden_p): Disallow inlining if some static var
10744         has an address of a local LABEL_DECL in its initializer.
10745         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10746         vs. inlining.
10747
10748 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10749
10750         PR tree-optimization/34635
10751         * tree-data-ref.c (add_other_self_distances): Make sure that the
10752         evolution step is constant.
10753
10754 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10755
10756         PR middle-end/34608
10757         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10758
10759 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10760
10761         * tree-sra.c (scalarize_init): Insert the generate_element_init
10762         statements after the generate_element_zero statements.
10763
10764 2008-01-02  Richard Guenther  <rguenther@suse.de>
10765
10766         PR middle-end/34093
10767         PR middle-end/31976
10768         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10769         for very large number of operands instead of ICEing.
10770
10771 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10772
10773         PR target/34013
10774         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10775         while stack probing.
10776
10777 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10778
10779         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10780         in C++0x mode.
10781
10782 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10783
10784         PR libmudflap/26442
10785         * tree-mudflap.c (mx_register_decls): Guard warning by
10786         !DECL_ARTIFICIAL check.
10787
10788 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10789
10790         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10791         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10792         sse5_perm<mode>): Fix constraints.