OSDN Git Service

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