OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2
3         PR target/35767
4         PR target/35771
5         * config/i386/i386.c (ix86_function_arg_boundary): Use
6         alignment of canonical type.
7         (ix86_expand_vector_move): Check unaligned memory access for
8         all SSE modes.
9
10 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
11
12         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
13         Moved to the front of file.
14
15 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
16             H.J. Lu  <hongjiu.lu@intel.com>
17
18         * dwarf2out.c (current_fde): New.
19         (add_cfi): Use it.
20         (lookup_cfa:): Likewise.
21         (dwarf2out_end_epilogue): Likewise.
22         (dwarf2out_note_section_used): Likewise.
23
24 2008-05-27  Michael Matz  <matz@suse.de>
25
26         PR c++/27975
27         * c.opt (Wenum-compare): New warning option.
28         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
29
30 2008-05-27  Michael Matz  <matz@suse.de>
31
32         PR middle-end/36326
33         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
34         non-BLKmode types.
35         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
36         into memory as tail calls.
37
38 2008-05-27  Richard Guenther  <rguenther@suse.de>
39
40         PR tree-optimization/36339
41         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
42         pointers cause all addressable variables to be call clobbered.
43
44 2008-05-27  Richard Guenther  <rguenther@suse.de>
45
46         PR tree-optimization/36245
47         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
48         bases.
49
50 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
51
52         * config/s390/s390.md: Replace all occurences of the 'm'
53         constraint with 'RT'.
54
55 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
56
57         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
58         definitions added.
59         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
60         "*movdi_64".
61         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
62         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
63         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
64
65 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
66
67         * reload.c: (find_reloads): Skip alternatives according to the
68         "enabled" attribute. Constify the constraint variable.
69         * recog.c (get_attr_enabled): Add default implementation.
70         (extract_insn): Set the alternative_enabled_p array
71         in the recog_data struct.
72         (preprocess_constraints, constrain_operands): Skip
73         alternatives according to the "enabled" attribute
74         * recog.h (struct recog_data): New field alternative_enabled_p.
75         (skip_alternative): New inline function.
76         * regclass.c: (record_operand_costs): Check the "enabled"
77         attribute.
78         (record_reg_classes): Skip alternative according to the
79         "enabled" attribute.
80
81         * doc/md.texi: Add documention for the "enabled" attribute.
82
83 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
84
85         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
86         * postreload.c (reload_cse_simplify_operands): Replace 'm'
87         constraint with TARGET_MEM_CONSTRAINT.
88         * recog.c (asm_operand_ok, preprocess_constraints,
89         constrain_operands): Likewise.
90         * regclass.c (record_reg_classes): Likewise.
91         * reload.c (find_reloads, alternative_allows_const_pool_ref):
92         Likewise.
93         * reload1.c (maybe_fix_stack_asms): Likewise.
94         * stmt.c (parse_output_constraint, parse_input_constraint):
95         Likewise.
96         * recog.h: Adjust comment.
97         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
98         * genoutput.c (note_constraint): Don't emit error for 'm'
99         constraint.
100         * doc/md.texi: Add a note to description of 'm' constraint.
101         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
102
103 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
104
105         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
106         that the bitfield is of integral type before testing its precision.
107
108 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
109             Sa Liu  <saliu@de.ibm.com> 
110
111         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
112         __modti3, __udivti3, __umodti3 and __udivmodti4.
113         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
114         that implement TImode mul and div functions.
115         * config/spu/multi3.c: New. Implement __multi3.
116         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
117         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
118         functions on SPU.
119
120 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
121
122         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
123         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
124         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
125         tls_sysv_suffix): New mode and mode attribute iterators.
126         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
127         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
128         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
129         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
130         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
131         iterators.
132
133 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
134
135         PR tree-optimization/36329
136         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
137         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
138         * cgraphbuild.c (initialize_inline_failed): Use the latter
139         macro in lieu of the former.
140         * ipa-inline.c (cgraph_mark_inline): Likewise.
141         (cgraph_decide_inlining_of_small_function): Likewise.
142         (cgraph_decide_inlining): Likewise.
143         (cgraph_decide_inlining_incrementally): Likewise.
144
145 2008-05-26  Tristan Gingold  <gingold@adacore.com>
146             Anatoly Sokolov  <aesok@post.ru>
147
148         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
149         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
150         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
151         optimization for 'avr6' architecture.
152
153 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
154
155         PR target/34932
156         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
157
158 2008-05-26  Richard Guenther  <rguenther@suse.de>
159
160         * tree-ssa-sccvn.c (expr_has_constants): Declare.
161         (visit_reference_op_load): Initialize VN_INFO->has_constants
162         properly.
163
164 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
165
166         PR middle-end/36253
167         * caller-save.c (insert_restore): Verify alignment of spill
168         space.
169         (insert_save): Likewise.
170
171         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
172
173         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
174         (STACK_SLOT_ALIGNMENT): Likewise.
175
176         * function.c (LOCAL_ALIGNMENT): Removed.
177         (get_stack_local_alignment): New.
178         (assign_stack_local): Use it.  Set alignment on stack slot.
179         (assign_stack_temp_for_type): Use get_stack_local_alignment.
180
181         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
182         (STACK_SLOT_ALIGNMENT): New.
183
184         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
185         stack slot in XFmode.
186
187         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
188
189 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
190
191         PR/36321
192         * config/i386/i386.md (allocate_stack_worker_64): Make sure
193         argument operand in rax isn't removed.
194
195 2008-05-26  Richard Guenther  <rguenther@suse.de>
196
197         PR middle-end/36300
198         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
199         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
200
201 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
202
203         PR bootstrap/36331
204         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
205
206 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
207
208         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
209         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
210
211 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
212
213          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
214         build a trampoline if we don't want one.
215         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
216         return zero for nested functions if we don't want a trampoline.
217
218 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
219
220         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
221
222 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
223
224         PR fortran/18428
225         * c.opt: Removed undocumented option '-lang-fortran'.
226         * c-common.h: Removed global variable 'lang_fortran'.
227         * c-opts.c (c_common_handle_option): Removed code to handle
228         option '-lang-fortran'. Updated includes.
229         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
230         definition of '__GFORTRAN__'.
231         (define__GNUC__): Reimplemented to use BASEVER and
232         cpp_define_formatted.
233         (builtin_define_with_value_n): Removed.
234         * c-incpath.h: Renamed to ...
235         * incpath.h: ... this.
236         * c-incpath.c: Renamed to ...
237         * incpath.c: ... this. Updated includes.
238         * fix-header.c: Updated includes.
239         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
240         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
241         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
242
243 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
244
245         * tree.h: Update the table of flags used on tree nodes.
246         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
247         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
248         (FORCED_LABEL): Add access check.
249         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
250         (ASM_INPUT_P): Likewise.
251         (ASM_VOLATILE_P): Likewise.
252         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
253         (OMP_SECTION_LAST): Access private_flag directly.
254         (OMP_RETURN_NOWAIT): Likewise.
255         (OMP_PARALLEL_COMBINED): Likewise.
256         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
257         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
258         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
259         deprecated_flag directly.
260
261 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
262
263         * final.c (frame_pointer_needed): Removed.
264         * flags.h (frame_pointer_needed): Likewise.
265
266         * function.h (rtl_data): Add frame_pointer_needed.
267         (frame_pointer_needed): New.
268
269 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
270
271         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
272
273 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
274
275         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
276         SRC is a REG.
277
278 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
279
280         * c-common.c (strip_array_types): Move function to..
281         * tree.c: ..here.
282         (get_inner_array_type): Delete.
283         * c-common.h (strip_array_types): Move declaration to..
284         * tree.h: ..here.
285         (get_inner_array_type): Delete.
286         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
287         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
288         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
289         * config/pa/pa.c (emit_move_sequence): Likewise.
290
291 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
292
293         * config/i386/i386.md (*sse_prologue_save_insn): Set length
294         attribute to 34.
295
296 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
297
298         * function.c: Include target hook for nonlocal_goto frame value.
299
300 2008-05-24  Richard Guenther  <rguenther@suse.de>
301
302         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
303         a scalar variable can be only accessed through a pointer
304         or a union.
305
306 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
307
308         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
309         * doc/extend.texi: Likewise.
310
311 2008-05-23  DJ Delorie  <dj@redhat.com>
312
313         * config/m32c/jump.md (untyped_call): Add.
314
315         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
316         for A24 to PSImode.
317         (m32c_address_cost): Detail costs for indirect offsets.
318
319 2008-05-23  Rafael Espindola  <espindola@google.com>
320
321         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
322         if a node is a SUBREG.
323         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
324         is a SUBREG.
325
326 2008-05-23  Paul Brook  <paul@codesourcery.com>
327             Carlos O'Donell  <carlos@codesourcery.com>
328
329         * doc/extend.texi: Clarify use of __attribute__((naked)).
330         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
331         * target.h (gcc_target): Add allocate_stack_slots_for_args.
332         * function.c (use_register_for_decl): Use
333         targetm.calls.allocate_stack_slots_for_args.
334         * target-def.h (TARGET_CALLS): Add 
335         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
336         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
337         New function.
338         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
339
340 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
341
342         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
343
344 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
345
346         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
347         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
348         is only rounded once.
349
350 2008-05-23  Richard Guenther  <rguenther@suse.de>
351
352         * tree-ssa-operands.c (mark_difference_for_renaming): Use
353         bitmap_xor.
354
355 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
356             Jakub Jelinek  <jakub@redhat.com>
357
358         PR target/36079
359         * configure.ac: Handle --enable-cld.
360         * configure: Regenerated.
361         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
362         * config/i386/i386.h (struct machine_function): Add needs_cld field.
363         (ix86_current_function_needs_cld): New define.
364         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
365         (cld): New isns pattern.
366         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
367         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
368         * config/i386/i386.opt (mcld): New option.
369         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
370         TARGET_CLD and ix86_current_function_needs_cld.
371         (override_options): Use -mcld by default for 32-bit code if
372         USE_IX86_CLD.
373
374         * doc/install.texi (Options specification): Document --enable-cld.
375         * doc/invoke.texi (Machine Dependent Options)
376         [i386 and x86-64 Options]: Add -mcld option.
377         (Intel 386 and AMD x86-64 Options): Document -mcld option.
378
379 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
380         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
381         (return_in_memory_64): Likewise.
382         (return_in_memory_ms_64): Likewise.
383
384 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
385
386         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
387         * builtins.c (fold_builtin_fpclassify): New.
388         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
389         * builtins.def (BUILT_IN_FPCLASSIFY): New.
390         * c-common.c (handle_type_generic_attribute): Adjust to accept
391         fixed arguments before an elipsis.
392         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
393         * doc/extend.texi: Document __builtin_fpclassify.
394
395 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
396
397         * omp-low.c (gate_expand_omp_ssa): Remove.
398         (pass_expand_omp_ssa): Remove.
399         (gate_expand_omp): Do not check for flag_openmp_ssa.
400         * common.opt (-fopenmp-ssa): Remove.
401         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
402
403 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
404
405         * config/sh/sh.opt (mfixed-range): New option.
406         * config/sh/sh-protos.h (sh_fix_range): Declare.
407         * config/sh/sh.c (sh_fix_range): New function.
408         * config/sh/sh.h (sh_fixed_range_str): Declare.
409         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
410         is not empty.
411         * doc/invoke.texi (SH Options): Document -mfixed-range.
412
413 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
414
415         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
416         it before the redeclaration.
417
418 2008-05-22  Anatoly Sokolov <aesok@post.ru>
419
420         * config/avr/avr.c (get_sequence_length): Add new function.
421         (expand_prologue, expand_epilogue): Remove duplicate code.
422
423 2008-05-22  Rafael Espindola  <espindola@google.com>
424
425         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
426         sharing.
427
428 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
429
430         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
431         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
432
433         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
434         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
435         (vect_update_misalignment_for_peel): Likewise.
436         (vector_alignment_reachable_p): Likewise.
437         * tree-vect-transform.c (vectorizable_load): Likewise.
438         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
439         (get_vectype_for_scalar_type): Pass mode of scalar_type
440         to UNITS_PER_SIMD_WORD.
441
442         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
443         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
444         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
445         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
446         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
447
448 2008-05-22  Ira Rosen  <irar@il.ibm.com>
449
450         PR tree-optimization/36293
451         * tree-vect-transform.c (vect_transform_strided_load): Don't check
452         if the first load must be skipped because of a gap.
453
454 2008-05-22  Richard Guenther  <rguenther@suse.de>
455
456         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
457         more cases of offset disambiguation that is possible if
458         strict-aliasing rules apply.
459         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
460         for basic offset and type-based disambiguation.
461
462 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
463
464         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
465         ix86_expand_vector_set on V16QImode for SSE4.1.
466
467 2008-05-21  Tom Tromey  <tromey@redhat.com>
468
469         * c.opt (Wimport): Mark as undocumented.
470         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
471         -Wno-import.
472         (Warning Options): Likewise.
473         * doc/cppopts.texi: Don't mention -Wimport.
474
475 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
476
477         PR tree-optimization/36287
478         PR tree-optimization/36286
479         * lambda-code.c (build_access_matrix): Do not use the loop->num
480         for computing the number of induction variables: use the loop depth
481         instead.
482
483 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
484
485         PR/36280
486         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
487         option -f(no-)leading-underscore.
488
489 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
490
491         * config/i386/i386.c (ix86_expand_vector_init_general): Use
492         GET_MODE_NUNITS (mode).
493
494 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
495
496         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
497         (-mmulhw): Add 464 to description.
498         (-mdlmzb): Likewise.
499         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
500         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
501         464fp entries.
502         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
503         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
504         * config/rs6000/rs6000.md: Update comments for 464.
505
506 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
507
508         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
509
510 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
511
512         * config/i386/sse.md (vec_extractv4sf): Removed.
513         (vec_extractv2df): Likewise.
514         (vec_extractv2di): Likewise.
515         (vec_extractv4si): Likewise.
516         (vec_extractv8hi): Likewise.
517         (vec_extractv16qi): Likewise.
518         (vec_extract<mode>): New.
519
520 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
521
522         * config/i386/sse.md (vec_setv4sf): Removed.
523         (vec_setv2df): Likewise.
524         (vec_setv2di): Likewise.
525         (vec_setv4si): Likewise.
526         (vec_setv8hi): Likewise.
527         (vec_setv16qi): Likewise.
528         (vec_set<mode>): New.
529
530 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
531
532         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
533         goto for vec_concat and vec_interleave.
534
535 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
536
537         * config/i386/sse.md (vec_initv4sf): Removed.
538         (vec_initv2df): Likewise.
539         (vec_initv2di): Likewise.
540         (vec_initv4si): Likewise.
541         (vec_initv8hi): Likewise.
542         (vec_initv16qi): Likewise.
543         (vec_init<mode>): New.
544
545 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
546
547         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
548
549 2008-05-21  Tom Tromey  <tromey@redhat.com>
550
551         * ggc-zone.c (lookup_page_table_if_allocated): New function.
552         (zone_find_object_offset): Likewise.
553         (gt_ggc_m_S): Likewise.
554         (highest_bit): Likewise.
555         * ggc-page.c (gt_ggc_m_S): New function.
556         * stringpool.c (string_stack): Remove.
557         (init_stringpool): Update.
558         (ggc_alloc_string): Use ggc_alloc.
559         (maybe_delete_ident): New function.
560         (ggc_purge_stringpool): Likewise.
561         (gt_ggc_m_S): Remove.
562         * ggc-common.c (ggc_protect_identifiers): New global.
563         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
564         ggc_protect_identifiers.
565         * ggc.h (ggc_protect_identifiers): Declare.
566         (gt_ggc_m_S): Update.
567         (ggc_purge_stringpool): Declare.
568         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
569         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
570         special case.
571         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
572
573 2008-05-21  David S. Miller  <davem@davemloft.net>
574
575         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
576         tmake_file.
577
578 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
579
580         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
581         once finished.
582
583 2008-05-20  David Daney  <ddaney@avtrex.com>
584
585         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
586         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
587         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
588         UNSPEC_UPDATE_GOT_VERSION): Renumber.
589         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
590         (atomic_hiqi_op): New define_code_iterator.
591         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
592         mips_expand_compare_and_swap_12.
593         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
594         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
595         (sync_<optab><mode>, sync_old_<optab><mode>,
596         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
597         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
598         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
599         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
600         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
601         (test_and_set_12): New insn.
602         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
603         sync_new_<optab><mode>, sync_old_nand<mode>,
604         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
605         clobber to operand 0 for SI and DI mode insns.
606         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
607         mips_gen_fn_4): New typedefs.
608         (mips_gen_fn_ptrs): Define new union type.
609         (mips_expand_compare_and_swap_12): Remove declaration.
610         (mips_expand_atomic_qihi): Declare function.
611         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
612         (mips_expand_atomic_qihi): ... this.  Use new generator function
613         parameter.
614         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
615         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
616         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
617         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
618         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
619         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
620         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
621         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
622         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
623         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
624         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
625         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
626
627 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
628
629         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
630         the missing break.
631
632 2008-05-20  Anatoly Sokolov <aesok@post.ru>
633
634         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
635         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
636         (avr_attribute_table): Add 'OS_main' function attribute.
637         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
638         functions with 'OS_main' attribute.
639
640 2008-05-20  Richard Guenther  <rguenther@suse.de>
641
642         PR tree-optimization/35204
643         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
644         helper, split out from ...
645         (DFS): ... here.  Make the DFS walk non-recursive.
646
647 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
648             Jan Sjodin  <jan.sjodin@amd.com>
649
650         PR tree-optimization/36181
651         * tree-parloops.c (loop_has_vector_phi_nodes): New.
652         (parallelize_loops): Don't parallelize when the loop has vector
653         phi nodes.
654
655 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
656             Sebastian Pop  <sebastian.pop@amd.com>
657
658         * tree-loop-linear.c (gather_interchange_stats): Look in the access
659         matrix, and never look at the tree representation of the memory
660         accesses.
661         (linear_transform_loops): Computes parameters and access matrices.
662         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
663         when fails.
664         (access_matrix_get_index_for_parameter): New.
665         * tree-data-ref.h (struct access_matrix): New.
666         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
667         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
668         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
669         am_vector_index_for_loop): New.
670         (struct data_reference): Add field access_matrix.
671         (DR_ACCESS_MATRIX): New.
672         (compute_data_dependences_for_loop): Update declaration.
673         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
674         * lambda.h (lambda_vector_vec_p): Declared.
675         * lambda-code.c: Depend on pointer-set.h.
676         (lambda_collect_parameters_from_af, lambda_collect_parameters,
677         av_for_af_base, av_for_af, build_access_matrix,
678         lambda_compute_access_matrices): New.
679         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
680
681 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
682
683         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
684         $SOURCEDIR/include.
685
686 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
687             Sebastian Pop  <sebastian.pop@amd.com>
688
689         PR tree-optimization/36206
690         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
691         FOLD_CONVERSIONS.
692         (instantiate_scev_1): Rename flags to fold_conversions.
693         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
694         outeside instantiation_loop.
695         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
696         (evolution_function_is_affine_or_constant_p): Removed.
697         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
698         instantiate_scev.
699         (analyze_siv_subscript): Pass in the loop nest number.
700         Call evolution_function_is_affine_in_loop instead of 
701         evolution_function_is_affine_p.
702         (analyze_overlapping_iterations): Pass in the loop nest number.
703
704 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
705             Sebastian Pop  <sebastian.pop@amd.com>
706
707         PR tree-optimization/36206
708         * tree-chrec.h (chrec_fold_op): New.
709         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
710         and other trees.
711
712 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
713
714         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
715         (DIRS_EQ): New.
716         (remove_duplicates): Do not set inode on non-inode systems.
717         Use DIRS_EQ.
718
719 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
720
721         * config.gcc (tm_file): Update comments about relative pathnames.
722
723 2008-05-20  Richard Guenther  <rguenther@suse.de>
724
725         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
726         * tree-ssa-sccvn.c (process_scc): Likewise.
727         * tree-ssa-sink.c (execute_sink_code): Likewise.
728         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
729         * tree-vrp.c (process_assert_insertions): Likewise.
730         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
731         (perform_tree_ssa_dce): Likewise.
732         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
733         (dump_dominator_optimization_stats): Likewise.
734         * tree-vectorizer.c (vectorize_loops): Likewise.
735
736 2008-05-20  Richard Guenther  <rguenther@suse.de>
737
738         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
739
740 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
741
742         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
743         (ix86_i386elf_return_in_memory): Likewise.
744         (ix86_i386interix_return_in_memory): Likewise.
745         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
746         (SUBTARGET_RETURN_IN_MEMORY): New.
747         * config/i386/i386elf.h: Likewise.
748         * config/i386/ptx4-i.h: Likewise.
749         * config/i386/sol2-10.h: Likewise.
750         * config/i386/sysv4.h: Likewise.
751         * config/i386/vx-common.h: Likewise.
752         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
753         * config/i386/i386.c (ix86_return_in_memory): Made static and
754         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
755         (ix86_i386elf_return_in_memory): Removed.
756         (ix86_i386interix_return_in_memory): Removed.
757         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
758         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
759
760 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
761
762         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
763
764 2008-05-19  Xinliang David Li  <davidxl@google.com>
765
766         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
767         * opts.c: Ditto.
768         * common.opt: Ditto.
769         * doc/invoke.texi: Ditto.
770
771 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
772
773         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
774         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
775
776 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
777
778         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
779         sizes of operand array from 8/4 to 4/2.
780         (ix86_expand_vector_init_general): Change size of operand array
781         from 32 to 16.  Remove op0, op1 and half_mode.
782
783 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
784
785         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
786         (ix86_expand_vector_init_interleave): Likewise.
787         (ix86_expand_vector_init_general): Use them.  Assert word_mode
788         == SImode when n_words == 4.
789
790 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
791
792         * config/i386/i386.c (ix86_secondary_reload): New static function.
793         (TARGET_SECONDARY_RELOAD): New define.
794         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
795         * config/i386/i386.md (reload_outqi): Remove.
796
797 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
798
799         PR middle-end/35509
800         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
801         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
802         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
803         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
804         (fold_builtin_1): Likewise.
805         * builtins.def (BUILT_IN_ISINF_SIGN): New.
806         c-common.c (check_builtin_function_arguments): Handle
807         BUILT_IN_ISINF_SIGN.
808         * doc/extend.texi: Document __builtin_isinf_sign.
809         * fold-const.c (operand_equal_p): Handle COND_EXPR.
810
811 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
812
813         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
814         EH cleanup at the end of the pass, search for those that have been
815         turned into forwarder blocks and do the cleanup on their successor.
816
817 2008-05-18  Richard Guenther  <rguenther@suse.de>
818
819         * tree-cfg.c (verify_gimple_expr): Allow conversions from
820         pointers to sizetype and vice versa.
821
822 2008-05-18 Xinliang David Li   <davidxl@google.com>
823
824         * gcc/tree-ssa-dce.c: Coding style fix.
825         (check_pow): Documentation comment. 
826         (check_log): Documenation comment. Coding style fix.
827         (is_unnecessary_except_errno_call): Ditto.
828         (gen_conditions_for_pow): Ditto.
829         (gen_conditions_for_log): Ditto.
830         (gen_shrink_wrap_conditions): Ditto.
831         (shrink_wrap_one_built_in_calls): Ditto.
832         * gcc/doc/invoke.texi: Better documentation string.
833         * ChangeLog: Fix wrong change log entries from 
834         May 17 checkin on function call DCE.
835
836 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
837
838         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
839
840 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
841
842         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
843         * df-problems.c (simulation routines): Fixed block comment to
844         properly say how to add forwards scanning functions.
845         
846 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
847
848         * tree-inline.c (setup_one_parameter): Remove dead code.
849
850 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
851
852         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
853         a BIT_AND_EXPR only for an INTEGER_TYPE.
854
855 2008-05-17 Xinliang David Li   <davidxl@google.com>
856
857         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
858         (check_pow, check_log, is_unnecessary_except_errno_call): New 
859         functions to check for eliminating math functions that are pure 
860         except for setting errno.
861         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
862         general condition expressions for shrink-wrapping pow/log calls.
863         (gen_shrink_wrap_conditions): Ditto.
864         (shrink_wrap_one_built_in_call): Ditto.
865         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
866         (mark_operand_necessary): If debugging, output if OP is necessary.
867         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
868         unnecessary.
869         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
870         opt level >= 2.
871         * gcc/common.opt: New user flag -ftree-builtin-dce.
872         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
873
874 2008-05-16  David S. Miller  <davem@davemloft.net>
875
876         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
877         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
878
879 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
880
881         PR target/36246
882         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
883
884 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
885
886         * ifcvt.c (dead_or_predicable): Rename
887         df_simulate_one_insn_backwards to df_simulate_one_insn.
888         * recog.c (peephole2_optimize): Ditto.
889         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
890         Ditto.
891         * df.h: Rename df_simulate_one_insn_backwards to
892         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
893         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
894         scanning of defs and uses.
895         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
896         (df_simulate_one_insn_forwards): Removed.
897
898 2008-05-16  Doug Kwan  <dougkwan@google.com>
899
900         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
901         QNaN & SNaN.
902         (real_from_string): Handle NaNs and Inf as approriate.
903
904 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
905
906         * doc/gty.texi (Source Files Containing Type Information): Note
907         that headers should appear first in the gtfiles list.
908
909 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
910
911         * tree.def (COND_EXEC): Properly documented this code.
912
913 2008-05-16  Diego Novillo  <dnovillo@google.com>
914
915         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
916         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
917         the new field.
918
919 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
920
921         * tree-ssa-dse (max_stmt_uid): Removed.
922         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
923         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
924         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
925         * function.h (cfun.last_stmt_uid): New field.
926         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
927         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
928         New functions.
929         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
930         (create_stmt_ann): Initialize the ann->uid field.
931         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
932         with new calls.
933         * tree-flow.h (renumber_gimple_stmt_uids): New function.
934
935 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
936
937         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
938         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
939         (init_empty_tree_cfg): Call it.
940
941 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
942
943         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
944         Update all users.
945
946 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
947
948         * doc/invoke.text (-fdump-tree-*-verbose): New option.
949         * tree-dump.c (dump_options): New verbose option.
950         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
951         Add verbose dump.
952         * tree-pass.h (TDF_VERBOSE): New dump flag.
953         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
954         (tree-flow.h): Added include.
955         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
956
957 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
958
959         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
960
961         From Jie Zhang  <jie.zhang@analog.com>
962         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
963         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
964         mcpu=bf561-none and mcpu=bf561-0.2.
965         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
966         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
967         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
968         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
969         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
970         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
971         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
972         option.
973         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
974         (cputype_selected): Remove.
975         (bfin_handle_option): Don't use cputype_selected.
976         (override_options): When no mcpu option, enable all workarounds.
977         Don't use bfin_workarounds.
978         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
979         processor type.
980         (DEFAULT_CPU_TYPE): Don't define.
981
982 2008-05-16  Richard Guenther  <rguenther@suse.de>
983
984         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
985         on deletion of the last stmt.
986
987 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
988
989         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
990         V8HImode for SSE2 and V16QImode for SSE4.1.
991
992 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
993
994         * cgraph.h (compute_inline_parameters): Made public.
995         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
996         variable_generate_summary, function_write_summary,
997         variable_write_summary, variable_read_summary.  Added generate_summary,
998         write_summary, read_summary.
999         * cgraphunit.c (cgraph_process_new_functions): Changed call from
1000         pass_ipa_inline.function_generate_summary, to
1001         compute_inline_parameters. 
1002         * ipa-inline.c (compute_inline_parameters): Made public and added
1003         node parameter.
1004         (compute_inline_parameters_for_current): New function.
1005         (pass_inline_param): Now calls compute_inline_parameters_for_current.
1006         (inline_generate_summary): Removed parameter and made to loop over
1007         all cgraph nodes.
1008         (pass_ipa_inline): Updated for new IPA_PASS structure.
1009         * passes.c (execute_ipa_summary_passes): Now is called once per
1010         pass rather than once per node*pass.
1011         
1012 2008-05-15  Anatoly Sokolov <aesok@post.ru>
1013
1014         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
1015         avr_have_mul_p, avr_asm_only_p): Remove variables.
1016         (avr_override_options): Remove initialization of removed variables.
1017         (avr_file_start):  Convert removed variables to fields of 
1018         'struct base_arch_s *avr_current_arch'. 
1019         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
1020         (AVR_HAVE_MUL): (Ditto.).
1021         (AVR_HAVE_MOVW): (Ditto.).
1022         (AVR_HAVE_LPMX): (Ditto.). 
1023         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1024         avr_asm_only_p): Remove declaration.
1025
1026 2008-05-15  Diego Novillo  <dnovillo@google.com>
1027
1028         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1029         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1030
1031 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1032
1033         PR middle-end/36194
1034         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1035         Don't call record_truncated_value from here.
1036         (record_truncated_value): Turn it into a for_each_rtx callback.
1037         (record_truncated_values): New function.
1038         (combine_instructions): Call note_uses with record_truncated_values.
1039         Change name of check_conversion to check_promoted_subreg. 
1040
1041 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1042
1043         * doc/sourcebuild.texi: Document support for torture tests.
1044
1045 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1046
1047         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1048         to alternative 4 of operand 2.
1049
1050 2008-05-15  Richard Guenther  <rguenther@suse.de>
1051
1052         * tree-pass.h (current_pass): Declare.
1053         (get_pass_for_id): Likewise.
1054         * passes.c (passes_by_id, passes_by_id_size): New globals.
1055         (set_pass_for_id): New function.
1056         (get_pass_for_id): Likewise.
1057         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1058         (execute_function_todo): Flush per function statistics.
1059         * toplev.c (compile_file): Init statistics.
1060         (general_init): Do early statistics initialization.
1061         (finalize): Finish statistics.
1062         * statistics.h (statistics_early_init): Declare.
1063         (statistics_init): Likewise.
1064         (statistics_fini): Likewise.
1065         (statistics_fini_pass): Likewise.
1066         (statistics_counter_event): Likewise.
1067         (statistics_histogram_event): Likewise.
1068         * statistics.c: New file.
1069         * Makefile.in (OBJS-common): Add statistics.o.
1070         (statistics.o): Add dependencies.
1071         * doc/invoke.texi (-fdump-statistics): Document.
1072
1073         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1074         (insert): Likewise.
1075         (execute_pre): Use statistics_counter_event.
1076         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1077         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1078
1079 2008-05-15  Diego Novillo  <dnovillo@google.com>
1080
1081         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1082
1083         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1084         * tree-ssa-alias.c (new_type_alias): Remove references to
1085         sub-variables from comment.
1086         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1087
1088 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1089
1090         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1091         attribute to 1 only for insertps alternative.
1092
1093 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1094
1095         * config/bfin/bfin.md (loadbytes): New pattern.
1096         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1097         (bfin_init_builtins): Initialize it.
1098         (bdesc_1arg): Add it.
1099
1100 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1101
1102         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1103         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1104         * testsuite/lib/target-supports.exp: Add
1105         check_effective_target_fortran_integer_16.
1106
1107 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1108
1109         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1110         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1111         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1112         (TARGET_RETURN_IN_MEMORY): Define.
1113
1114 2008-05-15  Richard Guenther  <rguenther@suse.de>
1115
1116         PR middle-end/36244
1117         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1118         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1119         represent unmodifiable vars.
1120
1121 2008-05-15  Richard Guenther  <rguenther@suse.de>
1122
1123         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1124         INDIRECT_REF and TARGET_MEM_REF.
1125         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1126         TARGET_MEM_REF.
1127
1128 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1129             H.J. Lu  <hongjiu.lu@intel.com>
1130
1131         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1132         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1133         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1134         insn alternatives.  Add missing alternatives.
1135         (*vec_concatv2di_rex64_sse4_1): Likewise.
1136         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1137         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1138         Require TARGET_SSE.
1139
1140 2008-05-15  Richard Guenther  <rguenther@suse.de>
1141
1142         PR tree-optimization/36009
1143         PR tree-optimization/36204
1144         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1145         (determine_invariantness_stmt): Record the loop a store is
1146         always executed in.
1147         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1148         dependency.
1149
1150 2008-05-15  Richard Guenther  <rguenther@suse.de>
1151
1152         PR tree-optimization/34330
1153         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1154         through the pointer will alias the SMT.
1155
1156 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1157
1158         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1159
1160 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1161
1162         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1163
1164 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1165             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1166
1167         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1168         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1169         (vashl_optab): New optab for vector/vector shifts.
1170         (vashr_optab): Ditto.
1171         (vlshr_optab): Ditto.
1172         (vrotl_optab): Ditto.
1173         (vrotr_optab): Ditto.
1174         (optab_subtype): New enum for optab_for_tree_code call.
1175         (optab_for_tree_code): Add enum optab_subtype argument.
1176
1177         * optabs.c (optab_for_tree_code): Take an additional argument to
1178         distinguish between a vector shift by a scalar and vector shift by
1179         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1180         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1181         vector shift by a vector.
1182         (expand_widen_pattern_expr): Pass additional argument to
1183         optab_for_tree_code.
1184
1185         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1186         vrotl_optab, vrotr_optab.
1187
1188         * expr.c (expand_expr_real_1): Update calls to
1189         optab_for_tree_code to distinguish between vector shifted by a
1190         scalar and vector shifted by a vector.
1191         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1192         (supportable_narrowing_operation): Ditto.
1193         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1194         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1195         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1196         (vect_create_epilog_for_reduction): Ditto.
1197         (vectorizable_reduction): Ditto.
1198         (vectorizable_operation): Ditto.
1199         (vect_strided_store_supported): Ditto.
1200         (vect_strided_load_supported): Ditto.
1201         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1202         * expmed.c (expand_shift): Ditto.
1203
1204         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1205         scalar type.
1206         (ashr@var{m}3): Ditto.
1207         (vashl@var{m}3): Document new vector/vector shift standard name.
1208         (vashr@var{m}3): Ditto.
1209         (vlshr@var{m}3): Ditto.
1210         (vrotl@var{m}3): Ditto.
1211         (vrotr@var{m}3): Ditto.
1212
1213         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1214         (PPERM_INVERT): Ditto.
1215         (PPERM_REVERSE): Ditto.
1216         (PPERM_REV_INV): Ditto.
1217         (PPERM_ZERO): Ditto.
1218         (PPERM_ONES): Ditto.
1219         (PPERM_SIGN): Ditto.
1220         (PPERM_INV_SIGN): Ditto.
1221         (PPERM_SRC1): Ditto.
1222         (PPERM_SRC2): Ditto.
1223
1224         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1225         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1226         allows a memory operand to be the value being added, and split it
1227         to improve vectorization.
1228         (sse5_pmacsdqh_mem): Ditto.
1229         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1230         (sse5_mulv2div2di3_high): Ditto.
1231         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1232         (vec_pack_trunc_v4si): Ditto.
1233         (vec_pack_trunc_v2di): Ditto.
1234         (sse5_pcmov_<mode>): Remove code that tried to use use
1235         andps/andnps instead of pcmov.
1236         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1237         pmacsdqh instructions.
1238         (vec_widen_smult_lo_v4si): Ditto.
1239
1240         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
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         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1251         true/false tests.
1252         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1253         comparisons.
1254         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1255         says ignore whether the last reference is a memory operand.
1256
1257 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1258             Paolo Bonzini <bonzini at gnu dot org>
1259
1260         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1261         shift patterns.
1262
1263         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1264         (vlshr<mode>3): Rename from vlshr<mode>3.
1265         (vashr<mode>3): Rename from vashr<mode>3.
1266         (mulv4sf3): Change the names of vector shift patterns.
1267         (mulv4si3): Ditto.
1268         (negv4sf2): Ditt.
1269
1270         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1271         shift insns.
1272
1273         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1274         (SI_SHLHI): Ditto.
1275         (SI_SHL): Ditto.
1276         (SI_SHLI): Ditto.
1277         (SI_ROTH): Ditto.
1278         (SI_ROTHI): Ditto.
1279         (SI_ROT): Ditto.
1280         (SI_ROTI): Ditto.
1281         (SPU_RL_0): Ditto.
1282         (SPU_RL_1): Ditto.
1283         (SPU_RL_2): Ditto.
1284         (SPU_RL_3): Ditto.
1285         (SPU_RL_4): Ditto.
1286         (SPU_RL_5): Ditto.
1287         (SPU_RL_6): Ditto.
1288         (SPU_RL_7): Ditto.
1289         (SPU_SL_0): Ditto.
1290         (SPU_SL_1): Ditto.
1291         (SPU_SL_2): Ditto.
1292         (SPU_SL_3): Ditto.
1293         (SPU_SL_4): Ditto.
1294         (SPU_SL_5): Ditto.
1295         (SPU_SL_6): Ditto.
1296         (SPU_SL_7): Ditto.
1297
1298         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1299         (floatunssidf2_internal): Change vector/vector shift names.
1300         (floatunsdidf2_internal): Ditto.
1301         (mulv8hi3): Ditto.
1302         (ashrdi3): Ditto.
1303         (ashrti3): Ditto.
1304         (cgt_df): Ditto.
1305         (cgt_v2df): Ditto.
1306         (dftsv): Ditto.
1307         (vashl<mode>3): Rename from ashl<mode>3.
1308         (vashr<mode>3): Rename from ashr<mode>3.
1309         (vlshr<mode>3): Rename from lshr<mode>3.
1310         (vrotl<mode>3): Rename from rotl<mode>3.
1311
1312 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1313
1314         PR target/36224
1315         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1316         multiply gives the wrong value when doing widening multiplies.
1317         (vec_widen_smult_lo_v4si): Ditto.
1318
1319 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1320
1321         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1322         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1323         emit_library_call_value. 
1324         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1325         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1326         * calls.c (initialize_argument_information, precompute_arguments, 
1327         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1328         (precompute_arguments): Removed flags parameter.
1329         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1330         
1331 2008-05-14  Richard Guenther  <rguenther@suse.de>
1332
1333         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1334         Make sure to register the store if the use is a PHI_NODE.
1335
1336 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1337
1338         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1339         memory if the component is to be referenced in BLKmode according
1340         to get_inner_reference.
1341
1342 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1343
1344         * calls.c (emit_library_call_value_1): Restore code clearing
1345         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1346
1347 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1348             Nicolas Roche  <roche@adacore.com>
1349
1350         * configure.ac: Add support for a "gcc_subdir" variable in
1351         config-lang.in, to denote a subdirectory where the language/GCC
1352         integration files are to be found.
1353         * configure: Regenerate.
1354
1355 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1356
1357         PR tree-optimization/36098
1358         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1359         value for the first load in the group in case of a gap.
1360         (vect_build_slp_tree): Check that there are no gaps in loads.
1361
1362 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1363
1364         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1365         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1366         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1367         emit_insn and remove unneeded code to construct extra args.
1368         (emit_no_conflict_block): Removed.
1369         * optabls.h: (emit_no_conflict_block): Removed.
1370         * cse.c (cse_extended_basic_block): Remove search for
1371         REG_NO_CONFLICT note.
1372         * global.c: Removed incorrect comment added in revision 117.
1373         * expr.c (convert_move): Change call to emit_no_conflict_block to
1374         emit_insn.
1375         * recog.c: Change comments so that they do not mention
1376         REG_NO_CONFLICT.
1377         * local_alloc.c (combine_regs): Removed last parameter.
1378         (no_conflict_p): Removed.
1379         (block_alloc): Removed note, no_conflict_combined_regno and set
1380         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1381         (combine_regs): Removed already_dead and code to look for
1382         REG_NO_CONFLICT notes.
1383         * lower_subreg (remove_retval_note): Removed code to look for
1384         REG_NO_CONFLICT block.
1385         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1386         (resolve_clobber): Remove code to process libcalls that have
1387         REG_NO_CONFLICT notes.
1388         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1389         case.
1390         * combine.c (can_combine_p, distribute_notes):  Removed
1391         REG_NO_CONFLICT case.
1392         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1393         to emit_insns.
1394         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1395         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1396         Ditto.
1397         * reg-notes.def (NO_CONFLICT): Removed.
1398
1399 2008-05-14  David S. Miller  <davem@davemloft.net>
1400
1401         * config/sparc/sparc.c (sparc_profile_hook): If
1402         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1403         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1404         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1405
1406 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1407
1408         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1409
1410 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1411
1412         PR target/36222
1413         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1414         and op1 expansion before vector concat to have less live pseudos.
1415
1416 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1417
1418         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1419         ix86_expand_vector_set if supported.
1420
1421 2008-05-13  Diego Novillo  <dnovillo@google.com>
1422             Kenneth Zadeck  <zadeck@naturalbridge.com>
1423
1424         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1425
1426         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1427         phinodes_print_statistics, init_ssanames, fini_ssanames,
1428         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1429         release_ssa_name, release_defs, replace_ssa_name_symbol,
1430         ssanames_print_statistics): Move ...
1431         * tree-flow.h: ... here.
1432         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1433         Use FN instead of cfun.
1434         (make_ssa_name_fn): Rename from make_ssa_name.
1435         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1436         * tree-flow-inline.h (make_ssa_name): Move from
1437         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1438         * omp-low.c (expand_omp_parallel):
1439         * tree-flow-inline.h (redirect_edge_var_map_result):
1440         * tree-ssa.c (init_tree_ssa): Add argument FN.
1441         Use it instead of cfun.  Update all users.
1442
1443 2008-05-13  Tom Tromey  <tromey@redhat.com>
1444
1445         PR preprocessor/22168:
1446         * doc/cpp.texi (Top): Update menu.
1447         (Alternatives to Wrapper #ifndef): New node.
1448         (Other Directives): Document deprecation.
1449         (Obsolete Features): Remove menu.
1450         (Assertions): Merge node into Obsolete Features.
1451         (Obsolete once-only headers): Move earlier; rename to Alternatives
1452         to Wrapper #ifndef.
1453         * doc/cppopts.texi: Update.
1454         * c.opt (Wdeprecated): Enable for C and ObjC.
1455         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1456         (C++ Dialect Options): Move -Wno-deprecated from here to...
1457         (Warning Options): ... here.
1458
1459 2008-05-13  Richard Guenther  <rguenther@suse.de>
1460
1461         PR middle-end/36227
1462         * fold-const.c (fold_sign_changed_comparison): Do not allow
1463         changes in pointer-ness.
1464
1465 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1466
1467         PR target/24713
1468         * config/sh/sh.c (sh_expand_prologue): Don't clear
1469         RTX_FRAME_RELATED_P for push insns.
1470
1471 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1472
1473         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1474
1475 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1476
1477         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1478         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1479         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1480
1481 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1482
1483         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1484         (*vec_concatv4sf_sse): This.
1485         (*sse2_concatv2si): Renamed to ...
1486         (*vec_concatv2si_sse2): This.
1487         (*sse1_concatv2si): Renamed to ...
1488         (*vec_concatv2si_sse): This.
1489         (*vec_concatv2di_rex): Renamed to ...
1490         (*vec_concatv2di_rex64): This.
1491         (*vec_concatv2si_sse4_1): New.
1492         (*vec_concatv2di_rex64_sse4_1): Likewise.
1493
1494 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1495
1496         PR rtl-optimization/36111
1497         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1498         that was created for swappable operands.
1499
1500 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1501
1502         PR ada/36001
1503         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1504         * configure.ac: Add call to ACX_PROG_GNAT.
1505
1506 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1507
1508         * optc-gen.awk: Fix comment typo.
1509
1510 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1511
1512         * pretty-print.c (pp_integer_with_precision): Use
1513         HOST_LONG_LONG_FORMAT.
1514
1515 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1516
1517         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1518                 
1519 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1520
1521         * config/i386/i386.c (bdesc_ptest): Removed.
1522         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1523         (bdesc_args): Add __builtin_ia32_ptestz128,
1524         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1525         (ix86_init_mmx_sse_builtins): Updated.
1526         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1527         (ix86_expand_builtin): Updated.
1528
1529 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1530
1531         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1532         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1533
1534 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1535
1536         * value-prof.c (interesting_stringop_to_profile): Do not
1537         return early for BUILT_IN_MEMPCPY.
1538
1539 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1540
1541         * calls.c (expand_call): Don't use callgraph to increase
1542         preferred_stack_boundary.
1543
1544         * cgraph.h (cgraph_rtl_info): Use unsigned on
1545         preferred_incoming_stack_boundary.
1546
1547         * final.c (rest_of_clean_state): Use unsigned on
1548         preferred_stack_boundary.
1549
1550 2008-05-09  Tom Tromey  <tromey@redhat.com>
1551
1552         PR preprocessor/22231:
1553         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1554         proceeding.
1555
1556 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1557
1558         PR tree-optimization/36129
1559         * tree-ssa-ccp.c: Include value-prof.h.
1560         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1561         built-in function was folded to a constant.
1562         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1563
1564 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1565             Sebastian Pop  <sebastian.pop@amd.com>
1566
1567         * tree-scalar-evolution.c: Document instantiate_scev.
1568         (instantiate_parameters_1): Renamed instantiate_scev_1.
1569         Don't use the same loop for instantiation_loop and evolution_loop.
1570         (instantiate_scev): New.
1571         (instantiate_parameters): Moved...
1572         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1573         same loop twice.  Maintains the semantics for this function.
1574         * tree-scalar-evolution.h (instantiate_scev): Declare.
1575         (instantiate_parameters): ...here.  Now static inline.
1576         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1577         instead of resolve_mixers.
1578
1579 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1580
1581         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1582
1583 2008-05-09  Tomas Bily  <tbily@suse.cz>
1584
1585         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1586         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1587         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1588         * c-common.c (c_common_truthvalue_conversion): Likewise.
1589         * tree-object-size.c (compute_object_offset): Likewise.
1590         * tree-inline.c (estimate_num_insns_1): Likewise.
1591         * varasm.c (const_hash_1, compare_constant, copy_constant)
1592         (compute_reloc_for_constant, output_addressed_constants)
1593         (initializer_constant_valid_p): Likewise.
1594         * c-omp.c (check_omp_for_incr_expr): Likewise.
1595         * gimplify.c (gimplify_expr): Likewise.
1596         * c-typeck.c (c_finish_return): Likewise.
1597         * tree-vectorizer.c (supportable_widening_operation)
1598         (supportable_narrowing_operation): Likewise.
1599         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1600         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1601         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1602         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1603         (descr_info_loc): Likewise.
1604         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1605         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1606         (fold_unary): Likewise.
1607         * builtins.c (get_pointer_alignment): Likewise.
1608         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1609         (instantiate_parameters_1): Likewise.
1610         * tree.c (expr_align, stabilize_reference): Likewise.
1611         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1612         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1613         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1614         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1615         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1616         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1617         Likewise.
1618         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1619         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1620         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1621         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1622         (forward_propagate_comparison)
1623         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1624         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1625         * emit-rtl.c (component_ref_for_mem_expr)
1626         (set_mem_attributes_minus_bitpos): Likewise.
1627         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1628         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1629         Likewise.
1630         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1631         (build_function_call, pointer_diff, build_compound_expr)
1632         (c_finish_return): Likewise.
1633         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1634         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1635         Likewise.
1636         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1637         * expr.c (is_aligning_offset): Likewise.
1638         * tree-ssa-alias.c (is_escape_site): Likewise.
1639         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1640         (check_all_va_list_escapes): Likewise.
1641         * tree-ssa-loop-ivopts.c (determine_base_object)
1642         (determine_common_wider_type): Likewise.
1643         * dojump.c (do_jump): Likewise.
1644         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1645         * tree-gimple.c (is_gimple_cast): Likewise.
1646         * fold-const.c (decode_field_reference, )
1647         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1648         (fold_binary): Likewise.
1649         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1650         (already_warned_in_frontend_p): Likewise.
1651         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1652         * tree.c (really_constant_p, get_unwidened): Likewise.
1653         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1654         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1655         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1656         Likewise.
1657         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1658         CONVERT_EXPR_P.
1659         (CONVERT_EXPR_P): Define.
1660         (CASE_CONVERT): Define.
1661         
1662 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1663
1664         PR middle-end/36117
1665         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1666         (delete_unmarked_insns): When deleting a call, call
1667         delete_unreachable_blocks.
1668         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1669         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1670
1671 2008-05-08  Richard Guenther  <rguenther@suse.de>
1672
1673         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1674         (-ftree-salias): Likewise.
1675         (salias-max-implicit-fields): Remove param documentation.
1676         (salias-max-array-elements): Likewise.
1677         * tree-pass.h (pass_create_structure_vars): Remove.
1678         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1679         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1680         * tree-ssa-alias.c (create_structure_vars): Remove.
1681         (gate_structure_vars): Likewise.
1682         (pass_create_structure_vars): Likewise.
1683         (gate_build_alias): Likewise.
1684         (pass_build_alias): Adjust to run always and dump the function.
1685         * common.opt (ftree-salias): Hide.
1686         * passes.c (init_optimization_passes): Remove
1687         pass_create_structure_vars, adjust comment.
1688         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1689         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1690         * opts.c (decode_options): Do not set flag_tree_salias.
1691         (common_handle_option): Add OPT_ftree_salias to the backward
1692         compatibility section.
1693
1694 2008-05-08  Richard Guenther  <rguenther@suse.de>
1695
1696         * tree-flow-inline.h (var_can_have_subvars): Move ...
1697         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1698         * tree-flow.h (var_can_have_subvars): Remove.
1699         (push_fields_onto_fieldstack): Remove.
1700         (sort_fieldstack): Likewise.
1701         (struct fieldoff): Move ...
1702         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1703         alias_set and base_for_components fields.
1704         (sort_fieldstack): Make static.
1705         (push_fields_onto_fieldstack): Likewise.  Remove code that
1706         handles anything but RECORD_TYPEs.  Remove alias_set and
1707         base_for_components handling.
1708         (create_variable_info_for): Adjust.
1709
1710 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1711
1712         * common.opt (Wframe-larger-than=): Shorten the help message
1713         to one line.
1714         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1715
1716 2008-05-08  Rafael Espindola  <espindola@google.com>
1717
1718         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1719         trap.
1720         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1721         trap and that both operands are gimple values.
1722         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1723         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1724         is a fp operation.
1725
1726 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1727
1728         * read-rtl.c (join_c_conditions): Return the first string if the
1729         two strings are equal.
1730
1731 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1732
1733         * gensupport.h (pred_data): Add a "num_codes" field.
1734         (add_predicate_code): Declare.
1735         * gensupport.c (add_predicate_code): New function.
1736         (std_pred_table): Add an "allows_const_p" field.
1737         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1738         Remove the (incomplete) list of such codes from the codes field.
1739         (init_predicate_table): Use add_predicate_code.  Add all
1740         RTX_CONST_OBJs if allows_const_p is true.
1741         * genrecog.c (process_define_predicate): Use add_predicate_code.
1742
1743 2008-05-08  David Daney  <ddaney@avtrex.com>
1744             Richard Sandiford  <rsandifo@nildram.co.uk>
1745         
1746         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1747         special case of constant zero operands.
1748         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1749         old and new values.  Special case constant zero values.
1750         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1751         fails.
1752         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1753         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1754
1755 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1756
1757         PR target/36090
1758         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1759         similar RTX_CONST_OBJ before CONST_INT.
1760
1761 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1762
1763         * stmt.c (expand_stack_restore): Change sa mode if needed.
1764
1765 2008-05-08  Richard Guenther  <rguenther@suse.de>
1766
1767         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1768         return type to bool.
1769         (ix86_sol10_return_in_memory): Likewise.
1770         (ix86_i386elf_return_in_memory): Likewise.
1771         (ix86_i386interix_return_in_memory): Likewise.
1772         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1773         (ix86_sol10_return_in_memory): Likewise.
1774         (ix86_i386elf_return_in_memory): Likewise.
1775         (ix86_i386interix_return_in_memory): Likewise.
1776
1777 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1778
1779         PR bootstrap/36180
1780         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1781         fndecl argument.
1782         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1783         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1784         declared in front.
1785
1786 2008-05-08  Richard Guenther  <rguenther@suse.de>
1787
1788         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1789         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1790         (DR_SUBVARS): Remove.
1791         * tree-dfa.c (dump_subvars_for): Remove.
1792         (debug_subvars_for): Likewise.
1793         (dump_variable): Do not dump subvars.
1794         (remove_referenced_var): Do not remove subvars.
1795         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1796         (lookup_subvars_for_var): Remove.
1797         (get_subvars_for_var): Likewise.
1798         (get_subvars_at): Likewise.
1799         (get_first_overlapping_subvar): Likewise.
1800         (overlap_subvar): Likewise.
1801         * tree-flow.h (subvar_t): Remove.
1802         (struct var_ann_d): Remove subvars field.
1803         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1804         argument.  Remove special handling of SFTs.
1805         (compute_tag_properties): Likewise.
1806         (set_initial_properties): Likewise.
1807         (compute_call_clobbered): Likewise.
1808         (count_mem_refs): Likewise.
1809         (compute_memory_partitions): Likewise.
1810         (compute_flow_insensitive_aliasing): Likewise.
1811         (setup_pointers_and_addressables): Likewise.
1812         (new_type_alias): Likewise.
1813         (struct used_part): Remove.
1814         (used_portions): Likewise.
1815         (struct used_part_map): Likewise.
1816         (used_part_map_eq): Likewise.
1817         (used_part_map_hash): Likewise.
1818         (free_used_part_map): Likewise.
1819         (up_lookup): Likewise.
1820         (up_insert): Likewise.
1821         (get_or_create_used_part_for): Likewise.
1822         (create_sft): Likewise.
1823         (create_overlap_variables_for): Likewise.
1824         (find_used_portions): Likewise.
1825         (create_structure_vars): Likewise.
1826         * tree.def (STRUCT_FIELD_TAG): Remove.
1827         * tree.h (MTAG_P): Adjust.
1828         (struct tree_memory_tag): Remove base_for_components and
1829         unpartitionable flags.
1830         (struct tree_struct_field_tag): Remove.
1831         (SFT_PARENT_VAR): Likewise.
1832         (SFT_OFFSET): Likewise.
1833         (SFT_SIZE): Likewise.
1834         (SFT_NONADDRESSABLE_P): Likewise.
1835         (SFT_ALIAS_SET): Likewise.
1836         (SFT_UNPARTITIONABLE_P): Likewise.
1837         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1838         (union tree_node): Remove sft field.
1839         * alias.c (get_alias_set): Remove special handling of SFTs.
1840         * print-tree.c (print_node): Remove handling of SFTs.
1841         * tree-dump.c (dequeue_and_dump): Likewise.
1842         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1843         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1844         * tree-predcom.c (set_alias_info): Do not set subvars.
1845         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1846         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1847         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1848         (add_vars_for_offset): Remove.
1849         (add_virtual_operand): Remove special handling of SFTs.
1850         (add_call_clobber_ops): Likewise.
1851         (add_call_read_ops): Likewise.
1852         (get_asm_expr_operands): Likewise.
1853         (get_modify_stmt_operands): Likewise.
1854         (get_expr_operands): Likewise.
1855         (add_to_addressable_set): Likewise.
1856         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1857         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1858         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1859         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1860         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1861         (tree_node_structure): Likewise.
1862         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1863         handling of SFTs.
1864         (find_what_p_points_to): Likewise.
1865
1866 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1867
1868         * config/spu/spu.md: Fixed subti3 pattern.
1869
1870 2008-05-08  Richard Guenther  <rguenther@suse.de>
1871
1872         PR middle-end/36154
1873         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1874         sure to create a representative for trailing arrays for PTA.
1875
1876 2008-05-08  Richard Guenther  <rguenther@suse.de>
1877
1878         PR middle-end/36172
1879         * fold-const.c (operand_equal_p): Two objects which types
1880         differ in pointerness are not equal.
1881
1882 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1883
1884         * calls.c (compute_argument_block_size): Add argument tree fndecl.
1885         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
1886         (emit_library_call_value_1): Add new variable fndecl initialized by
1887         NULL_TREE. It should be the decl type of orgfun, but this information
1888         seems not to be available here, so it uses the default calling abi.
1889         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
1890         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
1891         by TARGET_RETURN_IN_MEMORY.
1892         * config/i386/i386-interix.h: Likewise.
1893         * config/i386/i386.h: Likewise.
1894         * config/i386/i386elf.h: Likewise.
1895         * config/i386/ptx4-i.h: Likewise.
1896         * config/i386/sol2-10.h: Likewise.
1897         * config/i386/sysv4.h: Likewise.
1898         * config/i386/vx-common.h: Likewise.
1899         * config/cris/cris.h: Removed #if 0 clause.
1900         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
1901         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
1902         argument.
1903         (ix86_sol10_return_in_memory): Likewise.
1904         (ix86_i386elf_return_in_memory): New.
1905         (ix86_i386interix_return_in_memory): New.
1906         * config/mt/mt-protos.h (mt_return_in_memory): New.
1907         * config/mt/mt.c: Likewise.
1908         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1909         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
1910         * config/bfin/bfin.h: Likewise.
1911         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
1912         argument.
1913         * config/bfin/bfin.c: Likewise.
1914         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1915         * config/alpha/unicosmk.h: Likewise.
1916         * config/i386/cygming.h: Likewise.
1917         * config/iq2000/iq2000.h: Likewise.
1918         * config/mips/mips.h: Likewise.
1919         * config/mn10300/mn10300.h: Likewise.
1920         * config/rs6000/rs6000.h: Likewise.
1921         * config/score/score.h: Likewise.
1922         * config/spu/spu.h: Likewise.
1923         * config/v850/v850.h: Likewise.
1924         * defaults.h: Likewise.
1925         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
1926         * expr.c (emit_block_move): Adjust use of
1927         OUTGOING_REG_PARM_STACK_SPACE.
1928         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
1929         OUTGOING_REG_PARM_STACK_SPACE.
1930         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
1931
1932 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
1933
1934         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
1935         on OMP_RETURN for OMP_FOR.
1936
1937         PR debug/35896
1938         * dwarf2out.c (dw_expand_expr, common_check): Removed.
1939         (fortran_common): New function.
1940         (gen_variable_die): Call fortran_common instead of common_check,
1941         adjust for it returning tree instead of rtx.  Formatting.
1942
1943 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
1944
1945         PR rtl/7335
1946         PR rtl/33826
1947         * see.c (see_copy_insn): Copy new pure const attributes for new call.
1948         * c-decl.c (merge_decls): Ditto.
1949         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
1950         to RTL_CONST_OR_PURE_CALL_P.
1951         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
1952         Initialized DECL_LOOPING_CONST_PURE.
1953         (process_call_operands): Set tree_side_effects properly.
1954         * tree.h (TREE_READONLY_DECL_P): Removed.
1955         (DECL_IS_PURE): Renamed to DECL_PURE_P.
1956         (DECL_LOOPING_OR_CONST_P): New macro.
1957         (struct tree_function_decl): Added looping_const_or_pure_p.
1958         (ECF_*) Renumbered.
1959         (ECF_LOOPING_OR_CONST_P): New macro.
1960         * rtlanal.c (pure_const_p): Removed.
1961         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
1962         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
1963         to RTL_CONST_CALL_P.
1964         * ipa-pure-const.c (pure_const_state_e): Added looping field.
1965         (check_decl, check_tree, check_call, scan_function): Initialize
1966         looping.
1967         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
1968         (static_execute): Set looping true for recursive functions.
1969         Undo setting state to IPA_NEITHER for recursive functions.
1970         * cse.c (cse_insn): 
1971         * ifcvt.c (noce_can_store_speculate_p): Changed
1972         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
1973         RTL_CONST_OR_PURE_CALL_P.
1974         * dse.c (scan_insn): Ditto.
1975         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
1976         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
1977         RTL_CONST_OR_PURE_CALL_P.
1978         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
1979         pure_call_p to RTL_CONST_CALL_P.
1980         * gimplify.c (gimplify_call_expr): Clear side effects for
1981         non-looping pure and constant calls.
1982         * calls.c (emit_call_1): Set rtl flags from ecf flags.
1983         (flags_from_decl_or_type): Set ecf flags from decl flags.
1984         (initialize_argument_information): Turn off
1985         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
1986         Change const to pure if callee_copies is true rather than just
1987         turning off const.
1988         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
1989         way of marking pure calls.
1990         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
1991         Remove hack that was supposed to fix pr7335 and remove old
1992         way of marking pure calls.
1993         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
1994         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
1995         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
1996         RTL_CONST_OR_PURE_CALL_P.
1997         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
1998         * loop-invariant.c (find_exits, find_invariant_bb): Changed
1999         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
2000         * sched-deps.c (schedule_analyze): Ditto.
2001         * rtl.h (struct rtx_def): Use call field, unchanging field, and
2002         return_val field of calls to represent pure and const function info.
2003         (CONST_OR_PURE_CALL_P): Deleted macro.
2004         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
2005         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
2006         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
2007         TREE_READONLY.
2008         * tree-optimize.c (execute_fixup_cfg): Added test for
2009         ECF_LOOPING_CONST_OR_PURE.
2010         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
2011         DECL_PURE_P.
2012         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
2013         effects for looping pure or const calls.
2014         (verify_gimple_expr): Added verification code. 
2015         * config/alpha/alpha.c (alpha_legitimize_address,
2016         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
2017         RTL_CONST_CALL_P.
2018         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
2019         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
2020         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
2021         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
2022         RTL_CONST_OR_PURE_CALL_P.
2023         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2024         and const calls to be deleted.
2025
2026 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2027
2028         PR target/35714
2029         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2030         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2031         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2032         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2033         to handle nonimmediate operands.
2034         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2035         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2036         to handle nonimmediate operands.
2037         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2038         (mmx_pmulhrwv4hi3): New expander.  Use
2039         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2040         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2041         (sse2_umulv1siv1di3): New expander.  Use
2042         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2043         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2044         (mmx_eq<mode>3): New expander.  Use
2045         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2046         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2047         (mmx_uavgv8qi3): New expander.  Use
2048         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2049         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2050         (mmx_uavgv4hi3): New expander.  Use
2051         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2052
2053         * config/i386/sse.md
2054         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2055         to handle nonimmediate operands.
2056         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2057         to handle nonimmediate operands.
2058         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2059         to handle nonimmediate operands.
2060         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2061         to handle nonimmediate operands.
2062         (sse2_unpckhpd_exp): New expander.  Use
2063         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2064         (sse2_unpcklpd_exp): New expander.  Use
2065         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2066         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2067         to handle nonimmediate operands.
2068         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2069         to handle nonimmediate operands.
2070         (*sse2_<plusminus_insn><mode>3): Rename from
2071         sse2_<plusminus_insn><mode>3 insn pattern.
2072         (sse2_<plusminus_insn><mode>3): New expander.  Use
2073         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2074         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2075         (sse2_umulv2siv2di3): New expander.  Use
2076         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2077         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2078         (sse4_1_mulv2siv2di3): New expander.  Use
2079         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2080         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2081         (sse2_pmaddwd): New expander.  Use
2082         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2083         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2084         (sse2_eq<mode>3): New expander.  Use
2085         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2086         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2087         (sse4_1_eqv2di3): New expander.  Use
2088         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2089         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2090         (sse2_uavgv16qi3): New expander.  Use
2091         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2092         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2093         (sse2_uavgv16qi3): New expander.  Use
2094         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2095         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2096         (sse2_uavgv8hi3): New expander.  Use
2097         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2098         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2099         (ssse3_pmulhrswv8hi3): New expander.  Use
2100         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2101         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2102         (ssse3_pmulhrswv4hi3): New expander.  Use
2103         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2104
2105         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2106         (<sse>_vmmul<mode>3): Ditto.
2107         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2108         (divv2df3): Ditto.
2109         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2110         (ssse3_pmaddubsw): Ditto.
2111
2112         * config/i386/i386.c (struct_builtin_description)
2113         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2114         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2115         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2116         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2117         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2118         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2119         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2120         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2121         (ix86_fixup_binary_operands): Assert that src1
2122         and src2 must have the same mode when swapped.
2123         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2124         and ix86_binary_operator_ok.  Do not force operands in registers
2125         when optimizing.
2126
2127 2008-05-07  Jan Hubicka  <jh@suse.cz>
2128
2129         * cgraph.c (dump_cgraph_node): Update.
2130         * cgraph.h (cgraph_local_info): Break out inline summary.
2131         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2132         hook.
2133         * ipa-inline (inline_summary): New accestor function.
2134         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2135         cgraph_decide_inlining, compute_inline_parameters): Update.
2136         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2137
2138 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2139
2140         Cleanup ColdFire scheduling support and add V4 pipeline model.
2141
2142         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2143         (define_attr cpu): Add cfv4 value.
2144         (define_attr type, define_attr type1): Merge into a single 'type'
2145         attribute.  Update all uses.
2146         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2147         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2148         Update all uses.
2149         (define_attr opx_mem, define_attr opy_mem): Remove.
2150         (define_attr op_mem): Clean up, update comment.
2151         (define_attr size): Use specific values instead of general int.
2152         (define_attr guess, define_attr split): Remove.  Update all uses.
2153         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2154         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2155         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2156         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2157         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2158         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2159         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2160         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2161         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2162         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2163         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2164         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2165         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2166         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2167         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2168         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2169         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2170         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2171         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2172         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2173         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2174         Update or set attributes.
2175         (stack_tie): New fake instruction.
2176
2177         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2178         (m68k_sched_attr_size): Update declaration.
2179         (m68k_sched_attr_type2): Remove.
2180         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2181         Declare new bypass predicates.
2182
2183         * config/m68k/m68k.c (m68k_sched_issue_rate,
2184         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2185         implementations.
2186         (TARGET_SCHED_ISSUE_RATE,
2187         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2188         (override_options): Handle scheduling for ColdFire V4 core.
2189         (m68k_expand_prologue): Emit stack_tie.
2190         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2191         'OP_TYPE_FPN'.  Update all uses.
2192         (sched_guess_p): Remove.
2193         (sched_address_type): Handle symbolic addresses.
2194         (sched_get_operand): New static function.
2195         (sched_operand_type): Merge into sched_attr_op_type.
2196         (sched_attr_op_type): Handle FP registers, handle quick constants,
2197         update.
2198         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2199         (m68k_sched_attr_size): Update.  Move logic to ...
2200         (sched_get_attr_size_int): New static function.
2201         (sched_get_opxy_mem_type): New static function.
2202         (m68k_sched_attr_op_mem): Update.
2203         (m68k_sched_attr_type2): Remove.
2204         (sched_cfv4_bypass_data): New static variable.
2205         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2206         (m68k_sched_issue_rate): Implement scheduler hook.
2207         (struct _sched_ib: enabled_p): New field.
2208         (m68k_sched_variable_issue): Update.  Handle V4.
2209         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2210         sched_dump_class_func_t, sched_dump_split_class,
2211         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2212         sched_dump_dfa_class, m68k_sched_dump): Remove.
2213         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2214         hook.
2215         (m68k_sched_init_global): Remove statisctics dumping, introduce
2216         sanity check that all instructions have pipeline reservations.  Handle
2217         ColdFire V4 core.
2218         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2219         Handle ColdFire V4 core.
2220         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2221         New static functions.
2222         (m68k_sched_address_bypass_p): New bypass predicate.
2223         (sched_get_indexed_address_scale): New static function.
2224         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2225
2226         * cf.md: Update comments.
2227         (define_attr type2): Remove.  Use 'type' attribute instead.
2228         Update all uses.
2229         (cf_ib): Rename to cfv123_ib.  Update all uses.
2230         (cf_oep): Rename to cfv123_oep.  Update all uses.
2231         (cf_chr): Rename to cfv123_chr.  Update all uses.
2232         (cf_mem): Rename to cfv123_mem.  Update all uses.
2233         (cf_mac): Move to more appropriate place.
2234         (cfv123_guess): New automaton and cpu_unit.
2235         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2236         Update uses of 'size' attribute.  Handle before reload scheduling.
2237         (cfv123_guess): New dummy reservation for unhandled instructions.
2238         (cfv4_*): Pipeline description of ColdFire V4 core.
2239         (ignore): New reservation to handle 'ignore' type.
2240
2241 2008-05-07  Ian Lance Taylor  <iant@google.com>
2242
2243         PR middle-end/36013
2244         * gimplify.c (find_single_pointer_decl_1): Don't look through
2245         indirections.
2246         (find_single_pointer_decl): Adjust comments.
2247
2248 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2249
2250         PR middle-end/36137
2251         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2252         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2253
2254         PR middle-end/36106
2255         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2256         integral type rather than floating point, then VIEW_CONVERT_EXPR
2257         to the floating point type.
2258
2259 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2260
2261         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2262         TFmode op0 to register.
2263
2264 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2265
2266         * c-decl.c (grokdeclarator): Comment typo.
2267
2268 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2269
2270         * tree-flow.h: Remove prototype for computed_goto_p.
2271         * tree-cfg.c (computed_goto_p): Make static.
2272
2273 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2274
2275         PR target/35657
2276         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2277         (contains_aligned_value_p): This.  Handle _Decimal128.
2278         (ix86_function_arg_boundary): Only align _Decimal128 to its
2279         natural boundary and handle it properly.
2280
2281 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2282
2283         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2284         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2285         (ipcp_method_set_orig_node): Removed.
2286         (ipcp_cval_get_cvalue_type): Removed.
2287         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2288         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2289         (ipcp_cval_set_cvalue_type): Removed.
2290         (ipcp_cval_get_cvalue): Removed.
2291         (ipcp_cval_set_cvalue): Removed.
2292         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2293         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2294         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2295         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2296         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2297         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2298         (ipcp_get_ith_lattice): Changed parameters.
2299         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2300         (ipcp_lattice_from_jfunc): Changed parameters.
2301         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2302         (ipcp_method_cval_print): Added temporary variable info.
2303         (ipcp_redirect): Removed already unused local variable caller.
2304         (ipcp_redirect): New temporary variable orig_callee_info
2305         (ipcp_redirect): Removed newly unused local variable callee.
2306         (ipcp_redirect): Removed (a bit confusing) local variable type.
2307         (ipcp_insert_stage): Added local variable info.
2308         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2309         renamed too
2310         (ipcp_formal_create): Removed.
2311         (ipcp_method_cval_set): Removed.
2312         (ipcp_propagate_stage): Renamed lattice variables.
2313         (ipcp_method_cval_set_cvalue_type): Removed.
2314         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2315         (ipcp_print_all_lattices): Changed printed strings to refer to 
2316         lattices rather than cvals.
2317         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2318         (ipcp_propagate_const): Changed formal parameters.
2319         (build_const_val): Changed formal parameters.
2320         (ipcp_insert_stage): Removed useless variable cvalue
2321         (build_const_val): Changed formal parameters.
2322         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2323         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2324         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2325         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2326         (ipcp_print_func_profile_counts): Changed string from "method" to 
2327         "function"
2328         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2329         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2330         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2331         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2332         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2333         (ipcp_lat_is_const): Changed parameters and made inline.
2334         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2335         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2336         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2337         the predicate condition directly
2338         (ipcp_propagate_stage): Added local variable args. Removed local
2339         variable callee.  (Both are mere code simplifications.)
2340         (ipcp_method_dont_insert_const): Renamed to
2341         ipcp_node_not_modifiable_p.
2342         (ipcp_node_not_modifiable_p): Made inline.
2343         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2344         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2345         (ipcp_print_all_lattices): Removed variable cvalue
2346         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2347         Updated comments.
2348
2349 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2350
2351         * tree-sra.c (try_instantiate_multiple_fields): Early return
2352         if field has POINTER_TYPE.
2353
2354 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2355
2356         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2357         by using 'q' specifier for instruction.
2358         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2359
2360 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2361
2362         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2363         Change mode of zero_extract from QImode to HImode.
2364         (sign bit tests peepholes): (Ditto.).
2365
2366 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2367
2368         * config/i386/mmx.md: Remove double backslashes from asm templates.
2369         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2370         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2371         to handle nonimmediate operands.
2372         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2373         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2374         to handle nonimmediate operands.
2375         (*mmx_<code>v2sf3_finite): New insn pattern.
2376         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2377         (mmx_<code>v2sf3): New expander.  Use
2378         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2379         (mmx_<plusminus_insn><mode>3): New expander.  Use
2380         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2381         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2382         (mmx_add<mode>3): Removed.
2383         (mmx_ssadd<mode>3): Ditto.
2384         (mmx_usadd<mode>3): Ditto.
2385         (mmx_sub<mode>3): Ditto.
2386         (mmx_sssub<mode>3): Ditto.
2387         (mmx_ussub<mode>3): Ditto.
2388         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2389         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2390         to handle nonimmediate operands.
2391         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2392         insn pattern.
2393         (mmx_smulv4hi3_highpart): New expander.  Use
2394         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2395         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2396         insn pattern.
2397         (mmx_umulv4hi3_highpart): New expander.  Use
2398         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2399         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2400         (mmx_<code>v4hi3): New expander.  Use
2401         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2402         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2403         (mmx_<code>v8qi3): New expander.  Use
2404         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2405         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2406         (mmx_<code><mode>3): New expander.  Use
2407         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2408
2409 2008-05-05  Jan Hubicka  <jh@suse.cz>
2410
2411         PR tree-optimization/36118
2412         * passes.c (pass_init_dump_file): Fix dump header.
2413
2414 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2415
2416         PR middle-end/36141
2417         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2418         VCE for function decls.
2419
2420 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2421
2422         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2423
2424 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2425
2426         * config/i386/i386.md (sat_plusminus): New.
2427         (plusminus_insn): Likewise.
2428         (plusminus_mnemonic): Likewise.
2429         (addsub): Removed.
2430         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2431         (*<addsub><mode>3_cc_overflow): Renamed to ...
2432         (*<plusminus_insn><mode>3_cc_overflow): This.
2433         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2434         (*<plusminus_insn>si3_zext_cc_overflow): This.
2435
2436         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2437         (<plusminus_insn><mode>3): This.
2438         (*<addsub><mode>3): Renamed to ...
2439         (*<plusminus_insn><mode>3): This.
2440         (<sse>_vm<addsub><mode>3): Renamed to ...
2441         (<sse>_vm<plusminus_insn><mode>3): This.
2442         (sse3_h<addsub>v4sf3): Renamed to ...
2443         (sse3_h<plusminus_insn>v4sf3): This.
2444         (sse3_h<addsub>v2df3): Renamed to ...
2445         (sse3_h<plusminus_insn>v2df3): This.
2446         (<plusminus_insn><mode>3): New.
2447         (*<plusminus_insn><mode>3): Likewise.
2448         (sse2_<plusminus_insn><mode>3): Likewise.
2449         (add<mode>): Removed.
2450         (*add<mode>3): Likewise.
2451         (sse2_ssadd<mode>3): Likewise.
2452         (sse2_usadd<mode>3): Likewise.
2453         (sub<mode>3): Likewise.
2454         (*sub<mode>3): Likewise.
2455         (sse2_sssub<mode>3): Likewise.
2456         (sse2_ussub<mode>3): Likewise.
2457
2458 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2459
2460         * gthr-single.h: Add in required interface elements as per gthr.h.
2461         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2462         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2463         Generalize UNUSED macro. 
2464         (__gthread_once): Add.
2465         (__gthread_key_create): Add.
2466         (__gthread_key_delete): Add.
2467         (__gthread_getspecific): Add.
2468         (__gthread_setspecific): Add.
2469         
2470 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2471
2472         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2473         the same size types for the indirect reference on the rhs, then
2474         create a VCE.
2475
2476 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2477
2478         * config/i386/i386.md
2479         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2480         one insn template instead of template series.
2481         (*xordi_1_rex64): Ditto.
2482         (*xordi_2_rex64): Ditto.
2483
2484 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2485
2486         PR tree-optimization/36119
2487         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2488         in case of SLP.
2489
2490 2008-06-04  Jan Hubicka  <jh@suse.cz>
2491
2492         tree-optimization/36100
2493         * tree-pass.h (pass_O0_always_inline): Declare.
2494         * ipa-inline.c (inline_transform): Remove dead code.
2495         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2496         pass_O0_always_inline): New.
2497         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2498
2499 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2500
2501         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2502         mnemonic in this_param move for TARGET_64BIT.
2503
2504 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2505
2506         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2507         (*strmovsi_rex_1): Ditto.
2508         (*strsetsi_1): Ditto.
2509         (*strsetsi_rex_1): Ditto.
2510
2511         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2512         adddicc expanders using SWI mode iterator.
2513
2514 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2515
2516         PR target/36121
2517         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2518         argument handling.
2519
2520 2008-05-04  David S. Miller  <davem@davemloft.net>
2521
2522         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2523         (sparc*-*-linux*): Use linux.h in tm_file.
2524         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2525         compiler defaulting to 32-bit.
2526         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2527         no longer needed.
2528         * config/sparc/linux.h: Remove definitions now obtained
2529         properly from linux.h
2530         * config/sparc/linux64.h: Likewise.
2531         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2532         don't want this setting for 32-bit builds in a biarch compiler.
2533         * doc/install.texi: Add sparc-linux to list of targets
2534         supporting --enable-targets=all.
2535
2536 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2537
2538         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2539
2540 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2541
2542         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2543         after V4SI_FTYPE_V8HI.
2544         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2545         case V4SI_FTYPE_V2DF.
2546
2547 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2548
2549         * doc/invoke.texi (max-flow-memory-locations): Removed.
2550         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2551         
2552 2008-05-03  Richard Guenther  <rguenther@suse.de>
2553
2554         PR middle-end/34973
2555         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2556
2557 2008-05-02  David S. Miller  <davem@davemloft.net>
2558
2559         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2560
2561 2008-05-02  Simon Baldwin <simonb@google.com>
2562
2563         PR bootstrap/36108
2564         * c-common.h (warn_array_subscript_range): Removed.
2565         * c-common.c (warn_array_subscript_range): Ditto.
2566         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2567         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2568
2569 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2570
2571         * config/i386/i386.c (ix86_special_builtin_type): New.
2572         (bdesc_special_args): Likewise.
2573         (ix86_expand_special_args_builtin): Likewise.
2574         (ix86_init_mmx_sse_builtins): Updated.
2575         (ix86_expand_builtin): Updated.
2576         (ix86_expand_store_builtin): Removed.
2577         (ix86_expand_unop_builtin): Likewise.
2578
2579         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2580         * config/i386/mmintrin.h (__v2sf): Here.
2581
2582         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2583         const __v2sf.
2584         (_mm_loadl_pi): Likewise.
2585         (_mm_storeh_pi): Replace __v2si with __v2sf.
2586         (_mm_storel_pi): Likewise.
2587
2588         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2589         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2590         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2591         __builtin_ia32_loadlpd.
2592
2593 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2594
2595         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2596         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2597         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2598         (ix86_init_mmx_sse_builtins): Updated.
2599         (ix86_expand_args_builtin): Likewise.
2600         (ix86_expand_builtin): Likewise.
2601         (ix86_expand_unop1_builtin): Renamed to ...
2602         (ix86_expand_unop_vec_merge_builtin): This.
2603
2604 2008-05-01  Jan Hubicka  <jh@suse.cz>
2605
2606         PR bootstrap/36100
2607         * ipa-inline.c (inline_generate_summary): Make static.
2608         (inline_transform): Do not call inlining at -O0; make static.
2609         * passes.c (execute_todo): Add sanity check.
2610         (execute_one_ipa_transform_pass): Execute proper flags.
2611
2612 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2613
2614         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2615         (DECL_NONADDRESSABLE_P): Likewise.
2616         * alias.c (record_component_aliases): Fix comment.
2617
2618 2008-05-01  Simon Baldwin <simonb@google.com>
2619
2620         * c-common.h (warn_array_subscript_range): New function.
2621         * c-common.c (warn_array_subscript_range): Ditto.
2622         * tree-vrp.c (check_array_ref): Corrected code to agree with
2623         comment, ignoring only arrays of size 0 or size 1.
2624         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2625
2626 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2627
2628         * config/i386/i386.c (ix86_builtin_type): Replace
2629         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2630         (bdesc_args): Updated.
2631         (ix86_init_mmx_sse_builtins): Likewise.
2632         (ix86_expand_args_builtin): Likewise.
2633
2634         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2635         with __v1di.
2636
2637         * doc/extend.texi: Correct __builtin_ia32_palignr.
2638
2639 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2640
2641         PR target/36095
2642         * config/i386/i386.c (bdesc_crc32): Removed.
2643         (ix86_expand_crc32): Likewise.
2644         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2645         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2646         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2647         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2648         UINT_FTYPE_UINT_UCHAR.
2649         (bdesc_args): Updated. Add crc32 builtins.
2650         (ix86_init_mmx_sse_builtins): Updated.
2651         (ix86_expand_args_builtin): Updated to support subreg.
2652
2653         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2654
2655 2008-05-01  Jan Hubicka  <jh@suse.cz>
2656
2657         * tree-pass.h (opt_pass): Add IPA_PASS.
2658         (varpool_node, cgraph_node): Forward declare.
2659         (ipa_opt_pass): Define.
2660         (pass_ipa_inline): Turn into ipa_opt_pass.
2661         (pass_apply_inline): Remove.
2662         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2663         (apply_inline): Turn into ....
2664         (inline_transform): ... this one.
2665         (inline_generate_summary): New function.
2666         (pass_apply_inline): Remove.
2667         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2668         vector.
2669         (struct function): Add ipa_transforms_to_apply.
2670         * passes.c (register_one_dump_file): Work on IPA_PASS.
2671         (init_optimization_passes): Remove pass_inline_parameters and
2672         pass_apply_inline.
2673         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2674         (execute_one_pass) ... here; apply transforms when possible.
2675         (add_ipa_transform_pass, execute_ipa_summary_asses,
2676         execute_one_ipa_transform_pass): New.
2677         (execute_ipa_pass_list): Update for IPA_PASS type.
2678
2679 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2680
2681         * config/i386/i386.c (ix86_builtin_type): Add
2682         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2683         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2684         (bdesc_args): Add SSE4a builtins.
2685         (ix86_init_mmx_sse_builtins): Updated.
2686         (ix86_expand_args_builtin): Likewise.
2687         (ix86_expand_builtin): Likewise.
2688
2689 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2690
2691         * config/i386/i386.c (ix86_builtin_type): Add
2692         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2693         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2694         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2695         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2696         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2697         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2698         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2699         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2700         and DI_FTYPE_DI_DI_INT.
2701         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2702         (ix86_init_mmx_sse_builtins): Updated.
2703         (ix86_expand_args_builtin): Likewise.
2704         (ix86_expand_builtin): Likewise.
2705         (ix86_expand_binop_imm_builtin): Removed.
2706
2707         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2708
2709 2008-04-30  Richard Guenther  <rguenther@suse.de>
2710
2711         PR tree-optimization/32921
2712         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2713
2714 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2715
2716         * config/arm/arm.c (arm_unwind_emit): Use
2717         crtl->all_throwers_are_sibcalls instead of
2718         cfun->all_throwers_are_sibcalls.
2719         (arm_output_fn_unwind): Likewise.
2720         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2721         instead of cfun->uses_pic_offset_table.
2722         (frv_expand_prologue): Likewise.
2723         (frv_frame_pointer_required): Likewise.
2724         (frv_expand_fdpic_call): Likewise.
2725         (frv_emit_movsi): Likewise.
2726         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2727         cfun->returns_pcc_struct instead of
2728         current_function_returns_pcc_struct.
2729         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2730         instead of cfun->calls_eh_return.
2731         (m32c_pushm_popm): Likewise.
2732         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2733         "extern" declaration.
2734
2735 2008-04-30  Richard Guenther  <rguenther@suse.de>
2736
2737         PR tree-optimization/21636
2738         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2739         constant address.
2740         (evaluate_stmt): Print the likely value.
2741         (ccp_visit_stmt): Avoid excessive vertical spacing.
2742
2743 2008-04-30  Rafael Espindola  <espindola@google.com>
2744
2745         * builtins.c (fold_call_expr): Return realret.
2746         * tree-ssa-threadedge.c
2747         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2748         __builtin_object_size.
2749
2750 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2751
2752         * gcc.c (wrapper_string): New variable.
2753         (insert_wrapper): New function.
2754         (execute): New option -wrapper.
2755         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2756
2757 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2758
2759         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2760         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2761         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2762         from...
2763         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2764         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2765         config/rs6000/e500crtres64gprctr.asm,
2766         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2767         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2768         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2769         config/rs6000/e500crtsav64gprctr.asm,
2770         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2771         config/rs6000/e500crtsavg64gprctr.asm: New files.
2772         * config/rs6000/t-ppccomm: Add build rules for new files.
2773         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2774         * config/rs6000/t-netbsd: Add build rules for new files.
2775         (LIB2FUNCS_STATIC_EXTRA): New variable.
2776         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2777         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2778         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2779
2780 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2781
2782         * config/i386/i386.c (ix86_builtin_type): Add
2783         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2784         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2785         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2786         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2787         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2788         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2789         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2790         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2791         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2792         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2793         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2794         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2795         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2796         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2797         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2798         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2799         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2800         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2801         V1DI_FTYPE_V2SI_V2SI.
2802         (bdesc_2arg): Moved to ...
2803         (bdesc_args): Here.
2804         (ix86_init_mmx_sse_builtins): Updated.
2805         (ix86_expand_args_builtin): Updated.  Take a pointer
2806         to const struct builtin_description.  Handle comparison
2807         builtin functions.
2808         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2809         (ix86_expand_builtin): Updated.
2810
2811         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2812         (ssse3_pmaddubsw128): This.
2813         (ssse3_pmaddubswv4hi3): Renamed to ...
2814         (ssse3_pmaddubsw): This.
2815
2816         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2817         (__builtin_ia32_packssdw128): Likewise.
2818         (__builtin_ia32_packuswb128): Likewise.
2819         (__builtin_ia32_pmaddubsw): Likewise.
2820         (__builtin_ia32_pmaddubsw128): Likewise.
2821
2822 2008-04-30  Richard Guenther  <rguenther@suse.de>
2823
2824         PR tree-optimization/14847
2825         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2826         (recognize_bits_test): Use it.
2827         (recognize_single_bit_test): Likewise.
2828
2829 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2830
2831         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2832         instead of setting number of formal parameters to zero.
2833         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2834         either.
2835         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2836         which are called with variable number of arguments.
2837         (ipcp_insert_stage): Explicitely skipping all nodes which are
2838         called with variable number of arguments.
2839         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2840         number of parameters.
2841
2842         * ipa-prop.h (struct ipa_node_params): Added flag
2843         called_with_var_arguments
2844         (ipa_set_param_count): Added.  Changed sole setter to use it.
2845         (ipa_get_param_count): Added.  All readers of param_count
2846         converted to use it instead.
2847         (ipa_set_called_with_variable_arg): Added.
2848         (ipa_is_called_with_var_arguments): Added.
2849         (ipa_get_ith_param): Added.  All readers of param_decls converted
2850         to use it instead.
2851         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2852         changed to use it. 
2853         (ipa_get_cs_argument_count): Added, all readers of argument_count
2854         changed to cal it.
2855         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2856         to use it.
2857         
2858         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2859         (struct ipcp_lattice): Renamed cval_type to type
2860         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2861
2862         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2863         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2864         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2865         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2866         (build_const_val): Changed the type of parameter cvalue to tree
2867         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2868         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2869         
2870         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2871         constant 
2872
2873         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2874         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2875         (ipa_add_method): Renamed to ipa_push_func_to_list
2876         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2877         (ipa_callsite_param_count): Removed.
2878         (ipa_callsite_param_count_set): Removed.
2879         (ipa_callsite_param): Removed.
2880         (ipa_callsite_callee): Removed.
2881         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
2882         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
2883         (ipa_method_formal_count): Removed.
2884         (ipa_method_formal_count_set): Removed.
2885         (ipa_method_get_tree): Removed.
2886         (ipa_method_tree_map_create): Removed.
2887         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
2888         (ipa_create_param_decls_array): Creates the array itself
2889         (ipa_create_param_decls_array): Temporary variable info instead of 
2890         a few dereferences.
2891         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
2892         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
2893         (get_type): Removed.
2894         (ipa_jf_get_info_type): Removed.
2895         (ipa_node_create): Renamed to ipa_create_node_params
2896         (ipa_free): Renamed to ipa_free_all_node_params
2897         (ipa_nodes_create): Renamed to ipa_create_all_node_params
2898         (ipa_edges_create): Renamed to ipa_create_all_edge_args
2899         (ipa_edges_free): Renamed to ipa_free_all_edge_args
2900         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
2901         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
2902         ipa_free_all_edge_args
2903         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
2904         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
2905         (ipa_create_methodlist_node): Removed.
2906         (ipa_methodlist_method): Removed.
2907         (ipa_methodlist_method_set): Removed.
2908         (ipa_methodlist_next_method): Removed.
2909         (ipa_methodlist_next_method_set): Removed.
2910         (ipa_method_is_modified): Removed.
2911         (ipa_method_modify_create): Removed.
2912         (ipa_method_modify_init): Temporary variable info instead of a few 
2913         dereferences.
2914         (ipa_detect_param_modifications): Temporary variable info instead of 
2915         a few dereferences.
2916         (ipa_compute_jump_functions): Temporary variable info instead of 
2917         a few dereferences.
2918         (ipa_method_modify_set): Removed.
2919         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
2920         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
2921         than craph_node as the first parameter.
2922         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
2923         (ipa_method_modify_init): Removed.
2924         (ipa_compute_jump_functions): Added a temp variable instead of 
2925         repeatadly dereferencing the cgraph_edge.aux pointer
2926         (ipa_callsite_param_set_type): Removed.
2927         (ipa_compute_jump_functions): i renamed to index and moved to 
2928         an inner block
2929         (ipa_callsite_param_set_info_type_formal): Removed.
2930         (ipa_callsite_param_set_info_type): Removed.
2931         (ipa_callsite_param_map_create): Removed.
2932         (ipa_callsite_tree): Removed.
2933         (ipa_callsite_caller): Removed.
2934         (ipa_pop_func_from_list): return_method removed to return_func
2935
2936         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
2937         prefixed all values with IPA_. Changed all users.
2938         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
2939         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
2940         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
2941         (union parameter_info): Renamed to jump_func_value.
2942         (union jump_func_value): Renamed value to constant
2943         (struct ipa_jump_func): Renamed info_type to value
2944         (struct ipa_node): Renamed to ipa_node_params
2945         (struct ipa_node_params): Renamed ipa_arg_num to param_count
2946         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
2947         (struct ipa_node_params): Renamed ipa_mod to modified_flags
2948         (struct ipa_edge): Renamed to ipa_edge_args
2949         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
2950         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
2951         (struct ipa_methodlist): Renamed to ipa_func_list
2952         (struct ipa_func_list): method_p renamed to node, next_method
2953         renamed to next
2954         (ipa_methodlist_p): Removed, switched all users to struct pointer
2955         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
2956
2957 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
2958
2959         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
2960         (rs6000_emit_epilogue): Use backchain to restore only when we
2961         have a large frame.  Make use of frame pointer to restore if we
2962         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
2963
2964 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
2965
2966         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2967         Add mode to zero_extract.
2968         (sign bit tests peepholes): (Ditto.).
2969
2970 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2971
2972         * config/i386/i386.c (ix86_builtins): Replace Prescott New
2973         Instructions in comments with SSE3.
2974         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
2975         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
2976         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
2977         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
2978         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
2979         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
2980         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
2981         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
2982         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
2983         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
2984         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
2985         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
2986         (bdesc_sse_args): Renamed to ...
2987         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
2988         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
2989         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
2990         IX86_BUILTIN_FABSQ.
2991         (bdesc_1arg): Moved to ...
2992         (bdesc_args): Here.
2993         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
2994         Instructions in comments with SSE3.
2995         (ix86_expand_sse_operands_builtin): Renamed to ...
2996         (ix86_expand_args_builtin): This.  Updated.
2997         (ix86_expand_unop1_builtin): Update comments.
2998         (ix86_expand_builtin): Updated.
2999
3000 2008-04-29  Richard Guenther  <rguenther@suse.de>
3001
3002         PR tree-optimization/36078
3003         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
3004         Update virtual SSA form after cleaning up the CFG.
3005
3006 2008-04-29  Richard Guenther  <rguenther@suse.de>
3007
3008         PR middle-end/15255
3009         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
3010
3011 2008-04-29  Richard Guenther  <rguenther@suse.de>
3012
3013         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
3014         (compute_may_aliases): Do not call finalize_ref_all_pointers.
3015         (compute_flow_insensitive_aliasing): Do not treat
3016         PTR_IS_REF_ALL pointers special.
3017         (get_smt_for): Likewise.
3018         (may_alias_p): Re-structure.
3019         (is_escape_site): A ref-all pointer conversion is not an escape site.
3020         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
3021         PTR_IS_REF_ALL pointers special.
3022         * tree-ssa-structalias.h (struct alias_info): Remove
3023         ref_all_symbol_mem_tag field.
3024         (PTR_IS_REF_ALL): Remove.
3025
3026 2008-04-29  Richard Guenther  <rguenther@suse.de>
3027
3028         PR middle-end/36077
3029         * fold-const.c (extract_muldiv_1): In combining division constants
3030         make sure to never overflow.
3031
3032 2008-04-29  Nick Clifton  <nickc@redhat.com>
3033
3034         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3035
3036 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3037
3038         PR bootstrap/35169
3039         * optc-gen.awk: Work around HP-UX/IA awk bug.
3040
3041 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3042
3043         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3044         2008-04-25 commit.
3045
3046 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3047
3048         PR target/36073
3049         * config/i386/i386.md
3050         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3051         Change operand 1 predicate to nonimmediate_operand.
3052
3053 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3054
3055         PR debug/36060
3056         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3057         die_sub field.
3058         * gengtype.c (walk_type, write_func_for_structure): Handle
3059         chain_circular.
3060         * doc/gty.texi: Document chain_circular.
3061
3062 2008-04-28  Richard Guenther  <rguenther@suse.de>
3063
3064         PR tree-optimization/36066
3065         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3066         SCEV and loop.
3067
3068 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3069
3070         PR target/36064
3071         * config/i386/i386.md
3072         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3073         Use match_scratch instead of match_operand for operands 3 and 4.
3074
3075 2008-04-27  Richard Guenther  <rguenther@suse.de>
3076
3077         PR tree-optimization/18754
3078         PR tree-optimization/34223
3079         * tree-pass.h (pass_complete_unrolli): Declare.
3080         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3081         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3082         Rewrite loop into loop closed SSA form if it is not already.
3083         (tree_unroll_loops_completely): Re-structure to iterate over
3084         innermost loops with intermediate CFG cleanups.
3085         Unroll outermost loops only if requested or the code does not grow
3086         doing so.
3087         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3088         loops are available.
3089         (tree_vectorize): Instead do so here.
3090         (tree_complete_unroll): Also unroll outermost loops.
3091         (tree_complete_unroll_inner): New function.
3092         (gate_tree_complete_unroll_inner): Likewise.
3093         (pass_complete_unrolli): New pass.
3094         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3095         uses outside of the loop.
3096         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3097         form if it is available.  
3098         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3099         * passes.c (init_optimization_passes): Schedule complete inner
3100         loop unrolling pass before the first CCP pass after final inlining.
3101
3102 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3103
3104         * targhooks.h (default_emutls_var_fields,
3105         default_emutls_var_init): Declare.
3106         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3107         * target.h (struct gcc_target): Add struct emutls member.
3108         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3109         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3110         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3111         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3112         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3113         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3114         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3115         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3116         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3117         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3118         emit debug information.
3119         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3120         * varasm.c: Include targhooks.h.
3121         (emutls_object_section, emutls_tmpl_section): New.
3122         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3123         (EMUTLS_SEPARATOR): New.
3124         (prefix_name): New.
3125         (get_emutls_object_name): New.
3126         (default_emutls_var_fields): New, broken out of ...
3127         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3128         (get_emutls_init_templ_addr): Adjust to use target hooks.
3129         (emutls_decl): Adjust to use target hooks.
3130         (emutls_finish): Likewise.
3131         (default_emutls_var_init): New, broken out of ...
3132         (assemble_variable): ... here.  Adjust to use target hooks.
3133         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3134         SECCAT_EMUTLS_TMPL.
3135         * c-common.c (handle_section_attribute): Prevent overriding
3136         sections for emulated tls with special sections.
3137         * config/i386/i386.c (x86_64_elf_select_section): Add
3138         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3139         (x86_64_elf_unique_section): Likewise.
3140         * config/vxworks.c: Include tree.h.
3141         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3142         (vxworks_override_options): Set TLS scheme.
3143         * doc/tm.texi (Emulated TLS): New node.
3144
3145 2008-04-26  Simon Baldwin <simonb@google.com>
3146
3147         PR c/35652
3148         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3149         with propagated string constants.
3150
3151 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3152
3153         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3154         constraint for operand 2 when operand 0 is memory operand.
3155         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3156         operand 0 is memory operand.
3157         (fix_trunc<mode>_i387_with_temp): Ditto.
3158         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3159         operand 2 when operand 1 is memory operand.
3160         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3161         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3162         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3163         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3164         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3165         operands 2,3 and 4 when operand 1 is memory operand.
3166         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3167         is memory operand.
3168         (fistdi2_floor_with_temp): Ditto.
3169         (fist<mode>2_floor_with_temp): Ditto.
3170         (fistdi2_ceil_with_temp): Ditto.
3171         (fist<mode>2_ceil_with_temp): Ditto.
3172         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3173
3174 2008-04-26  David Daney  <ddaney@avtrex.com>
3175
3176         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3177         unspec_volitile.
3178         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3179         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3180         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3181         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3182         (compare_and_swap_12): New insn.
3183         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3184         * config/mips/mips.c (mips_force_binary): New function.
3185         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3186         (mips_expand_compare_and_swap_12): New function.
3187         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3188
3189 2008-04-25  Jan Hubicka  <jh@suse.cz>
3190
3191         PR testsuite/35843
3192         * cfgexpand.c (pass_expand): Turn into RTL pass.
3193         * passes.c (execute_one_pass): Do pass typechecking after execution.
3194         * tree-pass.h (pass_expand): Turn into RTL pass.
3195
3196         * function.h (struct rtl_data): Move here fields
3197         accesses_prior_frames, calls_eh_return, saves_all_registers,
3198         has_nonlocal_goto, has_asm_statement, is_thunk,
3199         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3200         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3201         arg_pointer_save_area_init from struct function; turn into bool.
3202         (struct function): Move
3203         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3204         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3205         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3206         tail_call_emit, arg_pointer_save_area_init
3207         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3208         (current_function_returns_struct, current_function_returns_pcc_struct,
3209         current_function_calls_setjmp, current_function_calls_alloca,
3210         current_function_accesses_prior_frames,
3211         current_function_calls_eh_return, current_function_is_thunk,
3212         current_function_stdarg, current_function_profile,
3213         current_function_limit_stack, current_function_uses_pic_offset_table,
3214         current_function_uses_const_pool, current_function_has_nonlocal_label,
3215         current_function_saves_all_registers,
3216         current_function_has_nonlocal_goto,
3217         current_function_has_asm_statement): Remove accesor macros.
3218         * ra-conflict.c (global_conflicts): Update.
3219         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3220         (suitable_for_tail_call_opt_p): Update.
3221         * builtins.c (expand_builtin_return_addr): Update.
3222         (expand_builtin_setjmp_setup): Update.
3223         (expand_builtin_nonlocal_goto): Update.
3224         * final.c (final_start_function): Update.
3225         (profile_function): Update.
3226         (leaf_function_p): Update.
3227         (only_leaf_regs_used): Update.
3228         * df-scan.c (df_get_exit_block_use_set): Update.
3229         * dojump.c (clear_pending_stack_adjust): Update.
3230         * tree-stdarg.c (gate_optimize_stdarg): Update.
3231         * gimple-low.c (lower_function_body): Update.
3232         * global.c (compute_regsets): Update.
3233         (global_alloc): Update.
3234         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3235         * expr.c (expand_assignment): Update.
3236         * dse.c (dse_step0): Update.
3237         (dse_step1): Update.
3238         * c-decl.c (store_parm_decls): Update.
3239         * local-alloc.c (combine_regs): Update.
3240         (find_free_reg): Update.
3241         * function.c (assign_parms_augmented_arg_list): Update.
3242         (assign_parm_find_data_types): Update.
3243         (assign_parms): Update.
3244         (allocate_struct_function): Update.
3245         (expand_function_start): Update.
3246         (expand_function_end): Update.
3247         (get_arg_pointer_save_area): Update.
3248         (thread_prologue_and_epilogue_insns): Update.
3249         (rest_of_match_asm_constraints): Update.
3250         * stor-layout.c (variable_size): Update.
3251         * gcse.c (gcse_main): Update.
3252         (bypass_jumps): Update.
3253         * gimplify.c (gimplify_function_tree): Update.
3254         * calls.c (emit_call_1): Update.
3255         (expand_call): Update.
3256         * bt-load.c (compute_defs_uses_and_gen): Update.
3257         * except.c (sjlj_assign_call_site_values): Update.
3258         (sjlj_emit_function_enter): Update.
3259         (can_throw_external): Update.
3260         (set_nothrow_function_flags): Update.
3261         (expand_builtin_unwind_init): Update.
3262         (expand_eh_return): Update.
3263         (convert_to_eh_region_ranges): Update.
3264         (output_function_exception_table): Update.
3265         * emit-rtl.c (gen_tmp_stack_mem): Update.
3266         * cfgexpand.c (expand_used_vars): Update.
3267         (tree_expand_cfg): Update.
3268         * cfgcleanup.c (rest_of_handle_jump): Update.
3269         * explow.c (allocate_dynamic_stack_space): Update.
3270         * varasm.c (assemble_start_function): Update.
3271         (force_const_mem): Update.
3272         (mark_constant_pool): Update.
3273         * tree-optimize.c (tree_rest_of_compilation): Update.
3274         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3275         * tree-cfg.c (notice_special_calls): Update.
3276         (is_ctrl_altering_stmt): Update.
3277         (tree_can_make_abnormal_goto): Update.
3278         (tree_purge_dead_abnormal_call_edges): Update.
3279         * config/alpha/predicates.md: Update.
3280         * config/alpha/alpha.c (alpha_sa_mask): Update.
3281         (alpha_sa_size): Update.
3282         (alpha_does_function_need_gp): Update.
3283         (alpha_expand_prologue): Update.
3284         (alpha_start_function): Update.
3285         (alpha_output_function_end_prologue): Update.
3286         (alpha_expand_epilogue): Update.
3287         * config/frv/frv.c (frv_stack_info): Update.
3288         (frv_expand_epilogue): Update.
3289         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3290         (s390_register_info): Update.
3291         (s390_frame_info): Update.
3292         (s390_init_frame_layout): Update.
3293         (s390_can_eliminate): Update.
3294         (save_gprs): Update.
3295         * config/spu/spu.c (spu_split_immediate): Update.
3296         (need_to_save_reg): Update.
3297         (spu_expand_prologue): Update.
3298         (spu_expand_epilogue): Update.
3299         * config/sparc/sparc.md: Update.
3300         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3301         (sparc_tls_got): Update.
3302         (legitimize_pic_address): Update.
3303         (sparc_emit_call_insn): Update.
3304         (sparc_expand_prologue): Update.
3305         (output_return): Update.
3306         (print_operand): Update.
3307         (sparc_function_ok_for_sibcall): Update.
3308         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3309         * config/m32r/m32r.md: Update.
3310         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3311         (m32r_compute_frame_size): Update.
3312         (m32r_expand_prologue): Update.
3313         (m32r_expand_epilogue): Update.
3314         (m32r_legitimize_pic_address): Update.
3315         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3316         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3317         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3318         (gen_push): Update.
3319         (ix86_save_reg): Update.
3320         (ix86_compute_frame_layout): Update.
3321         (ix86_expand_prologue): Update.
3322         (ix86_expand_epilogue): Update.
3323         * config/sh/sh.c (output_stack_adjust): Update.
3324         (calc_live_regs): Update.
3325         (sh5_schedule_saves): Update.
3326         (sh_expand_prologue): Update.
3327         (sh_expand_epilogue): Update.
3328         (sh_setup_incoming_varargs): Update.
3329         (sh_allocate_initial_value): Update.
3330         (sh_get_pr_initial_val): Update.
3331         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3332         * config/sh/sh.md (label:): Update.
3333         * config/avr/avr.c (out_movhi_mr_r): Update.
3334         * config/crx/crx.h (enum): Update.
3335         * config/xtensa/xtensa.h (along): Update.
3336         * config/stormy16/stormy16.c Update.
3337         (xstormy16_compute_stack_layout): Update.
3338         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3339         (fr30_expand_prologue): Update.
3340         * config/cris/cris.c (cris_conditional_register_usage): Update.
3341         (cris_reg_saved_in_regsave_area): Update.
3342         (cris_initial_frame_pointer_offset): Update.
3343         (cris_simple_epilogue): Update.
3344         (cris_expand_prologue): Update.
3345         (cris_expand_epilogue): Update.
3346         (cris_expand_pic_call_address): Update.
3347         (cris_asm_output_symbol_ref): Update.
3348         (cris_asm_output_label_ref): Update.
3349         * config/cris/cris.md Update.
3350         * config/iq2000/iq2000.c (compute_frame_size): Update.
3351         (iq2000_expand_epilogue): Update.
3352         * config/mt/mt.h (save_direction): Update.
3353         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3354         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3355         (ia64_secondary_reload_class): Update.
3356         * config/m68k/m68k.c (m68k_save_reg): Update.
3357         (m68k_expand_prologue): Update.
3358         (m68k_expand_epilogue): Update.
3359         (legitimize_pic_address): Update.
3360         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3361         (first_reg_to_save): Update.
3362         (first_altivec_reg_to_save): Update.
3363         (compute_vrsave_mask): Update.
3364         (compute_save_world_info): Update.
3365         (rs6000_stack_info): Update.
3366         (spe_func_has_64bit_regs_p): Update.
3367         (rs6000_ra_ever_killed): Update.
3368         (rs6000_emit_eh_reg_restore): Update.
3369         (rs6000_emit_allocate_stack): Update.
3370         (rs6000_emit_prologue): Update.
3371         (rs6000_emit_epilogue): Update.
3372         (rs6000_output_function_epilogue): Update.
3373         (output_profile_hook): Update.
3374         (rs6000_elf_declare_function_name): Update.
3375         * config/rs6000/rs6000.h (rs6000_args): Update.
3376         * config/rs6000/rs6000.md: Update.
3377         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3378         * config/arc/arc.c (arc_output_function_epilogue): Update.
3379         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3380         * config/darwin.c (machopic_function_base_name): Update.
3381         * config/score/score3.c (score3_compute_frame_size): Update.
3382         (rpush): Update.
3383         (rpop): Update.
3384         (score3_epilogue): Update.
3385         * config/score/score7.c (score7_compute_frame_size): Update.
3386         (score7_prologue): Update.
3387         (score7_epilogue): Update.
3388         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3389         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3390         * config/arm/arm.c (use_return_insn): Update.
3391         (require_pic_register): Update.
3392         (arm_load_pic_register): Update.
3393         (arm_compute_save_reg0_reg12_mask): Update.