OSDN Git Service

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