OSDN Git Service

2008-05-28 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-28  Richard Guenther  <rguenther@suse.de>
2
3         PR tree-optimization/36291
4         * tree-flow. h (struct gimple_df): Remove var_anns member.
5         * tree-flow-inline.h (gimple_var_anns): Remove.
6         (var_ann): Simplify.
7         * tree-dfa.c (create_var_ann): Simplify.
8         (remove_referenced_var): Clear alias info from var_anns of globals.
9         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
10         (delete_tree_ssa): Clear alias info from var_anns of globals.
11         Do not free var_anns.
12         (var_ann_eq): Remove.
13         (var_ann_hash): Likewise.
14
15 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
16
17         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
18         and loongson2f entries.
19         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
20         * config/mips/mips.h (processor_type): Add Loongson-2E
21         and Loongson-2F entries.
22         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
23         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
24         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
25         * doc/invoke.texi (MIPS Options): Document loongson2e
26         and loongson2f processor names.
27
28 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
29
30         PR target/35767
31         PR target/35771
32         * config/i386/i386.c (ix86_function_arg_boundary): Use
33         alignment of canonical type.
34         (ix86_expand_vector_move): Check unaligned memory access for
35         all SSE modes.
36
37 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
38
39         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
40         Moved to the front of file.
41
42 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
43             H.J. Lu  <hongjiu.lu@intel.com>
44
45         * dwarf2out.c (current_fde): New.
46         (add_cfi): Use it.
47         (lookup_cfa:): Likewise.
48         (dwarf2out_end_epilogue): Likewise.
49         (dwarf2out_note_section_used): Likewise.
50
51 2008-05-27  Michael Matz  <matz@suse.de>
52
53         PR c++/27975
54         * c.opt (Wenum-compare): New warning option.
55         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
56
57 2008-05-27  Michael Matz  <matz@suse.de>
58
59         PR middle-end/36326
60         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
61         non-BLKmode types.
62         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
63         into memory as tail calls.
64
65 2008-05-27  Richard Guenther  <rguenther@suse.de>
66
67         PR tree-optimization/36339
68         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
69         pointers cause all addressable variables to be call clobbered.
70
71 2008-05-27  Richard Guenther  <rguenther@suse.de>
72
73         PR tree-optimization/36245
74         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
75         bases.
76
77 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
78
79         * config/s390/s390.md: Replace all occurences of the 'm'
80         constraint with 'RT'.
81
82 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
83
84         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
85         definitions added.
86         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
87         "*movdi_64".
88         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
89         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
90         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
91
92 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
93
94         * reload.c: (find_reloads): Skip alternatives according to the
95         "enabled" attribute. Constify the constraint variable.
96         * recog.c (get_attr_enabled): Add default implementation.
97         (extract_insn): Set the alternative_enabled_p array
98         in the recog_data struct.
99         (preprocess_constraints, constrain_operands): Skip
100         alternatives according to the "enabled" attribute
101         * recog.h (struct recog_data): New field alternative_enabled_p.
102         (skip_alternative): New inline function.
103         * regclass.c: (record_operand_costs): Check the "enabled"
104         attribute.
105         (record_reg_classes): Skip alternative according to the
106         "enabled" attribute.
107
108         * doc/md.texi: Add documention for the "enabled" attribute.
109
110 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
111
112         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
113         * postreload.c (reload_cse_simplify_operands): Replace 'm'
114         constraint with TARGET_MEM_CONSTRAINT.
115         * recog.c (asm_operand_ok, preprocess_constraints,
116         constrain_operands): Likewise.
117         * regclass.c (record_reg_classes): Likewise.
118         * reload.c (find_reloads, alternative_allows_const_pool_ref):
119         Likewise.
120         * reload1.c (maybe_fix_stack_asms): Likewise.
121         * stmt.c (parse_output_constraint, parse_input_constraint):
122         Likewise.
123         * recog.h: Adjust comment.
124         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
125         * genoutput.c (note_constraint): Don't emit error for 'm'
126         constraint.
127         * doc/md.texi: Add a note to description of 'm' constraint.
128         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
129
130 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
131
132         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
133         that the bitfield is of integral type before testing its precision.
134
135 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
136             Sa Liu  <saliu@de.ibm.com> 
137
138         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
139         __modti3, __udivti3, __umodti3 and __udivmodti4.
140         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
141         that implement TImode mul and div functions.
142         * config/spu/multi3.c: New. Implement __multi3.
143         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
144         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
145         functions on SPU.
146
147 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
148
149         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
150         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
151         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
152         tls_sysv_suffix): New mode and mode attribute iterators.
153         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
154         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
155         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
156         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
157         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
158         iterators.
159
160 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
161
162         PR tree-optimization/36329
163         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
164         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
165         * cgraphbuild.c (initialize_inline_failed): Use the latter
166         macro in lieu of the former.
167         * ipa-inline.c (cgraph_mark_inline): Likewise.
168         (cgraph_decide_inlining_of_small_function): Likewise.
169         (cgraph_decide_inlining): Likewise.
170         (cgraph_decide_inlining_incrementally): Likewise.
171
172 2008-05-26  Tristan Gingold  <gingold@adacore.com>
173             Anatoly Sokolov  <aesok@post.ru>
174
175         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
176         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
177         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
178         optimization for 'avr6' architecture.
179
180 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
181
182         PR target/34932
183         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
184
185 2008-05-26  Richard Guenther  <rguenther@suse.de>
186
187         * tree-ssa-sccvn.c (expr_has_constants): Declare.
188         (visit_reference_op_load): Initialize VN_INFO->has_constants
189         properly.
190
191 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
192
193         PR middle-end/36253
194         * caller-save.c (insert_restore): Verify alignment of spill
195         space.
196         (insert_save): Likewise.
197
198         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
199
200         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
201         (STACK_SLOT_ALIGNMENT): Likewise.
202
203         * function.c (LOCAL_ALIGNMENT): Removed.
204         (get_stack_local_alignment): New.
205         (assign_stack_local): Use it.  Set alignment on stack slot.
206         (assign_stack_temp_for_type): Use get_stack_local_alignment.
207
208         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
209         (STACK_SLOT_ALIGNMENT): New.
210
211         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
212         stack slot in XFmode.
213
214         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
215
216 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
217
218         PR/36321
219         * config/i386/i386.md (allocate_stack_worker_64): Make sure
220         argument operand in rax isn't removed.
221
222 2008-05-26  Richard Guenther  <rguenther@suse.de>
223
224         PR middle-end/36300
225         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
226         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
227
228 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
229
230         PR bootstrap/36331
231         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
232
233 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
234
235         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
236         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
237
238 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
239
240          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
241         build a trampoline if we don't want one.
242         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
243         return zero for nested functions if we don't want a trampoline.
244
245 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
246
247         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
248
249 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
250
251         PR fortran/18428
252         * c.opt: Removed undocumented option '-lang-fortran'.
253         * c-common.h: Removed global variable 'lang_fortran'.
254         * c-opts.c (c_common_handle_option): Removed code to handle
255         option '-lang-fortran'. Updated includes.
256         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
257         definition of '__GFORTRAN__'.
258         (define__GNUC__): Reimplemented to use BASEVER and
259         cpp_define_formatted.
260         (builtin_define_with_value_n): Removed.
261         * c-incpath.h: Renamed to ...
262         * incpath.h: ... this.
263         * c-incpath.c: Renamed to ...
264         * incpath.c: ... this. Updated includes.
265         * fix-header.c: Updated includes.
266         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
267         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
268         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
269
270 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
271
272         * tree.h: Update the table of flags used on tree nodes.
273         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
274         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
275         (FORCED_LABEL): Add access check.
276         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
277         (ASM_INPUT_P): Likewise.
278         (ASM_VOLATILE_P): Likewise.
279         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
280         (OMP_SECTION_LAST): Access private_flag directly.
281         (OMP_RETURN_NOWAIT): Likewise.
282         (OMP_PARALLEL_COMBINED): Likewise.
283         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
284         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
285         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
286         deprecated_flag directly.
287
288 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
289
290         * final.c (frame_pointer_needed): Removed.
291         * flags.h (frame_pointer_needed): Likewise.
292
293         * function.h (rtl_data): Add frame_pointer_needed.
294         (frame_pointer_needed): New.
295
296 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
297
298         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
299
300 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
301
302         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
303         SRC is a REG.
304
305 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
306
307         * c-common.c (strip_array_types): Move function to..
308         * tree.c: ..here.
309         (get_inner_array_type): Delete.
310         * c-common.h (strip_array_types): Move declaration to..
311         * tree.h: ..here.
312         (get_inner_array_type): Delete.
313         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
314         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
315         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
316         * config/pa/pa.c (emit_move_sequence): Likewise.
317
318 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
319
320         * config/i386/i386.md (*sse_prologue_save_insn): Set length
321         attribute to 34.
322
323 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
324
325         * function.c: Include target hook for nonlocal_goto frame value.
326
327 2008-05-24  Richard Guenther  <rguenther@suse.de>
328
329         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
330         a scalar variable can be only accessed through a pointer
331         or a union.
332
333 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
334
335         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
336         * doc/extend.texi: Likewise.
337
338 2008-05-23  DJ Delorie  <dj@redhat.com>
339
340         * config/m32c/jump.md (untyped_call): Add.
341
342         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
343         for A24 to PSImode.
344         (m32c_address_cost): Detail costs for indirect offsets.
345
346 2008-05-23  Rafael Espindola  <espindola@google.com>
347
348         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
349         if a node is a SUBREG.
350         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
351         is a SUBREG.
352
353 2008-05-23  Paul Brook  <paul@codesourcery.com>
354             Carlos O'Donell  <carlos@codesourcery.com>
355
356         * doc/extend.texi: Clarify use of __attribute__((naked)).
357         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
358         * target.h (gcc_target): Add allocate_stack_slots_for_args.
359         * function.c (use_register_for_decl): Use
360         targetm.calls.allocate_stack_slots_for_args.
361         * target-def.h (TARGET_CALLS): Add 
362         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
363         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
364         New function.
365         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
366
367 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
368
369         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
370
371 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
372
373         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
374         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
375         is only rounded once.
376
377 2008-05-23  Richard Guenther  <rguenther@suse.de>
378
379         * tree-ssa-operands.c (mark_difference_for_renaming): Use
380         bitmap_xor.
381
382 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
383             Jakub Jelinek  <jakub@redhat.com>
384
385         PR target/36079
386         * configure.ac: Handle --enable-cld.
387         * configure: Regenerated.
388         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
389         * config/i386/i386.h (struct machine_function): Add needs_cld field.
390         (ix86_current_function_needs_cld): New define.
391         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
392         (cld): New isns pattern.
393         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
394         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
395         * config/i386/i386.opt (mcld): New option.
396         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
397         TARGET_CLD and ix86_current_function_needs_cld.
398         (override_options): Use -mcld by default for 32-bit code if
399         USE_IX86_CLD.
400
401         * doc/install.texi (Options specification): Document --enable-cld.
402         * doc/invoke.texi (Machine Dependent Options)
403         [i386 and x86-64 Options]: Add -mcld option.
404         (Intel 386 and AMD x86-64 Options): Document -mcld option.
405
406 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
407         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
408         (return_in_memory_64): Likewise.
409         (return_in_memory_ms_64): Likewise.
410
411 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
412
413         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
414         * builtins.c (fold_builtin_fpclassify): New.
415         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
416         * builtins.def (BUILT_IN_FPCLASSIFY): New.
417         * c-common.c (handle_type_generic_attribute): Adjust to accept
418         fixed arguments before an elipsis.
419         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
420         * doc/extend.texi: Document __builtin_fpclassify.
421
422 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
423
424         * omp-low.c (gate_expand_omp_ssa): Remove.
425         (pass_expand_omp_ssa): Remove.
426         (gate_expand_omp): Do not check for flag_openmp_ssa.
427         * common.opt (-fopenmp-ssa): Remove.
428         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
429
430 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
431
432         * config/sh/sh.opt (mfixed-range): New option.
433         * config/sh/sh-protos.h (sh_fix_range): Declare.
434         * config/sh/sh.c (sh_fix_range): New function.
435         * config/sh/sh.h (sh_fixed_range_str): Declare.
436         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
437         is not empty.
438         * doc/invoke.texi (SH Options): Document -mfixed-range.
439
440 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
441
442         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
443         it before the redeclaration.
444
445 2008-05-22  Anatoly Sokolov <aesok@post.ru>
446
447         * config/avr/avr.c (get_sequence_length): Add new function.
448         (expand_prologue, expand_epilogue): Remove duplicate code.
449
450 2008-05-22  Rafael Espindola  <espindola@google.com>
451
452         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
453         sharing.
454
455 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
456
457         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
458         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
459
460         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
461         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
462         (vect_update_misalignment_for_peel): Likewise.
463         (vector_alignment_reachable_p): Likewise.
464         * tree-vect-transform.c (vectorizable_load): Likewise.
465         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
466         (get_vectype_for_scalar_type): Pass mode of scalar_type
467         to UNITS_PER_SIMD_WORD.
468
469         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
470         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
471         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
472         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
473         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
474
475 2008-05-22  Ira Rosen  <irar@il.ibm.com>
476
477         PR tree-optimization/36293
478         * tree-vect-transform.c (vect_transform_strided_load): Don't check
479         if the first load must be skipped because of a gap.
480
481 2008-05-22  Richard Guenther  <rguenther@suse.de>
482
483         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
484         more cases of offset disambiguation that is possible if
485         strict-aliasing rules apply.
486         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
487         for basic offset and type-based disambiguation.
488
489 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
490
491         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
492         ix86_expand_vector_set on V16QImode for SSE4.1.
493
494 2008-05-21  Tom Tromey  <tromey@redhat.com>
495
496         * c.opt (Wimport): Mark as undocumented.
497         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
498         -Wno-import.
499         (Warning Options): Likewise.
500         * doc/cppopts.texi: Don't mention -Wimport.
501
502 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
503
504         PR tree-optimization/36287
505         PR tree-optimization/36286
506         * lambda-code.c (build_access_matrix): Do not use the loop->num
507         for computing the number of induction variables: use the loop depth
508         instead.
509
510 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
511
512         PR/36280
513         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
514         option -f(no-)leading-underscore.
515
516 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
517
518         * config/i386/i386.c (ix86_expand_vector_init_general): Use
519         GET_MODE_NUNITS (mode).
520
521 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
522
523         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
524         (-mmulhw): Add 464 to description.
525         (-mdlmzb): Likewise.
526         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
527         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
528         464fp entries.
529         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
530         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
531         * config/rs6000/rs6000.md: Update comments for 464.
532
533 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
534
535         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
536
537 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
538
539         * config/i386/sse.md (vec_extractv4sf): Removed.
540         (vec_extractv2df): Likewise.
541         (vec_extractv2di): Likewise.
542         (vec_extractv4si): Likewise.
543         (vec_extractv8hi): Likewise.
544         (vec_extractv16qi): Likewise.
545         (vec_extract<mode>): New.
546
547 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
548
549         * config/i386/sse.md (vec_setv4sf): Removed.
550         (vec_setv2df): Likewise.
551         (vec_setv2di): Likewise.
552         (vec_setv4si): Likewise.
553         (vec_setv8hi): Likewise.
554         (vec_setv16qi): Likewise.
555         (vec_set<mode>): New.
556
557 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
558
559         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
560         goto for vec_concat and vec_interleave.
561
562 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
563
564         * config/i386/sse.md (vec_initv4sf): Removed.
565         (vec_initv2df): Likewise.
566         (vec_initv2di): Likewise.
567         (vec_initv4si): Likewise.
568         (vec_initv8hi): Likewise.
569         (vec_initv16qi): Likewise.
570         (vec_init<mode>): New.
571
572 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
573
574         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
575
576 2008-05-21  Tom Tromey  <tromey@redhat.com>
577
578         * ggc-zone.c (lookup_page_table_if_allocated): New function.
579         (zone_find_object_offset): Likewise.
580         (gt_ggc_m_S): Likewise.
581         (highest_bit): Likewise.
582         * ggc-page.c (gt_ggc_m_S): New function.
583         * stringpool.c (string_stack): Remove.
584         (init_stringpool): Update.
585         (ggc_alloc_string): Use ggc_alloc.
586         (maybe_delete_ident): New function.
587         (ggc_purge_stringpool): Likewise.
588         (gt_ggc_m_S): Remove.
589         * ggc-common.c (ggc_protect_identifiers): New global.
590         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
591         ggc_protect_identifiers.
592         * ggc.h (ggc_protect_identifiers): Declare.
593         (gt_ggc_m_S): Update.
594         (ggc_purge_stringpool): Declare.
595         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
596         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
597         special case.
598         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
599
600 2008-05-21  David S. Miller  <davem@davemloft.net>
601
602         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
603         tmake_file.
604
605 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
606
607         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
608         once finished.
609
610 2008-05-20  David Daney  <ddaney@avtrex.com>
611
612         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
613         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
614         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
615         UNSPEC_UPDATE_GOT_VERSION): Renumber.
616         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
617         (atomic_hiqi_op): New define_code_iterator.
618         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
619         mips_expand_compare_and_swap_12.
620         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
621         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
622         (sync_<optab><mode>, sync_old_<optab><mode>,
623         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
624         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
625         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
626         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
627         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
628         (test_and_set_12): New insn.
629         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
630         sync_new_<optab><mode>, sync_old_nand<mode>,
631         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
632         clobber to operand 0 for SI and DI mode insns.
633         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
634         mips_gen_fn_4): New typedefs.
635         (mips_gen_fn_ptrs): Define new union type.
636         (mips_expand_compare_and_swap_12): Remove declaration.
637         (mips_expand_atomic_qihi): Declare function.
638         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
639         (mips_expand_atomic_qihi): ... this.  Use new generator function
640         parameter.
641         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
642         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
643         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
644         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
645         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
646         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
647         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
648         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
649         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
650         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
651         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
652         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
653
654 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
655
656         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
657         the missing break.
658
659 2008-05-20  Anatoly Sokolov <aesok@post.ru>
660
661         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
662         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
663         (avr_attribute_table): Add 'OS_main' function attribute.
664         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
665         functions with 'OS_main' attribute.
666
667 2008-05-20  Richard Guenther  <rguenther@suse.de>
668
669         PR tree-optimization/35204
670         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
671         helper, split out from ...
672         (DFS): ... here.  Make the DFS walk non-recursive.
673
674 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
675             Jan Sjodin  <jan.sjodin@amd.com>
676
677         PR tree-optimization/36181
678         * tree-parloops.c (loop_has_vector_phi_nodes): New.
679         (parallelize_loops): Don't parallelize when the loop has vector
680         phi nodes.
681
682 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
683             Sebastian Pop  <sebastian.pop@amd.com>
684
685         * tree-loop-linear.c (gather_interchange_stats): Look in the access
686         matrix, and never look at the tree representation of the memory
687         accesses.
688         (linear_transform_loops): Computes parameters and access matrices.
689         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
690         when fails.
691         (access_matrix_get_index_for_parameter): New.
692         * tree-data-ref.h (struct access_matrix): New.
693         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
694         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
695         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
696         am_vector_index_for_loop): New.
697         (struct data_reference): Add field access_matrix.
698         (DR_ACCESS_MATRIX): New.
699         (compute_data_dependences_for_loop): Update declaration.
700         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
701         * lambda.h (lambda_vector_vec_p): Declared.
702         * lambda-code.c: Depend on pointer-set.h.
703         (lambda_collect_parameters_from_af, lambda_collect_parameters,
704         av_for_af_base, av_for_af, build_access_matrix,
705         lambda_compute_access_matrices): New.
706         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
707
708 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
709
710         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
711         $SOURCEDIR/include.
712
713 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
714             Sebastian Pop  <sebastian.pop@amd.com>
715
716         PR tree-optimization/36206
717         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
718         FOLD_CONVERSIONS.
719         (instantiate_scev_1): Rename flags to fold_conversions.
720         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
721         outeside instantiation_loop.
722         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
723         (evolution_function_is_affine_or_constant_p): Removed.
724         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
725         instantiate_scev.
726         (analyze_siv_subscript): Pass in the loop nest number.
727         Call evolution_function_is_affine_in_loop instead of 
728         evolution_function_is_affine_p.
729         (analyze_overlapping_iterations): Pass in the loop nest number.
730
731 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
732             Sebastian Pop  <sebastian.pop@amd.com>
733
734         PR tree-optimization/36206
735         * tree-chrec.h (chrec_fold_op): New.
736         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
737         and other trees.
738
739 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
740
741         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
742         (DIRS_EQ): New.
743         (remove_duplicates): Do not set inode on non-inode systems.
744         Use DIRS_EQ.
745
746 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
747
748         * config.gcc (tm_file): Update comments about relative pathnames.
749
750 2008-05-20  Richard Guenther  <rguenther@suse.de>
751
752         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
753         * tree-ssa-sccvn.c (process_scc): Likewise.
754         * tree-ssa-sink.c (execute_sink_code): Likewise.
755         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
756         * tree-vrp.c (process_assert_insertions): Likewise.
757         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
758         (perform_tree_ssa_dce): Likewise.
759         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
760         (dump_dominator_optimization_stats): Likewise.
761         * tree-vectorizer.c (vectorize_loops): Likewise.
762
763 2008-05-20  Richard Guenther  <rguenther@suse.de>
764
765         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
766
767 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
768
769         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
770         (ix86_i386elf_return_in_memory): Likewise.
771         (ix86_i386interix_return_in_memory): Likewise.
772         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
773         (SUBTARGET_RETURN_IN_MEMORY): New.
774         * config/i386/i386elf.h: Likewise.
775         * config/i386/ptx4-i.h: Likewise.
776         * config/i386/sol2-10.h: Likewise.
777         * config/i386/sysv4.h: Likewise.
778         * config/i386/vx-common.h: Likewise.
779         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
780         * config/i386/i386.c (ix86_return_in_memory): Made static and
781         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
782         (ix86_i386elf_return_in_memory): Removed.
783         (ix86_i386interix_return_in_memory): Removed.
784         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
785         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
786
787 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
788
789         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
790
791 2008-05-19  Xinliang David Li  <davidxl@google.com>
792
793         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
794         * opts.c: Ditto.
795         * common.opt: Ditto.
796         * doc/invoke.texi: Ditto.
797
798 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
799
800         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
801         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
802
803 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
804
805         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
806         sizes of operand array from 8/4 to 4/2.
807         (ix86_expand_vector_init_general): Change size of operand array
808         from 32 to 16.  Remove op0, op1 and half_mode.
809
810 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
811
812         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
813         (ix86_expand_vector_init_interleave): Likewise.
814         (ix86_expand_vector_init_general): Use them.  Assert word_mode
815         == SImode when n_words == 4.
816
817 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
818
819         * config/i386/i386.c (ix86_secondary_reload): New static function.
820         (TARGET_SECONDARY_RELOAD): New define.
821         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
822         * config/i386/i386.md (reload_outqi): Remove.
823
824 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
825
826         PR middle-end/35509
827         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
828         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
829         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
830         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
831         (fold_builtin_1): Likewise.
832         * builtins.def (BUILT_IN_ISINF_SIGN): New.
833         c-common.c (check_builtin_function_arguments): Handle
834         BUILT_IN_ISINF_SIGN.
835         * doc/extend.texi: Document __builtin_isinf_sign.
836         * fold-const.c (operand_equal_p): Handle COND_EXPR.
837
838 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
839
840         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
841         EH cleanup at the end of the pass, search for those that have been
842         turned into forwarder blocks and do the cleanup on their successor.
843
844 2008-05-18  Richard Guenther  <rguenther@suse.de>
845
846         * tree-cfg.c (verify_gimple_expr): Allow conversions from
847         pointers to sizetype and vice versa.
848
849 2008-05-18 Xinliang David Li   <davidxl@google.com>
850
851         * gcc/tree-ssa-dce.c: Coding style fix.
852         (check_pow): Documentation comment. 
853         (check_log): Documenation comment. Coding style fix.
854         (is_unnecessary_except_errno_call): Ditto.
855         (gen_conditions_for_pow): Ditto.
856         (gen_conditions_for_log): Ditto.
857         (gen_shrink_wrap_conditions): Ditto.
858         (shrink_wrap_one_built_in_calls): Ditto.
859         * gcc/doc/invoke.texi: Better documentation string.
860         * ChangeLog: Fix wrong change log entries from 
861         May 17 checkin on function call DCE.
862
863 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
864
865         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
866
867 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
868
869         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
870         * df-problems.c (simulation routines): Fixed block comment to
871         properly say how to add forwards scanning functions.
872         
873 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
874
875         * tree-inline.c (setup_one_parameter): Remove dead code.
876
877 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
878
879         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
880         a BIT_AND_EXPR only for an INTEGER_TYPE.
881
882 2008-05-17 Xinliang David Li   <davidxl@google.com>
883
884         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
885         (check_pow, check_log, is_unnecessary_except_errno_call): New 
886         functions to check for eliminating math functions that are pure 
887         except for setting errno.
888         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
889         general condition expressions for shrink-wrapping pow/log calls.
890         (gen_shrink_wrap_conditions): Ditto.
891         (shrink_wrap_one_built_in_call): Ditto.
892         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
893         (mark_operand_necessary): If debugging, output if OP is necessary.
894         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
895         unnecessary.
896         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
897         opt level >= 2.
898         * gcc/common.opt: New user flag -ftree-builtin-dce.
899         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
900
901 2008-05-16  David S. Miller  <davem@davemloft.net>
902
903         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
904         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
905
906 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
907
908         PR target/36246
909         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
910
911 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
912
913         * ifcvt.c (dead_or_predicable): Rename
914         df_simulate_one_insn_backwards to df_simulate_one_insn.
915         * recog.c (peephole2_optimize): Ditto.
916         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
917         Ditto.
918         * df.h: Rename df_simulate_one_insn_backwards to
919         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
920         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
921         scanning of defs and uses.
922         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
923         (df_simulate_one_insn_forwards): Removed.
924
925 2008-05-16  Doug Kwan  <dougkwan@google.com>
926
927         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
928         QNaN & SNaN.
929         (real_from_string): Handle NaNs and Inf as approriate.
930
931 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
932
933         * doc/gty.texi (Source Files Containing Type Information): Note
934         that headers should appear first in the gtfiles list.
935
936 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
937
938         * tree.def (COND_EXEC): Properly documented this code.
939
940 2008-05-16  Diego Novillo  <dnovillo@google.com>
941
942         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
943         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
944         the new field.
945
946 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
947
948         * tree-ssa-dse (max_stmt_uid): Removed.
949         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
950         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
951         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
952         * function.h (cfun.last_stmt_uid): New field.
953         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
954         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
955         New functions.
956         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
957         (create_stmt_ann): Initialize the ann->uid field.
958         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
959         with new calls.
960         * tree-flow.h (renumber_gimple_stmt_uids): New function.
961
962 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
963
964         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
965         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
966         (init_empty_tree_cfg): Call it.
967
968 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
969
970         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
971         Update all users.
972
973 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
974
975         * doc/invoke.text (-fdump-tree-*-verbose): New option.
976         * tree-dump.c (dump_options): New verbose option.
977         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
978         Add verbose dump.
979         * tree-pass.h (TDF_VERBOSE): New dump flag.
980         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
981         (tree-flow.h): Added include.
982         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
983
984 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
985
986         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
987
988         From Jie Zhang  <jie.zhang@analog.com>
989         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
990         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
991         mcpu=bf561-none and mcpu=bf561-0.2.
992         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
993         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
994         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
995         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
996         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
997         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
998         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
999         option.
1000         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
1001         (cputype_selected): Remove.
1002         (bfin_handle_option): Don't use cputype_selected.
1003         (override_options): When no mcpu option, enable all workarounds.
1004         Don't use bfin_workarounds.
1005         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
1006         processor type.
1007         (DEFAULT_CPU_TYPE): Don't define.
1008
1009 2008-05-16  Richard Guenther  <rguenther@suse.de>
1010
1011         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
1012         on deletion of the last stmt.
1013
1014 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1015
1016         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
1017         V8HImode for SSE2 and V16QImode for SSE4.1.
1018
1019 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
1020
1021         * cgraph.h (compute_inline_parameters): Made public.
1022         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
1023         variable_generate_summary, function_write_summary,
1024         variable_write_summary, variable_read_summary.  Added generate_summary,
1025         write_summary, read_summary.
1026         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1027         pass_ipa_inline.function_generate_summary, to
1028         compute_inline_parameters. 
1029         * ipa-inline.c (compute_inline_parameters): Made public and added
1030         node parameter.
1031         (compute_inline_parameters_for_current): New function.
1032         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1033         (inline_generate_summary): Removed parameter and made to loop over
1034         all cgraph nodes.
1035         (pass_ipa_inline): Updated for new IPA_PASS structure.
1036         * passes.c (execute_ipa_summary_passes): Now is called once per
1037         pass rather than once per node*pass.
1038         
1039 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1040
1041         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1042         avr_have_mul_p, avr_asm_only_p): Remove variables.
1043         (avr_override_options): Remove initialization of removed variables.
1044         (avr_file_start):  Convert removed variables to fields of 
1045         'struct base_arch_s *avr_current_arch'. 
1046         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1047         (AVR_HAVE_MUL): (Ditto.).
1048         (AVR_HAVE_MOVW): (Ditto.).
1049         (AVR_HAVE_LPMX): (Ditto.). 
1050         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1051         avr_asm_only_p): Remove declaration.
1052
1053 2008-05-15  Diego Novillo  <dnovillo@google.com>
1054
1055         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1056         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1057
1058 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1059
1060         PR middle-end/36194
1061         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1062         Don't call record_truncated_value from here.
1063         (record_truncated_value): Turn it into a for_each_rtx callback.
1064         (record_truncated_values): New function.
1065         (combine_instructions): Call note_uses with record_truncated_values.
1066         Change name of check_conversion to check_promoted_subreg. 
1067
1068 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1069
1070         * doc/sourcebuild.texi: Document support for torture tests.
1071
1072 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1073
1074         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1075         to alternative 4 of operand 2.
1076
1077 2008-05-15  Richard Guenther  <rguenther@suse.de>
1078
1079         * tree-pass.h (current_pass): Declare.
1080         (get_pass_for_id): Likewise.
1081         * passes.c (passes_by_id, passes_by_id_size): New globals.
1082         (set_pass_for_id): New function.
1083         (get_pass_for_id): Likewise.
1084         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1085         (execute_function_todo): Flush per function statistics.
1086         * toplev.c (compile_file): Init statistics.
1087         (general_init): Do early statistics initialization.
1088         (finalize): Finish statistics.
1089         * statistics.h (statistics_early_init): Declare.
1090         (statistics_init): Likewise.
1091         (statistics_fini): Likewise.
1092         (statistics_fini_pass): Likewise.
1093         (statistics_counter_event): Likewise.
1094         (statistics_histogram_event): Likewise.
1095         * statistics.c: New file.
1096         * Makefile.in (OBJS-common): Add statistics.o.
1097         (statistics.o): Add dependencies.
1098         * doc/invoke.texi (-fdump-statistics): Document.
1099
1100         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1101         (insert): Likewise.
1102         (execute_pre): Use statistics_counter_event.
1103         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1104         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1105
1106 2008-05-15  Diego Novillo  <dnovillo@google.com>
1107
1108         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1109
1110         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1111         * tree-ssa-alias.c (new_type_alias): Remove references to
1112         sub-variables from comment.
1113         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1114
1115 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1116
1117         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1118         attribute to 1 only for insertps alternative.
1119
1120 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1121
1122         * config/bfin/bfin.md (loadbytes): New pattern.
1123         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1124         (bfin_init_builtins): Initialize it.
1125         (bdesc_1arg): Add it.
1126
1127 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1128
1129         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1130         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1131         * testsuite/lib/target-supports.exp: Add
1132         check_effective_target_fortran_integer_16.
1133
1134 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1135
1136         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1137         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1138         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1139         (TARGET_RETURN_IN_MEMORY): Define.
1140
1141 2008-05-15  Richard Guenther  <rguenther@suse.de>
1142
1143         PR middle-end/36244
1144         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1145         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1146         represent unmodifiable vars.
1147
1148 2008-05-15  Richard Guenther  <rguenther@suse.de>
1149
1150         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1151         INDIRECT_REF and TARGET_MEM_REF.
1152         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1153         TARGET_MEM_REF.
1154
1155 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1156             H.J. Lu  <hongjiu.lu@intel.com>
1157
1158         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1159         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1160         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1161         insn alternatives.  Add missing alternatives.
1162         (*vec_concatv2di_rex64_sse4_1): Likewise.
1163         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1164         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1165         Require TARGET_SSE.
1166
1167 2008-05-15  Richard Guenther  <rguenther@suse.de>
1168
1169         PR tree-optimization/36009
1170         PR tree-optimization/36204
1171         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1172         (determine_invariantness_stmt): Record the loop a store is
1173         always executed in.
1174         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1175         dependency.
1176
1177 2008-05-15  Richard Guenther  <rguenther@suse.de>
1178
1179         PR tree-optimization/34330
1180         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1181         through the pointer will alias the SMT.
1182
1183 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1184
1185         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1186
1187 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1188
1189         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1190
1191 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1192             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1193
1194         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1195         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1196         (vashl_optab): New optab for vector/vector shifts.
1197         (vashr_optab): Ditto.
1198         (vlshr_optab): Ditto.
1199         (vrotl_optab): Ditto.
1200         (vrotr_optab): Ditto.
1201         (optab_subtype): New enum for optab_for_tree_code call.
1202         (optab_for_tree_code): Add enum optab_subtype argument.
1203
1204         * optabs.c (optab_for_tree_code): Take an additional argument to
1205         distinguish between a vector shift by a scalar and vector shift by
1206         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1207         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1208         vector shift by a vector.
1209         (expand_widen_pattern_expr): Pass additional argument to
1210         optab_for_tree_code.
1211
1212         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1213         vrotl_optab, vrotr_optab.
1214
1215         * expr.c (expand_expr_real_1): Update calls to
1216         optab_for_tree_code to distinguish between vector shifted by a
1217         scalar and vector shifted by a vector.
1218         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1219         (supportable_narrowing_operation): Ditto.
1220         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1221         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1222         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1223         (vect_create_epilog_for_reduction): Ditto.
1224         (vectorizable_reduction): Ditto.
1225         (vectorizable_operation): Ditto.
1226         (vect_strided_store_supported): Ditto.
1227         (vect_strided_load_supported): Ditto.
1228         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1229         * expmed.c (expand_shift): Ditto.
1230
1231         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1232         scalar type.
1233         (ashr@var{m}3): Ditto.
1234         (vashl@var{m}3): Document new vector/vector shift standard name.
1235         (vashr@var{m}3): Ditto.
1236         (vlshr@var{m}3): Ditto.
1237         (vrotl@var{m}3): Ditto.
1238         (vrotr@var{m}3): Ditto.
1239
1240         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1241         (PPERM_INVERT): Ditto.
1242         (PPERM_REVERSE): Ditto.
1243         (PPERM_REV_INV): Ditto.
1244         (PPERM_ZERO): Ditto.
1245         (PPERM_ONES): Ditto.
1246         (PPERM_SIGN): Ditto.
1247         (PPERM_INV_SIGN): Ditto.
1248         (PPERM_SRC1): Ditto.
1249         (PPERM_SRC2): Ditto.
1250
1251         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1252         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1253         allows a memory operand to be the value being added, and split it
1254         to improve vectorization.
1255         (sse5_pmacsdqh_mem): Ditto.
1256         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1257         (sse5_mulv2div2di3_high): Ditto.
1258         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1259         (vec_pack_trunc_v4si): Ditto.
1260         (vec_pack_trunc_v2di): Ditto.
1261         (sse5_pcmov_<mode>): Remove code that tried to use use
1262         andps/andnps instead of pcmov.
1263         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1264         pmacsdqh instructions.
1265         (vec_widen_smult_lo_v4si): Ditto.
1266
1267         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1268         (PPERM_INVERT): Ditto.
1269         (PPERM_REVERSE): Ditto.
1270         (PPERM_REV_INV): Ditto.
1271         (PPERM_ZERO): Ditto.
1272         (PPERM_ONES): Ditto.
1273         (PPERM_SIGN): Ditto.
1274         (PPERM_INV_SIGN): Ditto.
1275         (PPERM_SRC1): Ditto.
1276         (PPERM_SRC2): Ditto.
1277         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1278         true/false tests.
1279         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1280         comparisons.
1281         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1282         says ignore whether the last reference is a memory operand.
1283
1284 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1285             Paolo Bonzini <bonzini at gnu dot org>
1286
1287         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1288         shift patterns.
1289
1290         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1291         (vlshr<mode>3): Rename from vlshr<mode>3.
1292         (vashr<mode>3): Rename from vashr<mode>3.
1293         (mulv4sf3): Change the names of vector shift patterns.
1294         (mulv4si3): Ditto.
1295         (negv4sf2): Ditt.
1296
1297         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1298         shift insns.
1299
1300         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1301         (SI_SHLHI): Ditto.
1302         (SI_SHL): Ditto.
1303         (SI_SHLI): Ditto.
1304         (SI_ROTH): Ditto.
1305         (SI_ROTHI): Ditto.
1306         (SI_ROT): Ditto.
1307         (SI_ROTI): Ditto.
1308         (SPU_RL_0): Ditto.
1309         (SPU_RL_1): Ditto.
1310         (SPU_RL_2): Ditto.
1311         (SPU_RL_3): Ditto.
1312         (SPU_RL_4): Ditto.
1313         (SPU_RL_5): Ditto.
1314         (SPU_RL_6): Ditto.
1315         (SPU_RL_7): Ditto.
1316         (SPU_SL_0): Ditto.
1317         (SPU_SL_1): Ditto.
1318         (SPU_SL_2): Ditto.
1319         (SPU_SL_3): Ditto.
1320         (SPU_SL_4): Ditto.
1321         (SPU_SL_5): Ditto.
1322         (SPU_SL_6): Ditto.
1323         (SPU_SL_7): Ditto.
1324
1325         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1326         (floatunssidf2_internal): Change vector/vector shift names.
1327         (floatunsdidf2_internal): Ditto.
1328         (mulv8hi3): Ditto.
1329         (ashrdi3): Ditto.
1330         (ashrti3): Ditto.
1331         (cgt_df): Ditto.
1332         (cgt_v2df): Ditto.
1333         (dftsv): Ditto.
1334         (vashl<mode>3): Rename from ashl<mode>3.
1335         (vashr<mode>3): Rename from ashr<mode>3.
1336         (vlshr<mode>3): Rename from lshr<mode>3.
1337         (vrotl<mode>3): Rename from rotl<mode>3.
1338
1339 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1340
1341         PR target/36224
1342         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1343         multiply gives the wrong value when doing widening multiplies.
1344         (vec_widen_smult_lo_v4si): Ditto.
1345
1346 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1347
1348         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1349         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1350         emit_library_call_value. 
1351         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1352         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1353         * calls.c (initialize_argument_information, precompute_arguments, 
1354         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1355         (precompute_arguments): Removed flags parameter.
1356         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1357         
1358 2008-05-14  Richard Guenther  <rguenther@suse.de>
1359
1360         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1361         Make sure to register the store if the use is a PHI_NODE.
1362
1363 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1364
1365         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1366         memory if the component is to be referenced in BLKmode according
1367         to get_inner_reference.
1368
1369 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1370
1371         * calls.c (emit_library_call_value_1): Restore code clearing
1372         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1373
1374 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1375             Nicolas Roche  <roche@adacore.com>
1376
1377         * configure.ac: Add support for a "gcc_subdir" variable in
1378         config-lang.in, to denote a subdirectory where the language/GCC
1379         integration files are to be found.
1380         * configure: Regenerate.
1381
1382 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1383
1384         PR tree-optimization/36098
1385         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1386         value for the first load in the group in case of a gap.
1387         (vect_build_slp_tree): Check that there are no gaps in loads.
1388
1389 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1390
1391         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1392         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1393         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1394         emit_insn and remove unneeded code to construct extra args.
1395         (emit_no_conflict_block): Removed.
1396         * optabls.h: (emit_no_conflict_block): Removed.
1397         * cse.c (cse_extended_basic_block): Remove search for
1398         REG_NO_CONFLICT note.
1399         * global.c: Removed incorrect comment added in revision 117.
1400         * expr.c (convert_move): Change call to emit_no_conflict_block to
1401         emit_insn.
1402         * recog.c: Change comments so that they do not mention
1403         REG_NO_CONFLICT.
1404         * local_alloc.c (combine_regs): Removed last parameter.
1405         (no_conflict_p): Removed.
1406         (block_alloc): Removed note, no_conflict_combined_regno and set
1407         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1408         (combine_regs): Removed already_dead and code to look for
1409         REG_NO_CONFLICT notes.
1410         * lower_subreg (remove_retval_note): Removed code to look for
1411         REG_NO_CONFLICT block.
1412         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1413         (resolve_clobber): Remove code to process libcalls that have
1414         REG_NO_CONFLICT notes.
1415         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1416         case.
1417         * combine.c (can_combine_p, distribute_notes):  Removed
1418         REG_NO_CONFLICT case.
1419         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1420         to emit_insns.
1421         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1422         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1423         Ditto.
1424         * reg-notes.def (NO_CONFLICT): Removed.
1425
1426 2008-05-14  David S. Miller  <davem@davemloft.net>
1427
1428         * config/sparc/sparc.c (sparc_profile_hook): If
1429         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1430         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1431         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1432
1433 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1434
1435         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1436
1437 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1438
1439         PR target/36222
1440         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1441         and op1 expansion before vector concat to have less live pseudos.
1442
1443 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1444
1445         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1446         ix86_expand_vector_set if supported.
1447
1448 2008-05-13  Diego Novillo  <dnovillo@google.com>
1449             Kenneth Zadeck  <zadeck@naturalbridge.com>
1450
1451         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1452
1453         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1454         phinodes_print_statistics, init_ssanames, fini_ssanames,
1455         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1456         release_ssa_name, release_defs, replace_ssa_name_symbol,
1457         ssanames_print_statistics): Move ...
1458         * tree-flow.h: ... here.
1459         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1460         Use FN instead of cfun.
1461         (make_ssa_name_fn): Rename from make_ssa_name.
1462         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1463         * tree-flow-inline.h (make_ssa_name): Move from
1464         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1465         * omp-low.c (expand_omp_parallel):
1466         * tree-flow-inline.h (redirect_edge_var_map_result):
1467         * tree-ssa.c (init_tree_ssa): Add argument FN.
1468         Use it instead of cfun.  Update all users.
1469
1470 2008-05-13  Tom Tromey  <tromey@redhat.com>
1471
1472         PR preprocessor/22168:
1473         * doc/cpp.texi (Top): Update menu.
1474         (Alternatives to Wrapper #ifndef): New node.
1475         (Other Directives): Document deprecation.
1476         (Obsolete Features): Remove menu.
1477         (Assertions): Merge node into Obsolete Features.
1478         (Obsolete once-only headers): Move earlier; rename to Alternatives
1479         to Wrapper #ifndef.
1480         * doc/cppopts.texi: Update.
1481         * c.opt (Wdeprecated): Enable for C and ObjC.
1482         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1483         (C++ Dialect Options): Move -Wno-deprecated from here to...
1484         (Warning Options): ... here.
1485
1486 2008-05-13  Richard Guenther  <rguenther@suse.de>
1487
1488         PR middle-end/36227
1489         * fold-const.c (fold_sign_changed_comparison): Do not allow
1490         changes in pointer-ness.
1491
1492 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1493
1494         PR target/24713
1495         * config/sh/sh.c (sh_expand_prologue): Don't clear
1496         RTX_FRAME_RELATED_P for push insns.
1497
1498 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1499
1500         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1501
1502 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1503
1504         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1505         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1506         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1507
1508 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1509
1510         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1511         (*vec_concatv4sf_sse): This.
1512         (*sse2_concatv2si): Renamed to ...
1513         (*vec_concatv2si_sse2): This.
1514         (*sse1_concatv2si): Renamed to ...
1515         (*vec_concatv2si_sse): This.
1516         (*vec_concatv2di_rex): Renamed to ...
1517         (*vec_concatv2di_rex64): This.
1518         (*vec_concatv2si_sse4_1): New.
1519         (*vec_concatv2di_rex64_sse4_1): Likewise.
1520
1521 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1522
1523         PR rtl-optimization/36111
1524         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1525         that was created for swappable operands.
1526
1527 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1528
1529         PR ada/36001
1530         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1531         * configure.ac: Add call to ACX_PROG_GNAT.
1532
1533 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1534
1535         * optc-gen.awk: Fix comment typo.
1536
1537 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1538
1539         * pretty-print.c (pp_integer_with_precision): Use
1540         HOST_LONG_LONG_FORMAT.
1541
1542 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1543
1544         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1545                 
1546 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1547
1548         * config/i386/i386.c (bdesc_ptest): Removed.
1549         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1550         (bdesc_args): Add __builtin_ia32_ptestz128,
1551         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1552         (ix86_init_mmx_sse_builtins): Updated.
1553         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1554         (ix86_expand_builtin): Updated.
1555
1556 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1557
1558         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1559         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1560
1561 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1562
1563         * value-prof.c (interesting_stringop_to_profile): Do not
1564         return early for BUILT_IN_MEMPCPY.
1565
1566 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1567
1568         * calls.c (expand_call): Don't use callgraph to increase
1569         preferred_stack_boundary.
1570
1571         * cgraph.h (cgraph_rtl_info): Use unsigned on
1572         preferred_incoming_stack_boundary.
1573
1574         * final.c (rest_of_clean_state): Use unsigned on
1575         preferred_stack_boundary.
1576
1577 2008-05-09  Tom Tromey  <tromey@redhat.com>
1578
1579         PR preprocessor/22231:
1580         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1581         proceeding.
1582
1583 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1584
1585         PR tree-optimization/36129
1586         * tree-ssa-ccp.c: Include value-prof.h.
1587         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1588         built-in function was folded to a constant.
1589         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1590
1591 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1592             Sebastian Pop  <sebastian.pop@amd.com>
1593
1594         * tree-scalar-evolution.c: Document instantiate_scev.
1595         (instantiate_parameters_1): Renamed instantiate_scev_1.
1596         Don't use the same loop for instantiation_loop and evolution_loop.
1597         (instantiate_scev): New.
1598         (instantiate_parameters): Moved...
1599         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1600         same loop twice.  Maintains the semantics for this function.
1601         * tree-scalar-evolution.h (instantiate_scev): Declare.
1602         (instantiate_parameters): ...here.  Now static inline.
1603         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1604         instead of resolve_mixers.
1605
1606 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1607
1608         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1609
1610 2008-05-09  Tomas Bily  <tbily@suse.cz>
1611
1612         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1613         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1614         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1615         * c-common.c (c_common_truthvalue_conversion): Likewise.
1616         * tree-object-size.c (compute_object_offset): Likewise.
1617         * tree-inline.c (estimate_num_insns_1): Likewise.
1618         * varasm.c (const_hash_1, compare_constant, copy_constant)
1619         (compute_reloc_for_constant, output_addressed_constants)
1620         (initializer_constant_valid_p): Likewise.
1621         * c-omp.c (check_omp_for_incr_expr): Likewise.
1622         * gimplify.c (gimplify_expr): Likewise.
1623         * c-typeck.c (c_finish_return): Likewise.
1624         * tree-vectorizer.c (supportable_widening_operation)
1625         (supportable_narrowing_operation): Likewise.
1626         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1627         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1628         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1629         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1630         (descr_info_loc): Likewise.
1631         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1632         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1633         (fold_unary): Likewise.
1634         * builtins.c (get_pointer_alignment): Likewise.
1635         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1636         (instantiate_parameters_1): Likewise.
1637         * tree.c (expr_align, stabilize_reference): Likewise.
1638         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1639         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1640         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1641         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1642         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1643         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1644         Likewise.
1645         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1646         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1647         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1648         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1649         (forward_propagate_comparison)
1650         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1651         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1652         * emit-rtl.c (component_ref_for_mem_expr)
1653         (set_mem_attributes_minus_bitpos): Likewise.
1654         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1655         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1656         Likewise.
1657         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1658         (build_function_call, pointer_diff, build_compound_expr)
1659         (c_finish_return): Likewise.
1660         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1661         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1662         Likewise.
1663         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1664         * expr.c (is_aligning_offset): Likewise.
1665         * tree-ssa-alias.c (is_escape_site): Likewise.
1666         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1667         (check_all_va_list_escapes): Likewise.
1668         * tree-ssa-loop-ivopts.c (determine_base_object)
1669         (determine_common_wider_type): Likewise.
1670         * dojump.c (do_jump): Likewise.
1671         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1672         * tree-gimple.c (is_gimple_cast): Likewise.
1673         * fold-const.c (decode_field_reference, )
1674         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1675         (fold_binary): Likewise.
1676         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1677         (already_warned_in_frontend_p): Likewise.
1678         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1679         * tree.c (really_constant_p, get_unwidened): Likewise.
1680         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1681         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1682         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1683         Likewise.
1684         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1685         CONVERT_EXPR_P.
1686         (CONVERT_EXPR_P): Define.
1687         (CASE_CONVERT): Define.
1688         
1689 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1690
1691         PR middle-end/36117
1692         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1693         (delete_unmarked_insns): When deleting a call, call
1694         delete_unreachable_blocks.
1695         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1696         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1697
1698 2008-05-08  Richard Guenther  <rguenther@suse.de>
1699
1700         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1701         (-ftree-salias): Likewise.
1702         (salias-max-implicit-fields): Remove param documentation.
1703         (salias-max-array-elements): Likewise.
1704         * tree-pass.h (pass_create_structure_vars): Remove.
1705         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1706         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1707         * tree-ssa-alias.c (create_structure_vars): Remove.
1708         (gate_structure_vars): Likewise.
1709         (pass_create_structure_vars): Likewise.
1710         (gate_build_alias): Likewise.
1711         (pass_build_alias): Adjust to run always and dump the function.
1712         * common.opt (ftree-salias): Hide.
1713         * passes.c (init_optimization_passes): Remove
1714         pass_create_structure_vars, adjust comment.
1715         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1716         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1717         * opts.c (decode_options): Do not set flag_tree_salias.
1718         (common_handle_option): Add OPT_ftree_salias to the backward
1719         compatibility section.
1720
1721 2008-05-08  Richard Guenther  <rguenther@suse.de>
1722
1723         * tree-flow-inline.h (var_can_have_subvars): Move ...
1724         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1725         * tree-flow.h (var_can_have_subvars): Remove.
1726         (push_fields_onto_fieldstack): Remove.
1727         (sort_fieldstack): Likewise.
1728         (struct fieldoff): Move ...
1729         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1730         alias_set and base_for_components fields.
1731         (sort_fieldstack): Make static.
1732         (push_fields_onto_fieldstack): Likewise.  Remove code that
1733         handles anything but RECORD_TYPEs.  Remove alias_set and
1734         base_for_components handling.
1735         (create_variable_info_for): Adjust.
1736
1737 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1738
1739         * common.opt (Wframe-larger-than=): Shorten the help message
1740         to one line.
1741         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1742
1743 2008-05-08  Rafael Espindola  <espindola@google.com>
1744
1745         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1746         trap.
1747         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1748         trap and that both operands are gimple values.
1749         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1750         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1751         is a fp operation.
1752
1753 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1754
1755         * read-rtl.c (join_c_conditions): Return the first string if the
1756         two strings are equal.
1757
1758 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1759
1760         * gensupport.h (pred_data): Add a "num_codes" field.
1761         (add_predicate_code): Declare.
1762         * gensupport.c (add_predicate_code): New function.
1763         (std_pred_table): Add an "allows_const_p" field.
1764         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1765         Remove the (incomplete) list of such codes from the codes field.
1766         (init_predicate_table): Use add_predicate_code.  Add all
1767         RTX_CONST_OBJs if allows_const_p is true.
1768         * genrecog.c (process_define_predicate): Use add_predicate_code.
1769
1770 2008-05-08  David Daney  <ddaney@avtrex.com>
1771             Richard Sandiford  <rsandifo@nildram.co.uk>
1772         
1773         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1774         special case of constant zero operands.
1775         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1776         old and new values.  Special case constant zero values.
1777         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1778         fails.
1779         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1780         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1781
1782 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1783
1784         PR target/36090
1785         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1786         similar RTX_CONST_OBJ before CONST_INT.
1787
1788 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1789
1790         * stmt.c (expand_stack_restore): Change sa mode if needed.
1791
1792 2008-05-08  Richard Guenther  <rguenther@suse.de>
1793
1794         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1795         return type to bool.
1796         (ix86_sol10_return_in_memory): Likewise.
1797         (ix86_i386elf_return_in_memory): Likewise.
1798         (ix86_i386interix_return_in_memory): Likewise.
1799         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1800         (ix86_sol10_return_in_memory): Likewise.
1801         (ix86_i386elf_return_in_memory): Likewise.
1802         (ix86_i386interix_return_in_memory): Likewise.
1803
1804 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1805
1806         PR bootstrap/36180
1807         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1808         fndecl argument.
1809         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1810         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1811         declared in front.
1812
1813 2008-05-08  Richard Guenther  <rguenther@suse.de>
1814
1815         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1816         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1817         (DR_SUBVARS): Remove.
1818         * tree-dfa.c (dump_subvars_for): Remove.
1819         (debug_subvars_for): Likewise.
1820         (dump_variable): Do not dump subvars.
1821         (remove_referenced_var): Do not remove subvars.
1822         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1823         (lookup_subvars_for_var): Remove.
1824         (get_subvars_for_var): Likewise.
1825         (get_subvars_at): Likewise.
1826         (get_first_overlapping_subvar): Likewise.
1827         (overlap_subvar): Likewise.
1828         * tree-flow.h (subvar_t): Remove.
1829         (struct var_ann_d): Remove subvars field.
1830         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1831         argument.  Remove special handling of SFTs.
1832         (compute_tag_properties): Likewise.
1833         (set_initial_properties): Likewise.
1834         (compute_call_clobbered): Likewise.
1835         (count_mem_refs): Likewise.
1836         (compute_memory_partitions): Likewise.
1837         (compute_flow_insensitive_aliasing): Likewise.
1838         (setup_pointers_and_addressables): Likewise.
1839         (new_type_alias): Likewise.
1840         (struct used_part): Remove.
1841         (used_portions): Likewise.
1842         (struct used_part_map): Likewise.
1843         (used_part_map_eq): Likewise.
1844         (used_part_map_hash): Likewise.
1845         (free_used_part_map): Likewise.
1846         (up_lookup): Likewise.
1847         (up_insert): Likewise.
1848         (get_or_create_used_part_for): Likewise.
1849         (create_sft): Likewise.
1850         (create_overlap_variables_for): Likewise.
1851         (find_used_portions): Likewise.
1852         (create_structure_vars): Likewise.
1853         * tree.def (STRUCT_FIELD_TAG): Remove.
1854         * tree.h (MTAG_P): Adjust.
1855         (struct tree_memory_tag): Remove base_for_components and
1856         unpartitionable flags.
1857         (struct tree_struct_field_tag): Remove.
1858         (SFT_PARENT_VAR): Likewise.
1859         (SFT_OFFSET): Likewise.
1860         (SFT_SIZE): Likewise.
1861         (SFT_NONADDRESSABLE_P): Likewise.
1862         (SFT_ALIAS_SET): Likewise.
1863         (SFT_UNPARTITIONABLE_P): Likewise.
1864         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1865         (union tree_node): Remove sft field.
1866         * alias.c (get_alias_set): Remove special handling of SFTs.
1867         * print-tree.c (print_node): Remove handling of SFTs.
1868         * tree-dump.c (dequeue_and_dump): Likewise.
1869         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1870         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1871         * tree-predcom.c (set_alias_info): Do not set subvars.
1872         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1873         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1874         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1875         (add_vars_for_offset): Remove.
1876         (add_virtual_operand): Remove special handling of SFTs.
1877         (add_call_clobber_ops): Likewise.
1878         (add_call_read_ops): Likewise.
1879         (get_asm_expr_operands): Likewise.
1880         (get_modify_stmt_operands): Likewise.
1881         (get_expr_operands): Likewise.
1882         (add_to_addressable_set): Likewise.
1883         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1884         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1885         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1886         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1887         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1888         (tree_node_structure): Likewise.
1889         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1890         handling of SFTs.
1891         (find_what_p_points_to): Likewise.
1892
1893 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1894
1895         * config/spu/spu.md: Fixed subti3 pattern.
1896
1897 2008-05-08  Richard Guenther  <rguenther@suse.de>
1898
1899         PR middle-end/36154
1900         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1901         sure to create a representative for trailing arrays for PTA.
1902
1903 2008-05-08  Richard Guenther  <rguenther@suse.de>
1904
1905         PR middle-end/36172
1906         * fold-const.c (operand_equal_p): Two objects which types
1907         differ in pointerness are not equal.
1908
1909 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1910
1911         * calls.c (compute_argument_block_size): Add argument tree fndecl.
1912         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
1913         (emit_library_call_value_1): Add new variable fndecl initialized by
1914         NULL_TREE. It should be the decl type of orgfun, but this information
1915         seems not to be available here, so it uses the default calling abi.
1916         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
1917         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
1918         by TARGET_RETURN_IN_MEMORY.
1919         * config/i386/i386-interix.h: Likewise.
1920         * config/i386/i386.h: Likewise.
1921         * config/i386/i386elf.h: Likewise.
1922         * config/i386/ptx4-i.h: Likewise.
1923         * config/i386/sol2-10.h: Likewise.
1924         * config/i386/sysv4.h: Likewise.
1925         * config/i386/vx-common.h: Likewise.
1926         * config/cris/cris.h: Removed #if 0 clause.
1927         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
1928         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
1929         argument.
1930         (ix86_sol10_return_in_memory): Likewise.
1931         (ix86_i386elf_return_in_memory): New.
1932         (ix86_i386interix_return_in_memory): New.
1933         * config/mt/mt-protos.h (mt_return_in_memory): New.
1934         * config/mt/mt.c: Likewise.
1935         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1936         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
1937         * config/bfin/bfin.h: Likewise.
1938         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
1939         argument.
1940         * config/bfin/bfin.c: Likewise.
1941         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1942         * config/alpha/unicosmk.h: Likewise.
1943         * config/i386/cygming.h: Likewise.
1944         * config/iq2000/iq2000.h: Likewise.
1945         * config/mips/mips.h: Likewise.
1946         * config/mn10300/mn10300.h: Likewise.
1947         * config/rs6000/rs6000.h: Likewise.
1948         * config/score/score.h: Likewise.
1949         * config/spu/spu.h: Likewise.
1950         * config/v850/v850.h: Likewise.
1951         * defaults.h: Likewise.
1952         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
1953         * expr.c (emit_block_move): Adjust use of
1954         OUTGOING_REG_PARM_STACK_SPACE.
1955         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
1956         OUTGOING_REG_PARM_STACK_SPACE.
1957         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
1958
1959 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
1960
1961         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
1962         on OMP_RETURN for OMP_FOR.
1963
1964         PR debug/35896
1965         * dwarf2out.c (dw_expand_expr, common_check): Removed.
1966         (fortran_common): New function.
1967         (gen_variable_die): Call fortran_common instead of common_check,
1968         adjust for it returning tree instead of rtx.  Formatting.
1969
1970 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
1971
1972         PR rtl/7335
1973         PR rtl/33826
1974         * see.c (see_copy_insn): Copy new pure const attributes for new call.
1975         * c-decl.c (merge_decls): Ditto.
1976         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
1977         to RTL_CONST_OR_PURE_CALL_P.
1978         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
1979         Initialized DECL_LOOPING_CONST_PURE.
1980         (process_call_operands): Set tree_side_effects properly.
1981         * tree.h (TREE_READONLY_DECL_P): Removed.
1982         (DECL_IS_PURE): Renamed to DECL_PURE_P.
1983         (DECL_LOOPING_OR_CONST_P): New macro.
1984         (struct tree_function_decl): Added looping_const_or_pure_p.
1985         (ECF_*) Renumbered.
1986         (ECF_LOOPING_OR_CONST_P): New macro.
1987         * rtlanal.c (pure_const_p): Removed.
1988         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
1989         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
1990         to RTL_CONST_CALL_P.
1991         * ipa-pure-const.c (pure_const_state_e): Added looping field.
1992         (check_decl, check_tree, check_call, scan_function): Initialize
1993         looping.
1994         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
1995         (static_execute): Set looping true for recursive functions.
1996         Undo setting state to IPA_NEITHER for recursive functions.
1997         * cse.c (cse_insn): 
1998         * ifcvt.c (noce_can_store_speculate_p): Changed
1999         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
2000         RTL_CONST_OR_PURE_CALL_P.
2001         * dse.c (scan_insn): Ditto.
2002         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
2003         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
2004         RTL_CONST_OR_PURE_CALL_P.
2005         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
2006         pure_call_p to RTL_CONST_CALL_P.
2007         * gimplify.c (gimplify_call_expr): Clear side effects for
2008         non-looping pure and constant calls.
2009         * calls.c (emit_call_1): Set rtl flags from ecf flags.
2010         (flags_from_decl_or_type): Set ecf flags from decl flags.
2011         (initialize_argument_information): Turn off
2012         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
2013         Change const to pure if callee_copies is true rather than just
2014         turning off const.
2015         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
2016         way of marking pure calls.
2017         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
2018         Remove hack that was supposed to fix pr7335 and remove old
2019         way of marking pure calls.
2020         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
2021         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
2022         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
2023         RTL_CONST_OR_PURE_CALL_P.
2024         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
2025         * loop-invariant.c (find_exits, find_invariant_bb): Changed
2026         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2027         * sched-deps.c (schedule_analyze): Ditto.
2028         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2029         return_val field of calls to represent pure and const function info.
2030         (CONST_OR_PURE_CALL_P): Deleted macro.
2031         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2032         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2033         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2034         TREE_READONLY.
2035         * tree-optimize.c (execute_fixup_cfg): Added test for
2036         ECF_LOOPING_CONST_OR_PURE.
2037         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2038         DECL_PURE_P.
2039         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2040         effects for looping pure or const calls.
2041         (verify_gimple_expr): Added verification code. 
2042         * config/alpha/alpha.c (alpha_legitimize_address,
2043         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2044         RTL_CONST_CALL_P.
2045         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2046         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2047         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2048         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2049         RTL_CONST_OR_PURE_CALL_P.
2050         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2051         and const calls to be deleted.
2052
2053 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2054
2055         PR target/35714
2056         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2057         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2058         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2059         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2060         to handle nonimmediate operands.
2061         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2062         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2063         to handle nonimmediate operands.
2064         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2065         (mmx_pmulhrwv4hi3): New expander.  Use
2066         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2067         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2068         (sse2_umulv1siv1di3): New expander.  Use
2069         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2070         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2071         (mmx_eq<mode>3): New expander.  Use
2072         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2073         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2074         (mmx_uavgv8qi3): New expander.  Use
2075         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2076         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2077         (mmx_uavgv4hi3): New expander.  Use
2078         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2079
2080         * config/i386/sse.md
2081         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2082         to handle nonimmediate operands.
2083         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2084         to handle nonimmediate operands.
2085         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2086         to handle nonimmediate operands.
2087         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2088         to handle nonimmediate operands.
2089         (sse2_unpckhpd_exp): New expander.  Use
2090         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2091         (sse2_unpcklpd_exp): New expander.  Use
2092         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2093         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2094         to handle nonimmediate operands.
2095         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2096         to handle nonimmediate operands.
2097         (*sse2_<plusminus_insn><mode>3): Rename from
2098         sse2_<plusminus_insn><mode>3 insn pattern.
2099         (sse2_<plusminus_insn><mode>3): New expander.  Use
2100         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2101         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2102         (sse2_umulv2siv2di3): New expander.  Use
2103         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2104         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2105         (sse4_1_mulv2siv2di3): New expander.  Use
2106         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2107         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2108         (sse2_pmaddwd): New expander.  Use
2109         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2110         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2111         (sse2_eq<mode>3): New expander.  Use
2112         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2113         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2114         (sse4_1_eqv2di3): New expander.  Use
2115         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2116         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2117         (sse2_uavgv16qi3): New expander.  Use
2118         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2119         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2120         (sse2_uavgv16qi3): New expander.  Use
2121         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2122         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2123         (sse2_uavgv8hi3): New expander.  Use
2124         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2125         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2126         (ssse3_pmulhrswv8hi3): New expander.  Use
2127         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2128         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2129         (ssse3_pmulhrswv4hi3): New expander.  Use
2130         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2131
2132         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2133         (<sse>_vmmul<mode>3): Ditto.
2134         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2135         (divv2df3): Ditto.
2136         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2137         (ssse3_pmaddubsw): Ditto.
2138
2139         * config/i386/i386.c (struct_builtin_description)
2140         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2141         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2142         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2143         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2144         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2145         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2146         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2147         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2148         (ix86_fixup_binary_operands): Assert that src1
2149         and src2 must have the same mode when swapped.
2150         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2151         and ix86_binary_operator_ok.  Do not force operands in registers
2152         when optimizing.
2153
2154 2008-05-07  Jan Hubicka  <jh@suse.cz>
2155
2156         * cgraph.c (dump_cgraph_node): Update.
2157         * cgraph.h (cgraph_local_info): Break out inline summary.
2158         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2159         hook.
2160         * ipa-inline (inline_summary): New accestor function.
2161         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2162         cgraph_decide_inlining, compute_inline_parameters): Update.
2163         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2164
2165 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2166
2167         Cleanup ColdFire scheduling support and add V4 pipeline model.
2168
2169         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2170         (define_attr cpu): Add cfv4 value.
2171         (define_attr type, define_attr type1): Merge into a single 'type'
2172         attribute.  Update all uses.
2173         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2174         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2175         Update all uses.
2176         (define_attr opx_mem, define_attr opy_mem): Remove.
2177         (define_attr op_mem): Clean up, update comment.
2178         (define_attr size): Use specific values instead of general int.
2179         (define_attr guess, define_attr split): Remove.  Update all uses.
2180         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2181         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2182         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2183         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2184         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2185         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2186         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2187         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2188         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2189         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2190         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2191         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2192         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2193         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2194         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2195         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2196         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2197         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2198         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2199         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2200         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2201         Update or set attributes.
2202         (stack_tie): New fake instruction.
2203
2204         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2205         (m68k_sched_attr_size): Update declaration.
2206         (m68k_sched_attr_type2): Remove.
2207         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2208         Declare new bypass predicates.
2209
2210         * config/m68k/m68k.c (m68k_sched_issue_rate,
2211         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2212         implementations.
2213         (TARGET_SCHED_ISSUE_RATE,
2214         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2215         (override_options): Handle scheduling for ColdFire V4 core.
2216         (m68k_expand_prologue): Emit stack_tie.
2217         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2218         'OP_TYPE_FPN'.  Update all uses.
2219         (sched_guess_p): Remove.
2220         (sched_address_type): Handle symbolic addresses.
2221         (sched_get_operand): New static function.
2222         (sched_operand_type): Merge into sched_attr_op_type.
2223         (sched_attr_op_type): Handle FP registers, handle quick constants,
2224         update.
2225         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2226         (m68k_sched_attr_size): Update.  Move logic to ...
2227         (sched_get_attr_size_int): New static function.
2228         (sched_get_opxy_mem_type): New static function.
2229         (m68k_sched_attr_op_mem): Update.
2230         (m68k_sched_attr_type2): Remove.
2231         (sched_cfv4_bypass_data): New static variable.
2232         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2233         (m68k_sched_issue_rate): Implement scheduler hook.
2234         (struct _sched_ib: enabled_p): New field.
2235         (m68k_sched_variable_issue): Update.  Handle V4.
2236         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2237         sched_dump_class_func_t, sched_dump_split_class,
2238         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2239         sched_dump_dfa_class, m68k_sched_dump): Remove.
2240         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2241         hook.
2242         (m68k_sched_init_global): Remove statisctics dumping, introduce
2243         sanity check that all instructions have pipeline reservations.  Handle
2244         ColdFire V4 core.
2245         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2246         Handle ColdFire V4 core.
2247         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2248         New static functions.
2249         (m68k_sched_address_bypass_p): New bypass predicate.
2250         (sched_get_indexed_address_scale): New static function.
2251         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2252
2253         * cf.md: Update comments.
2254         (define_attr type2): Remove.  Use 'type' attribute instead.
2255         Update all uses.
2256         (cf_ib): Rename to cfv123_ib.  Update all uses.
2257         (cf_oep): Rename to cfv123_oep.  Update all uses.
2258         (cf_chr): Rename to cfv123_chr.  Update all uses.
2259         (cf_mem): Rename to cfv123_mem.  Update all uses.
2260         (cf_mac): Move to more appropriate place.
2261         (cfv123_guess): New automaton and cpu_unit.
2262         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2263         Update uses of 'size' attribute.  Handle before reload scheduling.
2264         (cfv123_guess): New dummy reservation for unhandled instructions.
2265         (cfv4_*): Pipeline description of ColdFire V4 core.
2266         (ignore): New reservation to handle 'ignore' type.
2267
2268 2008-05-07  Ian Lance Taylor  <iant@google.com>
2269
2270         PR middle-end/36013
2271         * gimplify.c (find_single_pointer_decl_1): Don't look through
2272         indirections.
2273         (find_single_pointer_decl): Adjust comments.
2274
2275 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2276
2277         PR middle-end/36137
2278         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2279         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2280
2281         PR middle-end/36106
2282         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2283         integral type rather than floating point, then VIEW_CONVERT_EXPR
2284         to the floating point type.
2285
2286 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2287
2288         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2289         TFmode op0 to register.
2290
2291 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2292
2293         * c-decl.c (grokdeclarator): Comment typo.
2294
2295 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2296
2297         * tree-flow.h: Remove prototype for computed_goto_p.
2298         * tree-cfg.c (computed_goto_p): Make static.
2299
2300 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2301
2302         PR target/35657
2303         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2304         (contains_aligned_value_p): This.  Handle _Decimal128.
2305         (ix86_function_arg_boundary): Only align _Decimal128 to its
2306         natural boundary and handle it properly.
2307
2308 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2309
2310         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2311         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2312         (ipcp_method_set_orig_node): Removed.
2313         (ipcp_cval_get_cvalue_type): Removed.
2314         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2315         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2316         (ipcp_cval_set_cvalue_type): Removed.
2317         (ipcp_cval_get_cvalue): Removed.
2318         (ipcp_cval_set_cvalue): Removed.
2319         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2320         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2321         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2322         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2323         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2324         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2325         (ipcp_get_ith_lattice): Changed parameters.
2326         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2327         (ipcp_lattice_from_jfunc): Changed parameters.
2328         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2329         (ipcp_method_cval_print): Added temporary variable info.
2330         (ipcp_redirect): Removed already unused local variable caller.
2331         (ipcp_redirect): New temporary variable orig_callee_info
2332         (ipcp_redirect): Removed newly unused local variable callee.
2333         (ipcp_redirect): Removed (a bit confusing) local variable type.
2334         (ipcp_insert_stage): Added local variable info.
2335         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2336         renamed too
2337         (ipcp_formal_create): Removed.
2338         (ipcp_method_cval_set): Removed.
2339         (ipcp_propagate_stage): Renamed lattice variables.
2340         (ipcp_method_cval_set_cvalue_type): Removed.
2341         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2342         (ipcp_print_all_lattices): Changed printed strings to refer to 
2343         lattices rather than cvals.
2344         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2345         (ipcp_propagate_const): Changed formal parameters.
2346         (build_const_val): Changed formal parameters.
2347         (ipcp_insert_stage): Removed useless variable cvalue
2348         (build_const_val): Changed formal parameters.
2349         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2350         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2351         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2352         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2353         (ipcp_print_func_profile_counts): Changed string from "method" to 
2354         "function"
2355         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2356         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2357         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2358         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2359         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2360         (ipcp_lat_is_const): Changed parameters and made inline.
2361         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2362         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2363         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2364         the predicate condition directly
2365         (ipcp_propagate_stage): Added local variable args. Removed local
2366         variable callee.  (Both are mere code simplifications.)
2367         (ipcp_method_dont_insert_const): Renamed to
2368         ipcp_node_not_modifiable_p.
2369         (ipcp_node_not_modifiable_p): Made inline.
2370         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2371         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2372         (ipcp_print_all_lattices): Removed variable cvalue
2373         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2374         Updated comments.
2375
2376 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2377
2378         * tree-sra.c (try_instantiate_multiple_fields): Early return
2379         if field has POINTER_TYPE.
2380
2381 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2382
2383         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2384         by using 'q' specifier for instruction.
2385         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2386
2387 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2388
2389         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2390         Change mode of zero_extract from QImode to HImode.
2391         (sign bit tests peepholes): (Ditto.).
2392
2393 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2394
2395         * config/i386/mmx.md: Remove double backslashes from asm templates.
2396         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2397         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2398         to handle nonimmediate operands.
2399         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2400         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2401         to handle nonimmediate operands.
2402         (*mmx_<code>v2sf3_finite): New insn pattern.
2403         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2404         (mmx_<code>v2sf3): New expander.  Use
2405         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2406         (mmx_<plusminus_insn><mode>3): New expander.  Use
2407         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2408         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2409         (mmx_add<mode>3): Removed.
2410         (mmx_ssadd<mode>3): Ditto.
2411         (mmx_usadd<mode>3): Ditto.
2412         (mmx_sub<mode>3): Ditto.
2413         (mmx_sssub<mode>3): Ditto.
2414         (mmx_ussub<mode>3): Ditto.
2415         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2416         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2417         to handle nonimmediate operands.
2418         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2419         insn pattern.
2420         (mmx_smulv4hi3_highpart): New expander.  Use
2421         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2422         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2423         insn pattern.
2424         (mmx_umulv4hi3_highpart): New expander.  Use
2425         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2426         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2427         (mmx_<code>v4hi3): New expander.  Use
2428         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2429         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2430         (mmx_<code>v8qi3): New expander.  Use
2431         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2432         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2433         (mmx_<code><mode>3): New expander.  Use
2434         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2435
2436 2008-05-05  Jan Hubicka  <jh@suse.cz>
2437
2438         PR tree-optimization/36118
2439         * passes.c (pass_init_dump_file): Fix dump header.
2440
2441 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2442
2443         PR middle-end/36141
2444         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2445         VCE for function decls.
2446
2447 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2448
2449         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2450
2451 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2452
2453         * config/i386/i386.md (sat_plusminus): New.
2454         (plusminus_insn): Likewise.
2455         (plusminus_mnemonic): Likewise.
2456         (addsub): Removed.
2457         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2458         (*<addsub><mode>3_cc_overflow): Renamed to ...
2459         (*<plusminus_insn><mode>3_cc_overflow): This.
2460         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2461         (*<plusminus_insn>si3_zext_cc_overflow): This.
2462
2463         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2464         (<plusminus_insn><mode>3): This.
2465         (*<addsub><mode>3): Renamed to ...
2466         (*<plusminus_insn><mode>3): This.
2467         (<sse>_vm<addsub><mode>3): Renamed to ...
2468         (<sse>_vm<plusminus_insn><mode>3): This.
2469         (sse3_h<addsub>v4sf3): Renamed to ...
2470         (sse3_h<plusminus_insn>v4sf3): This.
2471         (sse3_h<addsub>v2df3): Renamed to ...
2472         (sse3_h<plusminus_insn>v2df3): This.
2473         (<plusminus_insn><mode>3): New.
2474         (*<plusminus_insn><mode>3): Likewise.
2475         (sse2_<plusminus_insn><mode>3): Likewise.
2476         (add<mode>): Removed.
2477         (*add<mode>3): Likewise.
2478         (sse2_ssadd<mode>3): Likewise.
2479         (sse2_usadd<mode>3): Likewise.
2480         (sub<mode>3): Likewise.
2481         (*sub<mode>3): Likewise.
2482         (sse2_sssub<mode>3): Likewise.
2483         (sse2_ussub<mode>3): Likewise.
2484
2485 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2486
2487         * gthr-single.h: Add in required interface elements as per gthr.h.
2488         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2489         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2490         Generalize UNUSED macro. 
2491         (__gthread_once): Add.
2492         (__gthread_key_create): Add.
2493         (__gthread_key_delete): Add.
2494         (__gthread_getspecific): Add.
2495         (__gthread_setspecific): Add.
2496         
2497 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2498
2499         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2500         the same size types for the indirect reference on the rhs, then
2501         create a VCE.
2502
2503 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2504
2505         * config/i386/i386.md
2506         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2507         one insn template instead of template series.
2508         (*xordi_1_rex64): Ditto.
2509         (*xordi_2_rex64): Ditto.
2510
2511 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2512
2513         PR tree-optimization/36119
2514         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2515         in case of SLP.
2516
2517 2008-06-04  Jan Hubicka  <jh@suse.cz>
2518
2519         tree-optimization/36100
2520         * tree-pass.h (pass_O0_always_inline): Declare.
2521         * ipa-inline.c (inline_transform): Remove dead code.
2522         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2523         pass_O0_always_inline): New.
2524         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2525
2526 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2527
2528         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2529         mnemonic in this_param move for TARGET_64BIT.
2530
2531 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2532
2533         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2534         (*strmovsi_rex_1): Ditto.
2535         (*strsetsi_1): Ditto.
2536         (*strsetsi_rex_1): Ditto.
2537
2538         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2539         adddicc expanders using SWI mode iterator.
2540
2541 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2542
2543         PR target/36121
2544         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2545         argument handling.
2546
2547 2008-05-04  David S. Miller  <davem@davemloft.net>
2548
2549         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2550         (sparc*-*-linux*): Use linux.h in tm_file.
2551         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2552         compiler defaulting to 32-bit.
2553         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2554         no longer needed.
2555         * config/sparc/linux.h: Remove definitions now obtained
2556         properly from linux.h
2557         * config/sparc/linux64.h: Likewise.
2558         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2559         don't want this setting for 32-bit builds in a biarch compiler.
2560         * doc/install.texi: Add sparc-linux to list of targets
2561         supporting --enable-targets=all.
2562
2563 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2564
2565         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2566
2567 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2568
2569         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2570         after V4SI_FTYPE_V8HI.
2571         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2572         case V4SI_FTYPE_V2DF.
2573
2574 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2575
2576         * doc/invoke.texi (max-flow-memory-locations): Removed.
2577         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2578         
2579 2008-05-03  Richard Guenther  <rguenther@suse.de>
2580
2581         PR middle-end/34973
2582         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2583
2584 2008-05-02  David S. Miller  <davem@davemloft.net>
2585
2586         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2587
2588 2008-05-02  Simon Baldwin <simonb@google.com>
2589
2590         PR bootstrap/36108
2591         * c-common.h (warn_array_subscript_range): Removed.
2592         * c-common.c (warn_array_subscript_range): Ditto.
2593         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2594         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2595
2596 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2597
2598         * config/i386/i386.c (ix86_special_builtin_type): New.
2599         (bdesc_special_args): Likewise.
2600         (ix86_expand_special_args_builtin): Likewise.
2601         (ix86_init_mmx_sse_builtins): Updated.
2602         (ix86_expand_builtin): Updated.
2603         (ix86_expand_store_builtin): Removed.
2604         (ix86_expand_unop_builtin): Likewise.
2605
2606         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2607         * config/i386/mmintrin.h (__v2sf): Here.
2608
2609         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2610         const __v2sf.
2611         (_mm_loadl_pi): Likewise.
2612         (_mm_storeh_pi): Replace __v2si with __v2sf.
2613         (_mm_storel_pi): Likewise.
2614
2615         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2616         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2617         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2618         __builtin_ia32_loadlpd.
2619
2620 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2621
2622         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2623         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2624         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2625         (ix86_init_mmx_sse_builtins): Updated.
2626         (ix86_expand_args_builtin): Likewise.
2627         (ix86_expand_builtin): Likewise.
2628         (ix86_expand_unop1_builtin): Renamed to ...
2629         (ix86_expand_unop_vec_merge_builtin): This.
2630
2631 2008-05-01  Jan Hubicka  <jh@suse.cz>
2632
2633         PR bootstrap/36100
2634         * ipa-inline.c (inline_generate_summary): Make static.
2635         (inline_transform): Do not call inlining at -O0; make static.
2636         * passes.c (execute_todo): Add sanity check.
2637         (execute_one_ipa_transform_pass): Execute proper flags.
2638
2639 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2640
2641         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2642         (DECL_NONADDRESSABLE_P): Likewise.
2643         * alias.c (record_component_aliases): Fix comment.
2644
2645 2008-05-01  Simon Baldwin <simonb@google.com>
2646
2647         * c-common.h (warn_array_subscript_range): New function.
2648         * c-common.c (warn_array_subscript_range): Ditto.
2649         * tree-vrp.c (check_array_ref): Corrected code to agree with
2650         comment, ignoring only arrays of size 0 or size 1.
2651         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2652
2653 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2654
2655         * config/i386/i386.c (ix86_builtin_type): Replace
2656         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2657         (bdesc_args): Updated.
2658         (ix86_init_mmx_sse_builtins): Likewise.
2659         (ix86_expand_args_builtin): Likewise.
2660
2661         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2662         with __v1di.
2663
2664         * doc/extend.texi: Correct __builtin_ia32_palignr.
2665
2666 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2667
2668         PR target/36095
2669         * config/i386/i386.c (bdesc_crc32): Removed.
2670         (ix86_expand_crc32): Likewise.
2671         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2672         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2673         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2674         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2675         UINT_FTYPE_UINT_UCHAR.
2676         (bdesc_args): Updated. Add crc32 builtins.
2677         (ix86_init_mmx_sse_builtins): Updated.
2678         (ix86_expand_args_builtin): Updated to support subreg.
2679
2680         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2681
2682 2008-05-01  Jan Hubicka  <jh@suse.cz>
2683
2684         * tree-pass.h (opt_pass): Add IPA_PASS.
2685         (varpool_node, cgraph_node): Forward declare.
2686         (ipa_opt_pass): Define.
2687         (pass_ipa_inline): Turn into ipa_opt_pass.
2688         (pass_apply_inline): Remove.
2689         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2690         (apply_inline): Turn into ....
2691         (inline_transform): ... this one.
2692         (inline_generate_summary): New function.
2693         (pass_apply_inline): Remove.
2694         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2695         vector.
2696         (struct function): Add ipa_transforms_to_apply.
2697         * passes.c (register_one_dump_file): Work on IPA_PASS.
2698         (init_optimization_passes): Remove pass_inline_parameters and
2699         pass_apply_inline.
2700         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2701         (execute_one_pass) ... here; apply transforms when possible.
2702         (add_ipa_transform_pass, execute_ipa_summary_asses,
2703         execute_one_ipa_transform_pass): New.
2704         (execute_ipa_pass_list): Update for IPA_PASS type.
2705
2706 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2707
2708         * config/i386/i386.c (ix86_builtin_type): Add
2709         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2710         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2711         (bdesc_args): Add SSE4a builtins.
2712         (ix86_init_mmx_sse_builtins): Updated.
2713         (ix86_expand_args_builtin): Likewise.
2714         (ix86_expand_builtin): Likewise.
2715
2716 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2717
2718         * config/i386/i386.c (ix86_builtin_type): Add
2719         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2720         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2721         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2722         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2723         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2724         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2725         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2726         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2727         and DI_FTYPE_DI_DI_INT.
2728         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2729         (ix86_init_mmx_sse_builtins): Updated.
2730         (ix86_expand_args_builtin): Likewise.
2731         (ix86_expand_builtin): Likewise.
2732         (ix86_expand_binop_imm_builtin): Removed.
2733
2734         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2735
2736 2008-04-30  Richard Guenther  <rguenther@suse.de>
2737
2738         PR tree-optimization/32921
2739         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2740
2741 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2742
2743         * config/arm/arm.c (arm_unwind_emit): Use
2744         crtl->all_throwers_are_sibcalls instead of
2745         cfun->all_throwers_are_sibcalls.
2746         (arm_output_fn_unwind): Likewise.
2747         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2748         instead of cfun->uses_pic_offset_table.
2749         (frv_expand_prologue): Likewise.
2750         (frv_frame_pointer_required): Likewise.
2751         (frv_expand_fdpic_call): Likewise.
2752         (frv_emit_movsi): Likewise.
2753         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2754         cfun->returns_pcc_struct instead of
2755         current_function_returns_pcc_struct.
2756         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2757         instead of cfun->calls_eh_return.
2758         (m32c_pushm_popm): Likewise.
2759         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2760         "extern" declaration.
2761
2762 2008-04-30  Richard Guenther  <rguenther@suse.de>
2763
2764         PR tree-optimization/21636
2765         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2766         constant address.
2767         (evaluate_stmt): Print the likely value.
2768         (ccp_visit_stmt): Avoid excessive vertical spacing.
2769
2770 2008-04-30  Rafael Espindola  <espindola@google.com>
2771
2772         * builtins.c (fold_call_expr): Return realret.
2773         * tree-ssa-threadedge.c
2774         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2775         __builtin_object_size.
2776
2777 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2778
2779         * gcc.c (wrapper_string): New variable.
2780         (insert_wrapper): New function.
2781         (execute): New option -wrapper.
2782         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2783
2784 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2785
2786         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2787         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2788         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2789         from...
2790         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2791         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2792         config/rs6000/e500crtres64gprctr.asm,
2793         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2794         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2795         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2796         config/rs6000/e500crtsav64gprctr.asm,
2797         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2798         config/rs6000/e500crtsavg64gprctr.asm: New files.
2799         * config/rs6000/t-ppccomm: Add build rules for new files.
2800         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2801         * config/rs6000/t-netbsd: Add build rules for new files.
2802         (LIB2FUNCS_STATIC_EXTRA): New variable.
2803         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2804         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2805         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2806
2807 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2808
2809         * config/i386/i386.c (ix86_builtin_type): Add
2810         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2811         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2812         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2813         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2814         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2815         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2816         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2817         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2818         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2819         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2820         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2821         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2822         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2823         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2824         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2825         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2826         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2827         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2828         V1DI_FTYPE_V2SI_V2SI.
2829         (bdesc_2arg): Moved to ...
2830         (bdesc_args): Here.
2831         (ix86_init_mmx_sse_builtins): Updated.
2832         (ix86_expand_args_builtin): Updated.  Take a pointer
2833         to const struct builtin_description.  Handle comparison
2834         builtin functions.
2835         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2836         (ix86_expand_builtin): Updated.
2837
2838         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2839         (ssse3_pmaddubsw128): This.
2840         (ssse3_pmaddubswv4hi3): Renamed to ...
2841         (ssse3_pmaddubsw): This.
2842
2843         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2844         (__builtin_ia32_packssdw128): Likewise.
2845         (__builtin_ia32_packuswb128): Likewise.
2846         (__builtin_ia32_pmaddubsw): Likewise.
2847         (__builtin_ia32_pmaddubsw128): Likewise.
2848
2849 2008-04-30  Richard Guenther  <rguenther@suse.de>
2850
2851         PR tree-optimization/14847
2852         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2853         (recognize_bits_test): Use it.
2854         (recognize_single_bit_test): Likewise.
2855
2856 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2857
2858         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2859         instead of setting number of formal parameters to zero.
2860         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2861         either.
2862         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2863         which are called with variable number of arguments.
2864         (ipcp_insert_stage): Explicitely skipping all nodes which are
2865         called with variable number of arguments.
2866         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2867         number of parameters.
2868
2869         * ipa-prop.h (struct ipa_node_params): Added flag
2870         called_with_var_arguments
2871         (ipa_set_param_count): Added.  Changed sole setter to use it.
2872         (ipa_get_param_count): Added.  All readers of param_count
2873         converted to use it instead.
2874         (ipa_set_called_with_variable_arg): Added.
2875         (ipa_is_called_with_var_arguments): Added.
2876         (ipa_get_ith_param): Added.  All readers of param_decls converted
2877         to use it instead.
2878         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2879         changed to use it. 
2880         (ipa_get_cs_argument_count): Added, all readers of argument_count
2881         changed to cal it.
2882         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2883         to use it.
2884         
2885         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2886         (struct ipcp_lattice): Renamed cval_type to type
2887         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2888
2889         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2890         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2891         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2892         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2893         (build_const_val): Changed the type of parameter cvalue to tree
2894         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2895         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2896         
2897         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2898         constant 
2899
2900         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2901         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2902         (ipa_add_method): Renamed to ipa_push_func_to_list
2903         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2904         (ipa_callsite_param_count): Removed.
2905         (ipa_callsite_param_count_set): Removed.
2906         (ipa_callsite_param): Removed.
2907         (ipa_callsite_callee): Removed.
2908         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
2909         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
2910         (ipa_method_formal_count): Removed.
2911         (ipa_method_formal_count_set): Removed.
2912         (ipa_method_get_tree): Removed.
2913         (ipa_method_tree_map_create): Removed.
2914         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
2915         (ipa_create_param_decls_array): Creates the array itself
2916         (ipa_create_param_decls_array): Temporary variable info instead of 
2917         a few dereferences.
2918         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
2919         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
2920         (get_type): Removed.
2921         (ipa_jf_get_info_type): Removed.
2922         (ipa_node_create): Renamed to ipa_create_node_params
2923         (ipa_free): Renamed to ipa_free_all_node_params
2924         (ipa_nodes_create): Renamed to ipa_create_all_node_params
2925         (ipa_edges_create): Renamed to ipa_create_all_edge_args
2926         (ipa_edges_free): Renamed to ipa_free_all_edge_args
2927         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
2928         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
2929         ipa_free_all_edge_args
2930         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
2931         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
2932         (ipa_create_methodlist_node): Removed.
2933         (ipa_methodlist_method): Removed.
2934         (ipa_methodlist_method_set): Removed.
2935         (ipa_methodlist_next_method): Removed.
2936         (ipa_methodlist_next_method_set): Removed.
2937         (ipa_method_is_modified): Removed.
2938         (ipa_method_modify_create): Removed.
2939         (ipa_method_modify_init): Temporary variable info instead of a few 
2940         dereferences.
2941         (ipa_detect_param_modifications): Temporary variable info instead of 
2942         a few dereferences.
2943         (ipa_compute_jump_functions): Temporary variable info instead of 
2944         a few dereferences.
2945         (ipa_method_modify_set): Removed.
2946         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
2947         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
2948         than craph_node as the first parameter.
2949         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
2950         (ipa_method_modify_init): Removed.
2951         (ipa_compute_jump_functions): Added a temp variable instead of 
2952         repeatadly dereferencing the cgraph_edge.aux pointer
2953         (ipa_callsite_param_set_type): Removed.
2954         (ipa_compute_jump_functions): i renamed to index and moved to 
2955         an inner block
2956         (ipa_callsite_param_set_info_type_formal): Removed.
2957         (ipa_callsite_param_set_info_type): Removed.
2958         (ipa_callsite_param_map_create): Removed.
2959         (ipa_callsite_tree): Removed.
2960         (ipa_callsite_caller): Removed.
2961         (ipa_pop_func_from_list): return_method removed to return_func
2962
2963         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
2964         prefixed all values with IPA_. Changed all users.
2965         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
2966         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
2967         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
2968         (union parameter_info): Renamed to jump_func_value.
2969         (union jump_func_value): Renamed value to constant
2970         (struct ipa_jump_func): Renamed info_type to value
2971         (struct ipa_node): Renamed to ipa_node_params
2972         (struct ipa_node_params): Renamed ipa_arg_num to param_count
2973         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
2974         (struct ipa_node_params): Renamed ipa_mod to modified_flags
2975         (struct ipa_edge): Renamed to ipa_edge_args
2976         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
2977         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
2978         (struct ipa_methodlist): Renamed to ipa_func_list
2979         (struct ipa_func_list): method_p renamed to node, next_method
2980         renamed to next
2981         (ipa_methodlist_p): Removed, switched all users to struct pointer
2982         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
2983
2984 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
2985
2986         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
2987         (rs6000_emit_epilogue): Use backchain to restore only when we
2988         have a large frame.  Make use of frame pointer to restore if we
2989         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
2990
2991 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
2992
2993         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2994         Add mode to zero_extract.
2995         (sign bit tests peepholes): (Ditto.).
2996
2997 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2998
2999         * config/i386/i386.c (ix86_builtins): Replace Prescott New
3000         Instructions in comments with SSE3.
3001         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
3002         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
3003         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
3004         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
3005         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
3006         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
3007         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
3008         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
3009         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
3010         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
3011         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
3012         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
3013         (bdesc_sse_args): Renamed to ...
3014         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
3015         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
3016         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
3017         IX86_BUILTIN_FABSQ.
3018         (bdesc_1arg): Moved to ...
3019         (bdesc_args): Here.
3020         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
3021         Instructions in comments with SSE3.
3022         (ix86_expand_sse_operands_builtin): Renamed to ...
3023         (ix86_expand_args_builtin): This.  Updated.
3024         (ix86_expand_unop1_builtin): Update comments.
3025         (ix86_expand_builtin): Updated.
3026
3027 2008-04-29  Richard Guenther  <rguenther@suse.de>
3028
3029         PR tree-optimization/36078
3030         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3031         Update virtual SSA form after cleaning up the CFG.
3032
3033 2008-04-29  Richard Guenther  <rguenther@suse.de>
3034
3035         PR middle-end/15255
3036         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3037
3038 2008-04-29  Richard Guenther  <rguenther@suse.de>
3039
3040         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3041         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3042         (compute_flow_insensitive_aliasing): Do not treat
3043         PTR_IS_REF_ALL pointers special.
3044         (get_smt_for): Likewise.
3045         (may_alias_p): Re-structure.
3046         (is_escape_site): A ref-all pointer conversion is not an escape site.
3047         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3048         PTR_IS_REF_ALL pointers special.
3049         * tree-ssa-structalias.h (struct alias_info): Remove
3050         ref_all_symbol_mem_tag field.
3051         (PTR_IS_REF_ALL): Remove.
3052
3053 2008-04-29  Richard Guenther  <rguenther@suse.de>
3054
3055         PR middle-end/36077
3056         * fold-const.c (extract_muldiv_1): In combining division constants
3057         make sure to never overflow.
3058
3059 2008-04-29  Nick Clifton  <nickc@redhat.com>
3060
3061         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3062
3063 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3064
3065         PR bootstrap/35169
3066         * optc-gen.awk: Work around HP-UX/IA awk bug.
3067
3068 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3069
3070         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3071         2008-04-25 commit.
3072
3073 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3074
3075         PR target/36073
3076         * config/i386/i386.md
3077         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3078         Change operand 1 predicate to nonimmediate_operand.
3079
3080 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3081
3082         PR debug/36060
3083         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3084         die_sub field.
3085         * gengtype.c (walk_type, write_func_for_structure): Handle
3086         chain_circular.
3087         * doc/gty.texi: Document chain_circular.
3088
3089 2008-04-28  Richard Guenther  <rguenther@suse.de>
3090
3091         PR tree-optimization/36066
3092         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3093         SCEV and loop.
3094
3095 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3096
3097         PR target/36064
3098         * config/i386/i386.md
3099         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3100         Use match_scratch instead of match_operand for operands 3 and 4.
3101
3102 2008-04-27  Richard Guenther  <rguenther@suse.de>
3103
3104         PR tree-optimization/18754
3105         PR tree-optimization/34223
3106         * tree-pass.h (pass_complete_unrolli): Declare.
3107         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3108         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3109         Rewrite loop into loop closed SSA form if it is not already.
3110         (tree_unroll_loops_completely): Re-structure to iterate over
3111         innermost loops with intermediate CFG cleanups.
3112         Unroll outermost loops only if requested or the code does not grow
3113         doing so.
3114         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3115         loops are available.
3116         (tree_vectorize): Instead do so here.
3117         (tree_complete_unroll): Also unroll outermost loops.
3118         (tree_complete_unroll_inner): New function.
3119         (gate_tree_complete_unroll_inner): Likewise.
3120         (pass_complete_unrolli): New pass.
3121         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3122         uses outside of the loop.
3123         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3124         form if it is available.  
3125         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3126         * passes.c (init_optimization_passes): Schedule complete inner
3127         loop unrolling pass before the first CCP pass after final inlining.
3128
3129 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3130
3131         * targhooks.h (default_emutls_var_fields,
3132         default_emutls_var_init): Declare.
3133         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3134         * target.h (struct gcc_target): Add struct emutls member.
3135         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3136         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3137         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3138         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3139         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3140         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3141         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3142         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3143         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3144         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3145         emit debug information.
3146         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3147         * varasm.c: Include targhooks.h.
3148         (emutls_object_section, emutls_tmpl_section): New.
3149         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3150         (EMUTLS_SEPARATOR): New.
3151         (prefix_name): New.
3152         (get_emutls_object_name): New.
3153         (default_emutls_var_fields): New, broken out of ...
3154         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3155         (get_emutls_init_templ_addr): Adjust to use target hooks.
3156         (emutls_decl): Adjust to use target hooks.
3157         (emutls_finish): Likewise.
3158         (default_emutls_var_init): New, broken out of ...
3159         (assemble_variable): ... here.  Adjust to use target hooks.
3160         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3161         SECCAT_EMUTLS_TMPL.
3162         * c-common.c (handle_section_attribute): Prevent overriding
3163         sections for emulated tls with special sections.
3164         * config/i386/i386.c (x86_64_elf_select_section): Add
3165         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3166         (x86_64_elf_unique_section): Likewise.
3167         * config/vxworks.c: Include tree.h.
3168         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3169         (vxworks_override_options): Set TLS scheme.
3170         * doc/tm.texi (Emulated TLS): New node.
3171
3172 2008-04-26  Simon Baldwin <simonb@google.com>
3173
3174         PR c/35652
3175         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3176         with propagated string constants.
3177
3178 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3179
3180         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3181         constraint for operand 2 when operand 0 is memory operand.
3182         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3183         operand 0 is memory operand.
3184         (fix_trunc<mode>_i387_with_temp): Ditto.
3185         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3186         operand 2 when operand 1 is memory operand.
3187         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3188         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3189         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3190         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3191         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3192         operands 2,3 and 4 when operand 1 is memory operand.
3193         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3194         is memory operand.
3195         (fistdi2_floor_with_temp): Ditto.
3196         (fist<mode>2_floor_with_temp): Ditto.
3197         (fistdi2_ceil_with_temp): Ditto.
3198         (fist<mode>2_ceil_with_temp): Ditto.
3199         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3200
3201 2008-04-26  David Daney  <ddaney@avtrex.com>
3202
3203         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3204         unspec_volitile.
3205         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3206         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3207         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3208         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3209         (compare_and_swap_12): New insn.
3210         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3211         * config/mips/mips.c (mips_force_binary): New function.
3212         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3213         (mips_expand_compare_and_swap_12): New function.
3214         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3215
3216 2008-04-25  Jan Hubicka  <jh@suse.cz>
3217
3218         PR testsuite/35843
3219         * cfgexpand.c (pass_expand): Turn into RTL pass.
3220         * passes.c (execute_one_pass): Do pass typechecking after execution.
3221         * tree-pass.h (pass_expand): Turn into RTL pass.
3222
3223         * function.h (struct rtl_data): Move here fields
3224         accesses_prior_frames, calls_eh_return, saves_all_registers,
3225         has_nonlocal_goto, has_asm_statement, is_thunk,
3226         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3227         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3228         arg_pointer_save_area_init from struct function; turn into bool.
3229         (struct function): Move
3230         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3231         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3232         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3233         tail_call_emit, arg_pointer_save_area_init
3234         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3235         (current_function_returns_struct, current_function_returns_pcc_struct,
3236         current_function_calls_setjmp, current_function_calls_alloca,
3237         current_function_accesses_prior_frames,
3238         current_function_calls_eh_return, current_function_is_thunk,
3239         current_function_stdarg, current_function_profile,
3240         current_function_limit_stack, current_function_uses_pic_offset_table,
3241         current_function_uses_const_pool, current_function_has_nonlocal_label,
3242         current_function_saves_all_registers,
3243         current_function_has_nonlocal_goto,
3244         current_function_has_asm_statement): Remove accesor macros.
3245         * ra-conflict.c (global_conflicts): Update.
3246         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3247         (suitable_for_tail_call_opt_p): Update.
3248         * builtins.c (expand_builtin_return_addr): Update.
3249         (expand_builtin_setjmp_setup): Update.
3250         (expand_builtin_nonlocal_goto): Update.
3251         * final.c (final_start_function): Update.
3252         (profile_function): Update.
3253         (leaf_function_p): Update.
3254         (only_leaf_regs_used): Update.
3255         * df-scan.c (df_get_exit_block_use_set): Update.
3256         * dojump.c (clear_pending_stack_adjust): Update.
3257         * tree-stdarg.c (gate_optimize_stdarg): Update.
3258         * gimple-low.c (lower_function_body): Update.
3259         * global.c (compute_regsets): Update.
3260         (global_alloc): Update.
3261         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3262         * expr.c (expand_assignment): Update.
3263         * dse.c (dse_step0): Update.
3264         (dse_step1): Update.
3265         * c-decl.c (store_parm_decls): Update.
3266         * local-alloc.c (combine_regs): Update.
3267         (find_free_reg): Update.
3268         * function.c (assign_parms_augmented_arg_list): Update.
3269         (assign_parm_find_data_types): Update.
3270         (assign_parms): Update.
3271         (allocate_struct_function): Update.
3272         (expand_function_start): Update.
3273         (expand_function_end): Update.
3274         (get_arg_pointer_save_area): Update.
3275         (thread_prologue_and_epilogue_insns): Update.
3276         (rest_of_match_asm_constraints): Update.
3277         * stor-layout.c (variable_size): Update.
3278         * gcse.c (gcse_main): Update.
3279         (bypass_jumps): Update.
3280         * gimplify.c (gimplify_function_tree): Update.
3281         * calls.c (emit_call_1): Update.
3282         (expand_call): Update.
3283         * bt-load.c (compute_defs_uses_and_gen): Update.
3284         * except.c (sjlj_assign_call_site_values): Update.
3285         (sjlj_emit_function_enter): Update.
3286         (can_throw_external): Update.
3287         (set_nothrow_function_flags): Update.
3288         (expand_builtin_unwind_init): Update.
3289         (expand_eh_return): Update.
3290         (convert_to_eh_region_ranges): Update.
3291         (output_function_exception_table): Update.
3292         * emit-rtl.c (gen_tmp_stack_mem): Update.
3293         * cfgexpand.c (expand_used_vars): Update.
3294         (tree_expand_cfg): Update.
3295         * cfgcleanup.c (rest_of_handle_jump): Update.
3296         * explow.c (allocate_dynamic_stack_space): Update.
3297         * varasm.c (assemble_start_function): Update.
3298         (force_const_mem): Update.
3299         (mark_constant_pool): Update.
3300         * tree-optimize.c (tree_rest_of_compilation): Update.
3301         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3302         * tree-cfg.c (notice_special_calls): Update.
3303         (is_ctrl_altering_stmt): Update.
3304         (tree_can_make_abnormal_goto): Update.
3305         (tree_purge_dead_abnormal_call_edges): Update.
3306         * config/alpha/predicates.md: Update.
3307         * config/alpha/alpha.c (alpha_sa_mask): Update.
3308         (alpha_sa_size): Update.
3309         (alpha_does_function_need_gp): Update.
3310         (alpha_expand_prologue): Update.
3311         (alpha_start_function): Update.
3312         (alpha_output_function_end_prologue): Update.
3313         (alpha_expand_epilogue): Update.
3314         * config/frv/frv.c (frv_stack_info): Update.
3315         (frv_expand_epilogue): Update.
3316         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3317         (s390_register_info): Update.
3318         (s390_frame_info): Update.
3319         (s390_init_frame_layout): Update.
3320         (s390_can_eliminate): Update.
3321         (save_gprs): Update.
3322         * config/spu/spu.c (spu_split_immediate): Update.
3323         (need_to_save_reg): Update.
3324         (spu_expand_prologue): Update.
3325         (spu_expand_epilogue): Update.
3326         * config/sparc/sparc.md: Update.
3327         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3328         (sparc_tls_got): Update.
3329         (legitimize_pic_address): Update.
3330         (sparc_emit_call_insn): Update.
3331         (sparc_expand_prologue): Update.
3332         (output_return): Update.
3333         (print_operand): Update.
3334         (sparc_function_ok_for_sibcall): Update.
3335         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3336         * config/m32r/m32r.md: Update.
3337         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3338         (m32r_compute_frame_size): Update.
3339         (m32r_expand_prologue): Update.
3340         (m32r_expand_epilogue): Update.
3341         (m32r_legitimize_pic_address): Update.
3342         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3343         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3344         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3345         (gen_push): Update.
3346         (ix86_save_reg): Update.
3347         (ix86_compute_frame_layout): Update.
3348         (ix86_expand_prologue): Update.
3349         (ix86_expand_epilogue): Update.
3350         * config/sh/sh.c (output_stack_adjust): Update.
3351         (calc_live_regs): Update.
3352         (sh5_schedule_saves): Update.
3353         (sh_expand_prologue): Update.
3354         (sh_expand_epilogue): Update.
3355         (sh_setup_incoming_varargs): Update.
3356         (sh_allocate_initial_value): Update.
3357         (sh_get_pr_initial_val): Update.
3358         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3359         * config/sh/sh.md (label:): Update.
3360         * config/avr/avr.c (out_movhi_mr_r): Update.
3361         * config/crx/crx.h (enum): Update.
3362         * config/xtensa/xtensa.h (along): Update.
3363         * config/stormy16/stormy16.c Update.
3364         (xstormy16_compute_stack_layout): Update.
3365         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3366         (fr30_expand_prologue): Update.
3367         * config/cris/cris.c (cris_conditional_register_usage): Update.
3368         (cris_reg_saved_in_regsave_area): Update.
3369         (cris_initial_frame_pointer_offset): Update.
3370         (cris_simple_epilogue): Update.
3371         (cris_expand_prologue): Update.
3372         (cris_expand_epilogue): Update.
3373         (cris_expand_pic_call_address): Update.
3374         (cris_asm_output_symbol_ref): Update.
3375         (cris_asm_output_label_ref): Update.
3376         * config/cris/cris.md Update.
3377         * config/iq2000/iq2000.c (compute_frame_size): Update.
3378         (iq2000_expand_epilogue): Update.
3379         * config/mt/mt.h (save_direction): Update.
3380         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3381         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3382         (ia64_secondary_reload_class): Update.
3383         * config/m68k/m68k.c (m68k_save_reg): Update.
3384         (m68k_expand_prologue): Update.
3385         (m68k_expand_epilogue): Update.
3386         (legitimize_pic_address): Update.
3387         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3388         (first_reg_to_save): Update.
3389         (first_altivec_reg_to_save): Update.
3390         (compute_vrsave_mask): Update.
3391         (compute_save_world_info): Update.
3392         (rs6000_stack_info): Update.
3393         (spe_func_has_64bit_regs_p): Update.
3394         (rs6000_ra_ever_killed): Update.
3395         (rs6000_emit_eh_reg_restore): Update.
3396         (rs6000_emit_allocate_stack): Update.
3397         (rs6000_emit_prologue): Update.
3398         (rs6000_emit_epilogue): Update.
3399         (rs6000_output_function_epilogue): Update.
3400         (output_profile_hook): Update.
3401         (rs6000_elf_declare_function_name): Update.
3402         * config/rs6000/rs6000.h (rs6000_args): Update.
3403         * config/rs6000/rs6000.md: Update.
3404         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3405         * config/arc/arc.c (arc_output_function_epilogue): Update.
3406         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3407         * config/darwin.c (machopic_function_base_name): Update.
3408         * config/score/score3.c (score3_compute_frame_size): Update.
3409         (rpush): Update.
3410         (rpop): Update.
3411         (score3_epilogue): Update.
3412         * config/score/score7.c (score7_compute_frame_size): Update.
3413         (score7_prologue): Update.
3414         (score7_epilogue): Update.
3415         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3416         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3417         * config/arm/arm.c (use_return_insn): Update.
3418         (require_pic_register): Update.
3419         (arm_load_pic_register): Update.
3420         (arm_compute_save_reg0_reg12_mask): Update.
3421         (arm_compute_save_reg_mask): Update.
3422         (thumb1_compute_save_reg_mask): Update.
3423         (output_return_instruction): Update.
3424         (arm_output_function_prologue): Update.
3425         (arm_output_epilogue): Update.
3426         (arm_get_frame_offsets): Update.
3427         (arm_expand_prologue): Update.
3428         (thumb_pushpop): Update.
3429         (thumb_exit): Update.
3430         (thumb1_expand_prologue): Update.
3431         (thumb1_expand_epilogue): Update.
3432         (arm_unwind_emit): Update.
3433         (arm_output_fn_unwind): Update.
3434         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3435         * config/arm/arm.md: Update.
3436         * config/pa/pa.md: Update.
3437         * config/pa/pa.c (legitimize_pic_address): Update.
3438         (compute_frame_size): Update.
3439         (hppa_expand_prologue): Update.
3440         (hppa_expand_epilogue): Update.
3441         (borx_reg_operand): Update.
3442         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3443         (HARD_REGNO_RENAME_OK): Update.
3444         * config/mips/mips.c (mips_global_pointer): Update.
3445         (mips_save_reg_p): Update.
3446         (mips_compute_frame_info): Update.
3447         (mips_frame_pointer_required): Update.
3448         (mips_expand_prologue): Update.
3449         (mips_expand_epilogue): Update.
3450         (mips_can_use_return_insn): Update.
3451         (mips_reorg_process_insns): Update.
3452         * config/v850/v850.c (compute_register_save_size): Update.
3453         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3454         * config/mmix/mmix.c (along): Update.
3455         (mmix_expand_epilogue): Update.
3456         * config/bfin/bfin.c (legitimize_pic_address): Update.
3457         (must_save_p): Update.
3458         (stack_frame_needed_p): Update.
3459         (add_to_reg): Update.
3460         (bfin_expand_prologue): Update.
3461         * stmt.c (expand_asm_operands): Update.
3462         * reload1.c (reload): Update.
3463         (init_elim_table): Update.
3464
3465 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3466         
3467         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3468         
3469 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3470
3471         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3472         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3473         (mov<mode>): Removed.
3474         (*movv4sf_internal): Likewise.
3475         (*movv2df_internal): Likewise.
3476
3477 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3478
3479         * config.gcc (crx-*-elf): Remove deprecation.
3480
3481 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3482
3483         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3484         __gcc_deregister_frame with atexit.
3485         (deregister_frame_dtor): Remove.
3486
3487 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3488             Nathan Sidwell  <nathan@codesourcery.com>
3489
3490         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3491         (misel): Likewise.
3492         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3493         (rs6000_isel): Likewise.
3494         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3495         (rs6000_isel): New variable.
3496         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3497
3498 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3499
3500         PR c++/35758
3501         * c-common.c (handle_vector_size_attribute): Call
3502         lang_hooks.types.reconstruct_complex_type instead of
3503         reconstruct_complex_type.
3504         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3505         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3506         * langhooks.h (struct lang_hooks_for_types): Add
3507         reconstruct_complex_type hook.
3508         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3509         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3510
3511 2008-04-24  Richard Guenther  <rguenther@suse.de>
3512
3513         * c-common.h (check_builtin_function_arguments): Declare.
3514         * c-common.c (validate_nargs): New function.
3515         (check_builtin_function_arguments): Likewise.
3516         * c-typeck.c (build_function_call): Call
3517         check_builtin_function_arguments.
3518         * builtins.c (fold_builtin_classify): Remove error reporting code.
3519         (fold_builtin_unordered_cmp): Likewise.
3520         (fold_builtin_1): Likewise.
3521         (fold_builtin_n): Likewise.
3522
3523 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3524
3525         PR tree-optimization/36008
3526         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3527         the original op1, rather than delta by step.
3528
3529 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3530             Sebastian Pop  <sebastian.pop@amd.com>
3531
3532         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3533         eliminate_local_variables_stmt, eliminate_local_variables,
3534         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3535         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3536         of code delimited by two edges in the CFG.
3537         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3538         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3539         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3540         the case of parallelisation of reductions.
3541         (expr_invariant_in_region_p): New.
3542
3543         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3544         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3545
3546 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3547             Richard Guenther  <rguenther@suse.de>
3548
3549         PR tree-optimization/36034
3550         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3551         incapable of dealing with loads with gaps.
3552
3553 2008-04-24  Rafael Espindola  <espindola@google.com>
3554
3555         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3556         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3557         vrp_evaluate_conditional.
3558         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3559         (vrp_evaluate_conditional): Split the cond argument.
3560         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3561         (simplify_stmt_for_jump_threading): Update call to
3562         vrp_evaluate_conditional.
3563
3564 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3565
3566         PR tree-optimization/35982
3567         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3568         interleaved data-refs are of the same type.
3569
3570 2008-04-24  Danny Smith  <dannysmith@users.net>
3571
3572         * c-format.c (check_format_info_main): Use strncmp rather than a
3573         magic prefix to handle multichar length specs.
3574         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3575         Don't prefix "I64" and "I32" with '\0'.
3576
3577 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3578
3579         PR target/36015
3580         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3581         in registers for -m32 only if stdarg_p (fntype).
3582
3583 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3584
3585         PR rtl-optimization/36006
3586         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3587         temp to op0 in order to avoid invalid rtx sharing.
3588
3589 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3590
3591         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3592         check TREE_INVARIANT.
3593         * tree-gimple.c (is_gimple_address): New.
3594         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3595         * tree-gimple.h (is_gimple_address): New.
3596         * tree.h (decl_address_invariant_p): New.
3597         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3598         (build_string): Likewise.
3599         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3600         (tree_invariant_p_1): Likewise.
3601         (save_expr): Use it.
3602         (tree_invariant_p): New.
3603         (skip_simple_arithmetic): Use it.
3604         (stabilize_reference_1): Use it.
3605         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3606         simplify.
3607         (build1_stat): Drop code to compute TREE_INVARIANT.
3608         (build2_stat): Drop code to compute TREE_INVARIANT.
3609         (build3_stat): Drop code to compute TREE_INVARIANT.
3610         (build4_stat): Drop code to compute TREE_INVARIANT.
3611         (build5_stat): Drop code to compute TREE_INVARIANT.
3612         (build7_stat): Drop code to compute TREE_INVARIANT.
3613         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3614         * tree.h (struct tree_base): Remove invariant_flag.
3615         (TREE_INVARIANT): Remove.
3616         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3617         (fold_builtin_expect): Check TREE_CONSTANT.
3618         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3619         * c-tree.h (c_expr_to_decl): Drop third parameter.
3620         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3621         (build_c_cast): Don't set TREE_INVARIANT.
3622         (pop_init_level): Don't set TREE_INVARIANT.
3623         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3624         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3625         TREE_CONSTANT.
3626         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3627         (gimplify_addr_expr): Adjust comment.
3628         * tree-mudflap.c (mf_build_string):
3629         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3630         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3631         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3632         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3633         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3634         * langhooks.h (struct lang_hooks): Drop third parameter from
3635         expr_to_decl.
3636
3637 2008-04-23  Richard Guenther  <rguenther@suse.de>
3638
3639         PR tree-optimization/27799
3640         PR tree-optimization/32921
3641         PR tree-optimization/32624
3642         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3643         SMTs aliases and the tag itself into the solution.
3644         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3645         merge the points-to solution back into the SMT aliases.
3646         (may_alias_p): Use alias_set_subset_of instead of
3647         aliases_conflict_p.  A pointer which points to
3648         memory with alias set zero may access any variable.
3649
3650 2008-04-23  Richard Guenther  <rguenther@suse.de>
3651
3652         * alias.c (alias_set_subset_of): Correctly handle asking
3653         if zero is a subset of an alias set with zero child.
3654         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3655         (compute_flow_insensitive_aliasing): Correctly walk all
3656         pointers.  Do not unnecessarily union sets.
3657
3658 2008-04-23  Richard Guenther  <rguenther@suse.de>
3659
3660         PR middle-end/36021
3661         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3662
3663 2008-04-22  Tomas Bily  <tbily@suse.cz>
3664
3665         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3666         unreachable case.
3667         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3668         NON_LVALUE_EXPR.
3669         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3670         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3671         * tree-inline.c (estimate_num_insns_1): Likewise.
3672         * varasm.c (const_hash_1, compare_constant, copy_constant)
3673         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3674         * emit-rtl.c (component_ref_for_mem_expr)
3675         (set_mem_attributes_minus_bitpos): Likewise.
3676         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3677         (is_aligning_offset): Likewise.
3678         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3679         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3680         * dojump.c (do_jump): Likewise.
3681         * builtins.c (get_pointer_alignment, get_memory_rtx)
3682         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3683         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3684
3685 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3686
3687         PR rtl-optimization/36017
3688         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3689         expanding the library call.
3690
3691 2008-04-22  Ian Lance Taylor  <iant@google.com>
3692
3693         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3694         than size_in_bytes.
3695
3696 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3697
3698         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3699         of LR/CTR moves for Power6.
3700
3701 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3702
3703         PR middle-end/36003
3704         * passes.c (init_optimization_passes): Remove
3705         pass_fast_rtl_byte_dce.
3706         
3707 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3708
3709         PR target/29096
3710         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3711         builtin functions to generate faster code.
3712         (_mm_cvtpu16_ps): Ditto.
3713         (_mm_cvtpi32x2_ps): Ditto.
3714
3715 2008-04-22  Nick Clifton  <nickc@redhat.com>
3716
3717         * common.opt (ftree-loop-distribution): Add Optimization
3718         attribute.
3719
3720         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3721         (frv_expand_builtin_va_start): Likewise.
3722
3723         * config/arm/arm.c (thumb_find_work_register): Fix location of
3724         argument register count.
3725
3726 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3727
3728         Support scheduling for ColdFire V1 and V3 microarchitecture.
3729         Improve scheduling of multiplication instructions.
3730
3731         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3732         (mac): New instruction attribute.
3733         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3734         (m68k_sched_mac): New variable.
3735         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3736         Handle cfv1 and cfv3.
3737         (max_insn_size): New static variable.
3738         (struct _sched_ib): New type.
3739         (sched_ib): New static variable.
3740         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3741         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3742         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3743         Update.
3744         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3745         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3746         new variables.  Update.
3747         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3748         Add modeling of cfv3 instruction buffer.  Update.
3749         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3750         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3751         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3752         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3753         a particular reservation applies to.
3754         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3755         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3756         to mul_l and mul_w.
3757         (cf_ib_*): Simplify description of instruction buffer.
3758         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3759         (cf_mem): Split into cf_mem1 and cf_mem2.
3760         (cf_v2_move_??): Rename to cfv12_alu_??.
3761         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3762         (cf_v2_mul_??): Remove reservations.
3763         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3764         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3765         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3766         appropriate place.
3767         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3768         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3769         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3770         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3771         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3772         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3773         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3774         expansions of the above reservations for instructions of sizes
3775         1, 2 and 3 words.
3776
3777 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3778
3779         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3780
3781 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3782
3783         * coverage.c: Include tree-pass.h.
3784         (coverage_counter_alloc): Print da_file_name to the dump file.
3785
3786 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3787
3788         * sbitmap.c (sbitmap_range_empty_p): New function.
3789         * sbitmap.h (sbitmap_range_empty_p): New function.
3790         * bitmap.h: Now includes obstack.h.
3791
3792 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3793             Kenneth Zadeck  <zadeck@naturalbridge.com>
3794
3795         * dbgcnt.def (ra_byte_scan): Added.
3796         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3797         when the last hit happens for a counter.  
3798         * timevar.def (TV_DF_BYTE_LR): New variable.
3799         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3800         * passes.c (pass_fast_rtl_byte_dce): New pass.
3801         * fwprop.c (update_df): Added mode to call df_ref_create.
3802         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3803         DF_REF_EXTRACT_OFFSET.
3804         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3805         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3806         (df_mm): New enum.
3807         (df_ref_extract): Added mode field.
3808         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3809         DF_REF_EXTRACT_OFFSET.
3810         (DF_REF_EXTRACT_MODE): New macro.
3811         (df_byte_lr_bb_info): New structure.
3812         (df_print_byte_regset, df_compute_accessed_bytes, 
3813         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3814         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3815         df_byte_lr_simulate_uses,
3816         df_byte_lr_simulate_artificial_refs_at_top,
3817         df_byte_lr_simulate_artificial_refs_at_end,
3818         df_compute_accessed_bytes): New function.
3819         (df_ref_create): Add parameter.
3820         (df_byte_lr_get_bb_info): New inline function.
3821         * df-scan.c (df_ref_record, df_uses_record,
3822         df_ref_create_structure): Added mode parameter.
3823         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3824         df_defs_record, df_uses_record, df_get_conditional_uses,
3825         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3826         df_entry_block_defs_collect, df_exit_block_uses_collect):
3827         Added mode parameter to calls to df_ref_record, df_uses_record,
3828         df_ref_create_structure.
3829         (df_ref_equal_p, df_ref_compare): Added test for modes.
3830         (df_ref_create_structure): Added code to set mode.  Renamed
3831         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3832         DF_REF_EXTRACT_OFFSET.
3833         * df-core.c (df_print_byte_regset): New function.
3834         * df-byte-scan.c: New file.
3835         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3836         calls to BITMAP_FREE.  
3837         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3838         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3839         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3840         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3841         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3842         df_byte_lr_local_compute, df_byte_lr_init,
3843         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3844         df_byte_lr_transfer_function, df_byte_lr_free, 
3845         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3846         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3847         df_byte_lr_simulate_uses,
3848         df_byte_lr_simulate_artificial_refs_at_top,
3849         df_byte_lr_simulate_artificial_refs_at_end): New function.
3850         * dce.c (byte_dce_process_block): New function.
3851         (dce_process_block): au is now passed in rather than computed
3852         locally.  Changed loops that look at artificial defs to not look
3853         for conditional or partial ones, because there never are any.  
3854         (fast_dce): Now is able to drive byte_dce_process_block or 
3855         dce_process_block depending on the kind of dce being done.
3856         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3857         (rest_of_handle_fast_byte_dce): New function.
3858         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3859         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3860
3861 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3862
3863         PR fortran/35019
3864         * gcc.h: Added fortran options that take arguments to
3865         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3866         macros.
3867
3868 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3869
3870         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
3871         scalarization if on the LHS and not a full access.
3872
3873 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3874
3875         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
3876
3877 2008-04-18  Rafael Espindola  <espindola@google.com>
3878
3879         * tree-vrp.c (find_case_label_index): Fix the binary search.
3880         (find_case_label_range): New.
3881         (vrp_visit_switch_stmt): Use find_case_label_range.
3882         (simplify_switch_using_ranges): Use find_case_label_range.
3883
3884 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3885
3886         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
3887         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
3888
3889 2008-04-18  Tom Tromey  <tromey@redhat.com>
3890
3891         PR libcpp/15500:
3892         * doc/cpp.texi (Implementation-defined behavior): Mention
3893         -finput-charset.
3894
3895 2008-04-18  Ian Lance Taylor  <iant@google.com>
3896
3897         * fold-const.c (pointer_may_wrap_p): New static function.
3898         (fold_comparison): Add another test for pointer overflow.  Use
3899         pointer_may_wrap_p to disable some false positives.
3900
3901 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
3902           
3903         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
3904         (fname_as_string): Match updated cpp_interpret_string prototype.
3905         (fix_string_type): Support char16_t* and char32_t*.
3906         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
3907         derivative) nodes.  Register as builtin if C++0x.
3908         (c_parse_error): Support CPP_CHAR{16,32}.
3909         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
3910         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
3911         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
3912         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
3913         CTI_CHAR32_ARRAY_TYPE>: New elements.
3914         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
3915         char32_type_node, signed_char32_type_node, char16_array_type_node,
3916         char32_array_type_node): New defines.
3917         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
3918         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
3919         (lex_string): Support CPP_STRING{16,32}, match updated
3920         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
3921         (lex_charconst): Support CPP_CHAR{16,32}.
3922         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
3923         and CPP_STRING{16,32}.
3924
3925 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
3926
3927         PR bootstrap/35457
3928         * aclocal.m4: Regenerate.
3929         * configure: Regenerate.
3930
3931 2008-04-18  Jan Hubicka  <jh@suse.cz>
3932
3933         * except.c (dw2_size_of_call_site_table,
3934         sjlj_size_of_call_site_table): Use vector API for call_site_record.
3935
3936         * cgraphbuild.c (build_cgraph_edges): Update.
3937         * tree-pass.h: Update comment.
3938         * final.c (leaf_function_p): Update.
3939         (leaf_renumber_regs): Update.
3940         (rest_of_clean_state): Update.
3941         * omp-low.c (expand_omp_parallel): Update.
3942         * ipa-reference.c (analyze_function): Update.
3943         * reorg.c (find_end_label): Update.
3944         (optimize_skip): Update.
3945         (fill_simple_delay_slots): Update.
3946         (fill_simple_delay_slots): Update.
3947         (make_return_insns): Update.
3948         (dbr_schedule): Update.
3949         * gimple-low.c (record_vars_into): Update.
3950         * cfgbuild.c (make_edges): Update.
3951         * function.c (assign_stack_local): Update.
3952         (assign_parm_adjust_stack_rtl): Update.
3953         (locate_and_pad_parm): Update.
3954         (allocate_struct_function): Do not initialize stack_alignment_needed
3955         and preferred_stack_boundary here.
3956         (stack_protect_prologue): Update.
3957         (stack_protect_epilogue): Update.
3958         (expand_function_start): Initialize stack_alignment_needed,
3959         preferred_stack_boundary and max_jumptable_ents.
3960         (expand_function_end): Update.
3961         (free_after_compilation): Do not NULLify epilogue_delay_list.
3962         * function.h (struct rtl_data): Add stack_protect_guard,
3963         stack_alignment_needed,
3964         preferred_stack_boundary, epilogue_delay_list.
3965         (struct function): Remove value_histograms, stack_alignment_needed,
3966         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
3967         last_label_uid,
3968         unexpanded_var_list, stack_protect_guard.
3969         (current_function_epilogue_delay_list): Remove.
3970         * ipa-type-escape.c (analyze_function): Update.
3971         * gimplify.c (pop_gimplify_context): Update comment.
3972         * calls.c (expand_call): Update.
3973         (emit_library_call_value_1): Update.
3974         * except.c (set_nothrow_function_flags): Update.
3975         * cfgexpand.c (get_decl_align_unit): Update.
3976         (create_stack_guard): Update.
3977         (estimated_stack_frame_size): Update.
3978         (expand_used_vars): Update.
3979         (tree_expand_cfg): Free histogram earliers, init expansion variables.
3980         * explow.c (allocate_dynamic_stack_space): Update.
3981         * tree-ssa-live.c (remove_unused_locals): Update.
3982         * varasm.c (mark_constant_pool): Update.
3983         * tree-inline.c (remap_decls): Update.
3984         (initialize_cfun): Update.
3985         (declare_return_variable): Update.
3986         (inline_forbidden_p): Update.
3987         (expand_call_inline): Update.
3988         (declare_inline_vars): Update.
3989         (tree_function_versioning): Update.
3990         * tree-flow.h (value_histograms): New.
3991         (VALUE_HISTOGRAMS): New macro.
3992         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
3993         last_label_uid.
3994         * tree-cfg.c (set_bb_for_stmt): Update.
3995         (replace_by_duplicate_decl): Update.
3996         (move_block_to_fn): Update.
3997         (new_label_mapper): Update.
3998         (dump_function_to_file): Update.
3999         * ipa-struct-reorg.c (build_data_structure): Update.
4000         * cfgrtl.c (print_rtl_with_bb): Update.
4001         * reload1.c (reload): Update.
4002         (reload): Update.
4003         * config/i386/i386.c (setup_incoming_varargs_64,
4004         ix86_compute_frame_layout): Update.
4005         * config/arc/arc.c (arc_output_function_epilogue): Update.
4006
4007 2008-04-18  Marius Strobl <marius@FreeBSD.org>
4008
4009         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
4010         for FreeBSD as well.
4011         * gthr-posix95.h: Likewise.
4012
4013 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
4014
4015         PR rtl-optimization/35838
4016         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
4017         out the byte offset of the first subreg.
4018
4019 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
4020
4021         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
4022         to split_ti instead of three separate calls with single member arrays.
4023         (subti3 splitter): Ditto.
4024         (adddi3 splitter): Ditto with split_di.
4025         (subdi3 splitter): Ditto.
4026         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
4027         two separate calls with single member arrays.  Swap match_dup
4028         operands 1 and 2 to better fit into the array.
4029         (negdi2 splitter): Ditto with split_di.
4030         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
4031         two separate calls with single member arrays.  Swap match_dup operands
4032         6 and 7 to better fit into the array.
4033
4034 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4035
4036         * config/i386/i386.c (sse_builtin_type): New.
4037         (bdesc_sse_args): Likewise.
4038         (bdesc_sse_3arg): Removed.
4039         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4040         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
4041         IX86_BUILTIN_ROUNDPS.
4042         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
4043         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
4044         IX86_BUILTIN_ROUNDPS.
4045         (ix86_expand_sse_4_operands_builtin): Removed.
4046         (ix86_expand_sse_operands_builtin): New.
4047         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
4048         and CODE_FOR_sse4_1_roundps.
4049         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4050         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4051
4052 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4053
4054         PR target/35907
4055         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4056         regs before frame pop when needed.  If use_backchain_to_restore_sp
4057         then load backchain into a temp reg to restore vr and vrsave.  Add
4058         code to restore vr after frame pop if possible.
4059
4060 2008-04-17  Richard Guenther  <rguenther@suse.de>
4061
4062         * tree-vn.c (expressions_equal_p): Do not check type
4063         equality or compatibility before calling operand_equal_p.
4064         * fold-const.c (operand_equal_p): Check equivalence of
4065         integer constants before bailing out due to signedness or
4066         precision differences.
4067         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4068         spurious differences in type qualification.  Ignore types
4069         for COMPONENT_REFs at all.
4070
4071 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4072
4073         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4074         msw_skip comparison.
4075         
4076 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4077
4078         PR c/35739
4079         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4080         reg type.
4081
4082         PR tree-optimization/35899
4083         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4084         rather than TREE_OPERAND.
4085
4086 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4087
4088         PR target/35944
4089         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4090         temporary registers.  Change operand predicate to general_operand.
4091         (remainderxf3): Ditto.
4092
4093 2008-04-16  Richard Guenther  <rguenther@suse.de>
4094
4095         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4096         * tree-affine.c (aff_combination_expand): Look through some
4097         conversions.
4098
4099 2008-04-15  Doug Kwan  <dougkwan@google.com>
4100
4101         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4102         for hex printing.
4103         * tree-pretty-print.c (dump_generic_node): Ditto.
4104         * final.c (output_addr_const): Ditto.
4105         * dwarf2out.c (output_cfi): Ditto.
4106         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4107         * print-rtl.c (print_rtx): Ditto.
4108         * print-tree.c (print_node_brief, print_node): Ditto.
4109         * c-common.c (match_case_to_enum_1): Ditto.
4110         * sched-vis.c (print_value): Ditto.
4111         * config/i386/i386.c (print_operand): Cast to long unsigned int
4112         for hex printing.
4113
4114 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4115         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4116         MS Windows VirtualProtect function.
4117
4118 2008-04-15  Jan Hubicka  <jh@suse.cz>
4119
4120         * gengtype.c (write_root): Param_is argument is OK.
4121         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4122         * function.h: Include varray.h
4123         (rtl_eh): New stucture based on except.c one.
4124         (call_site_record): New forward declaration and vector type.
4125         * calls.c (emit_call_1): Do not call
4126         note_current_region_may_contain_throw.
4127         * except.c (eh_status): Remove cur_region, try_region since they are
4128         unused.
4129         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4130         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4131         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4132         Remove call_site_data_used, call_site_data_size.
4133         Turn call_site_record into vector in function.h.
4134         (note_current_region_may_contain_throw): Remove.
4135         (get_exception_pointer, get_exception_filter): Do not take struct
4136         function argument; update.
4137         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4138         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4139         build_post_landing_pads, dw2_build_landing_pads,
4140         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4141         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4142         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4143         sjlj_build_landing_pads, finish_eh_generation,
4144         remove_exception_handler_label, remove_eh_handler,
4145         maybe_remove_eh_handler, add_reachable_handler,
4146         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4147         add_action_record, collect_one_action_chain, add_call_site,
4148         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4149         sjlj_output_call_site_table, output_function_exception_table,
4150         * except.h (note_current_region_may_contain_throw): Remove
4151         (get_exception_pointer, get_exception_filter): Do not take struct
4152         function argument.
4153         * Makefile.in (GTFILES): Put varargs before struct function.
4154
4155 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4156
4157         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4158         punt for STRING_CST.
4159         (get_constraint_for): Deal with STRING_CST here instead.
4160
4161 2008-04-15  Richard Guenther  <rguenther@suse.de>
4162
4163         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4164         statements in a basic-block with a backward walk.  Do not
4165         substitute into dead statements but instead remove those.
4166
4167 2008-04-15  Richard Guenther  <rguenther@suse.de>
4168
4169         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4170         to zero, thus disable creation of SFTs.
4171
4172 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4173
4174         * tree-predcom.c (suitable_reference_p): Return false if the
4175         reference can throw.
4176
4177 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4178
4179         PR c/35751
4180         * c-decl.c (finish_decl): If extern or static var has variable
4181         size, set TREE_TYPE (decl) to error_mark_node.
4182
4183 2008-04-15  Rafael Espindola  <espindola@google.com>
4184
4185         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4186         variable arg1.
4187
4188 2008-04-15  Richard Guenther  <rguenther@suse.de>
4189
4190         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4191         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4192         (visit_reference_op_load): Do walk vuse-vdef chains on
4193         vn_reference_lookup.
4194         (visit_reference_op_store): But do not here.
4195         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4196         vn_reference_lookup.
4197         (vn_lookup_with_vuses): But do so here.
4198
4199 2008-04-14  Ian Lance Taylor  <iant@google.com>
4200
4201         * fold-const.c (fold_overflow_warning): Remove assertion.
4202
4203 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4204
4205         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4206         temp1 local variables.
4207
4208 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4209
4210         PR target/35661
4211         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4212         ".text.unlikely" section as executable.
4213
4214 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4215
4216         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4217         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4218         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4219         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4220         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4221         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4222         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4223
4224 2008-04-14  Ian Lance Taylor  <iant@google.com>
4225
4226         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4227         * fold-const.c (fold_comparison): If appropriate, test
4228         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4229         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4230         reassociating a pointer type.
4231         * doc/invoke.texi (Optimize Options): Document that
4232         -fstrict-overflow applies to pointer wraparound.
4233
4234 2008-04-13  Jan Hubicka  <jh@suse.cz>
4235
4236         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4237
4238 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4239
4240         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4241         we are going to "save the world".
4242
4243 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4244
4245         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4246         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4247         operand 0 constraint, not "=".
4248
4249 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4250
4251         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4252
4253 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4254
4255         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4256         of size of positions_needed * CHAR_BIT.
4257
4258 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4259
4260         PR middle-end/35897
4261         * dse.c (store_info): Change positions_needed to unsigned
4262         HOST_WIDE_INT.
4263         (lowpart_bitmask): New.
4264         (record_store): Cast to unsigned HOST_WIDE_INT for
4265         positions_needed.  Assert width <= size of positions_needed *
4266         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4267         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4268         lowpart_bitmask to set mask.
4269
4270 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4271
4272         * config/bfin/constraints.md: New file.
4273         * config/bfin/bfin.md: Include it.
4274         (adddi3): Use satisfies_constraint functions instead of the old macros.
4275         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4276         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4277         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4278         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4279         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4280         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4281         EXTRA_CONSTRAINT): Delete.
4282         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4283         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4284         of the old macros.
4285         * config/bfin/bfin.c: Include "tm-constrs.h".
4286         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4287         Use satisfies_constraint functions instead of the old macros.
4288         * doc/md.texi (Blackfin Constraints): Update file name reference.
4289
4290 2008-04-11  Richard Guenther  <rguenther@suse.de>
4291
4292         PR tree-optimization/35869
4293         * tree-vrp.c (execute_vrp): Move switch statement update after
4294         jump threading.  Schedule another cfg cleanup run.
4295
4296 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4297
4298         PR c/35744
4299         * attribs.c (decl_attributes): Return early on errorneous node.
4300
4301 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4302
4303         * tree.h (struct tree_base): Added a new flag default_def_flag.
4304         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4305
4306 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4307
4308         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4309
4310 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4311
4312         PR target/35768
4313         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4314         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4315         (icacheflush): Likewise.
4316         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4317         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4318
4319 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4320
4321         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4322
4323 2008-04-10  Rafael Espindola  <espindola@google.com>
4324
4325         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4326         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4327         (extract_range_from_expr): The same.
4328
4329 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4330
4331         * config/mips/mips.md (GPR2): New mode iterator.
4332         (seq): Add comment.
4333         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4334         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4335         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4336         Rewrite these to take two modes, the mode of comparison and the
4337         mode of the destination.
4338         * config/mips/mips.c (mips_expand_scc): Instead of having
4339         paradoxical subreg as destination, expand "narrowing" scc if mode
4340         of comparison is SI and target is requested in DI mode.
4341         (mips_emit_int_order_test): Update comment.  Make mode of
4342         comparison match CMP0 rather than TARGET.  When creating inverse
4343         target use mode of TARGET.
4344
4345 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4346
4347         * gcov-dump.c (tag_summary): Only print summaries for the first
4348         GCOV_COUNTERS_SUMMABLE counters.
4349
4350 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4351
4352         * config/i386/i386.md (absneg): New code iterator.
4353         (absnegprefix): New code attribute.
4354         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4355         patterns using absneg code iterator.
4356         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4357         using absneg code iterator.
4358         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4359         *neg<mode>2 patterns using absneg code iterator.
4360         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4361         *negextendsfdf2 patterns using absneg code iterator.
4362         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4363         *negextendsfxf2 patterns using absneg code iterator.
4364         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4365         *negextendsfdf2 patterns using absneg code iterator.
4366         * config/i386/sse.md (<code><mode>2): Macroize expander from
4367         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4368
4369 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4370
4371         * config/s390/s390.h: Remove the remains of the recent search
4372         & replace action of current_function_outgoing_args_size.
4373
4374 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4375
4376         PR tree-optimization/35821
4377         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4378         NEW_STMT_LIST is not NULL.
4379
4380 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4381
4382         PR libstdc++/35597
4383         * toplev.c (process_options): Remove -ffunction-sections debugging
4384         warning.
4385
4386 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4387
4388         PR middle-end/PR28690
4389         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4390         than gen_rtx_fmt_ee to perform more canonicalizations.
4391
4392 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4393
4394         PR driver/35665
4395         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4396
4397 2008-04-09  Richard Guenther  <rguenther@suse.de>
4398
4399         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4400         (dump_function_to_file): Dump function arguments with types.
4401
4402 2008-04-08  Richard Guenther  <rguenther@suse.de>
4403
4404         * fold-const.c (fold_widened_comparison): Do not allow
4405         sign-changes that change the result.
4406
4407 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4408
4409         PR target/35839
4410         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4411         kinds of indirect references.
4412
4413 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4414
4415         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4416         GNU Fortran language string.
4417
4418 2008-04-08  Rafael Espindola  <espindola@google.com>
4419
4420         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4421         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4422         * tree.h (tree_call_nonnegative_warnv_p): New.
4423
4424 2008-04-08  Jan Hubicka  <jh@suse.cz>
4425
4426         * function.c (free_after_compilation): Clear out regno_reg_rtx
4427         pointer.
4428
4429 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4430
4431         Revert
4432         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4433
4434         PR middle-end/PR28690
4435         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4436         same precedence as REG_POINTER and MEM_POINTER operands.
4437
4438 2008-04-08  Richard Guenther  <rguenther@suse.de>
4439
4440         PR middle-end/35834
4441         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4442         for adding index to base.
4443
4444 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4445
4446         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4447         (MINGW_ENABLE_EXECUTE_STACK): New.
4448         (IN_LIBGCC2): For libgcc include windows.h file for
4449         function declarations.
4450
4451 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4452
4453         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4454         and tem2 if tem1 is not a REG or MULT.
4455
4456 2008-04-08  Jan Hubicka  <jh@suse.cz>
4457
4458         * function.h (incomming_args): Break out of struct function.
4459         (function_subsections): Break out of struct function.
4460         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4461         return_rtx and hard_reg_initial_vals from struct function.
4462         Kill inl_max_label_num.
4463         (current_function_pops_args, current_function_args_info,
4464         current_function_args_size, current_function_args_size,
4465         current_function_pretend_args_size,
4466         current_function_outgoing_args_size,
4467         current_function_internal_arg_pointer, current_function_return_rtx):
4468         Kill compatibility accestor macros.
4469         * builtins.c (expand_builtin_apply_args_1): Update.
4470         (expand_builtin_next_arg): Update.
4471         * df-scan.c (df_get_call_refs): Update.
4472         * dbxout.c (dbxout_function_end): Update.
4473         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4474         (output_line_info): Update.
4475         (secname_for_decl): Update.
4476         (dwarf2out_var_location): Update.
4477         * function.c (free_after_compilation): Update.
4478         (assign_parm_find_stack_rtl): Update.
4479         (assign_parms): Update.
4480         (expand_dummy_function_end): Update.
4481         (expand_function_end): Update.
4482         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4483         (expand_call): Update.
4484         (emit_library_call_value_1): Update.
4485         (store_one_arg): Update.
4486         * varasm.c (initialize_cold_section_name): Update.
4487         (unlikely_text_section): Update.
4488         (unlikely_text_section_p): Update.
4489         (assemble_start_function): Update.
4490         (assemble_end_function): Update.
4491         (default_section_type_flags): Update.
4492         (switch_to_section): Update.
4493         * integrate.c (set_decl_abstract_flags): Update.
4494         (get_hard_reg_initial_val): Update.
4495         (has_hard_reg_initial_val): Update.
4496         (allocate_initial_values): Update.
4497         * resource.c (init_resource_info): Update.
4498         * config/alpha/alpha.c (NUM_ARGS): Update.
4499         (direct_return): Update.
4500         (alpha_va_start): Update.
4501         (alpha_sa_size): Update.
4502         (alpha_initial_elimination_offset): Update.
4503         (alpha_expand_prologue): Update.
4504         (alpha_start_function): Update.
4505         (alpha_expand_epilogue): Update.
4506         (unicosmk_initial_elimination_offset):
4507         * config/alpha/alpha.md (call expander): Update.
4508         * config/s390/s390.c (s390_register_info): Update.
4509         (s390_register_info): Update.
4510         (s390_frame_info): Update.
4511         (s390_initial_elimination_offset): Update.
4512         (s390_build_builtin_va_list): Update.
4513         (s390_va_start): Update.
4514         * config/spu/spu.c (direct_return): Update.
4515         (spu_expand_prologue): Update.
4516         (spu_initial_elimination_offset): Update.
4517         (spu_build_builtin_va_list): Update.
4518         (spu_va_start): Update.
4519         * config/sparc/sparc.c (sparc_init_modes): Update.
4520         (sparc_compute_frame_size): Update.
4521         (function_value): Update.
4522         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4523         * config/i386/i386.md (return expander): Update.
4524         * config/i386/i386.c (ix86_va_start): Update.
4525         (ix86_can_use_return_insn_p): Update.
4526         (ix86_compute_frame_layout): Update.
4527         (ix86_expand_epilogue): Update.
4528         * config/sh/sh.c (output_stack_adjust): Update.
4529         (calc_live_regs): Update.
4530         (sh_expand_prologue): Update.
4531         (sh_builtin_saveregs): Update.
4532         (sh_va_start): Update.
4533         (initial_elimination_offset): Update.
4534         (sh_allocate_initial_value): Update.
4535         (sh_function_ok_for_sibcall): Update.
4536         (sh_get_pr_initial_val): Update.
4537         * config/sh/sh.md (return expander): Update.
4538         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4539         * config/crx/crx.c (crx_compute_frame): UPdate.
4540         (crx_initial_elimination_offset): UPdate.
4541         * config/xtensa/xtensa.c (compute_frame_size): Update
4542         (xtensa_builtin_saveregs): Update.
4543         (xtensa_va_start): Update.
4544         (order_regs_for_local_alloc): Update.
4545         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4546         (xstormy16_expand_builtin_va_start): Update.
4547         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4548         * config/m68hc11/m68hc11.md (return expanders): Update.
4549         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4550         (expand_epilogue): Update.
4551         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4552         (cris_simple_epilogue): Update.
4553         (cris_expand_prologue): Update.
4554         (cris_expand_epilogue): Update.
4555         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4556         (compute_frame_size): Update.
4557         * config/mt/mt.c (mt_compute_frame_size): Update.
4558         * config/mn10300/mn10300.c (expand_prologue): Update.
4559         (expand_epilogue): Update.
4560         (initial_offset): Update.
4561         (mn10300_builtin_saveregs):
4562         * config/mn10300/mn10300.md (return expander): Update.
4563         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4564         (ia64_initial_elimination_offset): Update.
4565         (ia64_initial_elimination_offset): Update.
4566         (ia64_expand_prologue): Update.
4567         * config/m68k/m68k.md (return expander): Update.
4568         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4569         (rs6000_stack_info): Update.
4570         * config/mcore/mcore.c (layout_mcore_frame): Update.
4571         (mcore_expand_prolog): Update.
4572         * config/arc/arc.c (arc_compute_frame_size): Update.
4573         * config/score/score3.c (score3_compute_frame_size): Update.
4574         * config/score/score7.c (score7_compute_frame_size): Update.
4575         * config/arm/arm.c (use_return_insn): Update.
4576         (thumb_find_work_register): Update.
4577         (arm_compute_save_reg_mask): Update.
4578         (arm_output_function_prologue): Update.
4579         (arm_output_epilogue): Update.
4580         (arm_size_return_regs): Update.
4581         (arm_get_frame_offsets): Update.
4582         (arm_expand_prologue): Update.
4583         (thumb_exit): Update.
4584         (thumb_unexpanded_epilogue): Update.
4585         (thumb1_output_function_prologue): Update.
4586         * config/pa/pa.md (return expander): Update.
4587         * config/pa/pa.c (compute_frame_size): Update.
4588         (hppa_builtin_saveregs): Update.
4589         * config/mips/mips.c (mips_va_start): Update.
4590         (mips16_build_function_stub): Update.
4591         (mips_compute_frame_info): Update.
4592         (mips_restore_gp): Update.
4593         (mips_output_function_prologue): Update.
4594         (mips_expand_prologue): Update.
4595         * config/v850/v850.c (compute_frame_size): Update.
4596         (expand_prologue): * config/mmix/mmix.c (along): update.
4597         (mmix_initial_elimination_offset): update.
4598         (mmix_reorg): update.
4599         (mmix_use_simple_return): update.
4600         (mmix_expand_prologue): update.
4601         (mmix_expand_epilogue): Update.
4602         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4603         (emit_link_insn): Update.
4604
4605 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4606
4607         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4608         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4609         instructions.
4610         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4611         atmega103 device.
4612
4613 2008-04-07  Jan Hubicka  <jh@suse.cz>
4614
4615         * function.h (rtl): Rename to x_rtl.
4616         (crtl): New define.
4617         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4618         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4619         used_temp_slots avail_temp_slots, temp_slot_level,
4620         nonlocal_goto_handler_labels): Update accesstors.
4621         (rtl): New global variable.
4622         (struct function): Move some fileds to rtl_data.
4623         (get_arg_pointer_save_area): Update prototype.
4624         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4625         get_arg_pointer_save_area.
4626         * expr.c (init_expr): Update
4627         * function.c (get_frame_size): Update
4628         (assign_stack_local): Update
4629         (expand_function_end): Update.
4630         (get_art_pointer_save_area): Update
4631         * function.h 
4632         * emit-rtl.c (rtl): Declare.
4633         (regno_reg_rtx): Declare.
4634         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4635         Update.
4636         (gen_reg_rtx): Update.
4637         * varasm.c (n_deferred_constatns): Update accestor.
4638         (init_varasm_status): Do not allocate varasm_status.
4639         (force_const_mem, get_pool_size, output_constant_pool): Update.
4640         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4641         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4642         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4643         * sparc/sparc.h (INIT_EXPANDERS): Update.
4644         * ia64/ia64.h (INIT_EXPANDERS): Update.
4645
4646 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4647
4648         * reload.c (push_secondary_reload): Add missing break to for loop.
4649
4650 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4651
4652         PR middle-end/PR28690
4653         * rtlanal.c: Update copyright years.
4654         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4655         as REG_POINTER and MEM_POINTER operands.
4656         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4657         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4658         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4659         * gcse.c: Update copyright years.
4660         (pre_delete): Call gen_reg_rtx_and_attrs.
4661         (hoist_code): Likewise.
4662         (build_store_vectors): Likewise.
4663         (delete_store): Likewise.
4664         * loop-invariant.c (move_invariant_reg): Likewise.
4665         Update copyright years.
4666
4667 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4668
4669         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4670         control string instead of quoted.
4671
4672 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4673
4674         * doc/rtl.texi: Rewrite of subreg section.
4675
4676 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4677
4678         PR/35842
4679         * config/i386/i386.c (legitimize_pic_address): Add treating
4680         of dllimport SYM_REF's.
4681         (legitimize_dllimport_symbol): Add prototype.
4682
4683 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4684
4685         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4686         reference in constructor with non self-referential type.
4687
4688 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4689
4690         Removal of Return with Depressed Stack Pointer support
4691         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4692         (ECF_SP_DEPRESSED): Likewise.
4693         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4694         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4695         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4696         (expand_call): Do not test ECF_SP_DEPRESSED.
4697         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4698         * function.c (keep_stack_depressed): Delete.
4699         (handle_epilogue_set): Likewise.
4700         (update_epilogue_consts): Likewise.
4701         (emit_equiv_load): Likewise.
4702         (thread_prologue_and_epilogue_insns): Remove support for Return with
4703         Depressed Stack Pointer.
4704         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4705
4706 2008-04-06  Richard Guenther  <rguenther@suse.de>
4707
4708         PR tree-optimization/35400
4709         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4710         information from SSA_NAMEs.
4711
4712 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4713
4714         * config/avr/avr.h (avr_mega_p): Remove declaration.
4715         (AVR_MEGA): Remove macro.
4716         * config/avr/avr.c (avr_mega_p): Remove variable.
4717         (avr_override_options): Remove inicializion of avr_mega_p.
4718         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4719         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4720         (avr_jump_mode): (Ditto.).
4721         (avr_output_progmem_section_asm_op): (Ditto.).
4722         (avr_asm_init_sections): (Ditto.).
4723         (avr_asm_init_sections): (Ditto.).
4724         (avr_rtx_costs): (Ditto.).
4725         * config/avr/avr.md: (Ditto.).
4726         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4727         '__AVR_MEGA__'.
4728
4729 2008-04-06  Richard Guenther  <rguenther@suse.de>
4730
4731         PR tree-optimization/35842
4732         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4733         is_gimple_invariant_address.
4734
4735 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4736
4737         * gcc.c (default_compilers): Sync Fortran extensions list with
4738         that in fortran/lang-specs.h.
4739         * doc/invoke.texi: Likewise.
4740         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4741         * dwarf2out.c (gen_compile_unit_die): Likewise.
4742
4743 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4744
4745         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4746
4747 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4748
4749         PR target/12329
4750         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4751         attribute is used for nested functions.
4752
4753 2008-04-05  Jan Hubicka  <jh@suse.cz>
4754
4755         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4756
4757         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4758         letter argument.
4759         (dump_files): Update.
4760         (enable_rtl_dump_file): Do not accept letter argument.
4761         * tree-pass.h (dump_file_info): Remove letter argument.
4762         * toplev.c (decode_d_option): Update -da handling.
4763         * toplev.h (enable_rtl_dump_file): Update prototype.
4764         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4765         it out based on pass type.
4766         (register_dump_files_1): Likewise.
4767         (init_optimization_passes): Update register_one_dump_file calls.
4768         (execute_one_pass): Sanity check that IPA passes are called at IPA
4769         level and RTL passes at RTL level.
4770         (execute_pass_list): IPA pass can not be after or subpass of
4771         GIMPLE/RTL pass.
4772         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4773         disallov RTL subpasses of IPA subpasses.
4774
4775 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4776
4777         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4778         builtins that return exactly once and do not throw. Cache call to
4779         call_expr_flags.
4780
4781 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4782
4783         PR rtl-optimization/34916
4784         PR middle-end/35519
4785         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4786         between instruction pairs.
4787
4788 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4789
4790         * doc/invoke.texi: Document -mbitops for SH.
4791         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4792         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4793         * config/sh/sh.c (print_operand): Add %t operand code.
4794         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4795         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4796         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4797         (extendqihi2): Likewise.
4798         (movqi_i): Likewise.
4799         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4800         (extv): Use bld instruction for SH2A if possible.
4801         (extzv): Likewise.
4802         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4803         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4804         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4805         (bset.b, bclr.b): Define peepholes.
4806         * config/sh/sh.opt (mbitops): New option.
4807
4808 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4809
4810         PR target/35620
4811         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4812         and view convert expression.
4813
4814 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4815
4816         PR target/35364
4817         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4818
4819 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4820
4821         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4822
4823         * config/i386/cpuid.h (bit_AES): New.
4824         (bit_PCLMUL): Likewise.
4825
4826         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4827         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4828         SSE2 if AES or PCLMUL is enabled.
4829         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4830         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4831         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4832         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4833         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4834         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4835         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4836         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4837         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4838         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4839         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4840         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4841         __builtin_ia32_aeskeygenassist128 and
4842         __builtin_ia32_pclmulqdq128.
4843         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4844         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4845         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4846
4847         * config/i386/i386.h (TARGET_AES): New.
4848         (TARGET_PCLMUL): Likewise.
4849         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4850
4851         * config/i386/i386.md (UNSPEC_AESENC): New.
4852         (UNSPEC_AESENCLAST): Likewise.
4853         (UNSPEC_AESDEC): Likewise.
4854         (UNSPEC_AESDECLAST): Likewise.
4855         (UNSPEC_AESIMC): Likewise.
4856         (UNSPEC_AESKEYGENASSIST): Likewise.
4857         (UNSPEC_PCLMUL): Likewise.
4858
4859         * config/i386/i386.opt (maes): New.
4860         (mpclmul): Likewise.
4861
4862         * config/i386/sse.md (aesenc): New pattern.
4863         (aesenclast): Likewise.
4864         (aesdec): Likewise.
4865         (aesdeclast): Likewise.
4866         (aesimc): Likewise.
4867         (aeskeygenassist): Likewise.
4868         (pclmulqdq): Likewise.
4869
4870         * config/i386/wmmintrin.h: New.
4871
4872         * doc/extend.texi: Document AES and PCLMUL built-in function.
4873
4874         * doc/invoke.texi: Document -maes and -mpclmul.
4875
4876 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
4877
4878         * function.c (free_after_parsing): Replace with
4879         cxx_push_function_context from C++ front-end.
4880         (allocate_struct_function): Don't call langhook.
4881         * langhooks.h (struct lang_hooks_for_functions): Delete.
4882         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
4883         member "function".
4884         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
4885         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
4886         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4887         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
4888         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
4889         remove LANG_HOOKS_FUNCTION_INITIALIZER.
4890         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
4891
4892         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
4893         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
4894         
4895 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4896
4897         PR c/35440
4898         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
4899         for all types.
4900
4901 2008-04-04  Richard Guenther  <rguenther@suse.de>
4902
4903         PR middle-end/35823
4904         * fold-const.c (optimize_minmax_comparison): Use the correct
4905         type for the constant in the simplified comparison.
4906
4907 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
4908
4909         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
4910         Pass L2 size as "--param l2-cache-size" to the compiler.
4911         (decode_l2_cache): New function to decode L2 cache parameters using
4912         0x8000006 extended cpuid function.
4913         (detect_caches_amd): Determine parameters of L2 cache using
4914         decode_l2_caches function.
4915         (decode_caches_intel): Decode L2 cache parameters.
4916         (detect_caches_intel): Determine L2 cache parameters using
4917         decode_caches_intel and decode_l2_caches functions.
4918
4919 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
4920
4921         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
4922         secondary input reload for subword loads from the constant pool.
4923
4924 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
4925
4926         PR target/35713
4927         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
4928           constants of the appropriate size for runtime calculations.
4929
4930         PR c/35712
4931         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
4932           decimal-float literal constant zero.
4933
4934 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
4935
4936         PR c/35738
4937         * c-parser.c (c_parser_omp_atomic): Call
4938         default_function_array_conversion on the RHS.
4939
4940         PR middle-end/35818
4941         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
4942         call is_variable_sized if decl has incomplete type.
4943
4944 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
4945
4946         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
4947
4948 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
4949
4950         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
4951         iterators.
4952         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
4953         (sgt<u>): Merge sgt and sgtu into new expander.
4954         (sgt, sgtu): Remove expanders.
4955         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
4956         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
4957         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
4958         *sgtu_<mode>_mips16 into new pattern.
4959         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
4960         (sge<u>): Merge sge and sgeu into new expander.
4961         (sge, sgeu): Remove expanders.
4962         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
4963         new pattern.
4964         (*sge_<mode>, second *sge_<mode>): Remove patterns.
4965         (slt<u>): Merge slt and sltu into new expander.
4966         (slt, sltu): Remove expanders.
4967         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
4968         (*slt_<mode>, *sltu_<mode>): Remove patterns.
4969         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
4970         *sltu_<mode>_mips16 into new pattern.
4971         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
4972         (sle<u>): Merge sle and sleu into new expander.
4973         (sle, sleu): Remove expanders.
4974         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
4975         (*sle_<mode>, *sleu_<mode>): Remove patterns.
4976         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
4977         *sleu_<mode>_mips16 into new pattern.
4978         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
4979
4980 2008-04-03  Jan Hubicka  <jh@suse.cz>
4981
4982         PR tree-optimization/35795
4983         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
4984         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
4985         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
4986         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
4987         * score/score3.c (score3_output_mi_thunk): Likewise.
4988         * score/score7.c (score7_output_mi_thunk): Likewise.
4989         * mips/mips.c (mips_output_mi_thunk): Likewise.
4990
4991 2008-04-03  Richard Guenther  <rguenther@suse.de>
4992
4993         * tree-vrp.c (extract_range_from_unary_expr): Handle all
4994         conversions.  Simplify code.
4995
4996 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4997
4998         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
4999
5000 2008-04-03  Tom Tromey  <tromey@redhat.com>
5001             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5002
5003         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5004         * config/bfin/t-bfin-linux (generated_files): Add
5005         linux-sysroot-suffix.h.
5006         * doc/install.texi (Prerequisites): Require make 3.80.
5007         * doc/sourcebuild.texi (Front End Directory): Document new
5008         variable.
5009         * Makefile.in (generated_files): New variable.
5010         (ALL_HOST_OBJS): New variable.
5011         ($(ALL_HOST_OBJS)): New target.
5012
5013 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5014
5015         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
5016         (remap_block): Call id->transform_lang_insert_block instead
5017         of langhook.
5018         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
5019         Set id.transform_lang_insert_block to NULL.
5020         (clone_body): Move to cp/optimize.c
5021         * tree-inline.h (struct copy_body_data): Change
5022         transform_lang_insert_block to function pointer.
5023         (copy_generic_body, copy_decl_no_change): Export.
5024         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
5025         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
5026         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
5027
5028         * c-tree.h (insert_block): Kill.
5029         * c-decl.c (insert_block): Kill.
5030
5031 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
5032
5033         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5034         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5035         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
5036         argument.
5037         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
5038         argument, call {push,pop}_function_context from here.
5039         * c-parser.c: Use c_{push,pop}_function_context.
5040
5041         * function.c (push_function_context_to): Move meat ...
5042         (push_function_context): ... here.  Simplify.
5043         * function.c (pop_function_context_from): Move meat ...
5044         (pop_function_context): ... here.  Simplify.
5045         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
5046         leave_nested).
5047         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
5048         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
5049         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5050         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5051
5052 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5053
5054         * expmed.c (extract_force_align_mem_bit_field): Remove.
5055
5056 2008-04-03  Richard Guenther  <rguenther@suse.de>
5057
5058         PR middle-end/35800
5059         * expr.h (try_casesi): Adjust prototype.
5060         * expr.c (try_casesi): Take fallback label as extra parameter.
5061         Use that for gen_casesi if default_label is NULL.
5062         * stmt.c (expand_case): Pass fallback label to try_casesi,
5063         make sure to fill gaps with a fallback label if default_label
5064         is not present.
5065
5066 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5067
5068         PR target/35801
5069         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5070
5071 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5072
5073         * expmed.c (extract_split_bit_field): Remove if (0) code.
5074         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5075         (do_ds_constraint): Likewise.
5076
5077 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5078
5079         * doc/cppopts.texi (-dU): Document.
5080         * c-common.h (flag_dump_macros): Update comment.
5081         * c-opts.c (handle_OPT_d): Handle -dU.
5082         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5083         dump_queued_macros, cb_used_define, cb_used_undef): New.
5084         (init_pp_output): Handle -dU.
5085         (cb_line_change): Call dump_queued_macros.
5086         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5087
5088 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5089
5090         * config/avr/predicates.md (io_address_operand): New predicate. 
5091         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5092         * config/avr/avr.c (avr_io_address_p): Remove function.
5093         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5094         'avr_io_address_p' function.
5095         (out_movhi_r_mr): (Ditto.).
5096         (out_movqi_mr_r): (Ditto.).
5097         (out_movhi_mr_r): (Ditto.).
5098         (avr_address_cost): (Ditto.).
5099
5100 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5101
5102         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5103         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5104         in 32bit mode when XMM registers are available to avoid store
5105         forwarding stalls.
5106         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5107         corresponding post-reload splitters.
5108
5109 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5110
5111         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5112         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5113         __builtin_ia32_roundss.
5114         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5115         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5116         __builtin_ia32_roundss.
5117         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5118         IX86_BUILTIN_SHUFPD here.
5119
5120 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5121
5122         * config/i386/i386.md (plogic): New.
5123         (plogicprefix): Likewise.
5124
5125         * config/i386/mmx.md (mmx_<code><mode>3): New.
5126         (mmx_and<mode>3): Removed.
5127         (mmx_ior<mode>3): Likewise.
5128         (mmx_xor<mode>3): Likewise.
5129
5130         * config/i386/sse.md (<code><mode>3): New.
5131         (*<code><mode>3): Likewise.
5132         (*<code><mode>3): Likewise.
5133         (<code><mode>3): Likewise.
5134         (*sse_<code><mode>3): Likewise.
5135         (*sse2_<code><mode>3): Likewise.
5136         (<code>tf3): Likewise.
5137         (*<code>tf3): Likewise.
5138         (and<mode>3): Likewise.
5139         (*and<mode>3): Likewise.
5140         (ior<mode>3): Removed.
5141         (*ior<mode>3): Likewise.
5142         (xor<mode>3): Likewise.
5143         (*xor<mode>3): Likewise.
5144         (*and<mode>3): Likewise.
5145         (*ior<mode>3): Likewise.
5146         (*xor<mode>3): Likewise.
5147         (and<mode>3): Likewise.
5148         (*sse_and<mode>3): Likewise.
5149         (*sse2_and<mode>3): Likewise.
5150         (andtf3): Likewise.
5151         (*andtf3): Likewise.
5152         (ior<mode>3): Likewise.
5153         (*sse_ior<mode>3): Likewise.
5154         (*sse2_ior<mode>3): Likewise.
5155         (iortf3): Likewise.
5156         (*iortf3): Likewise.
5157         (xor<mode>3): Likewise.
5158         (*sse_xor<mode>3): Likewise.
5159         (*sse2_xor<mode>3): Likewise.
5160         (xortf3): Likewise.
5161         (*xortf3): Likewise.
5162
5163 2008-04-02  Richard Guenther  <rguenther@suse.de>
5164
5165         PR tree-optimization/14495
5166         PR tree-optimization/34793
5167         * tree-vrp.c (struct switch_update): New structure.
5168         (to_remove_edges, to_update_switch_stmts): New VECs.
5169         (simplify_switch_using_ranges): New function.  Remove not taken
5170         case labels and edges.
5171         (simplify_stmt_using_ranges): Call it.
5172         (identify_jump_threads): Mark edges we have queued for removal
5173         so we don't thread them.
5174         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5175         case label vector.
5176         * tree-cfg.c (group_case_labels): Deal with missing default label.
5177         (tree_verify_flow_info): Allow missing default label.
5178         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5179         (emit_case_nodes): Likewise.
5180         (expand_case): Do not rely on the default label to be present.
5181         * expr.c (try_casesi): Deal with NULL default_label.
5182         (do_tablejump): Likewise.
5183
5184 2008-04-02  Richard Guenther  <rguenther@suse.de>
5185
5186         PR tree-optimization/14495
5187         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5188         SWITCH_EXPR here ...
5189         (vrp_visit_switch_stmt): ... but here (new function).
5190         (find_case_label_index): New helper function.
5191         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5192
5193 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5194
5195         * fwprop.c: Fix ISO-C99ism.
5196
5197 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5198
5199         PR bootstrap/35752
5200         * Makefile.in (objdir): Set it here.
5201         * configure.ac: Not here.  Find dynamic linker characteristics.
5202         * exec-tool.in: Use them.
5203         * aclocal.m4: Regenerate.
5204         * configure: Regenerate.
5205
5206 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5207
5208         * expr.c (expand_var): Delete it.
5209         * expr.h (expand_var): Delete prototype.
5210         * function.c (expand_function_start): Use expand_decl instead.
5211         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5212         langhook.
5213
5214 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5215
5216         PR rtl-optimization/35542
5217         * fwprop.c (forward_propagate_and_simplify): Replace
5218         loc_reg_mentioned_in_p with reg_mentioned_p.
5219
5220 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5221
5222         PR rtl-optimization/35281
5223         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5224         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5225         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5226         (varying_mem_p): Move above propagate_rtx.
5227         (all_uses_available_at): Do not check MEMs.
5228
5229 2008-04-02  Rafael Espindola  <espindola@google.com>
5230
5231         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5232         (register_edge_assert_for_2): Split the cond argument.
5233         (register_edge_assert_for_1): Adjust for the change in
5234         register_edge_assert_for_2.
5235         (register_edge_assert_for): Split the cond argument.
5236         (find_switch_asserts): Adjust for the change in
5237         register_edge_assert_for.
5238
5239 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5240
5241         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5242         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5243         offsets for 64-bit mingw.
5244         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5245         abi for x86_64-pc-mingw.
5246
5247 2008-04-02  Richard Guenther  <rguenther@suse.de>
5248
5249         * tree-vrp.c (extract_range_from_assert): Make sure to not
5250         produce range min/max with TREE_OVERFOW set.
5251         If merging a anti-range and a range keep the anti-range if
5252         the range covers all values of the type.
5253         (register_edge_assert_for_2): Only allow sign-changing
5254         conversions in detecting canonical range checks.  Also
5255         register an assert for the unsigned name if useful.
5256
5257         PR tree-optimization/35787
5258         * tree-vrp.c (vrp_val_max): New function.
5259         (vrp_val_min): Likewise.
5260         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5261         (vrp_val_is_min): Likewise.
5262         (supports_overflow_infinity): Use vrp_val_{min,max}.
5263         (negative_overflow_infinity): Likewise.
5264         (positive_overflow_infinity): Likewise.
5265         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5266         (is_positive_overflow_infinity): Likewise.
5267         (is_overflow_infinity): Likewise.
5268         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5269         vrp_val_is_{min,max}.
5270         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5271         to ranges if possible.  Avoid empty ranges.
5272
5273 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5274
5275         PR middle-end/35705
5276         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5277         the expression is a function address.
5278
5279 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5280
5281         PR fortran/35154, fortran/23057
5282         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5283         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5284         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5285         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5286         in common.
5287         (dbxout_syms): Check for COMMON-based symbol and wrap in
5288         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5289         in bracket for efficiency.
5290
5291         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5292         using DW_TAG_common_block + member offset.
5293         (add_pubname_string): New function.
5294         (dw_expand_expr): New function to find block name and offset for
5295         COMMON var.
5296         (common_check): New function to check whether symbol in Fortran COMMON.
5297         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5298
5299 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5300
5301         PR c/35436
5302         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5303
5304 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5305
5306         * config/v850/v850.md (casesi): Remove if (0) code.
5307         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5308         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5309
5310 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5311
5312         * config/i386/i386.md (rex64suffix): New mode attribute.
5313         (floathi<mode>2): Disable expander for SSE math.
5314         (*floathi<mode>2_1): New insn insn_and_split pattern.
5315         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5316         corresponding post-reload splitters.
5317         (*floathi<mode>2_i387): New macroized insn pattern.
5318         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5319         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5320         insn_and_split pattern.
5321         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5322         New macroized instruction patterns and corresponding post-reload
5323         splitters.
5324         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5325         and corresponding post-reload splitters.
5326         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5327         New macroized instruction patterns.
5328         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5329         macroized instruction patterns and corresponding post-reload splitters.
5330         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5331         corresponding post-reload splitters.
5332         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5333         New macroized instruction patterns.
5334         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5335         corresponding post-reload splitters.
5336         (*floatsi<mode>2_i387): New macroized instruction patterns.
5337
5338 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5339
5340         * config/i386/i386.md (smaxmin): New.
5341         (umaxmin): Likewise.
5342         (maxminiprefix): Likewise.
5343         (maxminfprefix): Likewise.
5344         (<code><mode>3): Likewise.
5345         (smin<mode>3): Removed.
5346         (smax<mode>3): Likewise.
5347
5348         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5349         (mmx_<code>v4hi3): Likewise.
5350         (mmx_<code>v8qi3): Likewise.
5351         (mmx_smaxv2sf3): Removed.
5352         (mmx_sminv2sf3): Likewise.
5353         (mmx_umaxv8qi3): Likewise.
5354         (mmx_smaxv4hi3): Likewise.
5355         (mmx_uminv8qi3): Likewise.
5356         (mmx_sminv4hi3): Likewise.
5357
5358         * config/i386/sse.md (<addsub><mode>3): New.
5359         (*<addsub><mode>3): Likewise.
5360         (<sse>_vm<addsub><mode>3): Likewise.
5361         (<maxmin><mode>3): Likewise.
5362         (*<maxmin><mode>3_finite): Likewise.
5363         (*<maxmin><mode>3): Likewise.
5364         (<sse>_vm<maxmin><mode>3): Likewise.
5365         (sse3_h<addsub>v4sf3): Likewise.
5366         (sse3_h<addsub>v2df3): Likewise.
5367         (<maxmin>v16qi3): Likewise.
5368         (*<maxmin>v16qi3): Likewise.
5369         (<maxmin>v8hi3): Likewise.
5370         (*<maxmin>v8hi3): Likewise.
5371         (*sse4_1_<maxmin><mode>3): Likewise.
5372         (*sse4_1_<maxmin><mode>3): Likewise.
5373         (add<mode>3): Removed.
5374         (*add<mode>3): Likewise.
5375         (<sse>_vmadd<mode>3): Likewise.
5376         (sub<mode>3): Likewise.
5377         (*sub<mode>3): Likewise.
5378         (<sse>_vmsub<mode>3): Likewise.
5379         (smin<mode>3): Likewise.
5380         (*smin<mode>3_finite): Likewise.
5381         (*smin<mode>3): Likewise.
5382         (<sse>_vmsmin<mode>3): Likewise.
5383         (smax<mode>3): Likewise.
5384         (*smax<mode>3_finite): Likewise.
5385         (*smax<mode>3): Likewise.
5386         (<sse>_vmsmax<mode>3): Likewise.
5387         (sse3_haddv4sf3): Likewise.
5388         (sse3_haddv2df3): Likewise.
5389         (sse3_hsubv4sf3): Likewise.
5390         (sse3_hsubv2df3): Likewise.
5391         (umaxv16qi3): Likewise.
5392         (*umaxv16qi3): Likewise.
5393         (smaxv8hi3): Likewise.
5394         (*smaxv8hi3): Likewise.
5395         (*sse4_1_smax<mode>3): Likewise.
5396         (*sse4_1_umax<mode>3): Likewise.
5397         (uminv16qi3): Likewise.
5398         (*uminv16qi3): Likewise.
5399         (sminv8hi3): Likewise.
5400         (*sminv8hi3): Likewise.
5401         (*sse4_1_smin<mode>3): Likewise.
5402         (*sse4_1_umin<mode>3): Likewise.
5403
5404 2008-04-01  Rafael Espindola  <espindola@google.com>
5405
5406         * tree-cfg.c (verify_expr): remove in_phi.
5407         (verify_stmt): Don't call walk_tree with verify_expr. Use
5408         is_gimple_min_invariant instead of is_gimple_val.
5409
5410 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5411
5412         * doc/include/gpl_v3.texi: Update for manpage generation.
5413         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5414         gpl.texi.
5415         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5416         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5417         gpl_v3.texi instead of gpl.texi.
5418         (gpl.pod): New.
5419
5420 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5421
5422         PR pch/13675
5423         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5424
5425 2008-04-01  Rafael Espindola  <espindola@google.com>
5426
5427         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5428         (extract_code_and_val_from_cond): Use
5429         extract_code_and_val_from_cond_with_ops.
5430
5431 2008-04-01  Jan Hubicka  <jh@suse.cz>
5432
5433         * function.c (free_after_compilation): Free epilogue_delay_list.
5434         (prepare_function_start): Assert that previous compilation was freed.
5435
5436 2008-04-01  Jan Hubicka  <jh@suse.cz>
5437             Jim Wilson  <wilson@tuliptree.org>
5438             Andreas Tobler <andreast@gcc.gnu.org>
5439
5440         PR middle-end/35781
5441         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5442         rtl.emit instead cfun->emit.
5443         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5444         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5445
5446 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5447
5448         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5449
5450 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5451
5452         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5453         New options
5454         (fprofile-use): Add var flag_profile_use
5455         * coverage.c (coverage_begin_output): Do not open a gcno file for
5456         output only if -ftest-coverage is set.
5457         Do not add getpwd() to gcda file path.
5458         (build_gcov_info): Check the new flag
5459         flag_profile_datafile_relative_path.
5460         (coverage_init): Use profile_data_prefix.
5461         Read profile counter only if flag_profile_use is set.
5462         * opts.c (common_handle_option): New option fprofile-use=,
5463         fprofile-dir=, fprofile-generate=.
5464         * toplev.c (profile_data_prefix): New variable definition.
5465         * toplev.h (profile_data_prefix): New declaration.
5466         * doc/invoke.tex (Option Summary, Optimization Options):
5467         Add new options.
5468
5469 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5470
5471         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5472         use tmp consistently.
5473
5474         PR target/35695
5475         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5476         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5477         UNSPEC_FR_RECIP_APPROX_RES.
5478         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5479
5480 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5481
5482         PR c/35750
5483         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5484
5485 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5486
5487         PR middle-end/30186
5488         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5489         element of the vector via a pointer.
5490
5491 2008-03-31  Ian Lance Taylor  <iant@google.com>
5492
5493         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5494
5495 2008-03-31  Jan Hubicka  <jh@suse.cz>
5496
5497         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5498         get_arg_pointer_save_area.
5499         * expr.c (init_expr): Just clear out rtl.expr.
5500         * function.c (free_after_compilation): Clear out whole RTL structure.
5501         (get_func_frame_size): Merge into ...
5502         (get_frame_size): ... this one.
5503         (assign_stack_local_1): Merge into ...
5504         (assign_stack_local): ... this one.
5505         (expand_function_end): Update call of get_arg_pointer_save_area.
5506         (get_art_pointer_save_area): Remove cfun argument.
5507         * function.h (emit_status): regno_pointer_align does not need length
5508         attribute. Move x_regno_reg_rtx to ...
5509         (regno_reg_rtx): ... new global array.
5510         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5511         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5512         apply_args_value, forced_labels, stack_pointer_delta):
5513         Update accestors.
5514         (struct varasm_status): Move here from varasm.c
5515         (struct rtl_data): New. Move here some fields from struct function.
5516         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5517         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5518         used_temp_slots avail_temp_slots, temp_slot_level,
5519         nonlocal_goto_handler_labels): Update accesstors.
5520         (rtl): New global variable.
5521         (struct function): Move some fileds to rtl_data.
5522         (get_arg_pointer_save_area): Update prototype.
5523         * emit-rtl.c (rtl): Declare.
5524         (regno_reg_rtx): Declare.
5525         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5526         Update.
5527         (gen_reg_rtx): Update.
5528         (init_virtual_regs): Do not tate emit_status argument.
5529         (init_emit): Do not allocate emit.
5530         * varasm.c (varasm_statuc): Move to function.h.
5531         (n_deferred_constatns): Update accestor.
5532         (init_varasm_status): Do not allocate varasm_status.
5533         (force_const_mem, get_pool_size, output_constant_pool): Update.
5534         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5535         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5536
5537 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5538
5539         PR rtl-optimization/35729
5540         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5541         references.
5542
5543 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5544
5545         PR target/32000
5546         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5547         load/store if memory is unaligned.
5548         (*movti_rex64): Likewise.
5549
5550         * config/i386/predicates.md (misaligned_operand): New.
5551
5552 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5553
5554         PR tree-opt/35431
5555         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5556         complex types.
5557
5558 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5559
5560         * config/ia64/constraints.md: Add 'j' constraint.
5561         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5562         (movdi_internal): Likewise.
5563
5564 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5565
5566         PR c/35748
5567         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5568
5569 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5570
5571         PR target/35757
5572         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5573         proper error message for the third argument on blendpd and
5574         blendps.
5575
5576         * config/i386/sse.md (blendbits): New.
5577         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5578
5579 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5580
5581         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5582
5583 2008-03-30  Richard Guenther  <rguenther@suse.de>
5584
5585         PR middle-end/31023
5586         * fold-const.c (fold_sign_changed_comparison): Do leave
5587         conversions to base-types alone.
5588
5589 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5590
5591         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5592         the link register if one altivec register is be saved.
5593
5594 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5595
5596         * final.c (final_scan_insn): Remove if (0) code.
5597
5598 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5599
5600         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5601
5602 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5603
5604         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5605         of V4SFmode to ix86_binary_operator_ok.
5606
5607 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5608
5609         * config/i386/i386.c (override_options): Initialize
5610         ix86_veclib_handler to ix86_veclibabi_svml when
5611         -mveclibabi=svml is used.
5612         (ix86_veclibabi_svml): New function for SVML ABI style
5613         vectorization support.
5614         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5615
5616 2008-03-28  Rafael Espindola  <espindola@google.com>
5617
5618         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5619         (tree_binary_nonnegative_warnv_p): Make it public.
5620         (tree_single_nonnegative_warnv_p): Make it public.
5621         (tree_invalid_nonnegative_warnv_p): Make it public.
5622         (tree_unary_nonzero_warnv_p): Make it public.
5623         (tree_binary_nonzero_warnv_p): Make it public
5624         (tree_single_nonzero_warnv_p): Make it public.
5625         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5626         (extract_range_from_binary_expr): Split the expr argument.
5627         (extract_range_from_unary_expr): Split the expr argument.
5628         (extract_range_from_comparison): Split the expr argument.
5629         (extract_range_from_expr): Use the new aux functions.
5630         (vrp_evaluate_conditional_warnv): Use
5631         vrp_evaluate_conditional_warnv_with_ops.
5632         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5633         (tree_binary_nonzero_warnv_p): Declare.
5634         (tree_single_nonzero_warnv_p): Declare.
5635         (tree_expr_nonzero_warnv_p): Declare.
5636         (tree_unary_nonnegative_warnv_p): Declare.
5637         (tree_binary_nonnegative_warnv_p): Declare.
5638         (tree_single_nonnegative_warnv_p): Declare.
5639         (tree_invalid_nonnegative_warnv_p): Declare.
5640
5641 2008-03-28  Richard Guenther  <rguenther@suse.de>
5642
5643         PR tree-optimization/30317
5644         PR tree-optimization/30911
5645         PR tree-optimization/34793
5646         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5647         (struct assert_locus_d): New member EXPR.
5648         (register_new_assert_for): Add EXPR parameter to support
5649         ASSERT_EXPR <name, expr OP limit>.
5650         (register_edge_assert_for_1): Adjust callers.
5651         (find_assert_locations): Likewise.
5652         (process_assert_insertions_for): Build condition from expression.
5653         (extract_range_from_assert): Handle ASSERT_EXPRs
5654         of the form ASSERT_EXPR <name, expr OP limit>.
5655         (register_edge_assert_for_2): New helper registering
5656         asserts for comparisons.  Recognize range tests of the form
5657         (unsigned)i - CST1 OP CST2.
5658         (register_edge_assert_for_1): Use it.
5659         (register_edge_assert_for): Likewise.
5660         (needs_overflow_infinity): Integer sub-types
5661         do not need overflow infinities.
5662         (vrp_val_is_max): The extreme values of integer sub-types
5663         are those of the base type.
5664         (vrp_val_is_min): Likewise.
5665         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5666         expressions.
5667
5668 2008-03-28  Nick Clifton  <nickc@redhat.com>
5669
5670         PR target/31110
5671         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5672         Return GENERAL_REGS for stack adjustment reloads.
5673
5674 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5675
5676         PR target/31334
5677         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5678         const_vector when all the vectors are constant.
5679
5680 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5681
5682         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5683         comparisons.
5684         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5685         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5686         (scc_sf): New.
5687         (s<code>_sf): Use new scc_sf attribute for opcode names.
5688
5689 2008-03-27  Tom Tromey  <tromey@redhat.com>
5690
5691         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5692         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5693         config/spu/t-spu-elf, config/i386/t-interix,
5694         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5695         config/i386/x-darwin, config/i386/x-mingw32,
5696         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5697         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5698         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5699         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5700         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5701         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5702         config/score/t-score-elf, config/arm/t-strongarm-pe,
5703         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5704         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5705         Revert automatic dependency patch.
5706
5707 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5708
5709         PR target/35657
5710         * config/i386/i386.c (ix86_function_arg_boundary): Align
5711         decimal floating point to its natural boundary.
5712
5713 2008-03-27  Richard Guenther  <rguenther@suse.de>
5714
5715         PR middle-end/35716
5716         * fold-const.c (fold_comparison): Restrict distinct decl
5717         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5718         solely rely on operand_equal_p.
5719
5720 2008-03-27  Richard Guenther  <rguenther@suse.de>
5721
5722         PR c/32511
5723         * c-common.c (handle_weak_attribute): Reject combination of
5724         weak and inline.
5725
5726 2008-03-27  Richard Guenther  <rguenther@suse.de>
5727
5728         PR tree-optimization/32810
5729         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5730         conversions from DECL_INITIAL.
5731         (fold_const_aggregate_ref): Likewise from constructor elements.
5732
5733 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5734
5735         * tree-affine.h (aff_combination_expand): Declare.
5736         (get_inner_reference_aff): Likewise.
5737         * tree-affine.c (aff_combination_expand): Split out from
5738         tree_to_aff_combination_expand.
5739         (get_inner_reference_aff): New function.
5740         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5741         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5742         (struct lim_aux_data): sm_done field removed.
5743         (mem_ref_loc_p, mem_ref_locs_p): New types.
5744         (struct mem_ref): Added id, stored, accesses_in_loop,
5745         indep_loop, dep_loop, indep_ref, dep_ref fields.
5746         Removed is_stored, locs and next fields.
5747         (memory_accesses): New variable.
5748         (movement_possibility): Do not allow moving statements
5749         that store to memory.
5750         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5751         New functions.
5752         (determine_max_movement): For statements with memory references,
5753         find the outermost loop in that the reference is independent.
5754         (move_computations_stmt): Mark the virtual operands for renaming.
5755         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5756         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5757         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5758         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5759         create_vop_ref_mapping, analyze_memory_references,
5760         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5761         get_all_locs_in_loop, ref_always_accessed_p,
5762         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5763         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5764         store_motion_loop, store_motion): New functions.
5765         (struct vop_to_refs_elt): New type.
5766         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5767         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5768         (schedule_sm): Replaced by...
5769         (execute_sm): ... this.
5770         (determine_lsm_ref, hoist_memory_references,
5771         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5772         find_more_ref_vops, free_mem_ref, free_mem_refs,
5773         determine_lsm_loop, determine_lsm): Removed.
5774         (tree_ssa_lim_finalize): Free data structures used by store motion.
5775         (tree_ssa_lim): Call analyze_memory_references.  Use
5776         store_motion instead of determine_lsm.
5777
5778 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5779
5780         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5781         rename tmake_file to m68hc11/t-m68hc11.
5782         (mcore): Set inhibit_libc to true.
5783         * config.host (alpha*-dec-*vms*): Set extra_programs.
5784         (interix3*): Don't use host_xmake_file.
5785         * configure.ac: Let config.gcc override inhibit_libc.
5786         * configure: Regenerate.
5787
5788         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5789         * config/t-openbsd-thread: Remove commented out lines.
5790         
5791         * config/x-interix: Remove.
5792
5793         * config/m68hc11/t-m68hc11-gas: Rename to...
5794         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5795
5796         * config/mcore/t-mcore: Remove T_CFLAGS.
5797         * config/mcore/t-mcore-pe: Likewise.
5798
5799 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5800
5801         * configure.ac: Replace custom __GNU_SOURCE test with
5802         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5803         * aclocal.m4: Regenerate.
5804         * configure: Regenerate.
5805         * config.in: Regenerate.
5806
5807 2008-03-27  Richard Guenther  <rguenther@suse.de>
5808
5809         * fold-const.c (target.h): Include.
5810         (fold_comparison): Fold comparison of addresses of decls
5811         that bind locally or of constants.  Consolidate address folding code.
5812         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5813         results from fold_binary_to_constant.
5814         (compare_values_warnv): Likewise.
5815
5816 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5817
5818         PR middle-end/35429
5819         * fold-const.c (fold_truthop): Check for integeral types when folding
5820         a == 0 && b == 0 and a != 0 || b != 0 .
5821
5822 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5823
5824         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5825
5826 2008-03-26  Andreas Schwab  <schwab@suse.de>
5827
5828         * doc/invoke.texi: Fix use of @item vs. @itemx.
5829
5830 2008-03-26  Tom Tromey  <tromey@redhat.com>
5831
5832         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5833         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5834         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5835         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5836         build/genconstants.o, build/genemit.o, build/genextract.o,
5837         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5838         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5839         options.h.
5840
5841 2008-03-26  Richard Guenther  <rguenther@suse.de>
5842
5843         Revert
5844         2008-03-26  Richard Guenther  <rguenther@suse.de>
5845
5846         * fold-const.c (target.h): Include.
5847         (fold_comparison): Fold comparison of addresses of two decls
5848         that bind locally.  Consolidate address folding code.
5849
5850 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5851
5852         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5853         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5854         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5855         dconstsqrt2, dconstthird, dconste and/or dconst10.
5856         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5857         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5858         dconstsqrt2, dconste): Delete.
5859         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5860         Constify variable.
5861         * real.c (get_real_const): New.
5862         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5863         dconstsqrt2, dconste): Delete.
5864         (real_value_const, get_real_const): New.
5865
5866 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
5867
5868         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
5869
5870         * config/i386/i386.c (ix86_function_arg_boundary): Check
5871         BIGGEST_ALIGNMENT instead of 128.
5872         (setup_incoming_varargs_64): Likewise.
5873
5874 2008-03-26  Tom Tromey  <tromey@redhat.com>
5875
5876         * Makefile.in (DEPFILES): Add missing '/'.
5877
5878 2008-03-26  Richard Guenther  <rguenther@suse.de>
5879
5880         * fold-const.c (target.h): Include.
5881         (fold_comparison): Fold comparison of addresses of two decls
5882         that bind locally.  Consolidate address folding code.
5883
5884 2008-03-26  Nick Clifton  <nickc@redhat.com>
5885
5886         PR target/31232
5887         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
5888         not allow INT+INT as a legitimate addressing mode.
5889
5890 2008-03-26  Richard Guenther  <rguenther@suse.de>
5891
5892         * tree-flow.h (widen_bitfield): Remove declaration.
5893         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
5894         (widen_bitfield): Remove function.
5895         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
5896         code.
5897
5898 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5899
5900         PR target/31558
5901         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
5902         error_mark_node's.
5903
5904 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5905
5906         PR rtl-optimization/35232
5907         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
5908         (forget_old_reloads_1, forget_marked_reloads): Don't clear
5909         reg_reloaded_call_part_clobbered here.
5910         (reload_regs_reach_end_p): New function.
5911         (reload_reg_rtx_for_input): New variable.
5912         (reload_reg_rtx_for_output): Likewise.
5913         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
5914         when reassigning a pseudo register.  Load reloadreg from 
5915         reload_reg_rtx_for_input, moving the mode and register
5916         calculation to...
5917         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
5918         instead of the original when deciding whether an input reload
5919         would be a no-op or whether an output reload can be deleted.
5920         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
5921         when setting up new_spill_reg_store.  Load it from
5922         reload_reg_rtx_for_output, moving the mode and register
5923         calculation to...
5924         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
5925         instead of the original when deciding whether an output reload
5926         would be a no-op.  Do the same when modifying insn notes.
5927         Use rtx_equal_p instead of == to compare the registers.
5928         (inherit_piecemeal_p): Take a mode and two register numbers
5929         as argument.
5930         (emit_reload_insns): Clear new_spill_reg_store for every hard
5931         register in the reload register.  Remove spill registers
5932         from reg_reloaded_valid before considering whether to record
5933         inheritance information for them.  Use reload_reg_rtx_for_output
5934         instead of reg_rtx when recording output reloads.  Use
5935         reload_reg_rtx_for_input instead of reg_rtx when recording
5936         input reloads.  Set or clear reg_reloaded_call_part_clobbered
5937         at the same time as setting reg_reloaded_valid.
5938         (delete_output_reload): Add a new_reload_reg parameter and use it
5939         instead of rld[j].reg_rtx.
5940         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
5941         calls accordingly.
5942
5943 2008-03-25  Tom Tromey  <tromey@redhat.com>
5944
5945         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
5946         (build/genattr.o): Likewise.
5947         (build/genattrtab.o): Likewise.
5948         (build/gencodes.o): Likewise.
5949         (build/genconfig.o): Likewise.
5950         (build/genconstants.o): Likewise.
5951         (build/genemit.o): Likewise.
5952         (build/genextract.o): Likewise.
5953         (build/genflags.o): Likewise.
5954
5955 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
5956         
5957         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
5958         instead of size_int for integer types.
5959         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
5960         to match type of MINUS_EXPR.
5961         
5962 2008-03-25  Tom Tromey  <tromey@redhat.com>
5963
5964         * configure: Rebuilt.
5965         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
5966         Makefile.
5967
5968 2008-03-25  Tom Tromey  <tromey@redhat.com>
5969
5970         * config/x-solaris (host-solaris.o): Update.
5971         * config/x-linux (host-linux.o): Update.
5972         * config/x-hpux (host-hpux.o): Update.
5973         * config/x-darwin (host-darwin.o): Update.
5974         * config/v850/t-v850e (v850-c.o): Update.
5975         * config/v850/t-v850 (v850-c.o): Update.
5976         * config/t-vxworks (vxworks.o): Update.
5977         * config/t-sol2 (sol2-c.o, sol2.o): Update.
5978         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
5979         * config/spu/t-spu-elf (spu-c.o): Update.
5980         (spu.o): Remove.
5981         * config/sh/t-symbian (sh-c.o): Update.
5982         (symbian.o): Update.
5983         * config/sh/t-sh (sh-c.o): Update.
5984         * config/score/t-score-elf (score7.o, score3.o): Update.
5985         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
5986         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
5987         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
5988         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
5989         (rs6000.o): Remove.
5990         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5991         * config/m32c/t-m32c (m32c-pragma.o): Update.
5992         * config/ia64/t-ia64 (ia64-c.o): Update.
5993         * config/i386/x-mingw32 (host-mingw32.o): Update.
5994         * config/i386/x-i386 (driver-i386.o): Update.
5995         * config/i386/x-darwin (host-i386-darwin.o): Update.
5996         * config/i386/x-cygwin (host-cygwin.o): Update.
5997         * config/i386/t-nwld (nwld.o): Update.
5998         * config/i386/t-netware (netware.o): Update.
5999         * config/i386/t-interix (winnt.o): Update.
6000         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
6001         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
6002         msformat-c.o): Update.
6003         * config/bfin/t-bfin-linux (generated_files): Add
6004         linux-sysroot-suffix.h.
6005         * config/arm/t-wince-pe (pe.o): Update.
6006         * config/arm/t-strongarm-pe (pe.o): Update.
6007         * config/arm/t-pe (pe.o): Update.
6008         * config/arm/t-arm (arm-c.o): Update.
6009         * doc/install.texi (Prerequisites): Require make 3.80.
6010         * Makefile.in: Remove .o targets.
6011         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
6012         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
6013         (simple_generated_h, simple_generated_c): Move earlier.
6014         (generated_files): New variable.
6015         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
6016         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
6017         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
6018         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
6019         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
6020         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
6021         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
6022         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
6023         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
6024         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
6025         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
6026         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
6027         (.c.o): Remove.
6028         (COMPILE.base, COMPILE): New variables.
6029         (%.o): New pattern rule.
6030         (ALL_HOST_OBJS): New variable.
6031         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
6032         (dummy-checksum.o, cc1-checksum.o): Remove.
6033         (DRIVER_SHLIB): New variable.
6034         (DRIVER_DEFINES): Use it.
6035         (gencondmd.c): Move out of build/.
6036         (s-conditions): Update.
6037         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
6038         (ALL_BUILD_OBJS): Likewise.
6039         (build/%.o): Use BUILDCOMPILE.
6040         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
6041         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
6042         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
6043         build/gencheck.o, build/gencodes.o, build/genconditions.o,
6044         build/genconfig.o, build/genconstants.o, build/genemit.o,
6045         build/genextract.o, build/genflags.o, build/genmddeps.o,
6046         build/genopinit.o, build/genoutput.o, build/genpeep.o,
6047         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
6048         build/gen-protos.o, build/scan.o, build/fix-header.o,
6049         build/scan-decls.o): Simplify.
6050         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6051         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6052         prefix.o, toplev.o): Reduce to variable setting.
6053         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6054         ($(out_object_file), gcc-options.o): New targets.
6055         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6056         * configure: Rebuilt.
6057         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6058         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6059
6060 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6061
6062         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6063         complain when we hit an error, return ERROR_MARK_NODE.
6064
6065 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6066
6067         * config/sh/constraints.md (Pso, Psz): New constraints.
6068         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6069         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6070
6071 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6072
6073         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6074         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6075
6076 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6077
6078         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6079         (prefetch_sh2a): New.   
6080
6081 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6082             Naveen.H.S  <naveen.hs@kpitcummins.com>
6083
6084         * config/sh/constraints.md (I28): New constraint.
6085         * config/sh/sh.c (broken_move): Add support for movi20s.
6086         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6087
6088 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6089             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6090             Naveen.H.S  <naveen.hs@kpitcummins.com>
6091
6092         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6093         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6094         (print_operand): Handle resbank in %@ operand code.
6095         (sh_encode_section_info): New.
6096         (push_regs): Add conditions for resbank.
6097         (sh_expand_epilogue): Likewise.
6098         (sh_insert_attributes): Likewise.
6099         (sh_attribute_table): Likewise.
6100         (sh_handle_resbank_handler_attribute): New.
6101         (sh2a_handle_function_vector_handler_attribute): New.
6102         (sh2a_is_function_vector_call): New.
6103         (sh2a_get_function_vector_number): New.
6104         (sh2a_function_vector_p): New.
6105         (sh_cfun_resbank_handler_p): New.
6106         * config/sh/sh.md (calli): Emit jsr/n if possible.
6107         (calli_tbr_rel): New.
6108         (calli_pcrel): Emit jsr/n if possible.
6109         (return_i): Emit rts/n if possible.
6110         (call_valuei_tbr_rel): New.
6111         (call_valuei_pcrel): Add condition for SH2A target.
6112         (call_value): Likewise.
6113         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6114         (sh2a_get_function_vector_number): Likewise.
6115         (sh2a_is_function_vector_call): Likewise.
6116         * doc/extend.texi: Document TBR relative addressing of SH2A.
6117         (resbank): Add description for SH2A.
6118
6119 2008-03-24  Richard Guenther  <rguenther@suse.de>
6120
6121         PR c/22371
6122         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6123         pointer assignments change conversions according to middle-end rules.
6124         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6125         * configure.ac: Include type checking in yes.
6126         * configure: Regenerate.
6127
6128 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6129
6130         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6131         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6132         
6133 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6134
6135         * gthr-vxworks.h (UNUSED): Define.
6136
6137 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6138
6139         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6140
6141 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6142
6143         * doc/extend.texi (Function Attributes): Add missing comma in the
6144         example of the "alloc_size" attribute.
6145         
6146 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6147
6148         Revert:
6149         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6150
6151         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6152         32bit host.
6153
6154         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6155
6156         PR target/35496
6157         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6158         of the underlying type of a MS bitfield layout to the natural
6159         alignment of the type.
6160
6161         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6162
6163         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6164         to their natural alignment to avoid store forwarding stalls.
6165
6166 2008-03-22  Richard Guenther  <rguenther@suse.de>
6167
6168         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6169         For PHI nodes verify the address is invariant.
6170         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6171         (get_symbol_constant_value): Use is_gimple_min_invariant.
6172         (maybe_fold_stmt_indirect): Likewise.
6173
6174 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6175
6176         PR rtl-optimization/33927
6177         * Makefile.in (dse.o): Depend on $(TM_P_H).
6178         * expr.h (extract_low_bits): Declare.
6179         * expmed.c (extract_low_bits): New function.
6180         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6181         * dse.c: Include tm_p.h.
6182         (find_shift_sequence): Remove the read_reg argument and return the
6183         read value.  Emit the instructions instead of returning them.
6184         Iterate on new_mode rather than calculating it each time.
6185         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6186         source to NEW_MODE and extract_low_bits to convert the shifted
6187         value to READ_MODE.
6188         (replace_read): Allow the load and store to have different mode
6189         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6190         or extraction instructions before trying the replacement.  Update
6191         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6192
6193 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6194
6195         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6196         to their natural alignment to avoid store forwarding stalls.
6197
6198 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6199
6200         PR target/27946
6201         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6202         encouraging but not allowing gprs for input;
6203         change the input constraint to !f#r.
6204         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6205         gprs for output;
6206         change the output constraint to !f#r.
6207
6208 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6209
6210         PR target/13958
6211         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6212         corresponding post-reload splitters.
6213         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6214         when x87 FP math is selected.
6215         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6216         New function prototype.
6217         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6218         unreachable function to ease macroization of insn patterns.
6219
6220 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6221
6222         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6223         reference dumps if ddr is NULL or dependence is unknown.
6224
6225 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6226
6227         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6228         unsigned extension into account.
6229         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6230         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6231         Do computations on a scratch register.
6232
6233 2008-03-21  Richard Guenther  <rguenther@suse.de>
6234
6235         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6236         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6237         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6238         * tree-ssa-dom.c (record_equality): Likewise.
6239         * tree-inline.c (copy_body_r): Likewise.
6240         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6241         TREE_INVARIANT.
6242
6243 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6244
6245         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6246         as 'delete_unused' argument.
6247
6248 2008-03-20  Richard Guenther  <rguenther@suse.de>
6249
6250         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6251         special casing of constant qualifiers.
6252         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6253         care about them in general.
6254         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6255         regardless of their type.
6256         (fold_stmt_r): Forcefully fold *& if we end up with that.
6257
6258 2008-03-20  Paul Brook  <paul@codesourcery.com>
6259
6260         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6261         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6262         linker flags.
6263         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6264         definition.
6265         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6266         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6267
6268 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6269
6270         * common.opt (Wmudflap): New option.
6271         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6272         (mx_register_decls): Likewise.
6273         (mudflap_finish_file): Likewise.
6274         * doc/invoke.texi: Document -Wno-mudflap.
6275
6276 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6277
6278         * c-format.c (replace_format_name_to_system_name): New.
6279         (cmp_attribs): New.
6280         (convert_format_name_to_system_name): New.
6281         (decode_format_attr): Add use of convert_format_name_to_system_name.
6282         (format_types_orig): Add gnu_ prefix to names.
6283         (check_format_info_main): Special treating of \0 escaped names for
6284         supporting multi-character format specifiers as I32, I64.
6285         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6286         (gnu_target_overrides_format_attributes): New.
6287         * c-format.h: Add structure target_ovr_attr to hold
6288         system specific formatter names.
6289         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6290         msformat-c.o file to c_target_objs and cxx_target_objs.
6291         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6292         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6293         (TARGET_N_FORMAT_TYPES): New.
6294         * config/i386/msformat-c.c: New.
6295         * config/i386/t-cygming: Add build rule for msformat-c.o.
6296         * doc/extend.texi: Add new format names gnu_* and ms_* and
6297         further details.
6298         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6299
6300 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6301
6302         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6303         optimizations turned on under -O3.
6304         (ftree-vectorize): Add that the flag is turned on with -O3.
6305
6306 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6307
6308         * regmove.c (try_auto_increment): Fix spelling error in comment.
6309         * final.c (final_scan_insn): Likewise.
6310
6311 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6312
6313         PR target/14552
6314         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6315         allocator preferences for "y" and "r" class registers.
6316         ("*mov<mode>_internal"): Ditto.
6317         ("*movv2sf_internal_rex64"): Ditto.
6318         ("*movv2sf_internal"): Ditto.
6319
6320 2008-03-19  Michael Matz  <matz@suse.de>
6321
6322         PR middle-end/35616
6323         * calls.c (expand_call): Check overlap of arguments with call
6324         address for sibcalls.
6325
6326 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6327
6328         PR target/35496
6329         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6330         of the underlying type of a MS bitfield layout to the natural
6331         alignment of the type.
6332
6333 2008-03-19  Jan Hubicka  <jh@suse.cz>
6334
6335         PR other/35094
6336         * toplev.c (decode_d_option): Handle all CPP flags.
6337         * tree-vrp.c: Update tree_pass descriptors.
6338         * regrename.c: Update tree_pass descriptors.
6339         * fwprop.c: Update tree_pass descriptors.
6340         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6341         * tree-into-ssa.c: Update tree_pass descriptors.
6342         * tree-dump.c: Update tree_pass descriptors.
6343         * tree-complex.c: Update tree_pass descriptors.
6344         * tree-dump.h: Update tree_pass descriptors.
6345         * see.c: Update tree_pass descriptors.
6346         * cgraphbuild.c: Update tree_pass descriptors.
6347         * tracer.c: Update tree_pass descriptors.
6348         * tree-loop-distribution.c: Update tree_pass descriptors.
6349         * cgraph.c: Update tree_pass descriptors.
6350         * postreload-gcse.c: Update tree_pass descriptors.
6351         * postreload.c: Update tree_pass descriptors.
6352         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6353         * tree-tailcall.c: Update tree_pass descriptors.
6354         * tree-pass.h (tree_opt_pass): Rename to ...
6355         (opt_pass) ... this one; add "type" field and remove letter field.
6356         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6357         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6358         all_lowering_passes): Update declaration.
6359         * ipa-cp.c: Update tree_pass descriptors.
6360         * final.c: Update tree_pass descriptors.
6361         * omp-low.c: Update tree_pass descriptors.
6362         * tree-ssa-dse.c: Update tree_pass descriptors.
6363         * ipa-reference.c: Update tree_pass descriptors.
6364         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6365         * auto-inc-dec.c: Update tree_pass descriptors.
6366         * reorg.c: Update tree_pass descriptors.
6367         * cgraphunit.c: Update tree_pass descriptors.
6368         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6369         * tree-ssa-ccp.c: Update tree_pass descriptors.
6370         * df-core.c: Update tree_pass descriptors.
6371         * mode-switching.c: Update tree_pass descriptors.
6372         * tree-nomudflap.c: Update tree_pass descriptors.
6373         * modulo-sched.c: Update tree_pass descriptors.
6374         * ipa-pure-const.c: Update tree_pass descriptors.
6375         * cse.c: Update tree_pass descriptors.
6376         * web.c: Update tree_pass descriptors.
6377         * tree-stdarg.c: Update tree_pass descriptors.
6378         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6379         * tree-ssa-dom.c: Update tree_pass descriptors.
6380         * tree-nrv.c: Update tree_pass descriptors.
6381         * tree-ssa-alias.c: Update tree_pass descriptors.
6382         * loop-init.c: Update tree_pass descriptors.
6383         * gimple-low.c: Update tree_pass descriptors.
6384         * ipa-inline.c: Update tree_pass descriptors.
6385         * tree-ssa-sink.c: Update tree_pass descriptors.
6386         * global.c: Update tree_pass descriptors.
6387         * ifcvt.c: Update tree_pass descriptors.
6388         * jump.c: Update tree_pass descriptors.
6389         * predict.c: Update tree_pass descriptors.
6390         * tree-ssa-loop.c: Update tree_pass descriptors.
6391         * recog.c: Update tree_pass descriptors.
6392         * dse.c: Update tree_pass descriptors.
6393         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6394         * tree-eh.c: Update tree_pass descriptors.
6395         * regmove.c: Update tree_pass descriptors.
6396         * local-alloc.c
6397         * function.c: Update tree_pass descriptors.
6398         * tree-vectorizer.c: Update tree_pass descriptors.
6399         * gcse.c: Update tree_pass descriptors.
6400         * ipa-type-escape.c: Update tree_pass descriptors.
6401         * tree-if-conv.c: Update tree_pass descriptors.
6402         * init-regs.c: Update tree_pass descriptors.
6403         * ipa.c: Update tree_pass descriptors.
6404         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6405         * rtl-factoring.c: Update tree_pass descriptors.
6406         * lower-subreg.c: Update tree_pass descriptors.
6407         * bt-load.c: Update tree_pass descriptors.
6408         * tree-dfa.c: Update tree_pass descriptors.
6409         * except.c: Update tree_pass descriptors.
6410         * emit-rtl.c: Update tree_pass descriptors.
6411         * cfgexpand.c: Update tree_pass descriptors.
6412         * tree-cfgcleanup.c: Update tree_pass descriptors.
6413         * cfgcleanup.c: Update tree_pass descriptors.
6414         * tree-ssa-pre.c: Update tree_pass descriptors.
6415         * tree-sra.c: Update tree_pass descriptors.
6416         * tree-mudflap.c: Update tree_pass descriptors.
6417         * tree-ssa-copy.c: Update tree_pass descriptors.
6418         * cfglayout.c: Update tree_pass descriptors.
6419         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6420         * tree-ssa-dce.c: Update tree_pass descriptors.
6421         * tree-ssa.c: Update tree_pass descriptors.
6422         * regclass.c: Update tree_pass descriptors.
6423         * integrate.c: Update tree_pass descriptors.
6424         * tree-optimize.c: Update tree_pass descriptors.
6425         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6426         * tree-object-size.c: Update tree_pass descriptors.
6427         * combine.c: Update tree_pass descriptors.
6428         * tree-outof-ssa.c: Update tree_pass descriptors.
6429         * bb-reorder.c: Update tree_pass descriptors.
6430         * stack-ptr-mod.c: Update tree_pass descriptors.
6431         * var-tracking.c: Update tree_pass descriptors.
6432         * tree-profile.c: Update tree_pass descriptors.
6433         * tree-vect-generic.c: Update tree_pass descriptors.
6434         * reg-stack.c: Update tree_pass descriptors.
6435         * sched-rgn.c: Update tree_pass descriptors.
6436         * tree-ssa-structalias.c: Update tree_pass descriptors.
6437         * tree-cfg.c: Update tree_pass descriptors.
6438         * passes.c (current_pass): Update declaration.
6439         (finish_optimization_passes): Update.
6440         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6441         (register_one_dump_file, register_dump_files_1, next_pass_1):
6442         Update arguments.
6443         (init_optimization_passes): Update handling of new types.
6444         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6445         * ipa-struct-reorg.c: Update tree_pass descriptors.
6446         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6447         * combine-stack-adj.c: Update tree_pass descriptors.
6448         * cfgrtl.c: Update tree_pass descriptors.
6449         * dce.c: Update tree_pass descriptors.
6450         * tree-ssanames.c: Update tree_pass descriptors.
6451
6452 2008-03-19  Richard Guenther  <rguenther@suse.de>
6453
6454         PR middle-end/35609
6455         * tree-ssa.c (walk_data): New structure.
6456         (warn_uninitialized_var): If not always_executed warn with "maybe"
6457         instead of "is".
6458         (execute_early_warn_uninitialized): Compute post-dominators.
6459         Initialize always_executed before processing each basic block.
6460
6461 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6462
6463         PR target/35504
6464         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6465         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6466
6467 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6468
6469         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6470
6471 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6472
6473         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6474         is true.
6475         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6476         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6477         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6478         target after ignore has been set, and move there also the commputation
6479         of subtarget and original_target.
6480         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6481         (LANG_HOOKS_INITIALIZER): Remove it.
6482         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6483
6484 2008-03-18  Richard Guenther  <rguenther@suse.de>
6485
6486         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6487         found an expression with constants, note that in the VN for the lhs.
6488         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6489         fold them to constants if possible.  Run cleanup_cfg if done so.
6490         (execute_pre): Return todo.
6491         (do_pre): Likewise.
6492         (execute_fre): Likewise.
6493         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6494         of constants.
6495         (get_prop_source_stmt): Look through pointer conversions.
6496
6497 2008-03-18  Jan Hubicka  <jh@suse.cz>
6498
6499         * tree-pretty-print.c: Include predict.h.
6500         (dump_generic_node): Dump predictor.
6501         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6502         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6503         * gimple-low.c (lower_stmt): Likewise.
6504         * expr.c (expand_expr_real): Likewise.
6505         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6506         them.
6507         (build_predict_expr, build_predict_expr): New.
6508         * predict.h (predictor_name, build_predict_expr): Update.
6509         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6510         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6511         * predict.def (PRED_CONTINUE): Update hitrate.
6512         * tree.def (PREDICT_EXPR): Define.
6513         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6514         do not handle BIND_EXPR.
6515         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6516         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6517         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6518         operands.
6519
6520 2008-03-18  Michael Matz  <matz@suse.de>
6521
6522         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6523
6524 2008-03-18  Richard Guenther  <rguenther@suse.de>
6525
6526         * tree-gimple.h (is_gimple_invariant_address): Declare.
6527         (is_gimple_constant): Likewise.
6528         * tree-gimple.c (is_gimple_constant): New function.
6529         (is_gimple_invariant_address): Likewise.
6530         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6531         and is_gimple_invariant_address.
6532         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6533         previous change.
6534         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6535         an addressable base.
6536
6537 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6538
6539         PR middle-end/35611
6540         * gimplify.c (gimplify_expr): Gimplify second operand of
6541         OMP_ATOMIC_LOAD.
6542
6543 2008-03-17  Richard Guenther  <rguenther@suse.de>
6544
6545         PR tree-optimization/19637
6546         * fold-const.c (fold_unary): Remove restrictions of removing
6547         intermediate pointer-conversions (P2)(P1)P0.
6548         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6549         conversion to void pointer.
6550         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6551
6552 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6553
6554         PR debug/31510
6555         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6556         emulated thread local variables.
6557
6558 2008-03-16  Richard Guenther  <rguenther@suse.de>
6559
6560         PR middle-end/35607
6561         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6562         expand TREE_INVARIANT operations that are not gimple invariant.
6563
6564 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6565
6566         * doc/extend.texi (Alignment): Say that the ABI controls
6567         the __alignof__ for non-strict-alignment targets rather
6568         than being a recommendation.
6569
6570 2008-03-15  Paul Brook  <paul@codesourcery.com>
6571
6572         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6573         annotations.
6574         (arm_output_fn_unwind): Mark functions that can not be unwound.
6575
6576 2008-03-15  Paul Brook  <paul@codesourcery.com>
6577
6578         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6579         extension instructions.
6580
6581 2008-03-15  Richard Guenther  <rguenther@suse.de>
6582
6583         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6584         and fold constant aggregate refs.
6585         (fold_const_aggregate_ref): Handle string constants
6586         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6587         (evaluate_stmt): Simplify now that ccp_fold folds constant
6588         aggregate refs.
6589
6590 2008-03-15  Paul Brook  <paul@codesourcery.com>
6591
6592         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6593         (extzv): Use gen_extzv_t2.
6594         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6595
6596 2008-03-15  Richard Guenther  <rguenther@suse.de>
6597
6598         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6599         (fold_const_aggregate_ref): Likewise.
6600         (get_value): Return NULL if we don't have any values.
6601         (ccp_finalize): Set const_val to NULL after freeing it.
6602         * tree-flow.h (get_symbol_constant_value): Declare.
6603         (fold_const_aggregate_ref): Likewise.
6604         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6605
6606 2008-03-15  Richard Guenther  <rguenther@suse.de>
6607
6608         PR middle-end/35593
6609         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6610         to not produce negative array indices if not allowed.  Add
6611         parameter to indicate that.
6612         (maybe_fold_offset_to_component_ref): Allow negative array
6613         indices only for the first member of a structure.
6614         (maybe_fold_offset_to_reference): Allow negative array indices.
6615         (maybe_fold_stmt_addition): Likewise.
6616
6617 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6618             Anatoly Sokolov <aesok@post.ru>
6619
6620         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6621         (avr_arch): Add ARCH_AVR6.
6622         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6623         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6624         instead of fixed value 2.
6625         (print_operand_address): Use gs() asm specifier instead of pm().
6626         (avr_assemble_integer): (Ditto.).
6627         (avr_output_addr_vec_elt): (Ditto.).
6628         (print_operand): Handle "!" code.
6629         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6630         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6631         (AVR_HAVE_EIJMP_EICALL): Define.
6632         (AVR_3_BYTE_PC): Redefine.
6633         (AVR_2_BYTE_PC): (Ditto.).
6634         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6635         (LINK_SPEC): Add atmega2560 and atmega2561.
6636         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6637         (crtm2561.o).
6638         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6639         for 3 byte PC devices.
6640         (call_value_insn): (Ditto.).
6641         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6642         (indirect_jump): Use only for for 2 byte PC devices.
6643         (*tablejump): (Ditto.).
6644         (*indirect_jump_avr6): Add insn.
6645         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6646         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6647         instead of ijmp for 3 byte PC devices.
6648         (__tablejump2__): (Ditto.).
6649         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6650         (MULITLIB_DIRNAMES): (Ditto.). 
6651         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6652
6653 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6654
6655         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6656         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6657         ("mmx_psadbw"): Use V1DI mode for operand 0.
6658         * config/i386/i386-modes.def (V1SI): New vector mode.
6659         * config/i386/i386.c (struct builtin_description)
6660         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6661         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6662         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6663         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6664         v1di_ftype_v8qi_v8qi type.
6665         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6666
6667         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6668         __builtin_ia32_pmuludq]: Fix the mode of return value.
6669
6670 2008-03-15  Richard Guenther  <rguenther@suse.de>
6671
6672         PR middle-end/35595
6673         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6674         being a PHI_NODE.
6675
6676 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6677         
6678         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6679         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6680         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6681         unless TARGET_SERIALIZE_VOLATILE is enabled.
6682         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6683         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6684         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6685
6686 2008-03-14  Richard Guenther  <rguenther@suse.de>
6687
6688         PR tree-optimization/34172
6689         * tree-flow.h (refs_may_alias_p): Declare.
6690         (get_single_def_stmt): Likewise.
6691         (get_single_def_stmt_from_phi): Likewise.
6692         (get_single_def_stmt_with_phi): Likewise.
6693         * tree-dfa.c (refs_may_alias_p): New function.
6694         (get_single_def_stmt): Likewise.
6695         (get_single_def_stmt_from_phi): Likewise.
6696         (get_single_def_stmt_with_phi): Likewise.
6697         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6698         (vn_reference_lookup_1): New helper function.
6699         (vn_reference_lookup): Walk the virtual use-def chain to
6700         continue searching for a match if the def does not alias the
6701         reference we are looking for.
6702
6703 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6704
6705         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6706         archive and Perzl.  Update The Written Word listing.
6707
6708 2008-03-14  Richard Guenther  <rguenther@suse.de>
6709
6710         PR tree-optimization/34043
6711         PR tree-optimization/33989
6712         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6713         when doing FRE.
6714         (bitmap_find_leader): Use extra argument to verify dominance
6715         relationship inside a basic-block.
6716         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6717         (find_leader_in_sets): Adjust.
6718         (create_component_ref_by_pieces): Take extra argument for
6719         dominance check, handle lookup failures.
6720         (find_or_generate_expression): Likewise.
6721         (create_expression_by_pieces): Likewise.
6722         (insert_into_preds_of_block): Adjust.
6723         (create_value_expr_from): If asked for, verify all operands
6724         are in the blocks AVAIL_OUT set.
6725         (make_values_for_stmt): Check for SSA_NAMEs that are life
6726         over an abnormal edge.
6727         (compute_avail): Remove such check.
6728         (do_SCCVN_insertion): New function.
6729         (eliminate): If we do not find a leader suitable for replacement
6730         insert a replacement expression from SCCVN if available.
6731         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6732         (struct vn_ssa_aux): Add needs_insertion flag.
6733         * tree-ssa-sccvn.c (may_insert): New global flag.
6734         (copy_reference_ops_from_ref): Value-number union member access
6735         based on its size, not type and member if insertion is allowed.
6736         (visit_reference_op_load): For a weak match from union type
6737         punning lookup a view-converted value and insert a SSA_NAME
6738         for that value if that is not found.
6739         (visit_use): Make dumps shorter.  Do not disallow value numbering
6740         SSA_NAMEs that are life over an abnormal edge to constants.
6741         (free_scc_vn): Release inserted SSA_NAMEs.
6742         (run_scc_vn): New flag to specify whether insertion is allowed.
6743         Process SSA_NAMEs in forward order.
6744         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6745         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6746         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6747         pointer type to/from integral types that do not change the
6748         precision to regular conversions.
6749
6750 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6751
6752         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6753         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6754         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6755         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6756         input arguments and the mode of return value.  Built-in functions
6757         that operate on whole 64-bit MMX register now use V1DI mode.
6758
6759 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6760             Olga Golovanevsky  <olga@il.ibm.com>
6761
6762         PR tree-optimization/35041
6763         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6764         to locate the right position in a statement.
6765
6766 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6767
6768         PR target/34000
6769         PR target/35553
6770         * config/i386/xmmintrin.h:  Change all static inline functions to
6771         extern inline and add __gnu_inline__ attribute.
6772         * config/i386/bmintrin.h: Ditto.
6773         * config/i386/smmintrin.h: Ditto.
6774         * config/i386/tmmintrin.h: Ditto.
6775         * config/i386/mmintrin-common.h: Ditto.
6776         * config/i386/ammintrin.h: Ditto.
6777         * config/i386/emmintrin.h: Ditto.
6778         * config/i386/pmmintrin.h: Ditto.
6779         * config/i386/mmintrin.h: Ditto.
6780         * config/i386/mm3dnow.h: Ditto.
6781
6782 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6783
6784         PR middle-end/35185
6785         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6786         (lower_omp_2): New function.
6787         (lower_omp_1, lower_omp): Rewritten.
6788
6789 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6790
6791         PR 35054
6792         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6793         with the phrase "Microsoft Windows compilers".
6794         (Push/Pop Macro Pragmas): New subsection. Document
6795         #pragma push_macro and pragma pop_macro.
6796
6797 2008-03-12  Paul Brook  <paul@codesourcery.com>
6798
6799         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6800
6801 2008-03-12  Paul Brook  <paul@codesourcery.com>
6802
6803         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6804         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6805         (thumb2_addsi_shortim): Rename ...
6806         (thumb2_addsi_short): ... to this.  Allow register operands.
6807         (thumb2_subsi_short): New pattern.
6808         (thumb2_one_cmplsi2_short,
6809         thumb2_negsi2_short): New patterns and peepholes.
6810
6811 2008-03-12  Paul Brook  <paul@codesourcery.com>
6812
6813         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6814
6815 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6816
6817         * config/i386/i386.md (int_cond): New code iterator.
6818         (fp_cond): Ditto.
6819         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6820         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6821         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6822         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6823         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6824         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6825         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6826         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6827
6828 2008-03-12  Paul Brook  <paul@codesourcery.com>
6829
6830         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6831         instead of {arm,thumb}_compute_save_reg_mask.
6832         (output_return_instruction): Ditto.
6833         (thumb_unexpanded_epilogue): Ditto.
6834         (thumb1_expand_prologue): Ditto.
6835         (thumb1_output_function_prologue): Ditto.
6836         (arm_set_return_address): Ditto.
6837         (thumb_set_return_address): Ditto.
6838         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6839         regs to achieve stack alignment.
6840         (thumb1_compute_save_reg_mask): Fix compiler warning.
6841         (arm_output_epilogue): Use offsets->saved_regs_mask.
6842         Adjust stack pointer by poping call clobered registers.
6843         (arm_expand_prologue): Use offsets->saved_regs_mask.
6844         Adjust stack pointer by pushing extra registers.
6845         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6846
6847 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6848
6849         PR tree-opt/35422
6850         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6851         conversion to the operands of a multiplication.
6852
6853 2008-03-12  Richard Guenther  <rguenther@suse.de>
6854
6855         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6856         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6857         * timevar.def (TV_TREE_PHIPROP): Add.
6858         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6859         pass description.  Use TV_TREE_PHIPROP.
6860         * tree-ssa-forwprop.c: Remove phiprop code.
6861
6862 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6863
6864         PR middle-end/35549
6865         * omp-low.c (maybe_lookup_decl): Constify first argument.
6866         (use_pointer_for_field): Change last argument from bool to
6867         omp_context *.  Disallow shared copy-in/out in nested
6868         parallel if decl is shared in outer parallel too.
6869         (build_outer_var_ref, scan_sharing_clauses,
6870         lower_rec_input_clauses, lower_copyprivate_clauses,
6871         lower_send_clauses, lower_send_shared_vars): Adjust callers.
6872
6873 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
6874             Ira Rosen  <irar@il.ibm.com>
6875
6876         * tree-vectorizer.c (free_stmt_vec_info): New function.
6877         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
6878         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
6879         * tree-vectorizer.h (free_stmt_vec_info): Declare.
6880         * tree-vect-transform.c (vectorizable_conversion): Free
6881         vec_oprnds0 if it was allocated.
6882         (vect_permute_store_chain): Remove unused VECs.
6883         (vectorizable_store): Free VECs that are allocated in the..
6884         function.
6885         (vect_transform_strided_load, vectorizable_load): Likewise.
6886         (vect_remove_stores): Simplify the code.
6887         (vect_transform_loop): Move code to vect_remove_stores().
6888         Call vect_remove_stores() and free_stmt_vec_info().
6889
6890 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6891
6892         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
6893         TARGET_HPUX.  Revise comment.
6894         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
6895         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
6896         Use sr4 variant of `be' instruction when not generating PIC code.
6897         (attr_length_call): Adjust for above change.
6898
6899 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6900
6901         * ipa-reference.c (static_execute): Remove module_statics_const and
6902         associated setting code.
6903
6904 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6905
6906         PR target/35540
6907         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
6908         predicate for operand 1.
6909         (paritysi2_cmp): Use register_operand predicate for operand 2.
6910         Use earlyclobber modifier for operand 1.  Remove support for
6911         memory operands.
6912         (paritydi2_cmp): Use register_operand predicate for operand 3.
6913         Use earlyclobber modifier for operand 1.  Remove support for
6914         memory operands.
6915
6916 2008-03-11  Paul Brook  <paul@codesourcery.com>
6917             Vladimir Prus  <vladimir@codesourcery.com>
6918
6919         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
6920         (arm_compute_save_reg0_reg12_mask): Always
6921         check if register 11 must be saved.  Always safe hard frame pointer
6922         when frame_pointer_needeed.
6923         (arm_compute_save_reg_mask): Save IP and PC
6924         only with apcs frames.
6925         (arm_output_epilogue): Adjust Thumb2 codepath to
6926         be also invoked and work for ARM non-apcs frames.
6927         (arm_expand_prologue): Don't bother saving IP
6928         for non-apcs frame, since it's not clobbered by
6929         prologue code.  Implement non-apcs frame
6930         layout.
6931
6932 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
6933
6934         PR rtl-optimization/35281
6935         * expr.c (convert_move): Use a new pseudo for the intermediate
6936         from_mode->word_mode result.
6937
6938 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
6939
6940         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
6941         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
6942         * toplev.c (compile_file): Don't call it.
6943
6944 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6945
6946         PR middle-end/35526
6947         * expr.c (store_expr): Call emit_block_move if the mode
6948         of "temp" RTX is BLKmode.
6949
6950 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6951             Richard Guenther  <rguenther@suse.de>
6952
6953         PR tree-optimization/31358
6954         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
6955         the step with a NULL_TREE.
6956         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
6957         to sizetype if type is a pointer type.
6958         (add_candidate_1): Don't convert the base and step to
6959         the generic type if the orginal type is a pointer type.
6960         (add_iv_value_candidates): Use sizetype for the step
6961         if type is a pointer type.
6962         (cand_value_at): Likewise.
6963         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
6964         for pointer types.
6965         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
6966         Don't convert the tem affine to the type.
6967         (add_elt_to_tree): Use sizetype for the step if a pointer.
6968         Use POINTER_PLUS_EXPR for pointers.
6969         (aff_combination_to_tree): Use sizetype for the step if a
6970         pointer.
6971
6972 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
6973
6974         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
6975         Remove commutativity hint.
6976
6977 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
6978
6979         PR c/35438
6980         PR c/35439
6981         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
6982         errorneous type.  Check that v is a VAR_DECL.
6983
6984         PR middle-end/35099
6985         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
6986
6987 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
6988
6989         PR tree-optimization/35494
6990         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
6991         may be overriden at link and run time.
6992
6993 2008-03-10  Richard Guenther  <rguenther@suse.de>
6994
6995         PR tree-optimization/34677
6996         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
6997         (poolify_tree): Likewise.
6998         (modify_expr_template): Likewise.
6999         (poolify_modify_stmt): Likewise.
7000         (insert_fake_stores): Handle all component-ref style stores
7001         in addition to INDIRECT_REF.  Also handle complex types.
7002         Do not poolify the inserted load.
7003         (realify_fake_stores): Do not rebuild the tree but only
7004         make it a SSA_NAME copy.
7005         (init_pre): Remove initialzation of modify_expr_template.
7006         Do not allocate modify_expr_node_pool.
7007         (fini_pre): Do not free modify_expr_node_pool.
7008
7009 2008-03-10  Paul Brook  <paul@codesourcery.com>
7010
7011         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
7012         to avoid conflicts.
7013
7014 2008-03-10  Paul Brook  <paul@codesourcery.com>
7015             Mark Shinwell  <shinwell@codesourcery.com>
7016
7017         * config/arm/cortex-r4.md: New.
7018         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
7019         insn attributes.
7020         * config/arm/arm.md: Include cortex-r4.md.
7021         (insn): Add smmls, sdiv and udiv values.
7022         (generic_sched): Don't use generic scheduling for Cortex-R4.
7023         (arm_issue_rate): New function.
7024         (TARGET_SCHED_ISSUE_RATE): Define.
7025
7026 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
7027
7028         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
7029
7030 2008-03-10  Richard Guenther  <rguenther@suse.de>
7031
7032         * tree-ssa-pre.c (get_sccvn_value): Simplify.
7033         (compute_avail): Do not add stmt uses to AVAIL_OUT.
7034
7035 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
7036
7037         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
7038         Set default to true.
7039
7040 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7041
7042         * c.opt (Wsynth): Deprecate.
7043         * doc/invoke.texi (Option Summary, Warning Options): Document
7044         -Wno-format-contains-nul.
7045
7046 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
7047
7048         PR target/35496
7049         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7050         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7051
7052 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7053
7054         * config/rs6000/rs6000.c (builtin_description): Rename vector
7055         left shift operations.
7056         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7057         (altivec_vsl<VI_char>): Rename to ...
7058         (ashl<mode>3): ... new name.
7059         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7060         gen_ashlv4si3.
7061         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7062
7063 2008-03-08  Richard Guenther  <rguenther@suse.de>
7064
7065         * coverage.h (tree_coverage_counter_addr): Declare.
7066         * coverage.c (tree_coverage_counter_addr): New function.
7067         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7068         before using again.
7069         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7070         (tree_gen_one_value_profiler): Likewise.
7071         (tree_gen_ic_profiler): Likewise.
7072         (tree_gen_average_profiler): Likewise.
7073         (tree_gen_ior_profiler): Likewise.
7074
7075 2008-03-08  Richard Guenther  <rguenther@suse.de>
7076
7077         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7078         (vn_binary_op_insert): Likewise.
7079         (vn_unary_op_lookup): Likewise.
7080         (vn_unary_op_insert): Likewise.
7081         (vn_nary_op_lookup): Declare.
7082         (vn_nary_op_insert): Likewise.
7083         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7084         and binary hashes, use a single obstack for unary_op_pool
7085         and binary_op_pool.
7086         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7087         a single struct vn_nary_op_s.  Store tree code length and
7088         a variable number of operands.
7089         (struct vn_reference_op_struct): Remove unused op2.
7090         (vn_reference_op_eq): Do not compare op2.
7091         (vn_reference_op_compute_hash): Do not compute hash of op2.
7092         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7093         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7094         with vn_nary_op_compute_hash.
7095         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7096         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7097         vn_nary_op_lookup.
7098         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7099         vn_nary_op_insert.
7100         (visit_unary_op): Call nary functions.
7101         (visit_binary_op): Likewise.
7102         (process_scc): Adjust for struct vn_tables_s changes.
7103         (allocate_vn_table): Likewise.
7104         (free_vn_table): Likewise.
7105         * tree-vn.c (vn_add): Call nary functions.
7106         (vn_lookup): Likewise.
7107
7108 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7109
7110         PR target/35498
7111         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7112         wdst back after sync_compare_and_swapqhi_internal.
7113
7114 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7115
7116         PR target/22152
7117         * config/i386/i386-modes.def (V1DI): New vector mode.
7118         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7119         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7120         (MMXMODE248): Ditto.
7121         (MMXMODE): Add V1DI mode.
7122         (mmxvecsize): Change DI mode to V1DI mode.
7123         ("mov<mode>): Use MMXMODEI8 mode iterator.
7124         ("*mov<mode>_internal_rex64"): Ditto.
7125         ("*mov<mode>_internal"): Ditto.
7126         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7127         ("mmx_sub<mode>3"): Ditto.
7128         ("mmx_adddi3"): Remove insn pattern.
7129         ("mmx_subdi3"): Ditto.
7130         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7131         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7132         ("mmx_ashl<mode>3"): Ditto.
7133         ("mmx_lshrdi3"): Remove insn pattern.
7134         ("mmx_ashldi3"): Ditto.
7135         * config/i386/i386.c (classify_argument): Handle V1DImode.
7136         (function_arg_advance_32): Ditto.
7137         (function_arg_32): Ditto.
7138         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7139         mmx_addv1di3 insn pattern.
7140         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7141         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7142         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7143         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7144         Remove definitions of built-in functions.
7145         (V1DI_type_node): New node.
7146         (v1di_ftype_v1di_int): Ditto.
7147         (v1di_ftype_v1di_v1di): Ditto.
7148         (v2si_ftype_v2si_si): Ditto.
7149         (v4hi_ftype_v4hi_di): Remove node.
7150         (v2si_ftype_v2si_di): Ditto.
7151         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7152         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7153         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7154         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7155         Add new builtins using def_builtin_const.
7156         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7157         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7158         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7159         * config/i386/mmintrin.h (__v1di): New typedef.
7160         (_mm_add_si64): Cast arguments to __v1di type.
7161         (_mm_sub_si64): Ditto.
7162         (_mm_sll_pi16): Cast __count to __v4hi type.
7163         (_mm_sll_pi32): Cast __count to __v2si type.
7164         (_mm_sll_si64): Cast arguments to __v1di type.
7165         (_mm_srl_pi16): Cast __count to __v4hi type.
7166         (_mm_srl_pi32): Cast __count to __v2si type.
7167         (_mm_srl_si64): Cast arguments to __v1di type.
7168         (_mm_sra_pi16): Cast __count to __v4hi type.
7169         (_mm_sra_pi32): Cast __count to __v2si type.
7170         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7171         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7172         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7173         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7174         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7175         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7176         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7177         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7178         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7179         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7180         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7181         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7182
7183 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7184
7185         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7186
7187 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7188
7189         PR target/35373
7190         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7191         reg+const addressing for Altivec modes.  Don't generate reg+reg
7192         addressing for TFmode or TDmode quantities.
7193
7194 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7195
7196         * c-common.c (vector_types_convertible_p): Call langhook
7197         instead of comptypes.
7198
7199 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7200
7201         PR tree-opt/35402
7202         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7203         integral and scalar float variables which have a
7204         NULL DECL_INITIAL.
7205
7206 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7207
7208         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7209         dwarf_register_span hook when emitting unwind information for
7210         register-to-memory saves.
7211         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7212         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7213
7214 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7215
7216         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7217         for the same VAR_DECL.
7218
7219 2008-03-06  Tom Tromey  <tromey@redhat.com>
7220
7221         * treelang: Delete.
7222         * doc/standards.texi (Standards): Don't mention treelang.
7223         * doc/invoke.texi (Overall Options): Don't mention treelang.
7224         * doc/install.texi (Prerequisites): Don't mention bison or
7225         treelang.
7226         (Configuration): Don't mention treelang.
7227         (Building): Likewise.
7228         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7229
7230 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7231
7232         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7233         word-extractions out of a multi-word object.
7234
7235 2008-03-06  Richard Guenther  <rguenther@suse.de>
7236
7237         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7238         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7239         result type and precision.
7240         * expr.c (get_inner_reference): Set unsignedp based on the result
7241         type of BIT_FIELD_REF.
7242         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7243         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7244         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7245         for BIT_FIELD_REF.
7246         (sra_build_assignment): Likewise.
7247         (sra_build_elt_assignment): Likewise.
7248         (sra_explode_bitfield_assignment): Likewise.
7249         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7250         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7251         set BIT_FIELD_REF_UNSIGNED.
7252         (vectorizable_load): Likewise.
7253
7254 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7255
7256         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7257         at bb start.
7258
7259 2008-03-06  Richard Guenther  <rguenther@suse.de>
7260
7261         * alias.c (struct alias_set_entry): Move has_zero_child field
7262         to pack with alias_set.
7263
7264 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7265
7266         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7267         32bit host.
7268
7269 2008-03-05  Ian Lance Taylor  <iant@google.com>
7270
7271         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7272
7273 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7274
7275         * fwprop.c (update_df): Support width and offset parameters of
7276         df_ref_create.
7277         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7278         global_conflicts): Change DF_REF_EXTRACT to either
7279         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7280         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7281         * df-scan.c (df_ref_record, df_defs_record,
7282         df_ref_create_structure, df_def_record_1, df_uses_record,
7283         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7284         df_bb_refs_collect, df_entry_block_defs_collect,
7285         df_exit_block_uses_collect): Support new width and offset fields.
7286         (ref_extract_pool): New storage pool.
7287         (df_free_ref): New function.
7288         (df_reg_chain_unlink, df_free_collection_rec,
7289         df_sort_and_compress_refs): Call df_free_ref.
7290         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7291         of df_ref_extract.
7292         (df_ref_create_structure): Allocate df_ref_extract if offset and
7293         width fields are used.
7294         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7295         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7296         and SIGN_EXTRACT.
7297         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7298         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7299         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7300         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7301         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7302         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7303         (df_ref_extract): New structure.
7304         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7305         (df_ref_create): Add width and offset parameters.
7306         
7307 2008-03-05  Richard Guenther  <rguenther@suse.de>
7308
7309         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7310         Use ranges_overlap_p.
7311         (offset_overlaps_with_access): Rename
7312         to ranges_overlap_p and move ...
7313         * tree-flow-inline.h (ranges_overlap_p): ... here.
7314
7315         * tree.h (get_inner_reference, handled_component_p): Update
7316         comments.
7317
7318         * tree.h (record_component_aliases, get_alias_set,
7319         alias_sets_conflict_p, alias_sets_must_conflict_p,
7320         objects_must_conflict_p): Move declarations ...
7321         * alias.h (record_component_aliases, get_alias_set,
7322         alias_sets_conflict_p, alias_sets_must_conflict_p,
7323         objects_must_conflict_p): ... here.
7324         Include coretypes.h.
7325         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7326
7327 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7328
7329         * cfg.c: Include tree-flow.h.
7330         (remove_edge_raw): Call redirect_edge_var_map_clear.
7331         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7332         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7333         (redirect_edge_var_map_result): New.
7334         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7335         PENDING_STMT use with redirect_edge_var_map_*.
7336         * tree-ssa.c (edge_var_maps): New definition.
7337         (redirect_edge_var_map_add): New.
7338         (redirect_edge_var_map_clear): New.
7339         (redirect_edge_var_map_dup): New.
7340         (redirect_edge_var_map_vector): New.
7341         (redirect_edge_var_map_destroy): New.
7342         (ssa_redirect_edge): Replace PENDING_STMT use with
7343         redirect_edge_var_map_*.
7344         (flush_pending_stmts): Same.
7345         (delete_tree_ssa): Destroy edge var map.
7346         * tree-flow.h (struct _edge_var_map): New.
7347         Define edge_var_map vector type.
7348         Declare redirect_edge_var_map_* prototypes.
7349         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7350         * tree-cfg.c (reinstall_phi_args): Replace
7351         PENDING_STMT use with redirect_edge_var_map_*.
7352
7353 2008-03-05  Richard Guenther  <rguenther@suse.de>
7354
7355         PR tree-optimization/35472
7356         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7357         whose single use_stmt has a overlapping set of loaded and
7358         stored symbols as that use_stmt might be a noop assignment then.
7359
7360 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7361
7362         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7363
7364 2008-03-05  Richard Guenther  <rguenther@suse.de>
7365
7366         PR c++/35336
7367         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7368         should be constants.
7369         * tree-cfg.c (verify_expr): Verify it.
7370         * fold-const.c (fold_truthop): Remove code generating
7371         BIT_FIELD_REFs of structure bases.
7372         (fold_binary): Likewise.
7373         (fold_ternary): Position and size of BIT_FIELD_REFs are
7374         always host integers.
7375         (make_bit_field_ref): Remove.
7376         (optimize_bit_field_compare): Remove.
7377         (all_ones_mask_p): Remove.
7378
7379 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7380
7381         PR gcc/33009
7382         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7383         (split_block_and_df_analyze): New. Split basic block and rebuild
7384         dataflow.
7385         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7386         SPLIT_BLOCK.
7387         (split_pattern_seq): Likewise.
7388         (erase_matching_seqs): Likewise.
7389         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7390
7391 2008-03-04  Geoff Keating  <geoffk@apple.com>
7392
7393         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7394         declaration and code.
7395         (tree_invalid_nonnegative_warnv_p): Likewise.
7396
7397 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7398
7399         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7400         examples.  Truncate option-names then causing overfull hbox.
7401
7402 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7403
7404         PR target/35222
7405         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7406         on hpux10.
7407         * configure: Rebuilt.
7408
7409 2008-03-04  Rafael Espindola  <espindola@google.com>
7410
7411         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7412         (tree_unary_nonnegative_warnv_p): New.
7413         (tree_binary_nonnegative_warnv_p): New.
7414         (tree_single_nonnegative_warnv_p): New.
7415         (tree_invalid_nonnegative_warnv_p): New.
7416         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7417
7418 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7419
7420         PR 28322
7421         * opts.c (handle_option): Postpone 'unknown option' errors only for
7422         warning options.
7423
7424 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7425
7426         PR target/35453
7427         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7428         (_SIDD_XXX): This.
7429
7430 2008-03-04  Rafael Espindola  <espindola@google.com>
7431
7432         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7433         (tree_binary_nonzero_warnv_p): New.
7434         (tree_single_nonzero_warnv_p): New.
7435         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7436
7437 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7438
7439         PR middle-end/35456
7440         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7441         transformations for modes that have signed zeros.
7442         * ifcvt.c (noce_try_abs): Ditto.
7443
7444 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7445
7446         * config/i386/i386.c (override_options): Force
7447         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7448
7449 2008-03-04  Jan Hubicka  <jh@suse.cz>
7450
7451         PR c++/35262
7452         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7453         in last commit.
7454
7455 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7456
7457         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7458         label to probe the stack.
7459
7460 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7461
7462         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7463         (__gthr_win32_mutex_destroy): Declare.
7464         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7465         __gthr_win32_mutex_destroy.
7466         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7467
7468 2008-03-03  Jan Hubicka  <jh@suse.cz>
7469
7470         PR c++/35262
7471         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7472         aggressive on inlining cold calls.
7473
7474 2008-03-03  Richard Guenther  <rguenther@suse.de>
7475
7476         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7477         struct copies into the expression table.
7478         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7479         (try_to_simplify): Likewise.
7480         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7481         integral and pointer arguments which do not change the
7482         precision to NOP_EXPRs.
7483         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7484         VIEW_CONVERT_EXPR case.
7485
7486 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7487
7488         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7489         defined in a loop at depth 0 is invariant.
7490         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7491         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7492         be called at loop depth 0.
7493
7494 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7495
7496         PR driver/35420
7497         * gcc.c (process_command): Update copyright notice dates.
7498         * gcov.c (print_version): Likewise.
7499         * gcov-dump.c (print_version): Likewise.
7500         * mips-tfile.c (main): Likewise.
7501         * mips-tdump.c (main): Likewise.
7502
7503 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7504
7505         PR 24924
7506         * c-common.c (flag_permissive): Delete.
7507         (constant_expression_warnings): Check flags first.
7508         (constant_expression_error): New.
7509         * c-common.h (flag_permissive): Delete.
7510         (constant_expression_error): Declare.
7511         * flags.h (flag_permissive): Declare. Update description.
7512         * diagnostic.c (pedwarn): Update.
7513         (permerror): New.
7514         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7515         (permissive_error_kind): New.
7516         * toplev.c (flag_permissive): Define. Update description.
7517         * toplev.h (permissive_error_kind): Declare.
7518         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7519         (pedwarn_c90): Use pedantic_warning_kind.
7520         * c-opts.c (c_common_post_options): flag_permissive does not affect
7521         flag_pedantic_errors.
7522
7523 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7524
7525         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7526         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7527         __absvsi2, __absvDI2): Use unsigned arithmetic.
7528
7529 2008-03-02  Andi Kleen  <ak@suse.de>
7530             Richard Guenther  <rguenther@suse.de>
7531
7532         * struct-equiv.c: Remove file.
7533         * cfg_cleanup.c (condjump_equiv_p): Remove.
7534         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7535         (struct-equiv.o): Remove rule.
7536         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7537         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7538         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7539
7540 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7541
7542         * ifcvt.c (noce_process_if_block): Try to handle only the then
7543         block if the else block exists but isn't suitable.
7544
7545 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7546
7547         PR gcc/35063
7548         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7549         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7550         regression from previous patch.
7551
7552 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7553
7554         PR gcc/35063
7555         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7556         implemented.
7557         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7558         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7559         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7560         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7561         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7562         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7563         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7564         (__gthread_mutex_destroy_function): Rename to
7565         __gthread_mutex_destroy.
7566         * gthr-dce.h (__gthread_mutex_destroy): Call
7567         pthread_mutex_destroy.
7568         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7569         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7570         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7571
7572 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7573
7574         * df-scan.c (df_ref_chain_change_bb): Simplify.
7575         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7576         set_block_for_insn if there's any change.
7577         * df.h ((df_insn_change_bb): Fix prototype.
7578         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7579         df_insn_change_bb, don't call set_block_for_insn.
7580         * emit-rtl.c (reorder_insns): Likewise.
7581         * haifa-sched.c (move_insn): Likewise.
7582
7583 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7584
7585         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7586
7587 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7588
7589         * tree-flow-inline.h (next_readonly_imm_use): Return
7590         NULL_USE_OPERAND_P after the end.
7591
7592 2008-03-01  Richard Guenther  <rguenther@suse.de>
7593
7594         PR tree-optimization/35411
7595         * tree-sra.c (sra_build_assignment): Split conversion to
7596         final type to a separate statement if we are not assigning
7597         to a register.
7598
7599 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7600
7601         * fold-const.c (fold_convertible_p): Correct the logic to follow
7602         that in fold_convert().
7603
7604 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7605
7606         PR c++/35315
7607         * tree-inline.c (build_duplicate_type): When we make a
7608         duplicate type, make it unique in the canonical types system.
7609
7610 2008-02-29  Tom Tromey  <tromey@redhat.com>
7611
7612         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7613         input_file_stack_history, input_file_stack_restored): Remove.
7614         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7615         * input.h (struct file_stack): Remove.
7616         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7617         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7618         Likewise.
7619         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7620         type.
7621         (diagnostic_last_module_changed): Add 'map' argument.
7622         (diagnostic_set_last_function): Likewise.
7623         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7624         line map, not input_file_stack.
7625         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7626
7627 2008-02-29  Paul Brook  <paul@codesourcery.com>
7628
7629         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7630
7631 2008-02-29  Paul Brook  <paul@codesourcery.com>
7632
7633         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7634
7635 2008-02-29  Richard Guenther  <rguenther@suse.de>
7636
7637         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7638         vn_lookup_or_add.
7639         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7640         value for comparing for a store match.
7641         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7642         (try_to_simplify): Do not do a full-blown reference lookup.
7643
7644 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7645
7646         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7647         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7648
7649         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7650
7651 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7652
7653         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7654         strides against cache sizes.
7655
7656 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7657
7658         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7659         constant to fpul.
7660
7661 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7662
7663         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7664         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7665         is smaller than the original promoted value.
7666         (simplify_subreg): If OP is a SUBREG, try to preserve its
7667         SUBREG_PROMOTED_VAR_P information.
7668
7669 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7670
7671         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7672         (VN_INFO_GET): Allocate new objects on the obstack.
7673         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7674         for rpo_numbers_temp, for consistency.
7675         (free_scc_vn): Free the obstack.
7676
7677 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7678
7679         * doc/invoke.texi: Document -ftree-loop-distribution.
7680         * tree-loop-distribution.c: New.
7681         * tree-pass.h (pass_loop_distribution): New.
7682         * graphds.h (struct graph): Add htab_t indices.
7683         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7684         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7685         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7686         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7687         * tree-data-ref.c (debug_data_dependence_relations): New.
7688         (dump_data_dependence_relation): Also print data references.
7689         (free_data_ref): Extern.
7690         (same_access_functions): Moved...
7691         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7692         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7693         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7694         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7695         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7696         (stmts_from_loop): Skip LABEL_EXPR.
7697         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7698         New.
7699         (build_rdg): Initialize rdg->indices htab.
7700         (free_rdg, stores_from_loop, ref_base_address,
7701         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7702         have_similar_memory_accesses_1, ref_base_address_1,
7703         remove_similar_memory_refs): New.
7704         * tree-data-ref.h: Depend on tree-chrec.h.
7705         (debug_data_dependence_relations, free_data_ref): Declared.
7706         (same_access_functions): ... here.
7707         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7708         New.
7709         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7710         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7711         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7712         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7713         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7714         rdg_vertex_for_stmt): Declared.
7715         (struct rdg_edge): Add level.
7716         (RDGE_LEVEL): New.
7717         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7718         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7719         Declared.
7720         (rdg_has_similar_memory_accesses): New.
7721         * tree-vect-analyze.c: Remove unused static decls.
7722         * lambda.h (dependence_level): New.
7723         * common.opt (ftree-loop-distribution): New.
7724         * tree-flow.h (mark_virtual_ops_in_bb, 
7725         slpeel_tree_duplicate_loop_to_edge_cfg,
7726         rename_variables_in_loop): Declared.
7727         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7728         (OBJS-common): Add tree-loop-distribution.o.
7729         (tree-loop-distribution.o): New rule.
7730         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7731         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7732         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7733
7734 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7735
7736         PR target/33963
7737         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7738         other than structures and unions.
7739
7740 2008-02-28  Richard Guenther  <rguenther@suse.de>
7741
7742         Revert:
7743         2008-02-26  Richard Guenther  <rguenther@suse.de>
7744
7745         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7746         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7747         (lookup_decl_from_uid): Declare.
7748         (remove_decl_from_map): Likewise.
7749         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7750         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7751         (decl_for_uid_map): New global hashtable mapping DECL_UID
7752         to the decl tree.
7753         (init_ttree): Allocate it.
7754         (insert_decl_to_uid_decl_map): New helper function.
7755         (make_node_stat): Insert new decls into the map.
7756         (copy_node_stat): Likewise.
7757         (lookup_decl_from_uid): New function.
7758         (remove_decl_from_map): Likewise.
7759         (print_decl_for_uid_map_statistics): New helper.
7760         (dump_tree_statistics): Call it.
7761
7762         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7763         (referenced_var_iterator): Adjust.
7764         (FOR_EACH_REFERENCED_VAR): Adjust.
7765         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7766         (num_referenced_vars): Adjust.
7767         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7768         (first_referenced_var): Remove.
7769         (end_referenced_vars_p): Likewise.
7770         (next_referenced_var): Likewise.
7771         (referenced_var_iterator_set): New helper function.
7772         * tree-dfa.c (referenced_var_lookup): Adjust.
7773         (referenced_var_check_and_insert): Likewise.
7774         (remove_referenced_var): Likewise.
7775         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7776         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7777         (verify_call_clobbering): Likewise.
7778         (verify_memory_partitions): Likewise.
7779         (init_tree_ssa): Allocate bitmap instead of hashtable for
7780         referenced_vars.
7781         (delete_tree_ssa): Adjust.
7782         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7783         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7784         (compute_tag_properties): Likewise.
7785         (set_initial_properties): Likewise.
7786         (find_partition_for): Likewise.
7787         (update_reference_counts): Likewise.
7788         (dump_may_aliases_for): Likewise.
7789         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7790         (add_call_clobber_ops): Likewise.
7791         (add_call_read_ops): Likewise.
7792         (get_asm_expr_operands): Likewise.
7793         * tree-into-ssa.c (dump_decl_set): Likewise.
7794         (update_ssa): Likewise.
7795         * tree-sra.c (scan_function): Likewise.
7796         (decide_instantiations): Likewise.
7797         (scalarize_parms): Likewise.
7798         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7799         (dsa_named_for): Likewise.
7800         * tree-ssa-structalias.c (update_alias_info): Likewise.
7801         (merge_smts_into): Likewise.
7802
7803 2008-02-27  David Daney  <ddaney@avtrex.com>
7804
7805         PR target/34409
7806         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7807         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7808         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7809         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7810         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7811
7812 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7813
7814         PR target/25477
7815         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7816         (BUILT_IN_NEXTTOWARD): Remove.
7817         (BUILT_IN_NEXTTOWARDF): Ditto.
7818         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7819         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7820
7821 2008-02-27  Tom Tromey  <tromey@redhat.com>
7822
7823         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7824         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7825
7826 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7827
7828         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7829         update the respective field on newdecl.
7830
7831 2008-02-27  Revital Eres  <eres@il.ibm.com>
7832
7833         PR rtl-optimization/34999
7834         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7835         crossing edges that ends with a call insn.
7836         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7837         call insn and clear the EDGE_CROSSING flag of the crossing edge
7838         when fixing fallthru edges.
7839
7840 2008-02-27  Richard Guenther  <rguenther@suse.de>
7841
7842         PR middle-end/35390
7843         * fold-const.c (fold_unary): Return the correct argument,
7844         converted to the result type.
7845
7846 2008-02-27  Richard Guenther  <rguenther@suse.de>
7847
7848         PR middle-end/34971
7849         * expr.c (expand_expr_real_1): Assert on rotates that operate
7850         on partial modes.
7851         * fold-const.c (fold_binary): Use the types precision, not the
7852         bitsize of the mode if folding rotate expressions.  Build rotates
7853         only for full modes.
7854
7855 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7856
7857         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7858         and CPP_PRAGMA_EOL.
7859         * c-pragma.c (pragma_ns_name): New typedef.
7860         (registered_pp_pragmas): New variable.
7861         (c_pp_lookup_pragma): New function.
7862         (c_register_pragma_1): If flag_preprocess_only, do nothing
7863         for non-expanded pragmas, for expanded ones push pragma's
7864         namespace and name into registered_pp_pragmas vector.
7865         (c_invoke_pragma_handler): Register OpenMP pragmas even when
7866         flag_preprocess_only, don't register GCC pch_preprocess
7867         pragma if flag_preprocess_only.
7868         * c-opts.c (c_common_init): Call init_pragma even if
7869         flag_preprocess_only.
7870         * c-pragma.c (c_pp_lookup_pragma): New prototype.
7871         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
7872         cpp_register_pragma if flag_preprocess_only.
7873
7874 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7875
7876         PR c/28800
7877         * c-parser.c (c_parser_translation_unit): Warn for empty
7878         translation unit, not empty source file.
7879
7880 2008-02-26  Paul Brook  <paul@codesourcery.com>
7881
7882         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
7883         operand for Thumb-2.
7884         * config/arm/arm.h (reg_class): Add CORE_REGS.
7885         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
7886         (BASE_REG_CLASS): Use CORE_REGS.
7887         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
7888         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
7889         (REGNO_OK_FOR_INDEX_P): Exclude SP.
7890         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
7891         ARM_REGNO_OK_FOR_INDEX_P.
7892         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
7893         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
7894         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
7895         (ldm/stm peepholes): Ditto.
7896         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
7897         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
7898         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
7899         * config/arm/constraints.md: Enable "k" constraint on ARM.
7900
7901 2008-02-27  Ben Elliston  <bje@au.ibm.com>
7902
7903         * config/rs6000/rs6000.c: Annotate cache line size field in all
7904         instances of struct processor_costs.
7905
7906 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
7907
7908         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
7909         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
7910         jump_bypass): New counters.
7911         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
7912         * dce.c (gate_ud_dce): Same.
7913         (gate_fast_dce): Same.
7914         * dse.c (gate_dse1): New function.
7915         (gate_dse2): New function.
7916         (gate_dse): Merge results of new gate functions.
7917         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
7918         (gate_handle_jump_bypass): Add dbg_cnt.
7919         (gate_handle_gcse): Add dbg_cnt.
7920         * ifcvt.c (gate_handle_if_conversion): Same.
7921         (gate_handle_if_after_combine): Same.
7922         (gate_handle_if_after_reload): Same.
7923         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
7924
7925 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
7926
7927         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
7928         line sizes.
7929         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
7930
7931 2008-02-26  Jason Merrill  <jason@redhat.com>
7932
7933         PR c++/35315
7934         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
7935         alone if it's the naming decl for the type's main variant.
7936
7937 2008-02-26  Tom Tromey  <tromey@redhat.com>
7938
7939         * system.h (USE_MAPPED_LOCATION): Poison.
7940         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
7941         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
7942         (make_goto_expr_edges): Likewise.
7943         (remove_bb): Likewise.
7944         (execute_warn_function_return): Likewise.
7945         * basic-block.h (struct edge_def) <goto_locus>: Change type to
7946         location_t.
7947         * c-common.c (fname_decl): Remove old location code.
7948         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
7949         location code.
7950         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
7951         variant.
7952         (ASM_INPUT_SOURCE_LOCATION): Likewise.
7953         (gen_rtx_ASM_INPUT): Likewise.
7954         (gen_rtx_ASM_INPUT_loc): Likewise.
7955         (get_rtx_asm_OPERANDS): Remove.
7956         * cfglayout.c (insn_locators_alloc): Remove old location code.
7957         (set_curr_insn_source_location): Likewise.
7958         (curr_insn_locator): Likewise.
7959         * print-tree.c (print_node): Remove old location code.
7960         * tree-mudflap.c (mf_varname_tree): Remove old location code.
7961         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
7962         * cfgexpand.c (expand_gimple_cond_expr): Don't use
7963         location_from_locus.
7964         (construct_exit_block): Remove old location code.
7965         * emit-rtl.c (force_next_line_note): Remove old location code.
7966         * profile.c (branch_prob): Remove old location code.
7967         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
7968         LOC_LINE): Remove old-location variants.
7969         * langhooks.c (lhd_print_error_function): Remove old location
7970         code.
7971         * configure, config.in: Rebuilt.
7972         * configure.ac (--enable-mapped-location): Remove.
7973         * c-decl.c (c_init_decl_processing): Remove old location code.
7974         (finish_function): Likewise.
7975         * recog.c (decode_asm_operands): Remove old location code.
7976         * c-pch.c (c_common_read_pch): Remove old location code.
7977         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
7978         variants.
7979         * gimple-low.c (lower_function_body): Remove old location code.
7980         * toplev.c (unknown_location): Remove.
7981         (push_srcloc): Remove old-location variant.
7982         (process_options): Remove old location code.
7983         (lang_dependent_init): Likewise.
7984         * input.h (UNKNOWN_LOCATION): Move definition.
7985         (location_t): Undeprecate.
7986         (source_locus): Remove.
7987         (location_from_locus): Remove.
7988         (struct location_s): Remove.
7989         Remove all old-location code.
7990         (input_line, input_filename): Remove.
7991         * final.c (final_scan_insn): Remove old location code.
7992         * diagnostic.c (diagnostic_build_prefix): Remove
7993         USE_MAPPED_LOCATION test.
7994         * tree.h (gimple_stmt) <locus>: Now a location_t.
7995         (tree_exp) <locus>: Likewise.
7996         (DECL_IS_BUILTIN): Remove old-location variant.
7997         (annotate_with_file_line, annotate_with_locus): Likewise.
7998         (expr_locus, set_expr_locus): Update.
7999         * tree.c (build1_stat): Remove old location code.
8000         (last_annotated_node): Remove.
8001         (annotate_with_file_line): Remove old-location variant.
8002         (annotate_with_locus): Likewise.
8003         (expr_location): Remove old location code.
8004         (set_expr_location): Likewise.
8005         (expr_has_location): Likewise.
8006         (expr_locus): Likewise.
8007         (set_expr_locus): Likewise.
8008         (expr_filename): Don't use location_from_locus.
8009         (expr_lineno): Likewise.
8010         * rtl-error.c (location_for_asm): Remove old location code.
8011         * c-lex.c (cb_line_change): Remove old location code.
8012         (fe_file_change): Likewise.
8013         (cb_def_pragma): Likewise.
8014         (c_lex_with_flags): Likewise.
8015         * gengtype.c (do_typedef): Don't special-case location types.
8016         (define_location_structures): Remove.
8017         (main): Don't call define_location_structures.
8018         * tree-pretty-print.c (dump_implicit_edges): Remove old location
8019         code.
8020
8021 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8022
8023         PR 26264
8024         * builtins.def (BUILT_IN_STDARG_START): Remove.
8025         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
8026         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
8027         * tree-inline.c (inline_forbidden_p_1): Likewise.
8028         
8029 2008-02-26  Richard Guenther  <rguenther@suse.de>
8030
8031         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8032         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8033         (lookup_decl_from_uid): Declare.
8034         (remove_decl_from_map): Likewise.
8035         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8036         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8037         (decl_for_uid_map): New global hashtable mapping DECL_UID
8038         to the decl tree.
8039         (init_ttree): Allocate it.
8040         (insert_decl_to_uid_decl_map): New helper function.
8041         (make_node_stat): Insert new decls into the map.
8042         (copy_node_stat): Likewise.
8043         (lookup_decl_from_uid): New function.
8044         (remove_decl_from_map): Likewise.
8045         (print_decl_for_uid_map_statistics): New helper.
8046         (dump_tree_statistics): Call it.
8047
8048         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8049         (referenced_var_iterator): Adjust.
8050         (FOR_EACH_REFERENCED_VAR): Adjust.
8051         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8052         (num_referenced_vars): Adjust.
8053         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8054         (first_referenced_var): Remove.
8055         (end_referenced_vars_p): Likewise.
8056         (next_referenced_var): Likewise.
8057         (referenced_var_iterator_set): New helper function.
8058         * tree-dfa.c (referenced_var_lookup): Adjust.
8059         (referenced_var_check_and_insert): Likewise.
8060         (remove_referenced_var): Likewise.
8061         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8062         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8063         (verify_call_clobbering): Likewise.
8064         (verify_memory_partitions): Likewise.
8065         (init_tree_ssa): Allocate bitmap instead of hashtable for
8066         referenced_vars.
8067         (delete_tree_ssa): Adjust.
8068         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8069         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8070         (compute_tag_properties): Likewise.
8071         (set_initial_properties): Likewise.
8072         (find_partition_for): Likewise.
8073         (update_reference_counts): Likewise.
8074         (dump_may_aliases_for): Likewise.
8075         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8076         (add_call_clobber_ops): Likewise.
8077         (add_call_read_ops): Likewise.
8078         (get_asm_expr_operands): Likewise.
8079         * tree-into-ssa.c (dump_decl_set): Likewise.
8080         (update_ssa): Likewise.
8081         * tree-sra.c (scan_function): Likewise.
8082         (decide_instantiations): Likewise.
8083         (scalarize_parms): Likewise.
8084         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8085         (dsa_named_for): Likewise.
8086         * tree-ssa-structalias.c (update_alias_info): Likewise.
8087         (merge_smts_into): Likewise.
8088
8089 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8090
8091         PR 34351
8092         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8093         * c-opts.c (c_common_handle_option): Wall enables
8094         Wvolatile-register-var.
8095         * common.opt: Move Wvolatile-register-var to...
8096         * c.opt: ...here.
8097         
8098 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8099
8100         * common.opt (Wlarger-than=): New.
8101         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8102         -Wlarger-than=.
8103         * opts.c (common_handle_option): Handle -Wlarger-than=.
8104         * optc-gen.awk: Likewise.
8105         * opth-gen.awk: Likewise.
8106         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8107         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8108         
8109 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8110
8111         * c-common.c (match_case_to_enum_1): Add appropriate
8112         OPT_W* parameter to warning.
8113         (c_do_switch_warnings): Likewise.
8114         * c-typeck.c (warning_init): Add one more parameter following
8115         'warning' function.
8116         (push_init_level): Update call to warning_init.
8117         (pop_init_level): Likewise.
8118         (add_pending_init): Likewise.
8119         (output_init_element: Likewise.
8120
8121 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8122
8123         PR 28322
8124         * toplev.c (toplev_main): If there are warnings or error, print
8125         errors for ignored options.
8126         * opts.c (ignored_options): New static variable.
8127         (postpone_unknown_option_error): New.
8128         (print_ignored_options): New.
8129         (handle_option): Postpone errors for unknown -Wno-* options.
8130         * opts.h (print_ignored_options): Declare.
8131         
8132 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8133
8134         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8135         to "ghost".
8136
8137 2008-02-25  Richard Guenther  <rguenther@suse.de>
8138
8139         Revert:
8140         2008-02-25  Richard Guenther  <rguenther@suse.de>
8141
8142         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8143         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8144         (lookup_decl_from_uid): Declare.
8145         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8146         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8147         (decl_for_uid_map): New global hashtable mapping DECL_UID
8148         to the decl tree.
8149         (init_ttree): Allocate it.
8150         (insert_decl_to_uid_decl_map): New helper function.
8151         (make_node_stat): Insert new decls into the map.
8152         (copy_node_stat): Likewise.
8153         (lookup_decl_from_uid): New function.
8154         (print_decl_for_uid_map_statistics): New helper.
8155         (dump_tree_statistics): Call it.
8156
8157         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8158         (referenced_var_iterator): Adjust.
8159         (FOR_EACH_REFERENCED_VAR): Adjust.
8160         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8161         (num_referenced_vars): Adjust.
8162         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8163         (first_referenced_var): Remove.
8164         (end_referenced_vars_p): Likewise.
8165         (next_referenced_var): Likewise.
8166         (referenced_var_iterator_set): New helper function.
8167         * tree-dfa.c (referenced_var_lookup): Adjust.
8168         (referenced_var_check_and_insert): Likewise.
8169         (remove_referenced_var): Likewise.
8170         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8171         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8172         (verify_call_clobbering): Likewise.
8173         (verify_memory_partitions): Likewise.
8174         (init_tree_ssa): Allocate bitmap instead of hashtable for
8175         referenced_vars.
8176         (delete_tree_ssa): Adjust.
8177         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8178         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8179         (compute_tag_properties): Likewise.
8180         (set_initial_properties): Likewise.
8181         (find_partition_for): Likewise.
8182         (update_reference_counts): Likewise.
8183         (dump_may_aliases_for): Likewise.
8184         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8185         (add_call_clobber_ops): Likewise.
8186         (add_call_read_ops): Likewise.
8187         (get_asm_expr_operands): Likewise.
8188         * tree-into-ssa.c (dump_decl_set): Likewise.
8189         (update_ssa): Likewise.
8190         * tree-sra.c (scan_function): Likewise.
8191         (decide_instantiations): Likewise.
8192         (scalarize_parms): Likewise.
8193         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8194         (dsa_named_for): Likewise.
8195         * tree-ssa-structalias.c (update_alias_info): Likewise.
8196         (merge_smts_into): Likewise.
8197
8198 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8199
8200         PR fortran/29549
8201         * doc/invoke.texi (-fcx-limited-range): Document new option.
8202         * toplev.c (process_options): Handle -fcx-fortran-rules.
8203         * common.opt: Add documentation for -fcx-fortran-rules.
8204
8205 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8206
8207         PR c/35162
8208         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8209         actual behaviour and C99.
8210         
8211 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8212
8213         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8214         (ASM_CPU_POWER6_SPEC): Likewise.
8215         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8216         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8217         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8218
8219 2008-02-25  Richard Guenther  <rguenther@suse.de>
8220
8221         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8222         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8223         (lookup_decl_from_uid): Declare.
8224         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8225         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8226         (decl_for_uid_map): New global hashtable mapping DECL_UID
8227         to the decl tree.
8228         (init_ttree): Allocate it.
8229         (insert_decl_to_uid_decl_map): New helper function.
8230         (make_node_stat): Insert new decls into the map.
8231         (copy_node_stat): Likewise.
8232         (lookup_decl_from_uid): New function.
8233         (print_decl_for_uid_map_statistics): New helper.
8234         (dump_tree_statistics): Call it.
8235
8236         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8237         (referenced_var_iterator): Adjust.
8238         (FOR_EACH_REFERENCED_VAR): Adjust.
8239         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8240         (num_referenced_vars): Adjust.
8241         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8242         (first_referenced_var): Remove.
8243         (end_referenced_vars_p): Likewise.
8244         (next_referenced_var): Likewise.
8245         (referenced_var_iterator_set): New helper function.
8246         * tree-dfa.c (referenced_var_lookup): Adjust.
8247         (referenced_var_check_and_insert): Likewise.
8248         (remove_referenced_var): Likewise.
8249         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8250         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8251         (verify_call_clobbering): Likewise.
8252         (verify_memory_partitions): Likewise.
8253         (init_tree_ssa): Allocate bitmap instead of hashtable for
8254         referenced_vars.
8255         (delete_tree_ssa): Adjust.
8256         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8257         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8258         (compute_tag_properties): Likewise.
8259         (set_initial_properties): Likewise.
8260         (find_partition_for): Likewise.
8261         (update_reference_counts): Likewise.
8262         (dump_may_aliases_for): Likewise.
8263         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8264         (add_call_clobber_ops): Likewise.
8265         (add_call_read_ops): Likewise.
8266         (get_asm_expr_operands): Likewise.
8267         * tree-into-ssa.c (dump_decl_set): Likewise.
8268         (update_ssa): Likewise.
8269         * tree-sra.c (scan_function): Likewise.
8270         (decide_instantiations): Likewise.
8271         (scalarize_parms): Likewise.
8272         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8273         (dsa_named_for): Likewise.
8274         * tree-ssa-structalias.c (update_alias_info): Likewise.
8275         (merge_smts_into): Likewise.
8276
8277 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8278
8279         PR target/35258
8280         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8281         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8282         * alias.h (nonoverlapping_memrefs_p): Likewise.
8283
8284 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8285
8286         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8287         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8288         __emultls_get_address, __emultls_register_common,
8289         __floatundi?f, and _Unwind_GetIPInfo.
8290         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8291         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8292         (gen_regparm_prefix): Likewise.
8293         (i386_nlm_encode_section_info): Sync with
8294         config/i386/winnt.c:i386_pe_encode_section_info().
8295         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8296         i386_nlm_mangle_decl_assembler_name): New.
8297         (netware_override_options): New.
8298         * config/i386/netware.h (netware_override_options): Declare.
8299         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8300         (i386_nlm_mangle_decl_assembler_name): Declare.
8301         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8302
8303 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8304
8305         PR other/32948
8306         * c-decl.c (grokdeclarator): Remove unused local variables
8307         `typedef_type' and `type_as_written'.
8308         * bb-reorder.c
8309         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8310         unused local variable `has_hot_blocks'.
8311         (fix_crossing_conditional_branches): Remove unused local variable
8312         `prev_bb'.
8313         
8314 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8315
8316         PR middle-end/19984
8317         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8318         using DEF_C99_BUILTIN.
8319         (BUILT_IN_NANF): Ditto.
8320         (BUILT_IN_NANL): Ditto.
8321
8322 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8323             Revital Eres  <eres@il.ibm.com>
8324
8325         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8326         regarding the order of two dependent insns in the same row.
8327
8328 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8329
8330         * stor-layout.c (layout_decl): Do not bump the alignment of a
8331         bit-field to more than byte alignment if it is packed.
8332
8333 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8334
8335         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8336         e300c2 and e300c3.
8337
8338 2008-02-24  Diego Novillo  <dnovillo@google.com>
8339
8340         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8341
8342         PR 33738
8343         * tree-vrp.c (vrp_evaluate_conditional): With
8344         -Wtype-limits, emit a warning when comparing against a
8345         constant outside the natural range of OP0's type.
8346         * c.opt (Wtype-limits): Move ...
8347         * common.opt (Wtype-limits): ... here.
8348
8349 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8350
8351         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8352         * config/rs6000/e300c2c3.md: New file.
8353         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8354         e300c2 and e300c3.
8355         (rs6000_override_options): Add e300c2 and e300c3 cases to
8356         processor_target_table. Do not allow usage of Altivec or Spe
8357         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8358         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8359         * config/rs6000/rs6000.h (processor_type): Add
8360         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8361         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8362         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8363         and ppce300c3. Include e300c2c3.md.
8364
8365 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8366
8367         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8368         instead of TARGET_STRICT_ALIGN.
8369
8370 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8371
8372         * explow.c (memory_address): Assert that the generated address is
8373         valid.
8374
8375 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8376
8377         PR target/25477
8378         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8379         * config/darwin-ppc-ldouble-patch.def: New file.
8380         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8381         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8382         SUBTARGET_INIT_BUILTINS if defined.
8383         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8384         New functions.
8385
8386 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8387
8388         PR rtl-opt/33512
8389         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8390         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8391
8392 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8393
8394         PR pch/35027
8395         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8396         file" warning condtional on -Winvalid-PCH.
8397
8398 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8399
8400         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8401
8402 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8403
8404         PR target/22076
8405         PR target/34256 
8406         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8407         prevent reload from using MMX registers.
8408         (*mov<mode>_internal): Ditto.
8409         (*movv2sf_internal_rex64): Ditto.
8410         (*movv2sf_internal): Ditto.
8411
8412 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8413
8414         PR documentation/31569
8415         * doc/install.texi2html: Use makeinfo --no-number-sections.
8416
8417 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8418
8419         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8420         ensure that we can address an entire entity > 8 bytes.  Don't
8421         generate reg+reg addressing for such data.
8422
8423 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8424
8425         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8426         strings when optimizing for size, unless the target cares about
8427         alignment.
8428
8429 2008-02-22  Tom Tromey  <tromey@redhat.com>
8430
8431         * regclass.c (current_pass): Remove declaration.
8432
8433 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8434
8435         * config/avr/libgcc.S (__RAMPZ__): Define.
8436         (__do_copy_data): Add for devices with 128KB code memory.
8437
8438 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8439
8440         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8441         Use spe_abi.
8442         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8443
8444 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8445
8446         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8447         GENNONACR_REGS.
8448
8449 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8450
8451         PR c/19999
8452         * c-typeck.c (build_binary_op): Warn about floating point
8453         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8454
8455 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8456
8457         PR target/34526
8458         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8459         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8460         add vrsave.
8461         (rs6000_override_options): Set altivec_abi as default, not override,
8462         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8463         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8464         is used; use new member spe_abi.
8465         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8466         spe_abi and altivec_abi.
8467
8468 2008-02-22  Tomas Bily  <tbily@suse.cz>
8469
8470         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8471
8472 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8473
8474         PR bootstrap/35273
8475         * config.build (build_file_translate): Set to `CMD //c' only if
8476         it works.
8477         * Makefile.in (build_file_translate): Improve comment.
8478
8479 2008-02-21  Jan Hubicka  <jh@suse.cz>
8480
8481         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8482         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8483         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8484
8485 2008-02-21  Michael Matz  <matz@suse.de>
8486
8487         PR target/35264
8488         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8489
8490 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8491
8492         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8493         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8494         as insn constraint.
8495         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8496         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8497         SSE_VEC_FLOAT_MODE_P as insn constraint.
8498         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8499         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8500         sse4a_movntdf using MODEF mode iterator.
8501         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8502         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8503         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8504         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8505         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8506         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8507         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8508
8509 2008-02-21  Richard Guenther  <rguenther@suse.de>
8510
8511         * tree.def (PAREN_EXPR): New tree code.
8512         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8513         and PAREN_EXPR.
8514         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8515         * expr.c (expand_expr_real_1): Likewise.
8516         * tree-inline.c (estimate_num_insns_1): Likewise.
8517         * tree-complex.c (expand_complex_move): Likewise.
8518         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8519         as plain x.
8520
8521 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8522
8523         PR target/35225
8524         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8525
8526 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8527
8528         PR target/35190
8529         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8530
8531         * config/sh/sh.c (find_barrier): Don't go past
8532         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8533
8534 2008-02-20  DJ Delorie  <dj@redhat.com>
8535
8536         * config/h8300/h8300.md (insv): Force source operand to be a register.
8537
8538         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8539         as a jump, not as a plain insn.
8540         
8541 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8542
8543         * doc/invoke.texi (Warning Options): Add new option
8544         -Wframe-larger-than=.
8545         (-Wframe-larger-than): Document.
8546
8547         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8548         Add declarations for new option variables.
8549
8550         * final.c (final_start_function): Check the frame size
8551         before emission and issue a Wframe-larger-than warning.
8552
8553         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8554         Add definitions for new option variables.
8555         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8556
8557         * common.opt (Wframe-larger-than=): New option.
8558
8559 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8560
8561         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8562         (<sse>_div<mode>3): Ditto.
8563         (<sse>_vmdiv<mode>3): Ditto.
8564         (<sse>_vmsqrt<mode>2): Ditto.
8565         (*smax<mode>3): Ditto.
8566         (sse5_frcz<mode>2): Ditto.
8567         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8568         as insn constraint.
8569
8570 2008-02-20  Richard Guenther  <rguenther@suse.de>
8571
8572         PR middle-end/35265
8573         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8574         be happy with INTEGRAL_TYPE_P.
8575
8576 2008-02-20  Richard Guenther  <rguenther@suse.de>
8577
8578         * fold-const.c (split_tree): Associate floatig-point expressions
8579         if flag_associative_math is set.
8580
8581 2008-02-20  Richard Guenther  <rguenther@suse.de>
8582
8583         * tree.h (fold_real_zero_addition_p): Declare.
8584         * fold-const.c (fold_real_zero_addition_p): Export.
8585         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8586         floating-point operations with zero and one.
8587
8588 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8589
8590         * doc/install.texi: Correct references to CFLAGS, replacing them
8591         with BOOT_CFLAGS.  Document flags used during bootstrap for
8592         target libraries.
8593                                 
8594 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8595
8596         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8597         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8598         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8599         insn constraint.
8600         (smin<mode>3): Ditto from similar patterns.
8601         (smax<mode>3): Ditto.
8602         (*ieee_smin<mode>3): Ditto.
8603         (*ieee_smax<mode>3): Ditto.
8604         * config/i386/sse.md (sse): New mode attribute.
8605         (mov<mode>): Macroize expander from movv4sf and movv2df using
8606         SSEMODEF2P mode iterator.
8607         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8608         SSE_VEC_FLOAT_MODE_P as insn constraint.
8609         (storent<mode>): Ditto.
8610         (storent<mode>): Macroize expander from storentsf and storentdf using
8611         MODEF mode iterator.
8612         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8613         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8614         (abs<mode>2): Ditto from similar patterns.
8615         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8616         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8617         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8618         (<sse>_vmsqrt<mode>2): Ditto.
8619         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8620         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8621         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8622         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8623         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8624         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8625         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8626         insn constraint.
8627         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8628         iterator and SSE_FLOAT_MODE_P as insn constraint.
8629         (<sse>_ucomi): Ditto from similar patterns.
8630         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8631         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8632         SSE_VEC_FLOAT_MODE_P as insn constraint.
8633         (vcond<mode>): Ditto from similar patterns.
8634         (and<mode>3, *and<mode>3): Ditto.
8635         (<sse>_nand<mode>3): Ditto.
8636         (ior<mode>3, *ior<mode>3): Ditto.
8637         (xor<mode>3, *xor<mode>3): Ditto.
8638         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8639         iterator and SSE_FLOAT_MODE_P as insn constraint.
8640         (*nand<mode>3): Ditto from similar patterns.
8641         (*ior<mode>3): Ditto.
8642         (*xor<mode>3): Ditto.
8643
8644 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8645
8646         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8647         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8648         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8649
8650 2008-02-19  Jan Hubicka  <jh@suse.cz>
8651
8652         * predict.c (tree_bb_level_predictions): Remove variable next
8653         mistakely introduced by previous commit.
8654
8655 2008-02-19  Jan Hubicka  <jh@suse.cz>
8656
8657         * predict.c (predict_paths_leading_to): Rewrite.
8658         (predict_paths_for_bb): New.
8659         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8660
8661 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8662
8663         PR bootstrap/35218
8664         * Makefile.in (build_file_translate): New.
8665         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8666         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8667         * configure.ac (build_file_translate): Substitute it.
8668         * configure: Regenerate.
8669
8670 2008-02-19  Jan Hubicka  <jh@suse.cz>
8671
8672         PR rtl-optimization/34408
8673         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8674         invalid sharing.
8675
8676 2008-02-19  Jan Hubicka  <jh@suse.cz>
8677
8678         PR middle-end/28779
8679         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8680         call_expr.
8681
8682 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8683
8684         PR Ada/35186
8685         * config/i386/i386-modes.def: Revert the last DI alignment
8686         change until Ada people can look into it.
8687
8688 2008-02-19  Nick Clifton  <nickc@redhat.com>
8689
8690         * opts.c (print_specific_help): Fix typo in --help text.
8691
8692 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8693
8694         PR target/35239
8695         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8696         32-bit inline asm without asm alternatives for host GCC < 3.0.
8697
8698 2008-02-19  Richard Guenther  <rguenther@suse.de>
8699
8700         PR tree-optimization/34989
8701         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8702         Allow propagation to INDIRECT_REF if we can simplify only.
8703
8704 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8705
8706         * c-common.c (warn_for_collisions_1): Use appropriate option when
8707         warning.
8708
8709 2008-02-19  Nick Clifton  <nickc@redhat.com>
8710
8711         PR other/31349
8712         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8713         (handle_options): Fix indentation.
8714         (print_filtered_help): If no language-specific options were
8715         displayed tell the user how to list all the options supported by
8716         the language's front-end.
8717         (print_specific_help): Fix indentation and remove duplicate line.
8718         (common_handle_option): Handle the -v option.
8719         For --help enable the display of undocumented options if the -v
8720         switch has been included on the command line.
8721         For --help= check for overlaps in the arguments between the option
8722         classes and the language names and issue a warning when they
8723         cannot be disambiguated.
8724         * c.opt (v): Pass on to the common option handler.
8725
8726 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8727
8728         * modulo-sched.c (sms_schedule): Change dump message when
8729         create_ddg function fails.
8730         (try_scheduling_node_in_cycle): Rename row to cycle.
8731         (print_partial_schedule): Rename CYCLE to ROW.
8732
8733 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8734             Zdenek Dvorak  <ook@ucw.cz>
8735
8736         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8737
8738 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8739
8740         PR target/33555
8741         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8742         (*x86_movdicc_0_m1_se): Ditto.
8743
8744 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8745
8746         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8747         (CMPtype): Define as __gcc_CMPtype.
8748         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8749         (CMPtype): Define as __gcc_CMPtype.
8750
8751 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8752
8753         Support valgrind 3.3 for --enable-checking=valgrind.
8754         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8755         here.
8756         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8757         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8758         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8759         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8760         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8761         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8762         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8763         respectively.
8764         * ggc-zone.c: Similar.
8765         * ggc-page.c: Similar.
8766
8767 2008-02-19  Paul Brook  <paul@codesourcery.com>
8768
8769         PR target/35071
8770         * config/arm/ieee754-df.S: Fix do_it typo.
8771         * config/arm/ieee754-sf.S: Fix do_it typo.
8772
8773 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8774
8775         PR target/35189
8776         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8777         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8778         (OPTION_MASK_ISA_SSE_SET): Likewise.
8779         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8780         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8781         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8782         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8783         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8784         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8785         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8786         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8787         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8788         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8789         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8790         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8791         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8792         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8793         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8794         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8795         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8796         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8797         (OPTION_MASK_ISA_SSE4): Removed.
8798         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8799         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8800         (override_options): Don't turn on implied SSE/MMX bits in
8801         ix86_isa_flags.
8802
8803 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8804
8805         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8806         32bit host.
8807
8808 2008-02-18  Joey Ye  <joey.ye@intel.com>
8809
8810         PR middle-end/34921
8811         * tree-nested.c (insert_field_into_struct): Set type alignment
8812         to field alignment if the former is less than the latter.
8813
8814 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8815
8816         * BASE-VER: Set to 4.4.0.
8817
8818 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8819
8820         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8821         * doc/cfg.texi: Likewise.
8822         * doc/extend.texi: Likewise.
8823         * doc/gty.texi: Likewise.
8824         * doc/invoke.texi: Likewise.
8825         * doc/loop.texi: Likewise.
8826         * doc/md.texi: Likewise.
8827         * doc/passes.texi: Likewise.
8828         * doc/rtl.texi: Likewise.
8829         * doc/sourcebuild.texi: Likewise.
8830         * doc/tm.texi: Likewise.
8831         * doc/tree-ssa.texi: Likewise.
8832
8833 2008-02-17  Richard Guenther  <rguenther@suse.de>
8834
8835         PR middle-end/35227
8836         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8837         without default definition.
8838
8839 2008-02-17  Richard Guenther  <rguenther@suse.de>
8840
8841         PR tree-optimization/35231
8842         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8843         if A | B != 1.
8844
8845 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8846
8847         Revert:
8848         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8849         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8850         libgcc_cmp_return mode.
8851
8852 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8853
8854         PR c/28368
8855         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8856
8857 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8858
8859         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8860         multilibs.
8861
8862 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8863
8864         * doc/c-tree.texi: Use `@.' where appropriate.
8865         * doc/extend.texi: Likewise.
8866         * doc/install.texi: Likewise.
8867         * doc/invoke.texi: Likewise.
8868         * doc/loop.texi: Likewise.
8869         * doc/makefile.texi: Likewise.
8870         * doc/md.texi: Likewise.
8871         * doc/passes.texi: Likewise.
8872         * doc/standards.texi: Likewise.
8873         * doc/tm.texi: Likewise.
8874
8875 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8876
8877         PR middle-end/35196
8878         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
8879         in entry_bb.
8880         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
8881         rather than in entry_bb.
8882
8883 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8884
8885         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8886         libgcc_cmp_return mode.
8887
8888 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8889
8890         PR middle-end/35130
8891         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
8892         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
8893
8894 2008-02-15  Richard Guenther  <rguenther@suse.de>
8895             Zdenek Dvorak  <ook@ucw.cz>
8896
8897         PR tree-optimization/35164
8898         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
8899         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
8900         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8901         Only propagate addresses which do not have abnormal SSA_NAMEs
8902         in their operands.
8903
8904 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
8905
8906         PR target/35088
8907         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
8908
8909 2008-02-15  Jan Hubicka  <jh@suse.cz>
8910
8911         PR middle-end/35149
8912         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
8913
8914 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8915
8916         PR middle-end/34621
8917         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
8918         when calculating alignment_pad.
8919
8920 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8921
8922         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
8923         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
8924         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
8925         and STACK_BOUNDARY define.
8926
8927 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
8928
8929         PR preprocessor/35061
8930         * c-pragma.c (handle_pragma_pop_macro): Check that
8931         pushed_macro_table has been allocated.
8932
8933 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
8934
8935         PR middle-end/35136
8936         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
8937         (force_gimple_operand): Likewise.
8938         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
8939         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
8940         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
8941         (find_interesting_uses_address): Check addressability and alignment
8942         of the base expression only after substituting bases of IVs into it.
8943
8944 2008-02-14  Michael Matz  <matz@suse.de>
8945
8946         PR target/34930
8947         * function.c (instantiate_virtual_regs_in_insn): Reload address
8948         before falling back to reloading the whole operand.
8949
8950 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
8951
8952         * config/s390/s390.c (s390_mainpool_start): Emit the pool
8953         before the first section switch note.
8954
8955 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8956
8957         * doc/bugreport.texi: Update copyright years.
8958         * doc/c-tree.texi: Likewise.
8959         * doc/cfg.texi: Likewise.
8960         * doc/cpp.texi: Likewise.
8961         * doc/cppinternals.texi: Likewise.
8962         * doc/fragments.texi: Likewise.
8963         * doc/frontends.texi: Likewise.
8964         * doc/gcc.texi: Likewise.
8965         * doc/gty.texi: Likewise.
8966         * doc/hostconfig.texi: Likewise.
8967         * doc/implement-c.texi: Likewise.
8968         * doc/libgcc.texi: Likewise.
8969         * doc/loop.texi: Likewise.
8970         * doc/makefile.texi: Likewise.
8971         * doc/options.texi: Likewise.
8972         * doc/passes.texi: Likewise.
8973         * doc/rtl.texi: Likewise.
8974         * doc/sourcebuild.texi: Likewise.
8975         * doc/standards.texi: Likewise.
8976         * doc/tree-ssa.texi: Likewise.
8977         * doc/trouble.texi: Likewise.
8978
8979         * doc/extend.texi: Use @: or add comma where appropriate.
8980         * doc/invoke.texi: Likewise.
8981         * doc/tm.texi: Likewise.
8982
8983 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
8984
8985         PR target/34393
8986         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
8987         to a reg.
8988
8989 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
8990
8991         * doc/md.texi (clz, ctz): Add reference.
8992         * doc/rtl.texi (clz, ctz): Likewise.
8993
8994 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8995
8996         PR other/35148
8997         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
8998         srcdir.
8999
9000 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
9001
9002         * config/s390/s390.c (struct constant_pool): New field
9003         emit_pool_after added.
9004         (s390_mainpool_start): Set the emit_pool_after flag according
9005         to the section switch notes.
9006         (s390_mainpool_finish): Consider emit_pool_after when emitting
9007         the literal pool at the end of the function.
9008         (s390_chunkify_start): Force literal pool splits at section
9009         switch notes.
9010
9011 2008-02-13  Michael Matz  <matz@suse.de>
9012
9013         PR debug/35065
9014         * var-tracking.c (clobber_variable_part): Correctly traverse the
9015         list.
9016
9017 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9018
9019         PR 29673
9020         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
9021         Add -fdump-ipa-inline.
9022         * tree-dump.c (dump_files): Remove tree-inlined dump.
9023         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
9024         
9025 2008-02-12  Richard Guenther  <rguenther@suse.de>
9026
9027         PR tree-optimization/35171
9028         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
9029         default defs.
9030
9031 2008-02-12  Richard Guenther  <rguenther@suse.de>
9032
9033         PR middle-end/35163
9034         * fold-const.c (fold_widened_comparison): Use get_unwidened in
9035         value-preserving mode.  Disallow final truncation.
9036
9037 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
9038
9039         PR middle-end/35136
9040         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
9041         code from here to...
9042         (force_gimple_operand): ...here.
9043
9044 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
9045
9046         PR c++/35144
9047         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
9048         non-compatible pointers.
9049         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9050         different FIELD_DECLs, try harder by comparing field offsets, sizes
9051         and types.
9052
9053         PR inline-asm/35160
9054         * function.c (match_asm_constraints_1): Don't replace the same input
9055         multiple times.
9056
9057 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9058
9059         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9060         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9061         (expand_epilogue): Restore RAMPZ register.
9062         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9063
9064 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9065
9066         * config/i386/cygwin.asm: (__alloca): Correct calling
9067         convention and alignment.
9068         (__chkstk): Force 8 byte stack alignment.
9069
9070 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9071             Richard Guenther  <rguenther@suse.de>
9072
9073         PR tree-optimization/33992
9074         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9075         the zero we compare against.
9076
9077 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9078
9079         PR libfortran/35063
9080         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9081         to CloseHandle after unlocking to prevent accumulation of handle
9082         count.
9083
9084 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9085
9086         PR middle_end/34150
9087         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9088         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9089         and update LABEL_NUSES during and after reload.
9090
9091 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9092
9093         PR middle-end/34627
9094         * combine.c (simplify_if_then_else): Make sure the comparison is
9095         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9096
9097 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9098
9099         PR bootstrap/35051
9100         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9101         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9102         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9103         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9104         * tree.h (get_type_static_bounds): Likewise.
9105
9106 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9107
9108         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9109         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9110         Make -Wfoo language annotations match what the compiler outputs.
9111
9112 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9113
9114         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9115         intrinsics spu_convts, spu_convtu, spu_convtf.
9116
9117 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9118
9119         * doc/extend.texi (Function Attributes) <noinline>: Mention
9120         asm ("") as method to keep calls.
9121
9122 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9123
9124         PR other/32754
9125         * doc/options.texi (Options): Replace references to opts.sh with
9126         optc-gen.awk.
9127         * opts-common.c: Likewise.
9128         * optc-gen.awk: Likewise.
9129         
9130 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9131
9132         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9133
9134 2008-02-07  Richard Henderson  <rth@redhat.com>
9135
9136         PR rtl-opt/33410
9137         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9138         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9139         funny mode.
9140
9141 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9142
9143         PR tree-optimization/35085
9144         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9145         for operand entry oe2 in addition to operand entry oe3 in order to
9146         expose more opportunities for vectorizer sum reduction.
9147
9148 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9149
9150         PR other/35107
9151         * Makefile.in (LIBS): Remove $(GMPLIBS).
9152         (cc1-dummy, cc1): Add $(GMPLIBS).
9153
9154 2008-02-06  Jan Hubicka  <jh@suse.cz>
9155
9156         PR target/23322
9157         * i386.md (moddf_integer): Do not produce partial memory stalls for
9158         targets where it hurts.
9159
9160 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9161
9162         PR target/35083
9163         * optabs.c (expand_float): Do not check for decimal modes when
9164         expanding unsigned integer through signed conversion.
9165
9166 2008-02-06  Nick Clifton  <nickc@redhat.com>
9167
9168         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9169         inside the clobber with a match_operand and duplicated operand
9170         number in the constraint.
9171         (ineqbranchsi): Delete redundant comment.
9172
9173 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9174
9175         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9176         builtin_define ("__USE_INIT_FINI__").
9177         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9178         -msx multilibs.
9179         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9180
9181 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9182
9183         PR documentation/30330
9184         * doc/invoke.texi (C++ Dialect Options)
9185         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9186         For each warning option -Wfoo that allows -Wno-foo, ensure both
9187         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9188         entry of -Wswitch-default, index -Wnormalized= including the
9189         `=', and -Wlarger-than-@var{len} including @var{len}.
9190
9191 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9192
9193         * config/i386/i386.md (floatunssisf2): Use
9194         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9195         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9196         Macroize expander using MODEF mode iterator.
9197
9198 2008-02-05  Diego Novillo  <dnovillo@google.com>
9199
9200         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9201
9202         PR 33738
9203         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9204
9205 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9206
9207         PR other/35070
9208         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9209
9210 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9211
9212         PR target/35084
9213         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9214         to indicate if a message should be generated.
9215         (init_cumulative_args): Updated.
9216         (function_value_32): Likewise.
9217
9218 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9219
9220         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9221
9222 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9223
9224         PR target/35083
9225         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9226         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9227
9228 2008-02-04  Diego Novillo  <dnovillo@google.com>
9229
9230         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9231
9232         PR 33738
9233         * tree-vrp.c (vrp_evaluate_conditional): With
9234         -Wtype-limits, emit a warning when comparing against a
9235         constant outside the natural range of OP0's type.
9236
9237 2008-02-04  Richard Guenther  <rguenther@suse.de>
9238
9239         PR middle-end/33631
9240         * expr.c (count_type_elements): Give for unions instead of
9241         guessing.
9242
9243 2008-02-04  Richard Guenther  <rguenther@suse.de>
9244
9245         PR middle-end/35043
9246         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9247         to TYPE_DOMAINs base type instead of using bitsizetype here.
9248
9249 2008-02-03  Jason Merrill  <jason@redhat.com>
9250
9251         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9252
9253 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9254
9255         PR other/29972
9256         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9257         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9258         (RS/6000 and PowerPC Options): Fix typos and markup.
9259         * doc/passes.texi (Tree-SSA passes): Likewise.
9260
9261 2008-02-02  Michael Matz  <matz@suse.de>
9262
9263         PR target/35045
9264         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9265         from record_last_reg_set_info.
9266         (record_last_reg_set_info): Take an RTX argument, iterate over all
9267         constituent hardregs.
9268         (record_last_set_info, record_opr_changes): Change calls to
9269         new signature or to record_last_reg_set_info_regno.
9270
9271 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9272
9273         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9274
9275 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9276
9277         PR rtl-optimization/34773
9278         * reg-notes.def (EQUAL): Mention significance of combination of
9279         REG_EQUAL and REG_RETVAL.
9280         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9281         insn that has a REG_RETVAL.
9282
9283 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9284
9285         PR bootstrap/33781
9286         * configure.ac (--enable-fixed-point): Disable unless explicitly
9287         requested on IRIX.
9288         * configure: Regenerate.
9289
9290 2008-02-01  Richard Guenther  <rguenther@suse.de>
9291
9292         PR other/35042
9293         * invoke.texi (-finline-limit): Remove no longer true parts
9294         of the documentation.  Note that there is no default value.
9295
9296 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9297             Mark Mitchell  <mark@codesourcery.com>
9298             Ben Elliston  <bje@au.ibm.com>
9299
9300         PR c/29326
9301         * doc/extend.texi (Other Builtins): Document.
9302
9303 2008-01-31  Tom Browder <tom.browder@gmail.com>
9304
9305         * doc/c-tree.texi (Types): Fix grammar.
9306         (Expression trees): Ditto.
9307         * doc/passes.texi (Tree-SSA passes): Ditto.
9308         
9309         * doc/configterms.texi (Configure Terms): Fix typo.
9310         * doc/cpp.texi (Common Predefined Macros): Ditto.
9311         * doc/md.texi (Machine Constraints): Ditto.
9312         
9313         * doc/makefile.texi (Makefile): Add comma.
9314
9315 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9316             Gerald Pfeifer  <gerald@pfeifer.com>
9317         
9318         * doc/sourcebuild.texi (Front End): Remove references to CVS
9319         and CVSROOT/modules.
9320         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9321         (Back End): Remove reference to CVS.
9322
9323 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9324
9325         PR target/34900
9326         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9327         comment from...
9328         (mips16_gp_pseudo_reg): ...here.
9329         * config/mips/mips.md (load_const_gp): Replace with...
9330         (load_const_gp_<mode>): ...this :P-based insn.
9331
9332 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9333
9334         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9335         options. Minor fixes.
9336         (-std): Move reference to standards closer to where language
9337         standards are first mentioned.
9338         
9339 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9340
9341         PR rtl-optimization/34995
9342         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9343         parameter and return a bool.  If the rtx parameter is nonnull,
9344         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9345         (find_reloads): Update call accordingly.  Pass the new operand
9346         if it needed no address reloads, otherwise pass null.
9347
9348 2008-01-30  Richard Henderson  <rth@redhat.com>
9349
9350         PR c/34993
9351         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9352         for unbounded arrays.
9353
9354 2008-01-30  Silvius Rus  <rus@google.com>
9355
9356         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9357
9358 2008-01-30  Jan Hubicka  <jh@suse.cz>
9359
9360         PR target/34982
9361         * i386.c (init_cumulative_args): Use real function declaration when
9362         calling locally.
9363
9364 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9365
9366         PR rtl-optimization/34998
9367         * global.c (build_insn_chain): Treat non-subreg_lowpart
9368         SUBREGs of pseudos as clobbering all the words covered by the
9369         SUBREG, not just all the bytes.
9370         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9371         original df_ref rather than an extract parameter.
9372         (global_conflicts): Update call accordingly.
9373
9374 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9375
9376         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9377         the overflow check to make it easier to read.
9378         (__fixtfdi): Change the type of the ll member in union
9379         long_double to UDItype_x.
9380
9381 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9382
9383         PR middle-end/34969
9384         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9385         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9386         * tree-inline.c (fold_marked_statements): Call
9387         cgraph_update_edges_for_call_stmt if folding a call statement.
9388         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9389         debug_generic_stmt calls, reset it back afterwards.
9390
9391         PR c/35017
9392         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9393         static decls.
9394         * c-typeck.c (build_external_ref): Don't pedwarn about
9395         static vars in current function's scope.
9396
9397 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9398
9399         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9400
9401 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9402
9403         PR c/35002
9404         * ipa-struct-reorg.c: Fix spelling.
9405         * params.def: Ditto.
9406
9407 2008-01-29  Richard Guenther  <rguenther@suse.de>
9408
9409         PR middle-end/35006
9410         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9411         field.
9412         * tree-inline.c (remap_type): Increment remapping_type_depth
9413         around remapping types.
9414         (copy_body_r): Only add referenced variables if they are referenced
9415         from code, not types.
9416
9417 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9418
9419         PR c++/34055
9420         PR c++/34103
9421         PR c++/34219
9422         PR c++/34606
9423         PR c++/34753
9424         PR c++/34754
9425         PR c++/34755
9426         PR c++/34919
9427         PR c++/34961
9428         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9429         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9430
9431 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9432
9433         PR target/34412
9434         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9435         pointer for tiny stack.
9436
9437 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9438
9439         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9440
9441 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9442
9443         * config/vx-common.h: Fix typo in comment.
9444
9445 2008-01-28  Ian Lance Taylor  <iant@google.com>
9446
9447         PR c++/34862
9448         PR c++/33407
9449         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9450         coalesce pointers if they have different DECL_NO_TBAA_P values.
9451         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9452         between variables with different DECL_NO_TBAA_P values.
9453
9454 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9455
9456         PR 31535
9457         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9458         are not legitimate small data references on SPE targets.
9459
9460 2008-01-28  David Daney  <ddaney@avtrex.com>
9461
9462         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9463
9464 2008-01-28  David Daney  <ddaney@avtrex.com>
9465
9466         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9467
9468 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9469
9470         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9471         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9472         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9473         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9474         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9475         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9476         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9477         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9478
9479 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9480
9481         * basic-block.h (condjump_equiv_p): Fix comment.
9482
9483 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9484
9485         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9486         print_generic_stmt_indented): Fix comment.
9487
9488 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9489
9490         * configure.ac (__stack_chk_fail): Add detecion for availability
9491         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9492         * configure: Regenerate.
9493
9494 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9495
9496         PR middle-end/34688
9497         * final.c (output_addr_const): Handle TRUNCATE.
9498
9499 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9500
9501         PR target/34711
9502         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9503         (zero_cost, infinite_cost): New constants.
9504         (struct cost_pair): Change type of cost to comp_cost.
9505         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9506         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9507         New functions.
9508         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9509         split_address_cost, ptr_difference_cost, difference_cost,
9510         get_computation_cost_at, get_computation_cost,
9511         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9512         determine_use_iv_cost_condition, determine_use_iv_costs,
9513         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9514         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9515         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9516         Change type of cost to comp_cost.
9517         (determine_iv_cost): Increase cost of non-original ivs, instead
9518         of decreasing the cost of original ones.
9519         (get_address_cost): Indicate the complexity of the addressing mode 
9520         in comp_cost.
9521         (try_add_cand_for): Prefer using ivs not specific to some object.
9522         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9523
9524 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9525             Janis Johnson  <janis187@us.ibm.com>
9526
9527         PR target/34814
9528         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9529         (TARGET_INSTANTIATE_DECLS): Likewise.
9530         * target.h (expand_to_rtl_hook): New target hook.
9531         (instantiate_decls): Likewise.
9532         * function.c (instantiate_decl): Make non-static.  Rename to...
9533         (instantiate_decl_rtl): ... this.
9534         (instantiate_expr): Use instantiate_decl_rtl.
9535         (instantiate_decls_1): Likewise.
9536         (instantiate_decls): Likewise.
9537         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9538         * function.h (instantiate_decl_rtl): Add prototype.
9539         * cfgexpand.c (target.h): New include.
9540         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9541         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9542         (TARGET_INSTANTIATE_DECLS): Likewise.
9543         (TARGET_INITIALIZER): New target hooks added.
9544         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9545         New prototype.
9546         * config/rs6000/rs6000.c (tree-flow.h): New include.
9547         (machine_function): Add sdmode_stack_slot field.
9548         (rs6000_alloc_sdmode_stack_slot): New function.
9549         (rs6000_instantiate_decls): Likewise.
9550         (rs6000_secondary_memory_needed_rtx): Likewise.
9551         (rs6000_check_sdmode): Likewise.
9552         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9553         (TARGET_INSTANTIATE_DECLS): Likewise.
9554         (rs6000_hard_regno_mode_ok): Allow SDmode.
9555         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9556         (rs6000_emit_move): Handle SDmode.
9557         (function_arg_advance): Likewise.
9558         (function_arg): Likewise.
9559         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9560         SDmode var args for 32-bit compiles.
9561         (rs6000_secondary_reload_class): Handle SDmode.
9562         (rs6000_output_function_epilogue): Likewise.
9563         (rs6000_function_value): Simplify if statement.
9564         (rs6000_libcall_value): Likewise.
9565         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9566         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9567         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9568         (movsd_hardfloat): New define_insn.
9569         (movsd_softfloat): Likewise.
9570         (movsd_store): Likewise.
9571         (movsd_load): Likewise.
9572         (extendsddd2): Likewise.
9573         (extendsdtd2): Likewise.
9574         (truncddsd2): Likewise.
9575         (movdd_hardfloat64): Fixup comment.
9576         (UNSPEC_MOVSD_LOAD): New constant.
9577         (UNSPEC_MOVSD_STORE): Likewise.
9578
9579 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9580
9581         PR c++/34965
9582         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9583         TRUTH_XOR_EXPR.
9584         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9585         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9586         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9587         and TRUTH_XOR_EXPR.
9588
9589 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9590
9591         PR target/34794
9592         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9593         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9594         __LONGDOUBLE128 too.
9595         * config/rs6000/aix61.h: New file.
9596
9597 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9598
9599         PR rtl-optimization/34959
9600         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9601         popcount and parity rtxes the same mode as their operand.
9602         Truncate or extend the result to the return value's mode
9603         if necessary.
9604
9605 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9606
9607         PR target/34981
9608         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9609         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9610         to GOT_VERSION_REGNUM.
9611         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9612         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9613         * config/mips/mips.c (mips_emit_call_insn): New function.
9614         (mips_call_tls_get_addr): Call mips_expand_call directly.
9615         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9616         emit_call_insn.
9617         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9618         (mips_expand_call): Update the call to mips16_build_call_stub
9619         accordingly and a remove redundant condition.  Assert that MIPS16
9620         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9621         the call insn.
9622         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9623         TARGET_USE_GOT.
9624         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9625         (mips_avoid_hazard): Remove hazard_set handling.
9626         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9627         (UNSPEC_RESTORE_GP): ...this.
9628         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9629         (FAKE_CALL_REGNO): Rename to...
9630         (GOT_VERSION_REGNUM): ...this.
9631         (type): Add "ghost" value.  Add an associated insn reservation.
9632         (hazard_set): Remove.
9633         (exception_receiver): Rename to...
9634         (restore_gp): ...this and update the unspec identifier accordingly.
9635         (exception_receiver, nonlocal_got_receiver): New expanders.
9636         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9637         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9638         (set_got_version, update_got_version): New patterns.
9639
9640 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9641
9642         PR target/34970
9643         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9644
9645 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9646
9647         PR other/31955
9648         * doc/install.texi2html: Generate gcc-vers.texi.
9649
9650 2008-01-25  DJ Delorie  <dj@redhat.com>
9651
9652         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9653
9654 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9655
9656         * config/c4x: Remove directory.
9657         * config.gcc (crx-*, mt-*): Mark obsolete.
9658         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9659         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9660         sh-*-rtemscoff*): Remove cases.
9661         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9662         * real.c (encode_c4x_single, decode_c4x_single,
9663         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9664         c4x_extended_format): Remove.
9665         * real.h (c4x_single_format, c4x_extended_format): Remove.
9666         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9667         on C4x.
9668         (Pragmas): Remove comment about c4x pragmas.
9669         * doc/install.texi (c4x): Remove target-specific instructions.
9670         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9671         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9672         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9673         refer to C4x source files as examples.
9674         (C4X_FLOAT_FORMAT): Remove documentation.
9675
9676 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9677
9678         * config/bfin/bfin.c (override_options): Reorder tests so that
9679         flag_pic gets enabled for -msep-data.
9680
9681 2008-01-25  Richard Guenther  <rguenther@suse.de>
9682
9683         PR middle-end/32244
9684         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9685         to its bitfield precision if required.
9686
9687 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9688
9689         PR middle-end/33880
9690         * tree-nested.c (walk_omp_for): New function.
9691         (convert_nonlocal_reference, convert_local_reference): Call
9692         walk_omp_for on OMP_FOR.
9693         (convert_call_expr): Call walk_body on OMP_FOR's
9694         OMP_FOR_PRE_INIT_BODY.
9695
9696 2008-01-25  Richard Guenther  <rguenther@suse.de>
9697
9698         PR tree-optimization/34966
9699         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9700         default defs and PHI_NODEs we have to insert after the
9701         defining statement.
9702
9703 2008-01-24  Nick Clifton  <nickc@redhat.com>
9704
9705         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9706         Provide a default definition.
9707         (LIBGCC2_UNITS_PER_WORD): Likewise.
9708
9709         * config/stormy16/stormy16.c: Include df.h for the prototype
9710         for df_regs_ever_live_p.
9711         (xstormy16_expand_builtin_va_start): Convert the stack offset
9712         into a component_ref and then use POINTER_PLUS_EXPR to add it
9713         to the incoming_virtual_args_rtx.
9714         (xstormy16_gimplify_va_arg_expr): Rename to
9715         xstormy16_gimplify_va_arg_expr.
9716         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9717         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9718         xstormy16_gimplify_va_arg_expr.
9719         Fix up some formatting issues.
9720
9721         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9722         Move to predicates.md.
9723         (xs_hi_general_operand): Likewise.
9724         (xs_hi_nonmemory_operand): Likewise.
9725         * config/stormy16/predicates.md:
9726         (xstormy16_carry_plus_operand): New predicate.
9727         (xs_hi_general_operand): New predicate.
9728         (xs_hi_nonmemory_operand): New predicate.
9729         * config/stormy16/stormy16-protos.h:
9730         (xstormy16_carry_plus_operand): Delete prototype.
9731         (xs_hi_general_operand): Likewise.
9732         (xs_hi_nonmemory_operand): Likewise.
9733
9734         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9735         modifiers as they are no longer needed and they can trigger
9736         reload spill failures.
9737
9738         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9739         with a match_operand in order to help reload.
9740
9741         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9742         constraint with 'e' for the 8th alternative as this version of
9743         the mov.w instruction only accepts the lower 8 registers.
9744
9745 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9746
9747         PR target/34856
9748         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9749         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9750         vector elements.
9751
9752 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9753
9754         PR middle-end/33333
9755         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9756
9757 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9758
9759         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9760         New functions.
9761         (remove_structure): Update allocations list before removing structure.
9762         
9763 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9764
9765         * ipa-struct-reorg.c (is_safe_cond_expr, 
9766         create_new_stmts_for_cond_expr): Use integer_zerop function,
9767         that recognize not only zero-pointer, but zero-integer too.
9768
9769 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9770
9771         PR other/22232
9772         * fixproto: Escape "." in sed expression that strips leading "./".
9773
9774 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9775
9776         PR driver/34904
9777         * gcc.c (SWITCH_OK): Removed.
9778         (SWITCH_LIVE): Changed to bit.
9779         (SWITCH_FALSE): Likewise.
9780         (SWITCH_IGNORE): Likewise.
9781         (switchstr): Change live_cond to unsigned int.
9782         (process_command): Replace SWITCH_OK with 0.
9783         (do_self_spec): Likewise.
9784         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9785         (give_switch): Likewise.
9786         (used_arg): Likewise.
9787         (do_spec_1): Set the SWITCH_IGNORE bit.
9788         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9789         bits.  Set the SWITCH_LIVE bit.
9790
9791 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9792
9793         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9794
9795 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9796
9797         PR tree-optimization/34472
9798         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9799         parameter to a "bool *" and set *DATA to false if there is
9800         an unsafe access.  Do not delete the structure here.
9801         (check_cond_exprs): Delete it here instead.
9802         (check_cond_exprs, exclude_cold_structs): Do not increase
9803         I when removing a structure.
9804
9805 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9806
9807         PR target/34856
9808         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9809         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9810
9811 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9812
9813         PR middle-end/34934
9814         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9815         a fixed vector for stack.
9816
9817 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9818
9819         PR c++/25701
9820         * doc/gcc.texi (Software development): Add a direntry for g++.
9821         
9822 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9823
9824         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9825         stale and straggling -fforce-addr comments above.
9826
9827         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9828         define.
9829         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9830         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9831
9832 2008-01-23  Michael Matz  <matz@suse.de>
9833
9834         PR debug/34895
9835         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9836         gen_type_die.
9837
9838 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9839
9840         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9841         malloc result type.
9842
9843 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9844
9845         * config/avr/avr.c (avr_current_arch): New variable.
9846         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9847         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9848         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9849         (avr_override_options): Init 'avr_current_arch'. 
9850         (base_arch_s): Move from here...
9851         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9852         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9853         'mega' to 'have_jmp_call'.
9854         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9855         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9856         macros.
9857         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9858         architectures.
9859         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9860         MULTILIB_MATCHES): (Ditto.).
9861
9862 2008-01-23  Richard Guenther  <rguenther@suse.de>
9863
9864         PR middle-end/31529
9865         * cgraphunit.c (cgraph_reset_node): Always mark the node
9866         not reachable if it is not queued already.
9867
9868 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9869
9870         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
9871         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
9872         (cputype_selected): New static variable.
9873         (bfin_handle_option): Set it if -mcpu is used.
9874         (override_option): Select default set of workarounds if no cpu type
9875         selected on the command line.
9876         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
9877
9878         From  Michael Frysinger  <michael.frysinger@analog.com>
9879         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
9880         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
9881
9882         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
9883         for bf547, bf523, bf524, and bf526.
9884         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
9885         bf526.
9886         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9887         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
9888         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
9889         __ADSPBF547__ and __ADSPBF54x__ for bf547.
9890         * doc/invoke.texi (Blackfin Options): Document that
9891         -mcpu now accept bf547, bf523, bf524, and bf526.
9892
9893 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9894
9895         PR rtl-optimization/34628
9896         * combine.c (try_combine): Stop and undo after the first combination
9897         if an autoincrement side-effect on the first insn has effectively
9898         been lost.
9899
9900 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
9901
9902         PR target/34529
9903         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9904         Offset addresses are not valid for Altivec or paired float modes.
9905
9906 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
9907
9908         PR c++/34607
9909         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
9910         if DECL_INITIAL (decl) is error_mark_node.
9911
9912         PR c++/34914
9913         * c-common.c (handle_vector_size_attribute): Only allow
9914         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
9915         the same way as pointer, array etc. types.
9916         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
9917
9918         PR c++/34917
9919         * tree.c (build_type_attribute_qual_variant): Call
9920         build_qualified_type if attributes are equal, but quals are not.
9921
9922 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9923
9924         PR 32102
9925         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
9926         * flags.h (warn_strict_aliasing): Remove.
9927         (warn_strict_overflow): Remove.
9928         * opts.c (warn_strict_aliasing): Remove.
9929         (warn_strict_overflow): Remove.
9930         * c-opts.c (c_common_handle_option): -Wall only sets
9931         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
9932         (c_common_post_options): Give default values to -Wstrict-aliasing
9933         and -Wstrict-overflow if they are uninitialized.
9934         * common.opt (Wstrict-aliasing): Specify Var and Init.
9935         (Wstrict-overflow): Likewise.
9936
9937 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9938
9939         PR rtl-optimization/26854
9940         PR rtl-optimization/34400
9941         PR rtl-optimization/34884
9942         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
9943         DF_RD->gen.
9944         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
9945         (df_rd_bb_info.expanded_lr_out): Deleted
9946         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
9947         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
9948         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
9949         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
9950         Removed code to allocate, initialize or free expanded_lr_out.
9951         (df_rd_bb_local_compute_process_def): Restructured to make more
9952         understandable.
9953         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
9954         sets if the sets are being trimmed.
9955
9956 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9957
9958         PR bootstrap/32287
9959         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
9960         (as_vers): Likewise.
9961         * configure: Regenerated.
9962
9963 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9964
9965         PR middle-end/33092
9966         * tree-pass.h (pass_build_alias): New pass.
9967         * tree-ssa-alias.c (gate_build_alias): New.
9968         (pass_build_alias): New.
9969         * passes.c (init_optimization_passes): Add pass_build_alias after
9970         pass_create_structure_vars.
9971
9972 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
9973
9974         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
9975         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
9976         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
9977         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
9978         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
9979         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
9980         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
9981         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
9982         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
9983         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
9984         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
9985         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
9986         * config/s390/s390.md (FP_ALL): New mode iterator.
9987         (_d): New mode attribute.
9988         ("*signbit<mode>2>"): Changed mode of first operand.
9989         ("isinf<mode>2"): Changed mode of first operand.
9990         ("*TDC_insn"): Adaptation for DFP modes.
9991
9992 2008-01-22  Ben Elliston  <bje@au.ibm.com>
9993
9994         * tree.c (check_qualified_type): Improve function description.
9995
9996 2008-01-21  Jason Merrill  <jason@redhat.com>
9997
9998         PR c++/34196
9999         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
10000         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
10001         if it is set.
10002
10003 2008-01-21  DJ Delorie  <dj@redhat.com>
10004
10005         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
10006         return zero.
10007
10008 2008-01-21  Richard Guenther  <rguenther@suse.de>
10009
10010         PR middle-end/34856
10011         * tree-cfg.c (verify_expr): Allow all invariant expressions
10012         instead of just constant class ones as reference argument.
10013         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
10014         like any other constant.
10015         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
10016
10017 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
10018
10019         * regmove.c (fixup_match_1): Update call crossed frequencies.
10020
10021 2008-01-21  Richard Guenther  <rguenther@suse.de>
10022
10023         PR c/34885
10024         * tree-inline.c (setup_one_parameter): Deal with mismatched
10025         types using a VIEW_CONVERT_EXPR.
10026
10027 2008-01-21  Alon Dayan  <alond@il.ibm.com>
10028             Olga Golovanevsky  <olga@il.ibm.com>
10029         
10030         PR tree-optimization/34701
10031         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
10032         when the structure size is not a power of 2.
10033
10034 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
10035
10036         * doc/install.texi: Add doc for --enable-checking=df.
10037         
10038 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10039
10040         PR rtl-optimization/34808
10041         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
10042
10043 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10044
10045         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
10046         input.
10047
10048 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
10049
10050         PR rtl-optimization/26854
10051         PR rtl-optimization/34400
10052         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10053         DF_RD->gen.
10054         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10055         (df_rd_bb_info.expanded_lr_out): New.
10056         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10057         * loop_iv.c (iv_analysis_loop_init): Ditto.
10058         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10059         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10060         Added code to allocate, initialize or free expanded_lr_out.
10061         (df_rd_bb_local_compute_process_def): Restructured to make
10062         more understandable.
10063         (df_rd_confluence_n): Add code to do nothing with fake edges and
10064         code to no apply invalidate_by_call sets if the sets are being trimmed.
10065         (df_lr_local_finalize): Renamed to df_lr_finalize.
10066         (df_live_local_finalize): Renamed to df_live_finalize.
10067
10068 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10069
10070         PR target/34831
10071         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10072         deciding whether to use reciprocal instructions.
10073
10074 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10075
10076         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10077         dwarf2out_note_section_used if cold_text_section is NULL.
10078
10079 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10080
10081         PR gcov-profile/34610
10082         * tree-cfg.c (make_edges): Mark both outgoing edges from
10083         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10084         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10085         from OMP_FOR and OMP_CONTINUE outgoing edges.
10086
10087         * tree-profile.c (tree_profiling): Return early if
10088         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10089         at the end.
10090         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10091         from cfun to child_cfun.
10092         * function.h (struct function): Add after_tree_profile bit.
10093
10094 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10095
10096         * config/avr/avr.S (_exit): Disable interrupt.
10097
10098 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10099             Steven Bosscher  <stevenb.gcc@gmail.com>
10100
10101         PR rtl-optimization/26854
10102         PR rtl-optimization/34400
10103         * df-problems.c (df_live_scratch): New scratch bitmap.
10104         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10105         (df_live_reset): Clear the proper bitmaps.
10106         (df_live_bb_local_compute): Only process the artificial defs once
10107         since the order is not important.
10108         (df_live_init): Init the df_live sets only with the variables
10109         found live by df_lr.
10110         (df_live_transfer_function): Use the df_lr sets to prune the
10111         df_live sets as they are being computed.  
10112         (df_live_free): Free df_live_scratch.
10113
10114 2008-01-18  Ian Lance Taylor  <iant@google.com>
10115
10116         * common.opt: Add fmerge-debug-strings.
10117         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10118         flag_merge_debug_strings rather than flag_merge_constants.
10119         * doc/invoke.texi (Option Summary): Mention
10120         -fmerge-debug-strings.
10121         (Debugging Options): Document -fmerge-debug-strings.
10122
10123 2008-01-18  Ian Lance Taylor  <iant@google.com>
10124
10125         PR c++/33407
10126         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10127         (struct tree_function_decl): Add new field operator_new_flag.
10128         * tree-inline.c (expand_call_inline): When inlining a call to
10129         operator new, force the return value to go into a variable, and
10130         set DECL_NO_TBAA_P on that variable.
10131         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10132
10133 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10134
10135         PR debug/34484
10136         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10137         DWARF2_DEBUGGING_INFO.
10138         (dwarf2out_note_section_used): Ditto.  Add prototype.
10139         (have_multiple_function_sections, text_section_used,
10140         cold_text_section_used, *cold_text_sections): Move declarations
10141         before their uses.
10142
10143 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10144
10145         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10146         field and add signal_ra.
10147         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10148         assignments to frame state pc.  Move end of stack check after
10149         MD_FALLBACK_FRAME_STATE_FOR.
10150         (uw_update_context_1): Use frame state signal_regs if set, instead
10151         of checking signal_frame flag.
10152         (uw_update_context): Use frame state signal_ra if set.
10153         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10154         * config/xtensa/linux-unwind.h: New file.
10155
10156 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10157
10158         * modulo-sched.c (get_sched_window): Fix comment typo.
10159
10160 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10161
10162         PR tree-optimization/34648
10163         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10164
10165 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10166
10167         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10168         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10169
10170 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10171
10172         PR rtl-optimization/34400
10173         * df-core.c (df_worklist_dataflow_overeager,
10174         df_worklist_dataflow_doublequeue): New functions.
10175         (df_worklist_dataflow): Two different worklist solvers.
10176         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10177         New param.
10178
10179 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10180
10181         PR testsuite/34821
10182         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10183         and ftree-parallelize-loops.
10184
10185 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10186
10187         PR rtl-optimization/34826
10188         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10189
10190 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10191
10192         * global.c (find_reg): Mark the eh regs as used if necessary.
10193         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10194         * ra.h (struct allocno): no_eh_reg field added.  Changed
10195         no_stack_reg type to bitfield.
10196
10197 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10198
10199         * tree.c (substitute_in_expr): Add missing 'break'.
10200
10201 2008-01-17  Richard Guenther  <rguenther@suse.de>
10202
10203         PR tree-optimization/34825
10204         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10205         x / x as division to handle.
10206
10207 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10208
10209         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10210         "-pthread" is specified.
10211         * pa-hpux11.h (LIB_SPEC): Likewise.
10212
10213 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10214             Peter Bergner  <bergner@vnet.ibm.com>
10215
10216         PR rtl-optimization/33796
10217         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10218
10219 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10220
10221         PR libgfortran/34699
10222         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10223         static links.
10224         * pa-hpux10.h (LINK_SPEC): Likewise.
10225         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10226
10227 2008-01-16  Richard Guenther  <rguenther@suse.de>
10228
10229         PR middle-end/32628
10230         * fold-const.c (fold_convert_const_int_from_int): Do not
10231         set overflow if that occured only because of a sign extension
10232         change when converting from/to a sizetype with the same
10233         precision and signedness.
10234
10235 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10236
10237         PR debug/34249
10238         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10239         location address to the correct place.  Update copyright year.
10240
10241 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10242
10243         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10244         no dependences in the dependence_relations vector.
10245
10246 2008-01-16  Jan Hubicka  <jh@suse.cz>
10247
10248         PR rtl-optimization/31396
10249         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10250         * cfg.c (dump_reg_info): Print it.
10251         * regs.h (struct reg_info_t): add freq_calls_crossed.
10252         (REG_FREQ_CALLS_CROSSED): New macro.
10253         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10254         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10255         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10256         regmove_optimize): Update call crossed frequencies.
10257         * local-alloc.c (struct qty): Add freq_calls_crossed.
10258         (alloc_qty): Copute freq_calls_crossed.
10259         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10260         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10261         * ra.h (struct allocno): Add freq_calls_crossed.
10262
10263 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10264
10265         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10266         libgomp when compiling with ftree-parallelize-loops.
10267         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10268
10269 2008-01-16  Richard Guenther  <rguenther@suse.de>
10270
10271         PR tree-optimization/34769
10272         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10273         * tree.c (int_cst_value): Instead make this function more
10274         permissive in what it accepts as valid input.  Document this
10275         function always sign-extends the value.
10276
10277 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10278             Richard Guenther  <rguenther@suse.de>
10279
10280         PR c/34668
10281         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10282         (gimple_fold_indirect_ref_rhs): ... this.
10283         (gimple_fold_indirect_ref): New function with foldings
10284         that preserve lvalueness.
10285         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10286         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10287         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10288         to fold an INDIRECT_REF, fall back to the old use of
10289         fold_indirect_ref_1.
10290
10291 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10292
10293         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10294         free_conflict_function.
10295         (compute_self_dependence): Same.
10296
10297 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10298
10299         PR debug/34249
10300         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10301         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10302         function global.
10303         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10304         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10305         for DWARF2_UNWIND_INFO targets.
10306
10307 2008-01-16  Richard Guenther  <rguenther@suse.de>
10308
10309         PR c/34768
10310         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10311         type qualifiers for function types.
10312
10313 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10314
10315         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10316         loop_iterator li from previous commit.
10317
10318 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10319
10320         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10321
10322 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10323
10324         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10325         (parallelize_loops): Don't parallelize irreducible components.
10326
10327 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10328
10329         PR c++/24924
10330         * c-opts (c_common_post_options): Do not enable CPP
10331         flag_pedantic_errors by default.
10332         
10333 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10334
10335         PR rtl-optimization/31944
10336         * cse.c (remove_pseudo_from_table): New function.
10337         (merge_equiv_classes): Use above function to remove pseudo-registers.
10338         (invalidate): Likewise.
10339
10340 2008-01-13  Richard Guenther  <rguenther@suse.de>
10341
10342         PR middle-end/34601
10343         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10344         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10345
10346 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10347
10348         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10349         validate_change to unshare the source of the PC set.
10350
10351 2008-01-12  Jan Hubicka  <jh@suse.cz>
10352
10353         PR middle-end/32135
10354         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10355         references above array bounds.  This might trigger bounds checks for
10356         pointers to arrays.
10357
10358 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10359
10360         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10361         new_replaceable_dependencies.
10362
10363 2008-01-12  Doug Kwan  <dougkwan@google.com>
10364
10365         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10366         instead of OPT_Wreturn_type in warning due to ignored return type
10367         qualifiers.
10368         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10369         options included in -Wextra.
10370         * c.opt: New option -Wignored_qualifiers.
10371         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10372         -Wignore_qualifiers.
10373         (-Wignored-qualifiers): Document.
10374         (-Wreturn-type): Remove description of functionality now handled
10375         by -Wignored-qualifiers.
10376
10377 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10378
10379         PR ada/33788
10380         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10381         NOP_EXPR if it is between integral types with the same precision.
10382
10383 2008-01-12  Jan Hubicka  <jh@suse.cz>
10384
10385         PR other/28023
10386         * invoke.texi (max-inline-recursive-depth): Fix default value.
10387
10388 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10389
10390         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10391         correct type.
10392
10393 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10394         
10395         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10396         
10397 2008-01-11  James E. Wilson  <wilson@specifix.com>
10398
10399         PR target/26015
10400         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10401
10402 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10403
10404         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10405         save/restore frame pointer register and don't use 'call-prologues' 
10406         optimization in function with "OS_task" attribute.
10407
10408 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10409
10410         PR middle-end/31309
10411         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10412         when copying to memory.
10413
10414 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10415
10416         PR rtl-optimization/30905
10417         * cfgcleanup.c: Include dce.h
10418         (crossjumps_occured): New global variable.
10419         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10420         If something changed, set crossjumps_occured to true.
10421         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10422         Don't add/remove fake edges to exit here...
10423         (cleanup_cfg): ...but do it here, when crossjumping.
10424         Run a fast DCE when successful crossjumps occured in the latest
10425         iteration of try_optimize_cfg.
10426
10427 2008-01-11  Richard Guenther  <rguenther@suse.de>
10428
10429         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10430         (struct vn_unary_op_s): Likewise.
10431         (vn_reference_insert): Free old reference on hash collision.
10432
10433 2008-01-10  Raksit Ashok  <raksit@google.com>
10434
10435         PR rtl-optimization/27971
10436         * combine.c (find_split_point): Split PLUS expressions which are
10437         inside a MEM rtx, and whose first operand is complex.
10438
10439 2008-01-10  DJ Delorie  <dj@redhat.com>
10440
10441         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10442         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10443         (m32c_hard_regno_ok): Call the underlying function.
10444
10445 2008-01-10  Richard Guenther  <rguenther@suse.de>
10446
10447         PR middle-end/34683
10448         * tree-cfg.c (tree_merge_blocks): Do not go through the
10449         full-blown folding and stmt updating path if we just deal
10450         with virtual operands.
10451         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10452         test for abnormal SSA_NAMEs.
10453
10454 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10455
10456         PR middle-end/34641
10457         * reload.c (push_reload): Add assertions.  All constants from
10458         reg_equiv_constant should have been used for replacing the respective
10459         pseudo earlier.
10460         (find_reloads_address): Invoke find_reloads_address_part for
10461         constant taken from the reg_equiv_constant array.
10462
10463 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10464
10465         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10466         field (valnum) the first in the struct.  Replace bools with
10467         unit bit fields.
10468
10469 2008-01-10  Richard Guenther  <rguenther@suse.de>
10470
10471         PR tree-optimization/34651
10472         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10473         types and ordering for masking and converting.
10474
10475 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10476
10477         PR tree-optimization/34017
10478         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10479         also for PHI_NODE expressions.
10480
10481 2008-01-09  Jan Hubicka  <jh@suse.cz>
10482
10483         PR tree-optimization/34708
10484         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10485         based on number of case labels.
10486         (init_inline_once): Remove switch_cost.
10487         * tree-inline.h (eni_weights_d): Remove switch_cost.
10488
10489 2008-01-09  Richard Guenther  <rguenther@suse.de>
10490         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10491
10492         PR middle-end/30132
10493         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10494         temporary if an rvalue is ok or an lvalue is not required.
10495
10496 2008-01-09  Richard Guenther  <rguenther@suse.de>
10497
10498         PR middle-end/34458
10499         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10500         adjust return type.
10501
10502 2008-01-09  Richard Guenther  <rguenther@suse.de>
10503
10504         PR middle-end/34679
10505         * tree.c (host_integerp): Check for sizetype only if the
10506         type is an integer type.
10507
10508 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10509
10510         PR debug/26364
10511         * opts.c (decode_options): Disable inlining of functions called
10512         once if not in unit-at-a-time mode.
10513
10514 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10515
10516         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10517
10518 2008-01-08  Richard Guenther  <rguenther@suse.de>
10519
10520         PR middle-end/31863
10521         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10522         out early if the result will be unused.
10523
10524 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10525
10526         PR target/34709
10527         Revert:
10528
10529         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10530         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10531         for TARGET_RECIP.       
10532         
10533 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10534         
10535         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10536         for vectorization tuned.
10537         
10538 2008-01-08  Richard Guenther  <rguenther@suse.de>
10539
10540         PR tree-optimization/34683
10541         * tree-ssa-operands.c (operand_build_cmp): Export.
10542         * tree-ssa-operands.h (operand_build_cmp): Declare.
10543         * tree-vn.c (vuses_compare): Remove.
10544         (sort_vuses): Use operand_build_cmp.
10545         (sort_vuses_heap): Likewise.
10546         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10547         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10548         (vdefs_to_vec): Do not sort already sorted VDEFs.
10549
10550 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10551
10552         PR middle-end/34694
10553         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10554
10555 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10556
10557         PR target/34702
10558         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10559         limitations of reciprocal sequences on x86 targets.
10560
10561 2008-01-08  Richard Guenther  <rguenther@suse.de>
10562
10563         PR tree-optimization/34683
10564         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10565
10566 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10567
10568         PR target/34622
10569         * config/darwin.c (darwin_mergeable_string_section): Don't use
10570         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10571
10572 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10573
10574         PR target/34682
10575         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10576         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10577         predicates of op0 and op1 to register_operand.
10578         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10579         expander using X87MODEF mode iterator.  Change predicates of
10580         op0 and op1 to register_operand.
10581         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10582         corresponding patterns and macroize using MODEF macro.  Change
10583         predicates of op0 and op1 to register_operand and remove
10584         "m" constraint. Disparage "r" alternative with "!".
10585         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10586         macroize using X87MODEF macro.  Change predicates of op0 and op1
10587         to register_operand and remove "m" constraint.  Disparage "r"
10588         alternative with "!".
10589         (absneg splitter with memory operands): Remove.
10590         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10591         patterns and macroize using X87MODEF mode iterator.
10592         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10593         Change predicate of op1 to register_operand.
10594         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10595         for memory operands.
10596
10597 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10598
10599         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10600
10601 2008-01-07  Richard Guenther  <rguenther@suse.de>
10602
10603         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10604         fields.
10605
10606 2008-01-07  Richard Guenther  <rguenther@suse.de>
10607
10608         PR tree-optimization/34683
10609         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10610         VOPs of the needed size to save memory.  Use VEC_quick_push
10611         to save compile-time.
10612         (vdefs_to_vec): Likewise.
10613
10614 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10615
10616         * config/spu/spu.md (divdf3): Genetate inline code for double
10617         division.  The implementation doesn't handle INF or NAN, therefore it
10618         only applies when -ffinite-math-only is given.
10619
10620 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10621
10622         PR libstdc++/34680
10623         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10624         * doc/cpp.texi ([Common Predefined Macros]): Document.
10625
10626 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10627
10628         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10629         order to use commutative addition instead of subtraction.
10630
10631 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10632             Mircea Namolaru  <namolaru@il.ibm.com>
10633             Vladimir Yanovsky  <yanov@il.ibm.com>
10634             Revital Eres  <eres@il.ibm.com>
10635
10636         PR tree-optimization/34263
10637         * tree-outof-ssa.c (process_single_block_loop_latch,
10638         contains_tree_r): New functions.
10639         (analyze_edges_for_bb): Call process_single_block_loop_latch
10640         function to empty single-basic-block latch block if possible.
10641
10642 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10643
10644         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10645         for TARGET_RECIP.
10646         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10647
10648 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10649
10650         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10651
10652 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10653
10654         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10655
10656 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10657
10658         PR tree-optimization/34618
10659         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10660         flag from T.
10661
10662 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10663
10664         PR target/34673
10665         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10666         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10667         Update copyright year.
10668
10669         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10670         Update copyright year.
10671         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10672         using NR fixup.
10673
10674 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10675
10676         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10677         edge does not point to current bb before changing need_assert.
10678
10679 2008-01-04  Richard Guenther  <rguenther@suse.de>
10680
10681         PR middle-end/34029
10682         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10683         for verifying purposes if they are is_gimple_min_invariant.
10684
10685 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10686
10687         PR tree-optimization/34448
10688         PR tree-optimization/34465
10689         * gimplify.c (gimplify_init_constructor): Add new parameter
10690         notify_temp_creation.  Use it.
10691         (gimplify_modify_expr_rhs): Take volatiles into account when
10692         optimizing constructors.
10693         Do not optimize constructors if gimplify_init_constructor will dump to
10694         memory.
10695         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10696         * gcc.c-torture/compile/pr34448.c: New.
10697
10698 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10699
10700         PR gcov-profile/34609
10701         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10702         return_slot if result is TREE_ADDRESSABLE.
10703
10704 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10705
10706         * config/mips/mips.md (sqrt_condition): Tweak comment.
10707         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10708
10709 2008-01-03  Tom Tromey  <tromey@redhat.com>
10710
10711         PR c/34457
10712         * c-common.c (c_type_hash): Handle VLAs.
10713
10714 2008-01-03  Jan Hubicka  <jh@suse.cz>
10715
10716         PR tree-optimization/31081
10717         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10718         0 when inlining and not inlining to first basic block.
10719         (remap_decl): When var is initialized to 0, don't set default_def.
10720         (expand_call_inline): Set entry_bb.
10721         * tree-inline.h (copy_body_data): Add entry_bb.
10722
10723 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10724
10725         PR c++/34619
10726         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10727         before returning.
10728
10729         PR tree-optimization/29484
10730         * tree-inline.c (inline_forbidden_p_2): New function.
10731         (inline_forbidden_p): Disallow inlining if some static var
10732         has an address of a local LABEL_DECL in its initializer.
10733         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10734         vs. inlining.
10735
10736 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10737
10738         PR tree-optimization/34635
10739         * tree-data-ref.c (add_other_self_distances): Make sure that the
10740         evolution step is constant.
10741
10742 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10743
10744         PR middle-end/34608
10745         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10746
10747 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10748
10749         * tree-sra.c (scalarize_init): Insert the generate_element_init
10750         statements after the generate_element_zero statements.
10751
10752 2008-01-02  Richard Guenther  <rguenther@suse.de>
10753
10754         PR middle-end/34093
10755         PR middle-end/31976
10756         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10757         for very large number of operands instead of ICEing.
10758
10759 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10760
10761         PR target/34013
10762         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10763         while stack probing.
10764
10765 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10766
10767         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10768         in C++0x mode.
10769
10770 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10771
10772         PR libmudflap/26442
10773         * tree-mudflap.c (mx_register_decls): Guard warning by
10774         !DECL_ARTIFICIAL check.
10775
10776 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10777
10778         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10779         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10780         sse5_perm<mode>): Fix constraints.