OSDN Git Service

Remove libcall notes.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-06-17  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * see.c (see_analyse_one_def): Do not look for REG_LIBCALL and
4         REG_RETVAL notes.
5         (see_update_relevancy): Likewise.
6         * fwprop.c (try_fwprop_subst): Likewise.
7         * rtlanal.c (noop_move_p): Likewise.
8         * builtins.c (expand_buitlin_mathfn): Don't try to add REG_EQUAL
9         notes to non-existing libcall blocks.
10         * cse.c (cse_insn): Change prototype.  Don't update libcall notes.
11         Remove orig_set.
12         (cse_extended_basic_block): Don't track libcall and no-conflict notes.
13         (dead_libcall_p): Remove.
14         (delete_trivially_dead_insns): Don't use it.
15         * web.c (union_defs): Remove comment about keeping nops.
16         * gcse.c (hash_scan_insn): Don't take libcall pointers.
17         (compute_hash_table_work): Don't track libcall notes.
18         (do_local_cprop): Don't take libcall pointers.  Don't update
19         libcall notes.
20         (adjust_libcall_notes): Deleted.
21         (local_cprop_pass): Remove stack for nested libcalls (which shouldn't
22         ever have existed in the first place).
23         (replace_store_insn): Don't try to remove libcall notes.
24         * lower-subreg.c (move_libcall_note, move_retval_note): Deleted.
25         (resolve_reg_notes): Don't call them.
26         (resolve_simple_move): Likewise.
27         (decompose_multiword_subregs): Remove block handling REG_RETVAL notes.
28         Don't remove REG_RETVAL notes.
29         * emit-rtl.c (try_split): Don't update libcall notes.
30         (emit_copy_of_insn_after): Dito.
31         * cselib.c (cselib_current_insn_in_libcall): Remove.
32         (cselib_process_insn): Don't set/clear it.
33         (new_elt_loc_list): Don't record it.
34         (cselib_init): Don't initialize it.
35         * cselib.c (struct elt_loc_list): Remove in_libcall field.
36         * loop-invariant.c (find_invariant_insn): Don't look for libcall
37         notes.
38         * sched-deps.c (sched_analyze_insn): Don't group libcall blocks.
39         (sched_analyze): Don't set up deps->libcall_block_tail_insn.
40         (init_deps): Don't initialize it.
41         * sched-int.h (struct deps): Rremove libcall_block_tail_insn field.
42         * combine.c (delete_noop_moves): Don't update libcall notes.
43         (can_combine_p): Remove now pointless #if 0 block.
44         (try_combine): Remove another obsolete #if 0 block.
45         (distribute_notes): Don't distribute libcall notes.
46         * reg-notes.def (REG_LIBCALL, REG_RETVAL): Remove.
47         * dce.c (libcall_dead_p): Remove.
48         (delete_unmarked_insns): Don't handle libcall blocks.
49         (preserve_libcall_for_dce): Remove.
50         (prescan_insns_for_dce): Don't special-case libcall block insns.
51         * reload1 (reload): Don't handle libcall notes. 
52         * doc/rtl.texi (REG_LIBCALL, REG_RETVAL, REG_LIBCALL_ID): Remove
53         documentation.
54
55 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
56
57         * config/avr/avr.c (avr_mcu_t): Add atmega32c1.
58         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
59         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
60
61 2008-06-16  Eric B. Weddington  <eric.weddington@atmel.com>
62
63         * config/avr/avr.c (avr_mcu_t): Add atmega32m1.
64         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
65         * config/avr/t-avr (MULTILIB_MATCHES): Likewise. 
66
67 2008-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
68
69         * Makefile.in (FLAGS_TO_PASS): Add $(datarootdir).
70
71 2008-06-16  Ira Rosen  <irar@il.ibm.com>
72
73         PR tree-optimization/36493
74         * tree-vect-transform.c (vect_create_data_ref_ptr): Remove TYPE from
75         the arguments list. Use VECTYPE to create vector pointer.
76         (vectorizable_store): Fail if accesses through a pointer to vectype
77         do not alias the original memory reference operands.
78         Call vect_create_data_ref_ptr without the removed argument.
79         (vectorizable_load): Likewise.
80         (vect_setup_realignment): Call vect_create_data_ref_ptr without the
81         removed argument.
82
83 2008-06-015  Andy Hutchinson  <hutchinsonandy@aim.com>
84
85         PR target/36336
86         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Add check for 
87         reg_equiv_constant.
88
89 2008-06-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
90
91         * config/mips/loongson2ef.md: New file.
92         * config/mips/mips.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
93         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
94         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
95         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): New constants.
96         (define_attr "cpu"): Rename loongson2e and loongson2f to loongson_2e
97         and loongson_2f.
98         (loongson2ef.md): New include.
99         * config/mips/loongson.md (vec_pack_ssat_<mode>, vec_pack_usat_<mode>)
100         (add<mode>3, paddd, ssadd<mode>3, usadd<mode>3)
101         (loongson_and_not_<mode>, loongson_average_<mode>, loongson_eq_<mode>)
102         (loongson_gt_<mode>, loongson_extract_halfword)
103         (loongson_insert_halfword_0, loongson_insert_halfword_2)
104         (loongson_insert_halfword_3, loongson_mult_add, smax<mode>3)
105         (umax<mode>3, smin<mode>3, umin<mode>3, loongson_move_byte_mask)
106         (umul<mode>3_highpart, smul<mode>3_highpart, loongson_smul_lowpart)
107         (loongson_umul_word, loongson_pasubub, reduc_uplus_<mode>)
108         (loongson_psadbh, loongson_pshufh, loongson_psll<mode>)
109         (loongson_psra<mode>, loongson_psrl<mode>, sub<mode>3, psubd)
110         (sssub<mode>3, ussub<mode>3, vec_interleave_high<mode>)
111         (vec_interleave_low<mode>): Define type attribute.
112         * config/mips/mips.c (mips_ls2): New static variable.
113         (mips_issue_rate): Update to handle tuning for Loongson 2E/2F.
114         (mips_ls2_init_dfa_post_cycle_insn, mips_init_dfa_post_cycle_insn)
115         (sched_ls2_dfa_post_advance_cycle, mips_dfa_post_advance_cycle):
116         Implement target scheduling hooks.
117         (mips_multipass_dfa_lookahead): Update to handle tuning for
118         Loongson 2E/2F.
119         (mips_sched_init): Initialize data for Loongson scheduling.
120         (mips_ls2_variable_issue): New static function.
121         (mips_variable_issue): Update to handle tuning for Loongson 2E/2F.
122         Add sanity check.
123         (TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN)
124         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Override target hooks.
125         * config/mips/mips.h (TUNE_LOONGSON_2EF): New macros.
126         (ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS):
127         Handle ST Loongson 2E/2F cores.
128         (CPU_UNITS_QUERY): Define macro to enable querying of DFA units.
129
130 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
131
132         * omp-low.c (extract_omp_for_data): Fix comment typo.
133         * c.opt: Fix typo.
134
135 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
136
137         * doc/sourcebuild.texi (Config Fragments): Remove obsolete
138         FIXME note about gcc/config.guess.
139         * doc/options.texi (Option file format): Remove non-ASCII bytes.
140         * doc/cpp.texi: Expand TABs, drop indentation outside examples.
141         * doc/cppopts.texi: Likewise.
142         * doc/extend.texi: Likewise.
143         * doc/gcc.texi: Likewise.
144         * doc/gccint.texi: Likewise.
145         * doc/gcov.texi: Likewise.
146         * doc/gty.texi: Likewise.
147         * doc/hostconfig.texi: Likewise.
148         * doc/install.texi: Likewise.
149         * doc/invoke.texi: Likewise.
150         * doc/loop.texi: Likewise.
151         * doc/makefile.texi: Likewise.
152         * doc/md.texi: Likewise.
153         * doc/passes.texi: Likewise.
154         * doc/tm.texi: Likewise.
155         * doc/tree-ssa.texi: Likewise.
156         * doc/trouble.texi: Likewise.
157
158 2008-06-15  Mark Shinwell  <shinwell@codesourcery.com>
159             Nathan Sidwell  <nathan@codesourcery.com>
160             Maxim Kuvyrkov  <maxim@codesourcery.com>
161             Richard Sandiford  <rdsandiford@googlemail.com>
162         
163         * config/mips/mips-modes.def: Add V8QI, V4HI and V2SI modes.
164         * config/mips/mips-protos.h (mips_expand_vector_init): New.
165         * config/mips/mips-ftypes.def: Add function types for Loongson-2E/2F
166         builtins.
167         * config/mips/mips.c (mips_split_doubleword_move): Handle new modes.
168         (mips_hard_regno_mode_ok_p): Allow 64-bit vector modes for Loongson.
169         (mips_vector_mode_supported_p): Add V2SImode, V4HImode and
170         V8QImode cases.
171         (LOONGSON_BUILTIN, LOONGSON_BUILTIN_ALIAS): New.
172         (CODE_FOR_loongson_packsswh, CODE_FOR_loongson_packsshb,
173         (CODE_FOR_loongson_packushb, CODE_FOR_loongson_paddw,
174         (CODE_FOR_loongson_paddh, CODE_FOR_loongson_paddb,
175         (CODE_FOR_loongson_paddsh, CODE_FOR_loongson_paddsb)
176         (CODE_FOR_loongson_paddush, CODE_FOR_loongson_paddusb)
177         (CODE_FOR_loongson_pmaxsh, CODE_FOR_loongson_pmaxub)
178         (CODE_FOR_loongson_pminsh, CODE_FOR_loongson_pminub)
179         (CODE_FOR_loongson_pmulhuh, CODE_FOR_loongson_pmulhh)
180         (CODE_FOR_loongson_biadd, CODE_FOR_loongson_psubw)
181         (CODE_FOR_loongson_psubh, CODE_FOR_loongson_psubb)
182         (CODE_FOR_loongson_psubsh, CODE_FOR_loongson_psubsb)
183         (CODE_FOR_loongson_psubush, CODE_FOR_loongson_psubusb)
184         (CODE_FOR_loongson_punpckhbh, CODE_FOR_loongson_punpckhhw)
185         (CODE_FOR_loongson_punpckhwd, CODE_FOR_loongson_punpcklbh)
186         (CODE_FOR_loongson_punpcklhw, CODE_FOR_loongson_punpcklwd): New.
187         (mips_builtins): Add Loongson builtins.
188         (mips_loongson_2ef_bdesc): New.
189         (mips_bdesc_arrays): Add mips_loongson_2ef_bdesc.
190         (mips_builtin_vector_type): Handle unsigned versions of vector modes.
191         (MIPS_ATYPE_UQI, MIPS_ATYPE_UDI, MIPS_ATYPE_V2SI, MIPS_ATYPE_UV2SI)
192         (MIPS_ATYPE_V4HI, MIPS_ATYPE_UV4HI, MIPS_ATYPE_V8QI, MIPS_ATYPE_UV8QI):
193         New.
194         (mips_expand_vector_init): New.
195         * config/mips/mips.h (HAVE_LOONGSON_VECTOR_MODES): New.
196         (TARGET_CPU_CPP_BUILTINS): Define __mips_loongson_vector_rev
197         if appropriate.
198         * config/mips/mips.md: Add unspec numbers for Loongson
199         builtins.  Include loongson.md.
200         (MOVE64): Include Loongson vector modes.
201         (SPLITF): Include Loongson vector modes.
202         (HALFMODE): Handle Loongson vector modes.
203         * config/mips/loongson.md: New.
204         * config/mips/loongson.h: New.
205         * config.gcc: Add loongson.h header for mips*-*-* targets.
206         * doc/extend.texi (MIPS Loongson Built-in Functions): New.
207
208 2008-06-14  Joseph Myers  <joseph@codesourcery.com>
209
210         * config.gcc (arc-*-elf*, avr-*-*, fr30-*-elf, frv-*-elf,
211         h8300-*-elf*, h8300-*-*, i[34567]86-*-elf*, x86_64-*-elf*,
212         i[34567]86-*-aout*, i[34567]86-*-coff*, ia64*-*-elf*,
213         iq2000*-*-elf*, m32r-*-elf*, m32rle-*-elf*, m32r-*-linux*,
214         m32rle-*-linux*, m68hc11-*-*|m6811-*-*, m68hc12-*-*|m6812-*-*,
215         m68k-*-coff*, mcore-*-elf, mcore-*-pe*, mipsisa64sr71k-*-elf*,
216         mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*, mips-*-elf* |
217         mipsel-*-elf*, mips64-*-elf* | mips64el-*-elf*, mips64vr-*-elf* |
218         mips64vrel-*-elf*, mips64orion-*-elf* | mips64orionel-*-elf*,
219         mipstx39-*-elf* | mipstx39el-*-elf*, mn10300-*-*, pdp11-*-,
220         powerpc-*-elf*, powerpcle-*-elf*, sh-*-elf* | sh[12346l]*-*-elf* |
221         sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | sh-*-linux* |
222         sh[2346lbe]*-*-linux* | sh-*-netbsdelf* | shl*-*-netbsdelf* |
223         sh5-*-netbsd* | sh5l*-*-netbsd* | sh64-*-netbsd* |
224         sh64l*-*-netbsd*, sh-*-*, sparc-*-elf*, sparc64-*-elf*,
225         v850e1-*-*, v850e-*-*, v850-*-*, xstormy16-*-elf, m32c-*-elf*):
226         Remove use_fixproto=yes.
227         (ia64*-*-hpux*): Remove comment about using fixproto.
228         (m68k-*-uclinuxoldabi*, m68k-*-uclinux*): Remove use_fixproto=no.
229
230 2008-06-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
231
232         * configure.ac: Update gthr-default.h lazily, to avoid unneeded
233         library rebuilds.
234         * configure: Regenerate.
235
236 2008-06-13  Eric Botcazou  <ebotcazou@adacore.com>
237
238         PR middle-end/36520
239         * builtins.c (get_memory_rtx): Test for the presence of DECL_SIZE_UNIT
240         before evaluating it.
241
242 2008-06-13  Jakub Jelinek  <jakub@redhat.com>
243
244         PR c/36507
245         * c-decl.c (merge_decls): Don't clear DECL_EXTERNAL for
246         nested inline functions.
247         (start_decl, start_function): Don't invert DECL_EXTERNAL
248         for nested inline functions.
249
250 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
251
252         * config/mips/mips.md: Remove TARGET_DEBUG_D_MODE conditions from
253         splits that must be made for correctness.
254
255 2008-06-13  Richard Sandiford  <rdsandiford@googlemail.com>
256
257         * config/mips/mips.c (BUILTIN_AVAIL_NON_MIPS16): New macro.
258         (AVAIL_NON_MIPS16): Likewise.
259         (mips_builtin_description): Replace target_flags with a predicate.
260         (paired_single, sb1_paired_single, mips3d, dsp, dspr2, dsp_32)
261         (dspr2_32): New availability predicates.
262         (MIPS_BUILTIN): New macro.
263         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS)
264         (CMP_4S_BUILTINS, MOVTF_BUILTINS, CMP_BUILTINS)
265         (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): Use it.
266         Replace the TARGET_FLAGS parameters with AVAIL parameters.
267         (mips_ps_bdesc, mips_sb1_bdesc, mips_dsp_bdesc)
268         (mips_dsp_32only_bdesc): Merge into...
269         (mips_builtins): ...this new array.
270         (mips_bdesc_map, mips_bdesc_arrays): Delete.
271         (mips_init_builtins): Update after above changes.
272         (mips_expand_builtin_1): Merge into...
273         (mips_expand_builtin): ...here and update after above changes.
274
275 2008-06-12  Paul Brook  <paul@codesourcery.com>
276
277         * longlong.h (__arm__): Define count_leading_zeros.
278         * config/arm/lib1funcs.asm (xxh, xxl, yyh, yyl): Define.
279         (clzsi2, clzdi2): New functions.
280         * config/arm/bpabi-v6m.S (xxh, xxl, yyh, yyl): Remove.
281         * config/arm/bpabi.S (xxh, xxl, yyh, yyl): Remove.
282         * config/arm/t-strongarm-elf (LIB1ASMFUNCS): Ditto.
283         * config/arm/t-vxworks (LIB1ASMFUNCS): Ditto.
284         * config/arm/t-pe (LIB1ASMFUNCS): Ditto.
285         * config/arm/t-arm-elf (LIB1ASMFUNCS): Ditto.
286         * config/arm/t-arm-coff (LIB1ASMFUNCS): Ditto.
287         * config/arm/t-linux (LIB1ASMFUNCS): Ditto.
288         * config/arm/t-symbian (LIB1ASMFUNCS): Ditto.
289         * config/arm/t-wince-pe (LIB1ASMFUNCS): Ditto.
290
291 2008-06-12  Kazu Hirata  <kazu@codesourcery.com>
292
293         * config/m68k/m68k.c (m68k_tune_flags): New.
294         (override_options): Compute m68k_tune_flags.
295         (MULL_COST, MULW_COST): Update for various variants of CFV2.
296         * config/m68k/m68k.h (TUNE_MAC, TUNE_EMAC): New.
297
298 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
299
300         PR middle-end/36506
301         * omp-low.c (expand_omp_sections): Initialize l2 to avoid bogus
302         warning.
303
304 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
305
306         * tree-inline.c (copy_body_r): Copy TREE_SIDE_EFFECTS along with
307         TREE_THIS_VOLATILE on INDIRECT_REF nodes.
308
309 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
310
311         * expr.c (store_field): Do a block copy from BLKmode to BLKmode-like.
312         (get_inner_reference): Use BLKmode for byte-aligned BLKmode bitfields.
313
314 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
315
316         PR middle-end/36506
317         * omp-low.c (expand_omp_sections): Handle #pragma omp sections with
318         reductions.
319
320 2008-06-12  Richard Guenther  <rguenther@suse.de>
321
322         PR tree-optimization/36345
323         * tree-flow.h (struct ptr_info_def): Align escape_mask,
324         add memory_tag_needed flag.
325         (may_alias_p): Declare.
326         * tree-ssa-alias.c (may_alias_p): Export.
327         (set_initial_properties): Use memory_tag_needed flag.
328         (update_reference_counts): Likewise.
329         (reset_alias_info): Reset memory_tag_needed flag.
330         (create_name_tags): Check memory_tag_needed flag.
331         (dump_points_to_info_for): Dump it.
332         * tree-ssa-structalias.c (struct variable_info): Remove
333         directly_dereferenced flag.
334         (new_var_info): Do not initialize it.
335         (process_constraint_1): Do not set it.
336         (update_alias_info): Set is_dereferenced flag.
337         (set_uids_in_ptset): Use may_alias_p.
338         (set_used_smts): Check memory_tag_needed flag.
339         (find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
340         * tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
341         memory_tag_needed flag.
342         * tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
343         from broken design.
344
345 2008-06-12  Kai Tietz  <kai.tietz@onevision.com>
346
347         * config/i386/i386.c (ix86_compute_frame_layout): Disable red zone for
348         w64 abi.
349         (ix86_expand_prologue): Likewise.
350         (ix86_force_to_memory): Likewise.
351         (ix86_free_from_memory): Likewise.
352
353 2008-06-11  Edmar Wienskoski  <edmar@freescale.com>
354
355         PR target/36425
356         * config/rs6000/rs6000.c (rs6000_override_options): Set
357         rs6000_isel conditionally to the absence of comand line
358         override.
359         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
360         Remove duplicate rs6000_isel setting.
361         * config/rs6000/eabispe.h: Ditto.
362
363 2008-06-11  Richard Guenther  <rguenther@suse.de>
364
365         * alias.c (get_alias_set): Use the element alias-set for arrays.
366         (record_component_aliases): For arrays and vectors do nothing.
367         * c-common.c (strict_aliasing_warning): Handle the cases
368         of alias set zero explicitly.
369         * Makefile.in (dfp.o-warn): Add -Wno-error.
370
371 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
372
373         * config.gcc (all_defaults): Add arch_32 arch_64 cpu_32 cpu_64
374         tune_32 tune_64.
375         (i[34567]86-*-* | x86_64-*-*): Add arch_32 arch_64 cpu_32 cpu_64
376         tune_32 tune_64 to supported_defaults.  Allow values not
377         supporting 64-bit mode for arch_32, cpu_32 and tune_32 for
378         x86_64.  Do not override cpu_32 or cpu_64 values from target name.
379         (i[34567]86-*-linux*, i[34567]86-*-solaris2.1[0-9]*): Only default
380         with_cpu_64 to generic for 64-bit-supporting configurations, not
381         with_cpu.  Remove FIXMEs.
382         * doc/install.texi (--with-cpu-32, --with-cpu-64, --with-arch-32,
383         --with-arch-64, --with-tune-32, --with-tune-64): Document.
384         * config/i386/i386.h (OPT_ARCH32, OPT_ARCH64): Define.
385         (OPTION_DEFAULT_SPECS): Add tune_32, tune_64, cpu_32, cpu_64,
386         arch_32 and arch_64.
387
388 2008-06-11  Eric Botcazou  <ebotcazou@adacore.com>
389             Olivier Hainque  <hainque@adacore.com>
390
391         * builtins.c (get_memory_rtx): Accept byte-addressable bitfields.
392         Use DECL_SIZE_UNIT to retrieve the size of the field.
393
394 2008-06-11  Joseph Myers  <joseph@codesourcery.com>
395
396         * config/arm/arm.c (arm_init_neon_builtins): Move initialization
397         with function calls after declarations.  Lay out
398         neon_float_type_node before further use.
399
400 2008-06-11  Richard Guenther  <rguenther@suse.de>
401
402         * tree-flow.h (may_point_to_global_var): Declare.
403         * tree-ssa-alias.c (may_point_to_global_var): New function.
404         * tree-ssa-sink.c (is_hidden_global_store): Use it.
405
406 2008-06-10  Kazu Hirata  <kazu@codesourcery.com>
407
408         * configure.ac: Teach that fido supports .debug_line.
409         * configure: Regenerate.
410
411 2008-06-10  Tom Tromey  <tromey@redhat.com>
412
413         * c-lex.c (fe_file_change): Pass SOURCE_LINE to start_source_file
414         debug hook.
415
416 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
417
418         * dfp.c (WORDS_BIGENDIAN): Define to 0 if not defined.
419         (encode_decimal64, decode_decimal64, encode_decimal128,
420         decode_decimal128): Reverse order of 32-bit parts of value if host
421         and target endianness differ.
422
423 2008-06-10  Vinodha Ramasamy  <vinodha@google.com>
424         * value_prob.c (tree_divmod_fixed_value_transform): Use gcov_type.
425         Avoid division by 0.
426         (tree_mod_pow2_value_transform): Likewise.
427         (tree_ic_transform): Likewise.
428         (tree_stringops_transform): Likewise.
429         (tree_mod_subtract_transform): Likewise.
430         * tree-inline-c (copy_bb): Corrected int type to gcov_type.
431         (copy_edges_for_bb): Likewise.
432         (initialize_cfun): Likewise.
433
434 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
435
436         * config/i386/i386.md (*btdi_rex64): Change operand 1 predicate to
437         nonmemory_operand. Add "N" operand constraint.
438         (*btsi): Ditto.
439         (*jcc_btdi_mask_rex64): New instruction and split pattern.
440         (*jcc_btsi_mask): Ditto.
441         (*jcc_btsi_mask_1): Ditto.
442
443 2008-06-10  Joseph Myers  <joseph@codesourcery.com>
444
445         * config/rs6000/rs6000.c (build_opaque_vector_type): Set
446         TYPE_CANONICAL for copied element type.
447
448 2008-06-10  Uros Bizjak  <ubizjak@gmail.com>
449
450         PR target/36473
451         * config/i386/i386.c (ix86_tune_features) [TUNE_USE_BT]:
452         Add m_CORE2 and m_GENERIC.
453         * config/i386/predicates.md (bt_comparison_operator): New predicate.
454         * config/i386/i386.md (*btdi_rex64): New instruction pattern.
455         (*btsi): Ditto.
456         (*jcc_btdi_rex64): New instruction and split pattern.
457         (*jcc_btsi): Ditto.
458         (*jcc_btsi_1): Ditto.
459         (*btsq): Fix Intel asm dialect operand order.
460         (*btrq): Ditto.
461         (*btcq): Ditto.
462
463 2008-06-09  Andy Hutchinson  <hutchinsonandy@aim.com>
464
465         PR middle-end/36447
466         * simplify-rtx.c (simplify_subreg): Add check for shift count 
467         greater than size.
468
469 2008-06-09  Richard Sandiford  <rdsandiford@googlemail.com>
470
471         * doc/md.texi: Synchronize with later constraints.md change.
472         * longlong.h (umul_ppmm): Replace the MIPS asm implementation
473         with a C implementation.
474         * config/mips/mips.c (mips_legitimize_move): Remove MFHI and
475         MFLO handling.
476         (mips_subword): Assume TImode for CONST_INTs if TARGET_64BIT.
477         (mips_split_doubleword_move): Use special MTHI and MFHI instructions
478         when moving to and from MD_REGNUM.
479         (mips_output_move): Don't handle moves from GPRs to HI_REGNUM.
480         Handle moves from LO_REGNUM to GPRs using MFLO, MACC or DMACC.
481         Handle byte and halfword moves.
482         (mips_hard_regno_mode_ok_p): Handle MD_REGS and DSP_ACC_REGS
483         separately.
484         * config/mips/constraints.md (h): Turn into NO_REGS.
485         (l, x): Update documentation.
486         * config/mips/mips.md (UNSPEC_MFHILO): Delete.
487         (UNSPEC_MFHI, UNSPEC_MTHI, UNSPEC_SET_HILO): New.
488         (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): Renumber.
489         (HILO): New mode iterator.
490         (MOVE128): Add TI.
491         (any_div): New code iterator.
492         (u): Extend code attribute to div and udiv.
493         (*add<mode>3_mips16, *movdi_64bit_mips16, *movsi_mips16): Use
494         d_operand in the splitters.  Remove redundant CONST_INT checks.
495         (mulsi3_mult3, mul<mode>3_internal, mul<mode>3_r4000, *mul_acc_si)
496         (*macc, *msac, *msac_using_macc, *macc2, *msac2, *mul_sub_si)
497         (*muls): Remove "=h" clobbers.  Adjust peephole2s and define_splits
498         accordingly, using normal moves instead of unspecs to move LO into
499         a GPR.  Use d_operand and lo_operand instead of *_REG_P checks.
500         (<u>mulsidi3): Handle expansion in C code.
501         (<u>mulsidi3_32bit_internal): Rename to...
502         (<u>mulsidi3_32bit): ...this.
503         (<u>mulsidi3_32bit_r4000): Fix insn separator.
504         (*<u>mulsidi3_64bit): Rename to...
505         (<u>mulsidi3_64bit): ...this.  Combine DImode "=h" and "=l" clobbers
506         into a TImode "=x" clobber.  In the split, use an UNSPEC_SET_HILO
507         to set LO and HI to the multiplication result.  Use a normal move
508         for MFLO and an unspec for MFHI.
509         (*<u>mulsidi3_64bit_parts): Replace with...
510         (<u>mulsidi3_64bit_hilo): ...this new instruction.
511         (<su>mulsi3_highpart): Extend to TARGET_FIX_R4000.
512         (<su>mulsi3_highpart_internal): Turn into a define_insn_and_split
513         and extend it to TARGET_FIX_R4000.  Store the destination in a GPR
514         instead of HI.  Split the instruction into a separate multiplication
515         and MFHI if !TARGET_FIX_R4000.
516         (<su>muldi3_highpart): Likewise.
517         (<su>mulsi3_highpart_mulhi_internal): Remove the first alternative
518         and the "=h" clobber.
519         (*<su>mulsi3_highpart_neg_mulhi_internal): Likewise.
520         (<u>mulditi3): New expander.
521         (<u>mulditi3_internal, <u>mulditi3_r4000): New patterns.
522         (madsi): Remove "=h" clobber.
523         (divmod<mode>4, udivmod<mode>4): Turn into define_insn_and_splits.
524         Force the modulus result to be a GPR and split the instruction into
525         a division followed by an MFHI after reload.
526         (<u>divmod<GPR:mode>4_hilo_<HILO:mode>): New instruction.
527         (*lea_high64): Use d_operand in the define_peephole2.  Likewise
528         the MIPS16 HIGH define_split.
529         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16): Change type
530         of acc<->gpr moves to "multi".
531         (*movdi_64bit): Replace the single "x" alternative with
532         alternatives for moving into and out of "a".
533         (*movhi_internal, *movqi_internal): Likewise.  Use mips_output_move.
534         (*movsi_internal): Extend the "d<-A" alternative to "d<-a".
535         (*movdi_64bit_mips16, *movsi_mips16): Add d<-a alternatives.
536         Use d_operand in the splitters.  Remove redundant CONST_INT checks.
537         (*movhi_mips16, *movqi_mips16): Likewise.  Use mips_output_move.
538         (movti): New expander.
539         (*movti, *movti_mips16): New insns.
540         (mfhilo_<mode>, *mfhilo_<mode>, *mfhilo_<mode>_macc): Delete.
541         (mfhi<GPR:mode>_<HILO:mode>): New pattern.
542         (mthi<GPR:mode>_<HILO:mode>): Likewise.
543         * config/mips/predicates.md (fpr_operand): Delete.
544         (d_operand): New predicate.
545
546 2008-06-09  Michael Meissner  <michael.meissner@amd.com>
547
548         * config.gcc (i[34567]86-*-*): Put test in quotes to prevent
549         failure on some Bourne shells.
550         (x86_64-*-*): Ditto.
551
552 2008-06-09  Kai Tietz  <kai.tietz@onevision.com>
553
554         * config/i386/cygming.h (TARGET_SUBTARGET64_DEFAULT): New.
555
556 2008-06-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
557
558         * doc/install.texi (*-*-solaris2*): Remove obsolete contents.
559         (sparc-sun-solaris2*): Likewise.
560
561 2008-06-09  Arnaud Charlet  <charlet@adacore.com
562
563         * doc/install.texi: Update requirements to build the Ada compiler.
564
565 2008-06-08  Steven Bosscher  <stevenb.gcc@gmail.com>
566
567         * df-scan.c (struct df_scan_problem_data): Remove the
568         mw_link_pool alloc pool.
569         (df_scan_free_internal): Don't free it.
570         (df_scan_alloc): Don't allocate it.
571         * df.h (struct df_link): Update comment.
572
573 2008-06-08  Nathan Sidwell  <nathan@codesourcery.com>
574
575         * except.h: Correct checks for when SJLJ exceptions must be used.
576
577 2008-06-08  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
578
579         * doc/invoke.texi (Wenum-compare): Mention that it is enabled by
580         default.
581         
582 2008-06-08  Joseph Myers  <joseph@codesourcery.com>
583
584         PR tree-optimization/36218
585         * configure.ac: Use LDFLAGS="${LDFLAGS_FOR_BUILD}" when running
586         configure for the build system.
587         (BUILD_LDFLAGS): Define.
588         * configure: Regenerate.
589         * Makefile.in (BUILD_LDFLAGS): Define to @BUILD_LDFLAGS@.
590
591 2008-07-08  Anatoly Sokolov  <aesok@post.ru>
592
593         PR target/36424
594         * config/avr/avr.h (HARD_REGNO_RENAME_OK): Define.
595         * config/avr/avr.c (avr_hard_regno_rename_ok): New function. 
596         * config/avr/avr-protos.h (avr_hard_regno_rename_ok): New prototype. 
597
598 2008-06-07  Danny Smith  <dannysmith@users.sourceforge.net>
599
600         * config/i386/cygming.h (MAYBE_UWIN_CPP_BUILTINS): Remove.
601
602 2008-06-07  Joseph Myers  <joseph@codesourcery.com>
603
604         * config.gcc (Obsolete configurations): Remove list of
605         configurations.
606         (Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
607         *-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
608         targets matched by those patterns.
609         (strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
610         m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
611         alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
612         arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
613         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
614         i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
615         i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
616         i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
617         i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
618         mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
619         powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
620         powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
621         strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
622         vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
623         i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
624         Make code for Solaris 7 and greater unconditional for Solaris.
625         (ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
626         Remove --with-* handling.
627         * config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
628         (LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
629         ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
630         LINK_OS_WINDISS_SPEC): Remove.
631         * config/rs6000/sysv4.opt (mwindiss): Remove.
632         * configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
633         * configure: Regenerate.
634         * doc/cpp.texi: Don't mention BeOS.
635         * doc/extend.texi (interrupt): Don't mention MS1.
636         * doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
637         m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
638         alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
639         i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
640         powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
641         Remove.
642         * doc/invoke.texi (MT Options): Remove.
643         (-mwindiss): Remove.
644         (CRIS Options): Remove cris-axis-aout references.
645         (HPPA Options): Don't mention hppa1.1-*-pro.
646         * doc/md.texi: (MorphoTech family): Remove.
647         * libgcc2.c: Don't handle UWIN.
648         * config/alpha/t-unicosmk: Remove.
649         * config/alpha/unicosmk.h: Remove.
650         * config/arm/kaos-arm.h: Remove.
651         * config/arm/kaos-strongarm.h: Remove.
652         * config/arm/strongarm-coff.h: Remove.
653         * config/arm/strongarm-elf.h: Remove.
654         * config/arm/strongarm-pe.h: Remove.
655         * config/arm/t-strongarm-pe: Remove.
656         * config/arm/t-xscale-coff: Remove.
657         * config/arm/t-xscale-elf: Remove.
658         * config/arm/xscale-coff.h: Remove.
659         * config/arm/xscale-elf.h: Remove.
660         * config/chorus.h: Remove.
661         * config/cris/aout.h: Remove.
662         * config/cris/aout.opt: Remove.
663         * config/cris/t-aout: Remove.
664         * config/i386/beos-elf.h: Remove.
665         * config/i386/kaos-i386.h: Remove.
666         * config/i386/ptx4-i.h: Remove.
667         * config/i386/sco5.h: Remove.
668         * config/i386/sco5.opt: Remove.
669         * config/i386/sysv4-cpp.h: Remove.
670         * config/i386/sysv5.h: Remove.
671         * config/i386/t-beos: Remove.
672         * config/i386/t-sco5: Remove.
673         * config/i386/t-uwin: Remove.
674         * config/i386/uwin.asm: Remove.
675         * config/i386/uwin.h: Remove.
676         * config/kaos.h: Remove.
677         * config/mips/windiss.h: Remove.
678         * config/mt: Remove directory.
679         * config/pa/pa-osf.h: Remove.
680         * config/pa/pa-pro-end.h: Remove.
681         * config/pa/t-pro: Remove.
682         * config/ptx4.h: Remove.
683         * config/rs6000/beos.h: Remove.
684         * config/rs6000/kaos-ppc.h: Remove.
685         * config/rs6000/t-beos: Remove.
686         * config/rs6000/windiss.h: Remove.
687         * config/sh/kaos-sh.h: Remove.
688         * config/sol2-6.h: Remove.
689         * config/sparc/sol26-sld.h: Remove.
690         * config/sparc/sysv4-only.h: Remove.
691         * config/vax/bsd.h: Remove.
692         * config/vax/t-memfuncs: Remove.
693         * config/vax/ultrix.h: Remove.
694         * config/vax/vaxv.h: Remove.
695         * config/windiss.h: Remove.
696
697 2008-06-06 Uros Bizjak <ubizjak@gmail.com>
698
699         PR rtl-optimization/36438
700         * cse.c (fold_rtx) [ASHIFT, LSHIFTRT, ASHIFTRT]: Break out early
701         for vector shifts with constant scalar shift operands.
702
703 2008-06-06  Sandip Matte  <sandip@rmicorp.com>
704
705         * doc/invoke.texi: Document -march=xlr.
706         * config/mips/xlr.md: New file.
707         * config/mips/mips.md: Include it.
708         (cpu): Add "xlr".
709         * config/mips/mips.h (PROCESSOR_XLR): New processor_type.
710         * config/mips/mips.c (mips_cpu_info_table): Add an XLR entry.
711         (mips_rtx_cost_data): Likewise.
712
713 2008-06-06  Nathan Froyd  <froydnj@codesourcery.com>
714
715         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Remove
716         PRE_INC and PRE_DEC cases.
717
718 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
719
720         PR rtl-optimization/36419
721         * except.c (expand_resx_expr): Call do_pending_stack_adjust () before
722         the emitting jump insn.
723
724         PR target/36362
725         * gimplify.c (gimplify_expr) <case TRUTH_NOT_EXPR>: If *expr_p type
726         is not bool, boolify the whole *expr_p and convert to the desired type.
727
728 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
729
730         * c-cppbuiltin.c (c_cpp_builtins): Change _OPENMP value to 200805.
731         * langhooks.h (struct lang_hooks_for_decls): Add omp_finish_clause.
732         Add omp_private_outer_ref hook, add another argument to
733         omp_clause_default_ctor hook.
734         * langhooks-def.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
735         (LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
736         (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Change to
737         hook_tree_tree_tree_tree_null.
738         (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_FINISH_CLAUSE and
739         LANG_HOOKS_OMP_PRIVATE_OUTER_REF.
740         * hooks.c (hook_tree_tree_tree_tree_null): New function.
741         * hooks.h (hook_tree_tree_tree_tree_null): New prototype.
742         * tree.def (OMP_TASK): New tree code.
743         * tree.h (OMP_TASK_COPYFN, OMP_TASK_ARG_SIZE, OMP_TASK_ARG_ALIGN,
744         OMP_CLAUSE_PRIVATE_OUTER_REF, OMP_CLAUSE_LASTPRIVATE_STMT,
745         OMP_CLAUSE_COLLAPSE_ITERVAR, OMP_CLAUSE_COLLAPSE_COUNT,
746         OMP_TASKREG_CHECK, OMP_TASKREG_BODY, OMP_TASKREG_CLAUSES,
747         OMP_TASKREG_FN, OMP_TASKREG_DATA_ARG, OMP_TASK_BODY,
748         OMP_TASK_CLAUSES, OMP_TASK_FN, OMP_TASK_DATA_ARG,
749         OMP_CLAUSE_COLLAPSE_EXPR): Define.
750         (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
751         (OMP_DIRECTIVE_P): Add OMP_TASK.
752         (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): New clause codes.
753         (OMP_CLAUSE_SCHEDULE_AUTO): New schedule kind.
754         * tree.c (omp_clause_code_name): Add OMP_CLAUSE_COLLAPSE
755         and OMP_CLAUSE_UNTIED entries.
756         (omp_clause_num_ops): Likewise.  Increase OMP_CLAUSE_LASTPRIVATE
757         num_ops to 2.
758         (walk_tree_1): Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
759         Walk OMP_CLAUSE_LASTPRIVATE_STMT.
760         * tree-pretty-print.c (dump_omp_clause): Handle
761         OMP_CLAUSE_SCHEDULE_AUTO, OMP_CLAUSE_UNTIED, OMP_CLAUSE_COLLAPSE,
762         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.
763         (dump_generic_node): Handle OMP_TASK and collapsed OMP_FOR loops.
764         * c-omp.c (c_finish_omp_for): Allow pointer iterators.  Remove
765         warning about unsigned iterators.  Change decl/init/cond/incr
766         arguments to TREE_VECs, check arguments for all collapsed loops.
767         (c_finish_omp_taskwait): New function.
768         (c_split_parallel_clauses): Put OMP_CLAUSE_COLLAPSE clause to
769         ws_clauses.
770         * c-parser.c (c_parser_omp_for_loop): Parse collapsed loops.  Call
771         default_function_array_conversion on init.  Add par_clauses argument.
772         If decl is present in parallel's lastprivate clause, change it to
773         shared and add lastprivate clause for decl to OMP_FOR_CLAUSES.
774         Add clauses argument, on success set OMP_FOR_CLAUSES to it.  Look up
775         collapse count in clauses.
776         (c_parser_omp_for, c_parser_omp_parallel): Adjust
777         c_parser_omp_for_loop callers.
778         (OMP_FOR_CLAUSE_MASK): Add 1 << PRAGMA_OMP_CLAUSE_COLLAPSE.
779         (c_parser_pragma): Handle PRAGMA_OMP_TASKWAIT.
780         (c_parser_omp_clause_name): Handle collapse and untied clauses.
781         (c_parser_omp_clause_collapse, c_parser_omp_clause_untied): New
782         functions.
783         (c_parser_omp_clause_schedule): Handle schedule(auto).
784         Include correct location in the error message.
785         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
786         and PRAGMA_OMP_CLAUSE_UNTIED.
787         (OMP_TASK_CLAUSE_MASK): Define.
788         (c_parser_omp_task, c_parser_omp_taskwait): New functions.
789         (c_parser_omp_construct): Handle PRAGMA_OMP_TASK.
790         * tree-nested.c (convert_nonlocal_omp_clauses,
791         convert_local_omp_clauses): Handle OMP_CLAUSE_LASTPRIVATE_STMT,
792         OMP_CLAUSE_REDUCTION_INIT, OMP_CLAUSE_REDUCTION_MERGE,
793         OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
794         Don't handle TREE_STATIC or DECL_EXTERNAL VAR_DECLs in
795         OMP_CLAUSE_DECL.
796         (conver_nonlocal_reference, convert_local_reference,
797         convert_call_expr): Handle OMP_TASK the same as OMP_PARALLEL.  Use
798         OMP_TASKREG_* macros rather than OMP_PARALLEL_*.
799         (walk_omp_for): Adjust for OMP_FOR_{INIT,COND,INCR} changes.
800         * tree-gimple.c (is_gimple_stmt): Handle OMP_TASK.
801         * c-tree.h (c_begin_omp_task, c_finish_omp_task): New prototypes.
802         * c-pragma.h (PRAGMA_OMP_TASK, PRAGMA_OMP_TASKWAIT): New.
803         (PRAGMA_OMP_CLAUSE_COLLAPSE, PRAGMA_OMP_CLAUSE_UNTIED): New.
804         * c-typeck.c (c_begin_omp_task, c_finish_omp_task): New functions.
805         (c_finish_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
806         OMP_CLAUSE_UNTIED.
807         * c-pragma.c (init_pragma): Init omp task and omp taskwait pragmas.
808         * c-common.h (c_finish_omp_taskwait): New prototype.
809         * gimple-low.c (lower_stmt): Handle OMP_TASK.
810         * tree-parloops.c (create_parallel_loop): Create 1 entry
811         vectors for OMP_FOR_{INIT,COND,INCR}.
812         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
813         (make_edges): Handle OMP_TASK.
814         * tree-ssa-operands.c (get_expr_operands): Handle collapsed OMP_FOR
815         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
816         * tree-inline.c (estimate_num_insns_1): Handle OMP_TASK.
817         * builtin-types.def (BT_PTR_ULONGLONG, BT_PTR_FN_VOID_PTR_PTR,
818         BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
819         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
820         BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
821         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
822         * omp-builtins.def (BUILT_IN_GOMP_TASK, BUILT_IN_GOMP_TASKWAIT,
823         BUILT_IN_GOMP_LOOP_ULL_STATIC_START,
824         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_START,
825         BUILT_IN_GOMP_LOOP_ULL_GUIDED_START,
826         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_START,
827         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_START,
828         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_START,
829         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_START,
830         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_START,
831         BUILT_IN_GOMP_LOOP_ULL_STATIC_NEXT,
832         BUILT_IN_GOMP_LOOP_ULL_DYNAMIC_NEXT,
833         BUILT_IN_GOMP_LOOP_ULL_GUIDED_NEXT,
834         BUILT_IN_GOMP_LOOP_ULL_RUNTIME_NEXT,
835         BUILT_IN_GOMP_LOOP_ULL_ORDERED_STATIC_NEXT,
836         BUILT_IN_GOMP_LOOP_ULL_ORDERED_DYNAMIC_NEXT,
837         BUILT_IN_GOMP_LOOP_ULL_ORDERED_GUIDED_NEXT,
838         BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): New builtins.
839         * gimplify.c (gimplify_omp_for): Allow pointer type for decl,
840         handle POINTER_PLUS_EXPR.  If loop counter has been replaced and
841         original iterator is present in lastprivate clause or if
842         collapse > 1, set OMP_CLAUSE_LASTPRIVATE_STMT.  Handle collapsed
843         OMP_FOR loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
844         (gimplify_expr): Handle OMP_SECTIONS_SWITCH and OMP_TASK.
845         (enum gimplify_omp_var_data): Add GOVD_PRIVATE_OUTER_REF.
846         (omp_notice_variable): Set GOVD_PRIVATE_OUTER_REF if needed,
847         if it is set, lookup var in outer contexts too.  Handle
848         OMP_CLAUSE_DEFAULT_FIRSTPRIVATE.  Handle vars that are supposed
849         to be implicitly determined firstprivate for task regions.
850         (gimplify_scan_omp_clauses): Set GOVD_PRIVATE_OUTER_REF if needed,
851         if it is set, lookup var in outer contexts too.  Set
852         OMP_CLAUSE_PRIVATE_OUTER_REF if GOVD_PRIVATE_OUTER_REF is set.
853         Handle OMP_CLAUSE_LASTPRIVATE_STMT, OMP_CLAUSE_COLLAPSE and
854         OMP_CLAUSE_UNTIED.  Take region_type as last argument
855         instead of in_parallel and in_combined_parallel.
856         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
857         Adjust callers.
858         (gimplify_adjust_omp_clauses_1): Set OMP_CLAUSE_PRIVATE_OUTER_REF if
859         GOVD_PRIVATE_OUTER_REF is set.  Call omp_finish_clause langhook.
860         (new_omp_context): Set default_kind to
861         OMP_CLAUSE_DEFAULT_UNSPECIFIED for OMP_TASK regions.
862         (omp_region_type): New enum.
863         (struct gimplify_omp_ctx): Remove is_parallel and is_combined_parallel
864         fields, add region_type.
865         (new_omp_context): Take region_type as argument instead of is_parallel
866         and is_combined_parallel.
867         (gimple_add_tmp_var, omp_firstprivatize_variable, omp_notice_variable,
868         omp_is_private, omp_check_private): Adjust ctx->is_parallel and
869         ctx->is_combined_parallel checks.
870         (gimplify_omp_task): New function.
871         (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
872         OMP_CLAUSE_UNTIED.
873         * omp-low.c (extract_omp_for_data): Use schedule(static)
874         for schedule(auto).  Handle pointer and unsigned iterators.
875         Compute fd->iter_type.  Handle POINTER_PLUS_EXPR increments.
876         Add loops argument.  Extract data for collapsed OMP_FOR loops.
877         (expand_parallel_call): Assert sched_kind isn't auto,
878         map runtime schedule to index 3.
879         (struct omp_for_data_loop): New type.
880         (struct omp_for_data): Remove v, n1, n2, step, cond_code fields.
881         Add loop, loops, collapse and iter_type fields.
882         (workshare_safe_to_combine_p): Disallow combined for if
883         iter_type is unsigned long long.  Don't combine collapse > 1 loops
884         unless all bounds and steps are constant.  Adjust extract_omp_for_data
885         caller.
886         (expand_omp_for_generic): Handle pointer, unsigned and long long
887         iterators.  Handle collapsed OMP_FOR loops.  Adjust
888         for struct omp_for_data changes.  If libgomp function doesn't return
889         boolean_type_node, add comparison of the return value with 0.
890         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle
891         pointer, unsigned and long long iterators.  Adjust for struct
892         omp_for_data changes.
893         (expand_omp_for): Assert sched_kind isn't auto, map runtime schedule
894         to index 3.  Use GOMP_loop_ull*{start,next} if iter_type is
895         unsigned long long.  Allocate loops array, pass it to
896         extract_omp_for_data.  For collapse > 1 loops use always
897         expand_omp_for_generic.
898         (omp_context): Add sfield_map and srecord_type fields.
899         (is_task_ctx, lookup_sfield): New functions.
900         (use_pointer_for_field): Use is_task_ctx helper.  Change first
901         argument's type from const_tree to tree.  Clarify comment.
902         In OMP_TASK disallow copy-in/out sharing.
903         (build_sender_ref): Call lookup_sfield instead of lookup_field.
904         (install_var_field): Add mask argument.  Populate both record_type
905         and srecord_type if needed.
906         (delete_omp_context): Destroy sfield_map, clear DECL_ABSTRACT_ORIGIN
907         in srecord_type.
908         (fixup_child_record_type): Also remap FIELD_DECL's DECL_SIZE{,_UNIT}
909         and DECL_FIELD_OFFSET.
910         (scan_sharing_clauses): Adjust install_var_field callers.  For
911         firstprivate clauses on explicit tasks allocate the var by value in
912         record_type unconditionally, rather than by reference.
913         Handle OMP_CLAUSE_PRIVATE_OUTER_REF.  Scan OMP_CLAUSE_LASTPRIVATE_STMT.
914         Use is_taskreg_ctx instead of is_parallel_ctx.
915         Handle OMP_CLAUSE_COLLAPSE and OMP_CLAUSE_UNTIED.
916         (create_omp_child_function_name): Add task_copy argument, use
917         *_omp_cpyfn* names if it is true.
918         (create_omp_child_function): Add task_copy argument, if true create
919         *_omp_cpyfn* helper function.
920         (scan_omp_parallel): Adjust create_omp_child_function callers.
921         Rename parallel_nesting_level to taskreg_nesting_level.
922         (scan_omp_task): New function.
923         (lower_rec_input_clauses): Don't run constructors for firstprivate
924         explicit task vars which are initialized by *_omp_cpyfn*.  
925         Pass outer var ref to omp_clause_default_ctor hook if
926         OMP_CLAUSE_PRIVATE_OUTER_REF or OMP_CLAUSE_LASTPRIVATE.
927         Replace OMP_CLAUSE_REDUCTION_PLACEHOLDER decls in
928         OMP_CLAUSE_REDUCTION_INIT.
929         (lower_send_clauses): Clear DECL_ABSTRACT_ORIGIN if in task to
930         avoid duplicate setting of fields.  Handle
931         OMP_CLAUSE_PRIVATE_OUTER_REF.
932         (lower_send_shared_vars): Use srecord_type if non-NULL.  Don't
933         copy-out if TREE_READONLY, only copy-in.
934         (expand_task_copyfn): New function.
935         (expand_task_call): New function.
936         (struct omp_taskcopy_context): New type.
937         (task_copyfn_copy_decl, task_copyfn_remap_type, create_task_copyfn):
938         New functions.
939         (lower_omp_parallel): Rename to...
940         (lower_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
941         Call create_task_copyfn if srecord_type is needed.  Adjust
942         sender_decl type.
943         (task_shared_vars): New variable.
944         (check_omp_nesting_restrictions): Warn if work-sharing,
945         barrier, master or ordered region is closely nested inside OMP_TASK.
946         Add warnings for barrier if closely nested inside of work-sharing,
947         ordered, or master region.
948         (scan_omp_1): Call check_omp_nesting_restrictions even for
949         GOMP_barrier calls.  Rename parallel_nesting_level to
950         taskreg_nesting_level.  Handle OMP_TASK.
951         (lower_lastprivate_clauses): Even if some lastprivate is found on a
952         work-sharing construct, continue looking for them on parent parallel
953         construct.
954         (lower_omp_for_lastprivate): Add lastprivate clauses
955         to the beginning of dlist rather than end.  Adjust for struct
956         omp_for_data changes.
957         (lower_omp_for): Add rec input clauses before OMP_FOR_PRE_BODY,
958         not after it.  Handle collapsed OMP_FOR loops, adjust for
959         OMP_FOR_{INIT,COND,INCR} changes, adjust extract_omp_for_data caller.
960         (get_ws_args_for): Adjust extract_omp_for_data caller.
961         (scan_omp_for): Handle collapsed OMP_FOR
962         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.
963         (lower_omp_single_simple): If libgomp function doesn't return
964         boolean_type_node, add comparison of the return value with 0.
965         (diagnose_sb_1, diagnose_sb_2): Handle collapsed OMP_FOR
966         loops, adjust for OMP_FOR_{INIT,COND,INCR} changes.  Handle OMP_TASK.
967         (parallel_nesting_level): Rename to...
968         (taskreg_nesting_level): ... this.
969         (is_taskreg_ctx): New function.
970         (build_outer_var_ref, omp_copy_decl): Use is_taskreg_ctx instead
971         of is_parallel_ctx.
972         (execute_lower_omp): Rename parallel_nesting_level to
973         taskreg_nesting_level.
974         (expand_omp_parallel): Rename to...
975         (expand_omp_taskreg): ... this.  Use OMP_TASKREG_* macros where needed.
976         Call omp_task_call for OMP_TASK regions.
977         (expand_omp): Adjust caller, handle OMP_TASK.
978         (lower_omp_1): Adjust lower_omp_taskreg caller, handle OMP_TASK.
979
980         * bitmap.c (bitmap_default_obstack_depth): New variable.
981         (bitmap_obstack_initialize, bitmap_obstack_release): Do nothing
982         if argument is NULL and bitmap_default_obstack is already initialized.
983         * ipa-struct-reorg.c (do_reorg_1): Call bitmap_obstack_release
984         at the end.
985         * matrix-reorg.c (matrix_reorg): Likewise.
986
987 2008-06-06  Uros Bizjak  <ubizjak@gmail.com>
988
989         * config/i386/i386.md (*indirect_jump): Macroize using P
990         mode iterator.  Remove !TARGET_64BIT from insn constraints.
991         (*tablejump_1): Ditto.
992         (*indirect_jump_rex64): Remove insn pattern.
993         (*tablejump_1_rex64): Ditto.
994         (eh_return_<mode>): Macroize using P mode iterator from eh_return_di
995         and eh_return_si insn patterns.
996
997 2008-06-06  Richard Guenther  <rguenther@suse.de>
998
999         * tree-ssa-structalias.c (merge_smts_into): Remove.
1000         (find_what_p_points_to): Do not bother to compute the
1001         points-to set for pt_anything pointers.
1002         * tree-ssa-operands.c (get_addr_dereference_operands): No NMT
1003         for pt_anything pointers is ok.
1004
1005 2008-06-06  Jan Hubicka  <jh@suse.cz>
1006
1007         * passes.c (execute_ipa_pass_list): Do not regenerate summaries.
1008
1009 2008-06-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1010
1011         * cgraph.c: Fix typos in comments.
1012         (cgraph_availability_names): Fix string typo.
1013         * fold-const.c: Fix typos in comments.
1014         (fold_binary): Fix typo in warning.
1015         * genautomata.c: Fix typos in comments.
1016         (check_presence_pattern_sets): Fix typo in local variable.
1017         (output_description): Fix typo in output.
1018         * ggc-zone.c (ggc_pch_finish): Fix typo in error message.
1019         * hwint.h: Likewise.
1020         * matrix-reorg.c (check_allocation_function): Likewise.
1021         * omega.c (smooth_weird_equations): Likewise.
1022         * auto-inc-dec.c: Fix typos in comments.
1023         * bb-reorder.c: Likewise.
1024         * builtins.c: Likewise.
1025         * c-common.c: Likewise.
1026         * c-cppbuiltin.c: Likewise.
1027         * c-parser.c: Likewise.
1028         * c-pretty-print.c: Likewise.
1029         * cfgcleanup.c: Likewise.
1030         * cfgexpand.c: Likewise.
1031         * cfghooks.c: Likewise.
1032         * cfglayout.c: Likewise.
1033         * cfgloopmanip.c: Likewise.
1034         * cgraphunit.c: Likewise.
1035         * coverage.c: Likewise.
1036         * dbxout.c: Likewise.
1037         * df-byte-scan.c: Likewise.
1038         * df-core.c: Likewise.
1039         * df-problems.c: Likewise.
1040         * df-scan.c: Likewise.
1041         * dfp.c: Likewise.
1042         * dominance.c: Likewise.
1043         * domwalk.c: Likewise.
1044         * dse.c: Likewise.
1045         * dwarf2out.c: Likewise.
1046         * emit-rtl.c: Likewise.
1047         * et-forest.c: Likewise.
1048         * function.c: Likewise.
1049         * function.h: Likewise.
1050         * gcc.c: Likewise.
1051         * gcov-io.c: Likewise.
1052         * gcov.c: Likewise.
1053         * gcse.c: Likewise.
1054         * genattrtab.c: Likewise.
1055         * ggc-page.c: Likewise.
1056         * gimplify.c: Likewise.
1057         * gthr-lynx.h: Likewise.
1058         * haifa-sched.c: Likewise.
1059         * ipa-cp.c: Likewise.
1060         * ipa-inline.c: Likewise.
1061         * ipa-prop.h: Likewise.
1062         * ipa-pure-const.c: Likewise.
1063         * ipa-struct-reorg.c: Likewise.
1064         * ipa-struct-reorg.h: Likewise.
1065         * ipa-type-escape.c: Likewise.
1066         * ipa.c: Likewise.
1067         * loop-doloop.c: Likewise.
1068         * mips-tfile.c: Likewise.
1069         * mkmap-flat.awk: Likewise.
1070         * mkmap-symver.awk: Likewise.
1071         * modulo-sched.c: Likewise.
1072         * omp-low.c: Likewise.
1073         * optabs.c: Likewise.
1074         * optabs.h: Likewise.
1075         * opts.c: Likewise.
1076         * passes.c: Likewise.
1077         * postreload-gcse.c: Likewise.
1078         * postreload.c: Likewise.
1079         * predict.c: Likewise.
1080         * pretty-print.h: Likewise.
1081         * profile.c: Likewise.
1082         * protoize.c: Likewise.
1083         * ra-conflict.c: Likewise.
1084         * real.c: Likewise.
1085         * recog.c: Likewise.
1086         * regclass.c: Likewise.
1087         * regs.h: Likewise.
1088         * reload.c: Likewise.
1089         * rtl-error.c: Likewise.
1090         * rtlanal.c: Likewise.
1091         * scan.h: Likewise.
1092         * sched-rgn.c: Likewise.
1093         * see.c: Likewise.
1094         * stmt.c: Likewise.
1095         * target.h: Likewise.
1096         * tree-dfa.c: Likewise.
1097         * tree-eh.c: Likewise.
1098         * tree-flow-inline.h: Likewise.
1099         * tree-inline.c: Likewise.
1100         * tree-into-ssa.c: Likewise.
1101         * tree-loop-distribution.c: Likewise.
1102         * tree-nested.c: Likewise.
1103         * tree-parloops.c: Likewise.
1104         * tree-pass.h: Likewise.
1105         * tree-pretty-print.c: Likewise.
1106         * tree-profile.c: Likewise.
1107         * tree-scalar-evolution.c: Likewise.
1108         * tree-sra.c: Likewise.
1109         * tree-ssa-alias-warnings.c: Likewise.
1110         * tree-ssa-ccp.c: Likewise.
1111         * tree-ssa-coalesce.c: Likewise.
1112         * tree-ssa-dom.c: Likewise.
1113         * tree-ssa-dse.c: Likewise.
1114         * tree-ssa-forwprop.c: Likewise.
1115         * tree-ssa-live.c: Likewise.
1116         * tree-ssa-live.h: Likewise.
1117         * tree-ssa-loop-im.c: Likewise.
1118         * tree-ssa-loop-ivopts.c: Likewise.
1119         * tree-ssa-loop-niter.c: Likewise.
1120         * tree-ssa-loop-prefetch.c: Likewise.
1121         * tree-ssa-phiopt.c: Likewise.
1122         * tree-ssa-phiprop.c: Likewise.
1123         * tree-ssa-sccvn.c: Likewise.
1124         * tree-ssa-ter.c: Likewise.
1125         * tree-ssa-threadupdate.c: Likewise.
1126         * tree-ssa.c: Likewise.
1127         * tree-vect-analyze.c: Likewise.
1128         * tree-vect-transform.c: Likewise.
1129         * tree-vectorizer.c: Likewise.
1130         * tree-vn.c: Likewise.
1131         * tree-vrp.c: Likewise.
1132         * tree.c: Likewise.
1133         * tree.def: Likewise.
1134         * tree.h: Likewise.
1135         * unwind-dw2-fde.c: Likewise.
1136         * unwind.inc: Likewise.
1137         * value-prof.c: Likewise.
1138         * vmsdbgout.c: Likewise.
1139
1140 2008-06-05  David Edelsohn  <edelsohn@gnu.org>
1141
1142         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Do not
1143         always place FP constants in the TOC for TARGET_POWERPC64.
1144         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Same.
1145
1146 2008-06-05  Joseph Myers  <joseph@codesourcery.com>
1147
1148         * config.gcc (powerpc-*-linux*spe*): Use t-dfprules.
1149         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): Do not
1150         enable for TARGET_E500_DOUBLE.
1151         (*movdd_softfloat32): Also enable for !TARGET_FPRS.
1152         * config/rs6000/rs6000.c (invalid_e500_subreg): Treat decimal
1153         floating-point modes like integer modes for E500 double.
1154         (rs6000_legitimate_offset_address_p): Likewise.
1155         (rs6000_legitimize_address): Likewise.  Do not allow REG+REG
1156         addressing for DDmode for E500 double.
1157         (rs6000_hard_regno_nregs): Do not treat decimal floating-point
1158         modes as using 64-bits of registers for E500 double.
1159         (spe_build_register_parallel): Do not handle DDmode or TDmode.
1160         (rs6000_spe_function_arg): Do not handle DDmode or TDmode
1161         specially for E500 double.
1162         (function_arg): Do not call rs6000_spe_function_arg for DDmode or
1163         TDmode for E500 double.
1164         (rs6000_gimplify_va_arg): Only handle SDmode in registers
1165         specially if TARGET_HARD_FLOAT && TARGET_FPRS.
1166         (rs6000_split_multireg_move): Do not handle TDmode specially for
1167         E500 double.
1168         (spe_func_has_64bit_regs_p): Do not treat DDmode or TDmode as
1169         using 64-bit registers for E500 double.
1170         (emit_frame_save): Do not handle DDmode specially for E500 double.
1171         (gen_frame_mem_offset): Likewise.
1172         (rs6000_function_value): Do not call spe_build_register_parallel
1173         for DDmode or TDmode.
1174         (rs6000_libcall_value): Likewise.
1175         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT, MEMBER_TYPE_FORCES_BLK,
1176         DATA_ALIGNMENT, CLASS_MAX_NREGS): Do not handle DDmode specially
1177         for E500 double.
1178
1179 2008-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1180
1181         * config/i386/i386.c (setup_incoming_varargs_64): Fix a typo
1182         in comments.
1183
1184 2008-06-04  Junjie Gu <jgu@tensilica.com>
1185
1186         * config/xtensa/lib2funcs.S (__xtensa_nonlocal_goto): Use unsigned
1187         comparison for frame pointers.
1188
1189 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1190
1191         PR target/27386
1192         * config/avr/avr.h (PUSH_ROUNDING): Remove.
1193
1194 2008-06-04  Andy Hutchinson  <hutchinsonandy@aim.com>
1195
1196         PR target/30243
1197         * builtins.c (expand_builtin_signbit): Don't take lowpart when
1198         register is already smaller or equal to required mode. 
1199
1200 2008-06-04  Xinliang David Li  <davidxl@google.com>
1201
1202         * tree-call-cdce.c: New file. 
1203         (cond_dead_built_in_calls): New static variable.
1204         (input_domain): New struct.
1205         (check_pow): New function.
1206         (check_builtin_call): Ditto.
1207         (check_target_format): Ditto.
1208         (is_call_dce_candidate): Ditto.
1209         (gen_one_condition): Ditto.
1210         (gen_conditions_for_domain): Ditto.
1211         (get_domain): Ditto.
1212         (gen_conditions_for_pow_cst_base): Ditto.
1213         (gen_conditions_for_pow_int_base): Ditto.
1214         (gen_conditions_for_pow): Ditto.
1215         (get_no_error_domain): Ditto.
1216         (gen_shrink_wrap_conditions): Ditto.
1217         (shrink_wrap_one_built_in_call): Ditto.
1218         (shink_wrap_conditional_dead_built_in_calls): Ditto.
1219         (tree_call_cdce): Ditto.
1220         (gate_call_cdce): Ditto.
1221         (pass_call_cdce): New gimple pass.
1222         * passes.c: (init_optimization_passes): New pass.
1223         * tree-pass.h: New pass declaration.
1224         * opts.c (decode_options): New flag setting.
1225         * common.opt: Add -ftree-builtin-call-dce flag.
1226         * Makefile.in: Add new source file.
1227         * tempvar.def: New tv_id.
1228         * doc/invoke.texi (-ftree-builtin-call-dce): New flag.
1229
1230 2008-06-04  Richard Guenther  <rguenther@suse.de>
1231
1232         * tree-flow-inline.h (is_global_var): Do not check TREE_STATIC on MTAGs.
1233         (is_call_clobbered): Always check var_ann->call_clobbered.
1234         (mark_call_clobbered): Always set var_ann->call_clobbered.
1235         (clear_call_clobbered): Always clear var_ann->call_clobbered.
1236         * tree-ssa-alias.c (mark_non_addressable): Use clear_call_clobbered.
1237         (reset_alias_info): Clear call clobbering info on MTAGs and
1238         globals as well.
1239         (set_pt_anything): Set pt_global_mem.
1240         (create_tag_raw): Adjust comment.
1241         (may_be_aliased): Do not check TREE_PUBLIC on MTAGs.
1242
1243 2008-06-04  Joseph Myers  <joseph@codesourcery.com>
1244             Maxim Kuvyrkov  <maxim@codesourcery.com>
1245
1246         * config/m68k/m68k.opt (mxgot): New option.
1247         * config/m68k/m68k.c (legitimize_pic_address): Handle -mxgot.
1248         (m68k_output_addr_const_extra): New.
1249         * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): New.
1250         * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Declare.
1251         * config/m68k/m68k.md (UNSPEC_GOTOFF): Define.
1252         * doc/invoke.texi (M680x0 Options): Document -mxgot.
1253
1254 2008-06-04  Richard Guenther  <rguenther@suse.de>
1255
1256         * tree-ssa-structalias.c (handle_ptr_arith): Correctly handle
1257         negative or non-representable offsets.
1258
1259 2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1260
1261         * config/i386/i386.c (ix86_gen_leave): New.
1262         (ix86_gen_pop1): Likewise.
1263         (ix86_gen_add3): Likewise.
1264         (ix86_gen_sub3): Likewise.
1265         (ix86_gen_sub3_carry): Likewise.
1266         (ix86_gen_one_cmpl2): Likewise.
1267         (ix86_gen_monitor): Likewise.
1268         (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
1269         ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
1270         ix86_gen_one_cmpl2 and ix86_gen_monitor.
1271         (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
1272         (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
1273         mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
1274         (ix86_expand_epilogue): Updated.
1275         (print_operand): Handle integer register operand for 'z'.
1276         (ix86_expand_strlensi_unroll_1): Likewise.
1277         (ix86_expand_strlen): Likewise.
1278         (ix86_expand_builtin): Likewise.
1279         (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
1280         mov{q}/mov{l} and add{q}/add{l}.
1281
1282 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1283
1284         * config/i386/i386.md (P): New mode iterator.
1285         (SFmode push_operand splitter): Macroize DImode and SImode pushes
1286         using P mode iterator.
1287         (DFmode push_operand splitter): Ditto.
1288         (XFmode push_operand splitter): Ditto.
1289         (DFmode float_extend SFmode push_operand splitter): Ditto.
1290         (XFmode float_extend SFmode push_operand splitter): Do not generate
1291         SImode pushes for 64bit target.  Macroize Dimode and SImode
1292         pushes using P mode iterator.
1293         (XFmode float_extend DFmode push_operand splitter): Ditto.
1294
1295 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1296
1297         * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
1298         * config/i386/i386.h (ix86_reg_parm_stack_space): Removed prototype.
1299         * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
1300         return type to int.
1301         (ix86_call_abi_override): Remove check for call_used_regs.
1302
1303 2008-06-03  Richard Guenther  <rguenther@suse.de>
1304
1305         * tree-ssa-structalias.c (find_func_aliases): Add constraints
1306         for the lhs of calls if the return type contains pointers.
1307
1308 2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
1309
1310         * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
1311         * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
1312         * function.c (allocate_struct_function): Use of OVERRIDE_ABI_FORMAT.
1313         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
1314         of cfun and DEFAULT_ABI to deceide abi mode.
1315         (DEFAULT_ABI): New.
1316         (REG_PARM_STACK_SPACE): Removed.
1317         (OUTGOING_REG_PARM_STACK_SPACE): Removed.
1318         (STACK_BOUNDARY): Use default target to deceide stack boundary.
1319         * config/i386/i386-protos.h (ix86_cfun_abi): New.
1320         (ix86_function_abi): Likewise.
1321         (ix86_function_type_abi): Likewise.
1322         (ix86_call_abi_override): Likewise.
1323         * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
1324         specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
1325         * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
1326         (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
1327         specific defines.
1328         (X86_64_REGPARM_MAX): New.
1329         (X86_64_SSE_REGPARM_MAX): New.
1330         (X64_REGPARM_MAX): New.
1331         (X64_SSE_REGPARM_MAX): New.
1332         (X86_32_REGPARM_MAX): New.
1333         (X86_32_SSE_REGPARM_MAX): New.
1334         (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
1335         (ix86_function_regparm): Handle user calling abi.
1336         (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
1337         by DEFAULT_ABI versus SYSV_ABI check.
1338         (ix86_reg_parm_stack_space): New.
1339         (ix86_function_type_abi): New.
1340         (ix86_call_abi_override): New.
1341         (ix86_function_abi): New.
1342         (ix86_cfun_abi): New.
1343         (init_cumulative_args): Call abi specific initialization.
1344         (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
1345         (function_arg_64): Extend SSE_REGPARM_MAX check.
1346         (function_arg (): Remove TARGET_64BIT_MS_ABI.
1347         (ix86_pass_by_reference): Likewise.
1348         (ix86_function_value_regno_p): Likewise.
1349         (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
1350         (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
1351         (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
1352         (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
1353         (setup_incoming_varargs_64): Adjust regparm for call abi.
1354         (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
1355         (ix86_va_start): Likewise.
1356         (ix86_gimplify_va_arg): Likewise.
1357         (ix86_expand_prologue): Likewise.
1358         (output_pic_addr_const): Likewise.
1359         (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
1360         (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
1361         (x86_output_mi_thunk): Likewise.
1362         (x86_function_profiler): Likewise.
1363         * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
1364         (SYSV_ABI, MS_ABI): New constants.
1365         (DEFAULT_ABI): New.
1366         (init_regs): Add prototype of function in regclass.c file.
1367         (OVERRIDE_ABI_FORMAT): New.
1368         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
1369         (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
1370         (OUTGOING_REG_PARM_STACK_SPACE): New.
1371         (ix86_reg_parm_stack_space): New prototype.
1372         (CUMULATIVE_ARGS): Add call_abi member.
1373         (machine_function): Add call_abi member.
1374         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace
1375         TARGET_64BIT_MS_ABI by DEFAULT_ABI compare to MS_ABI.
1376
1377 2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
1378
1379         PR target/34879
1380         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
1381         (avr_builtin_setjmp_frame_value): New function.
1382         * config/avr/avr.md (nonlocal_goto_receiver): Define.
1383         (nonlocal_goto): Define.
1384
1385 2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
1386
1387         * config/mips/mips.c (mips_emit_loadgp): Return early if
1388         there is nothing do to, otherwise emit a blockage if
1389         !TARGET_EXPLICIT_RELOCS || crtl->profile.
1390         * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
1391
1392 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1393
1394         * configure.ac: Drop unneeded backslash ending up in config.in.
1395         * acinclude.m4: Likewise.
1396         * config.in: Regenerate.
1397
1398 2008-05-26  Jan Hubicka  <jh@suse.cz>
1399
1400         * predict.c (maybe_hot_frequency_p): Break out of...
1401         (maybe_hot_bb_p): ... here.
1402         (maybe_hot_edge_p): New.
1403         * tree-ssa-coalesce.c (coalesce_cost_edge): Compute cost based on edge.
1404         * basic-block.h (maybe_hot_edge_p): Declare.
1405
1406 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1407
1408         * config/i386/i386.md (*cmpfp_<mode>): Enable for optimize_size.
1409         (*cmpfp_<mode>_cc): Ditto.
1410         (*fp_jcc_8<mode>_387): Ditto.
1411         (*fop_<MODEF:mode>_2_i387): Ditto.
1412         (*fop_<MODEF:mode>_3_i387): Ditto.
1413         (*fop_xf_2_i387): Ditto.
1414         (*fop_xf_3_i387): Ditto.
1415
1416 2008-06-02  Tomas Bily  <tbily@suse.cz>
1417
1418         * tree-ssa-ifcombine.c (get_name_for_bit_test): Use CONVERT_EXPR_P.
1419
1420 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1421
1422         * config/mips/mips.c (mips_valid_offset_p): New function.
1423         (mips_valid_lo_sum_p): Likewise.
1424         (mips_classify_address): Use them.
1425         (mips_force_address): New function.
1426         (mips_legitimize_address): Use it.
1427         * config/mips/mips.md (MOVE128): New mode iterator.
1428         (movtf): Require TARGET_64BIT.  Remove empty strings.
1429         (*movtf_internal): Rename to...
1430         (*movtf): ...this and require !TARGET_MIPS16.  Use "m" instead
1431         of "R" and use {,fp}{load,store} attributes instead of "multi".
1432         Use a separate define_split.
1433         (*movtf_mips16): New pattern.
1434
1435 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1436
1437         * config/mips/mips-protos.h (mips_expand_before_return): Declare.
1438         * config/mips/mips.c (mips_expand_before_return): New function.
1439         (mips_expand_epilogue): Call it.
1440         * config/mips/mips.md (return): Turn into a define_expand.
1441         (*return): New insn.
1442
1443 2008-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
1444
1445         * rtl.h (emit_clobber, gen_clobber, emit_use, gen_use): Declare.
1446         * emit-rtl.c (emit_clobber, gen_clobber, emit_use, gen_use): New
1447         functions.  Do not emit uses and clobbers of CONCATs; individually
1448         use and clobber their operands.
1449         * builtins.c (expand_builtin_setjmp_receiver): Use emit_clobber,
1450         gen_clobber, emit_use and gen_use.
1451         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
1452         (expand_builtin_return): Likewise.
1453         * cfgbuild.c (count_basic_blocks): Likewise.
1454         * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1455         * explow.c (emit_stack_restore): Likewise.
1456         * expmed.c (extract_bit_field_1): Likewise.
1457         * expr.c (convert_move, emit_move_complex_parts): Likewise.
1458         (emit_move_multi_word, store_constructor): Likewise.
1459         * function.c (do_clobber_return_reg, do_use_return_reg): Likewise.
1460         (thread_prologue_and_epilogue_insns): Likewise.
1461         * lower-subreg.c (resolve_simple_move): Likewise.
1462         * optabs.c (widen_operand, expand_binop): Likewise.
1463         (expand_doubleword_bswap, emit_no_conflict_block): Likewise.
1464         * reload.c (find_reloads): Likewise.
1465         * reload1.c (eliminate_regs_in_insn): Likewise.
1466         * stmt.c (expand_nl_goto_receiver): Likewise.
1467         * config/alpha/alpha.md (builtin_longjmp): Likewise.
1468         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1469         * config/arm/arm.c (arm_load_pic_register): Likewise.
1470         (thumb1_expand_epilogue, thumb_set_return_address): Likewise.
1471         * config/arm/arm.md (untyped_return): Likewise.
1472         * config/arm/linux-elf.h (PROFILE_HOOK): Likewise.
1473         * config/avr/avr.c (expand_prologue): Likewise.
1474         * config/bfin/bfin.c (do_unlink): Likewise.
1475         * config/bfin/bfin.md (<optab>di3, adddi3, subdi3): Likewise.
1476         * config/cris/cris.c (cris_expand_prologue): Likewise.
1477         * config/darwin.c (machopic_indirect_data_reference): Likewise.
1478         (machopic_legitimize_pic_address): Likewise.
1479         * config/frv/frv.c (frv_frame_access, frv_expand_epilogue): Likewise.
1480         (frv_ifcvt_modify_insn, frv_expand_mdpackh_builtin): Likewise.
1481         * config/i386/i386.c (ix86_expand_vector_move_misalign): Likewise.
1482         (ix86_expand_convert_uns_didf_sse): Likewise.
1483         (ix86_expand_vector_init_general): Likewise.
1484         * config/ia64/ia64.md (eh_epilogue): Likewise.
1485         * config/iq2000/iq2000.c (iq2000_expand_epilogue): Likewise.
1486         * config/m32c/m32c.c (m32c_emit_eh_epilogue): Likewise.
1487         * config/m32r/m32r.c (m32r_reload_lr): Likewise.
1488         (config/iq2000/iq2000.c): Likewise.
1489         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
1490         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
1491         (builtin_longjmp): Likewise.
1492         * config/mn10300/mn10300.md (call, call_value): Likewise.
1493         * config/pa/pa.md (nonlocal_goto, nonlocal_longjmp): Likewise.
1494         * config/pdp11/pdp11.md (abshi2): Likewise.
1495         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
1496         * config/s390/s390.c (s390_emit_prologue): Likewise.
1497         * config/s390/s390.md (movmem_long, setmem_long): Likewise.
1498         (cmpmem_long, extendsidi2, zero_extendsidi2, udivmoddi4): Likewise.
1499         (builtin_setjmp_receiver, restore_stack_nonlocal): Likewise.
1500         * config/sh/sh.c (prepare_move_operands): Likewise.
1501         (output_stack_adjust, sh_expand_epilogue): Likewise.
1502         (sh_set_return_address, sh_expand_t_scc): Likewise.
1503         * config/sparc/sparc.c (load_pic_register): Likewise.
1504         * config/sparc/sparc.md (untyped_return, nonlocal_goto): Likewise.
1505         * config/spu/spu.c (spu_expand_epilogue): Likewise.
1506         * config/v850/v850.c (expand_epilogue): Likewise.
1507
1508 2008-05-31  Anatoly Sokolov  <aesok@post.ru>
1509
1510         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): New constants.
1511         (UNSPECV_WRITE_SP_IRQ_OFF): (Ditto.).
1512         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): New insn.
1513         * config/avr/avr.c (expand_prologue, expand_epilogue): Use 
1514         movhi_sp_r_irq_off and movhi_sp_r_irq_on insns for writing to the 
1515         stack pointer register.
1516         (output_movhi): Remove code for interrupt specific writing to the 
1517         stack pointer register.
1518
1519 2008-05-31  Richard Guenther  <rguenther@suse.de>
1520
1521         PR tree-optimization/34244
1522         * fold-const.c (tree_expr_nonnegative_warnv_p): Do not ask VRP.
1523         (tree_expr_nonzero_warnv_p): Likewise.
1524         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
1525         ssa_name_nonnegative_p.
1526         (vrp_expr_computes_nonzero): Call ssa_name_nonzero_p.
1527         (extract_range_from_unary_expr): Use vrp_expr_computes_nonzero,
1528         not tree_expr_nonzero_warnv_p.
1529
1530         PR tree-optimization/36262
1531         Revert
1532         2007-11-29  Zdenek Dvorak  <ook@ucw.cz>
1533
1534         PR tree-optimization/34244
1535         * tree-vrp.c (adjust_range_with_scev): Clear scev cache.
1536         (record_numbers_of_iterations): New function.
1537         (execute_vrp): Cache the numbers of iterations of loops.
1538         * tree-scalar-evolution.c (scev_reset_except_niters):
1539         New function.
1540         (scev_reset): Use scev_reset_except_niters.
1541         * tree-scalar-evolution.h (scev_reset_except_niters): Declare.
1542
1543 2008-05-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1544
1545         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
1546         __WORKAROUND_RETS when appropriate.
1547
1548 2008-05-31  Uros Bizjak  <ubizjak@gmail.com>
1549
1550         * config/i386/i386.md (*fop_<mode>_comm_mixed): Macroize from
1551         *fop_sf_comm_mixed and *fop_df_comm_mixed insn patterns using MODEF
1552         mode iterator.
1553         (*fop_<mode>_comm_sse): Macroize from *fop_sf_comm_sse and
1554         *fop_df_comm_sse insn patterns using MODEF mode iterator.
1555         (*fop_<mode>_comm_i387): Macroize from *fop_sf_comm_i387 and
1556         *fop_df_comm_i387 insn patterns using MODEF mode iterator.
1557         (*fop_<mode>_1_mixed): Macroize from *fop_sf_1_mixed and
1558         *fop_df_1_mixed insn patterns using MODEF mode iterator.
1559         (*fop_<mode>_1_sse): Macroize from *fop_sf_1_sse and
1560         *fop_df_1_sse insn patterns using MODEF mode iterator.
1561         (*fop_<mode>_1_i387): Macroize from *fop_sf_1_i387 and
1562         *fop_df_1_i387 insn patterns using MODEF mode iterator.
1563         (*fop_<MODEF:mode>_2_i387): Macroize from *fop_sf_2<mode>_i387 and
1564         *fop_df_2<mode>_i387 insn patterns using MODEF mode iterator.
1565         (*fop_<MODEF:mode>_3_i387): Macroize from *fop_sf_3<mode>_i387 and
1566         *fop_df_3<mode>_i387 insn patterns using MODEF mode iterator.
1567         (*fop_xf_2_i387): Rename from *fop_xf_2<mode>_i387.
1568         (*fop_xf_3_i387): Rename from *fop_xf_3<mode>_i387.
1569         (*fop_xf_4_i387): Use <MODE> for mode attribute.
1570         (*fop_xf_5_i387): Ditto.
1571         (*fop_xf_6_i387): Ditto.
1572
1573 2008-05-30  Richard Guenther  <rguenther@suse.de>
1574
1575         * builtins.c (build_string_literal): Avoid generating
1576         a non-gimple_val result.
1577
1578 2008-05-30  DJ Delorie  <dj@redhat.com>
1579
1580         * exec-tool.in: Use an environment variable (private) instead of a
1581         file (shared) as a semaphore, so as to not break parallel builds.
1582
1583 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1584
1585         * optabs.c (maybe_encapsulate_block): Remove.
1586         (emit_libcall_block): Adjust accordingly.
1587         * optabs.h (maybe_encapsulate_block): Remove prototype.
1588
1589         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address):
1590         Don't use maybe_encapsulate_block.
1591
1592 2008-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
1593
1594         * config/rs6000/rs6000.c (rs6000_legitimize_address,
1595         rs6000_legitimize_reload_address, rs6000_emit_move): Make sure an
1596         rtx is a SYMBOL_REF before calling get_pool_constant.
1597
1598 2008-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1599
1600         * fold-const.c (fold_unary) <CASE_CONVERT>: Add ??? comment.
1601
1602 2008-05-30  Danny Smith  <dannysmith@users.sourceforge.net>
1603
1604         * incpath.c: Use HOST_LACKS_INODE_NUMBERS conditional
1605         rather than OS names to choose INO_T_EQ definition.
1606         (DIRS_EQ) [!INO_T_EQ]: Don't worry about case in comparison.
1607         (add_path) [!INO_T_EQ]: Use lrealpath to fill canonical_name field.
1608
1609 2008-05-29  Daniel Franke  <franke.daniel@gmail.com>
1610
1611         PR target/36348
1612         * config/darwin-f.c: New.
1613         * config/t-darwin: Added rule to build darwin-f.o.
1614         * config.gcc: Defined new variable, fortran_target_objs.
1615         (*-*-darwin*): Set fortran_target_objs.
1616         * Makefile.in: Defined new variable FORTRAN_TARGET_OBJS.
1617         * configure.ac: Substitute fortran_target_objs, set FORTRAN_TARGET_OBJS.
1618         * configure: Regenerated.
1619
1620 2008-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1621
1622         PR target/35771
1623         * config/i386/i386.c (ix86_function_arg_boundary): Convert to
1624         canonical type if needed.
1625
1626 2008-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1627
1628         * tree-nested.c (check_for_nested_with_variably_modified): Fix typo.
1629
1630 2008-05-29  Richard Guenther  <rguenther@suse.de>
1631
1632         PR tree-optimization/36343
1633         PR tree-optimization/36346
1634         PR tree-optimization/36347
1635         * tree-flow.h (clobber_what_p_points_to): Declare.
1636         * tree-ssa-structalias.c (set_uids_in_ptset): Whether the
1637         pointed-to variable is dereferenced is irrelevant to whether
1638         the pointer can access the pointed-to variable.
1639         (clobber_what_p_points_to): New function.
1640         * tree-ssa-alias.c (set_initial_properties): Use it.
1641         * tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
1642         call clobber check for NMTs.
1643
1644 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1645         
1646         * value-prof.c (tree_ic_transform): Use HOST_WIDEST_INT_PRINT_DEC
1647         for printing gcov_type.
1648
1649 2008-05-28  Seongbae Park  <seongbae.park@gmail.com>
1650
1651         * tree-ssa-propagate.c (set_rhs): Preserve the histogram
1652         and the eh region information.
1653         * value-prof.c (gimple_move_stmt_histograms): New function.
1654         * value-prof.h (gimple_move_stmt_histograms): New function declaration.
1655
1656 2008-05-28  Andreas Tobler  <a.tobler@schweiz.org>
1657
1658         * config/pa/pa.md: Remove extern frame_pointer_needed declaration.
1659
1660 2008-05-28  Seongbae Park <seongbae.park@gmail.com>
1661
1662         * value-prof.c (tree_ic_transform): Print counts.
1663         * tree-profile.c (tree_gen_ic_func_profiler):
1664         Clear __gcov_indreict_call_callee variable to avoid misattribution
1665         of the profile.
1666
1667 2008-05-28  Rafael Espindola  <espindola@google.com>
1668
1669         * see.c (see_def_extension_not_merged): Use copy_rtx_if_shared to avoid
1670         invalid sharing.
1671
1672 2008-05-28  Richard Guenther  <rguenther@suse.de>
1673
1674         PR tree-optimization/36339
1675         * tree-ssa-alias.c (set_initial_properties): Move pt_anything
1676         and clobbering code out of the loop.
1677
1678 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1679
1680         * config/s390/constraints.md ('b', 'C', 'D', 'e'): New constraint
1681         letters defined.
1682
1683         * config/s390/s390.c (s390_compare_and_branch_condition_mask,
1684         s390_contiguous_bitmask_p, s390_symref_operand_p,
1685         s390_check_symref_alignment, s390_reload_larl_operand,
1686         s390_reload_symref_address): New functions.
1687         (s390_branch_condition_mnemonic): Support compare and branch
1688         instructions.
1689         (s390_mem_constraint): Avoid symrefs to accepted by the 'T'
1690         and 'W' constraints.
1691         (s390_secondary_reload): Add secondary reloads for unaligned
1692         symbol refs or symbol refs to floating point or QI/TI mode
1693         integer values.
1694         (legitimate_address_p): Accept symbol references as addresses.
1695         (s390_expand_insv): Use rotate and insert selected bits
1696         instruction for insv when building for z10.
1697         (print_operand_address): Handle symbol ref addresses.
1698         (print_operand): Output modifier 'c' added for signed byte values.
1699         (s390_encode_section_info): Mark symbol refs with
1700         SYMBOL_FLAG_NOT_NATURALLY_ALIGNED if appropriate.
1701
1702         * config/s390/s390.md (SIL,RRS,RIS): New instruction formats added.
1703         (length attribute): RRF, RRR have 4 byte length.
1704         (FPALL, INTALL): New mode iterators added.
1705         (*tstdi_sign, *cmpdi_ccs_sign, *cmpsi_ccs_sign,
1706         *cmp<mode>_ccs, *cmpdi_ccu_zero, *cmpdi_ccu, *cmpsi_ccu, *cmphi_ccu,
1707         *movdi_64, *movsi_zarch, *movhi, movmem<mode>, *movmem_short,
1708         *extendsidi2, *extendhidi2_extimm, *extendhisi2_extimm,
1709         *zero_extendsidi2, adddi3, *adddi3_31z, *adddi3_31, addsi3,
1710         *add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry2_cc,
1711         *add<mode>3_cc, *add<mode>3_imm_cc, *muldi3_sign, muldi3,
1712         *mulsi3_sign, mulsi3, mulsidi3): Patterns enhanced with z10
1713         instructions.
1714         (*cmphi_ccs_z10, *cmpdi_ccs_signhi_rl, *cmpsi_ccu_zerohi_rlsi,
1715         *cmp<GPR:mode>_ccu_zerohi_rldi, *cmp_and_br_signed_<mode>,
1716         *cmp_and_br_unsigned_<mode>, reload<INTALL:mode><P:mode>_tomem_z10,
1717         reload<INTALL:mode><P:mode>_toreg_z10,
1718         reload<FPALL:mode><P:mode>_tomem_z10,
1719         reload<FPALL:mode><P:mode>_toreg_z10,
1720         reload<P:mode>_larl_odd_addend_z10, *execute_rl, *insv<mode>_z10,
1721         *insv<mode>_z10_noshift, *insv<mode>_or_z10_noshift,
1722         *zero_extendhi<mode>2_z10, *cmp_and_trap_signed_int<mode>,
1723         *cmp_and_trap_unsigned_int<mode>, prefetch): New pattern or expander
1724         definition.
1725         (movmem, clrmem, cmpmem): New splitters added.
1726
1727         * config/s390/predicates.md (larl_operand): Use
1728         SYMBOL_REF_FLAGS (op) & SYMBOL_FLAG_ALIGN1 replaced with
1729         SYMBOL_REF_ALIGN1_P.
1730         (s390_signed_integer_comparison,
1731         s390_unsigned_integer_comparison): New predicates.
1732
1733         * config/s390/s390-protos.h (s390_check_symref_alignment,
1734         s390_contiguous_bitmask_p, s390_reload_larl_operand,
1735         s390_reload_symref_address,
1736         s390_compare_and_branch_condition_mask): Prototypes added.
1737
1738         * config/s390/s390.h (TARGET_MEM_CONSTRAINT,
1739         SYMBOL_REF_ALIGN1_P, SYMBOL_FLAG_NOT_NATURALLY_ALIGNED,
1740         SYMBOL_REF_NOT_NATURALLY_ALIGNED_P): Macro definition added.
1741
1742 2008-05-28  Andreas Krebbel  <krebbel1@de.ibm.com>
1743
1744         * config/s390/s390.c (z10_cost): New cost function for z10.
1745         (s390_handle_arch_option, override_options): Support -march=z10 switch.
1746         (s390_issue_rate): Adjust issue rate for z10.
1747         * config/s390/s390.h (processor_type): Add PROCESSOR_2097_Z10.
1748         (processor_flags): Add PF_Z10.
1749         (TARGET_CPU_Z10, TARGET_Z10): New macro definitions.
1750         * config/s390/s390.md (cpu, cpu_facility attributes): Add z10.
1751         * gcc/config.gcc: Add z10.
1752
1753 2008-05-28  Richard Guenther  <rguenther@suse.de>
1754
1755         PR tree-optimization/36291
1756         * tree-flow. h (struct gimple_df): Remove var_anns member.
1757         * tree-flow-inline.h (gimple_var_anns): Remove.
1758         (var_ann): Simplify.
1759         * tree-dfa.c (create_var_ann): Simplify.
1760         (remove_referenced_var): Clear alias info from var_anns of globals.
1761         * tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
1762         (delete_tree_ssa): Clear alias info from var_anns of globals.
1763         Do not free var_anns.
1764         (var_ann_eq): Remove.
1765         (var_ann_hash): Likewise.
1766
1767 2008-05-28  Mark Shinwell  <shinwell@codesourcery.com>
1768
1769         * config/mips/mips.c (mips_cpu_info_table): Add loongson2e
1770         and loongson2f entries.
1771         (mips_rtx_cost_data): Add entries for Loongson-2E/2F.
1772         * config/mips/mips.h (processor_type): Add Loongson-2E
1773         and Loongson-2F entries.
1774         (TARGET_LOONGSON_2E, TARGET_LOONGSON_2F, TARGET_LOONGSON_2EF): New.
1775         (MIPS_ISA_LEVEL_SPEC): Handle Loongson-2E/2F.
1776         * config/mips/mips.md (define_attr cpu): Add loongson2e and loongson2f.
1777         * doc/invoke.texi (MIPS Options): Document loongson2e
1778         and loongson2f processor names.
1779
1780 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1781
1782         PR target/35767
1783         PR target/35771
1784         * config/i386/i386.c (ix86_function_arg_boundary): Use
1785         alignment of canonical type.
1786         (ix86_expand_vector_move): Check unaligned memory access for
1787         all SSE modes.
1788
1789 2008-05-27  H.J. Lu  <hongjiu.lu@intel.com>
1790
1791         * dwarf2out.c (current_fde): Change return type to dw_fde_ref.
1792         Moved to the front of file.
1793
1794 2008-05-27  Xuepeng Guo  <xuepeng.guo@intel.com>
1795             H.J. Lu  <hongjiu.lu@intel.com>
1796
1797         * dwarf2out.c (current_fde): New.
1798         (add_cfi): Use it.
1799         (lookup_cfa:): Likewise.
1800         (dwarf2out_end_epilogue): Likewise.
1801         (dwarf2out_note_section_used): Likewise.
1802
1803 2008-05-27  Michael Matz  <matz@suse.de>
1804
1805         PR c++/27975
1806         * c.opt (Wenum-compare): New warning option.
1807         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
1808
1809 2008-05-27  Michael Matz  <matz@suse.de>
1810
1811         PR middle-end/36326
1812         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
1813         non-BLKmode types.
1814         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
1815         into memory as tail calls.
1816
1817 2008-05-27  Richard Guenther  <rguenther@suse.de>
1818
1819         PR tree-optimization/36339
1820         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
1821         pointers cause all addressable variables to be call clobbered.
1822
1823 2008-05-27  Richard Guenther  <rguenther@suse.de>
1824
1825         PR tree-optimization/36245
1826         * tree-ssa-address.c (add_to_parts): Deal with non-pointer bases.
1827
1828 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1829
1830         * config/s390/s390.md: Replace all occurences of the 'm'
1831         constraint with 'RT'.
1832
1833 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1834
1835         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
1836         definitions added.
1837         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
1838         "*movdi_64".
1839         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
1840         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
1841         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
1842
1843 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1844
1845         * reload.c: (find_reloads): Skip alternatives according to the
1846         "enabled" attribute. Constify the constraint variable.
1847         * recog.c (get_attr_enabled): Add default implementation.
1848         (extract_insn): Set the alternative_enabled_p array
1849         in the recog_data struct.
1850         (preprocess_constraints, constrain_operands): Skip
1851         alternatives according to the "enabled" attribute
1852         * recog.h (struct recog_data): New field alternative_enabled_p.
1853         (skip_alternative): New inline function.
1854         * regclass.c: (record_operand_costs): Check the "enabled" attribute.
1855         (record_reg_classes): Skip alternative according to the
1856         "enabled" attribute.
1857
1858         * doc/md.texi: Add documention for the "enabled" attribute.
1859
1860 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
1861
1862         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
1863         * postreload.c (reload_cse_simplify_operands): Replace 'm'
1864         constraint with TARGET_MEM_CONSTRAINT.
1865         * recog.c (asm_operand_ok, preprocess_constraints,
1866         constrain_operands): Likewise.
1867         * regclass.c (record_reg_classes): Likewise.
1868         * reload.c (find_reloads, alternative_allows_const_pool_ref): Likewise.
1869         * reload1.c (maybe_fix_stack_asms): Likewise.
1870         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
1871         * recog.h: Adjust comment.
1872         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
1873         * genoutput.c (note_constraint): Don't emit error for 'm' constraint.
1874         * doc/md.texi: Add a note to description of 'm' constraint.
1875         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
1876
1877 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
1878
1879         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
1880         that the bitfield is of integral type before testing its precision.
1881
1882 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1883             Sa Liu  <saliu@de.ibm.com> 
1884
1885         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
1886         __modti3, __udivti3, __umodti3 and __udivmodti4.
1887         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
1888         that implement TImode mul and div functions.
1889         * config/spu/multi3.c: New. Implement __multi3.
1890         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
1891         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
1892         functions on SPU.
1893
1894 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1895
1896         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
1897         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
1898         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
1899         tls_sysv_suffix): New mode and mode attribute iterators.
1900         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
1901         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
1902         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
1903         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
1904         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
1905         iterators.
1906
1907 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1908
1909         PR tree-optimization/36329
1910         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
1911         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
1912         * cgraphbuild.c (initialize_inline_failed): Use the latter
1913         macro in lieu of the former.
1914         * ipa-inline.c (cgraph_mark_inline): Likewise.
1915         (cgraph_decide_inlining_of_small_function): Likewise.
1916         (cgraph_decide_inlining): Likewise.
1917         (cgraph_decide_inlining_incrementally): Likewise.
1918
1919 2008-05-26  Tristan Gingold  <gingold@adacore.com>
1920             Anatoly Sokolov  <aesok@post.ru>
1921
1922         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
1923         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
1924         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
1925         optimization for 'avr6' architecture.
1926
1927 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
1928
1929         PR target/34932
1930         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
1931
1932 2008-05-26  Richard Guenther  <rguenther@suse.de>
1933
1934         * tree-ssa-sccvn.c (expr_has_constants): Declare.
1935         (visit_reference_op_load): Initialize VN_INFO->has_constants properly.
1936
1937 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
1938
1939         PR middle-end/36253
1940         * caller-save.c (insert_restore): Verify alignment of spill space.
1941         (insert_save): Likewise.
1942         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
1943         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
1944         (STACK_SLOT_ALIGNMENT): Likewise.
1945         * function.c (LOCAL_ALIGNMENT): Removed.
1946         (get_stack_local_alignment): New.
1947         (assign_stack_local): Use it.  Set alignment on stack slot.
1948         (assign_stack_temp_for_type): Use get_stack_local_alignment.
1949         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
1950         (STACK_SLOT_ALIGNMENT): New.
1951         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
1952         stack slot in XFmode.
1953
1954         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
1955
1956 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
1957
1958         PR/36321
1959         * config/i386/i386.md (allocate_stack_worker_64): Make sure
1960         argument operand in rax isn't removed.
1961
1962 2008-05-26  Richard Guenther  <rguenther@suse.de>
1963
1964         PR middle-end/36300
1965         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
1966         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
1967
1968 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1969
1970         PR bootstrap/36331
1971         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
1972
1973 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
1974
1975         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
1976         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
1977
1978 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1979
1980         * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
1981         build a trampoline if we don't want one.
1982         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
1983         return zero for nested functions if we don't want a trampoline.
1984
1985 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1986
1987         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
1988
1989 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
1990
1991         PR fortran/18428
1992         * c.opt: Removed undocumented option '-lang-fortran'.
1993         * c-common.h: Removed global variable 'lang_fortran'.
1994         * c-opts.c (c_common_handle_option): Removed code to handle
1995         option '-lang-fortran'. Updated includes.
1996         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
1997         definition of '__GFORTRAN__'.
1998         (define__GNUC__): Reimplemented to use BASEVER and
1999         cpp_define_formatted.
2000         (builtin_define_with_value_n): Removed.
2001         * c-incpath.h: Renamed to ...
2002         * incpath.h: ... this.
2003         * c-incpath.c: Renamed to ...
2004         * incpath.c: ... this. Updated includes.
2005         * fix-header.c: Updated includes.
2006         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
2007         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
2008         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
2009
2010 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2011
2012         * tree.h: Update the table of flags used on tree nodes.
2013         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
2014         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
2015         (FORCED_LABEL): Add access check.
2016         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
2017         (ASM_INPUT_P): Likewise.
2018         (ASM_VOLATILE_P): Likewise.
2019         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
2020         (OMP_SECTION_LAST): Access private_flag directly.
2021         (OMP_RETURN_NOWAIT): Likewise.
2022         (OMP_PARALLEL_COMBINED): Likewise.
2023         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
2024         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
2025         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
2026         deprecated_flag directly.
2027
2028 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
2029
2030         * final.c (frame_pointer_needed): Removed.
2031         * flags.h (frame_pointer_needed): Likewise.
2032
2033         * function.h (rtl_data): Add frame_pointer_needed.
2034         (frame_pointer_needed): New.
2035
2036 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
2037
2038         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
2039
2040 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
2041
2042         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
2043         SRC is a REG.
2044
2045 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
2046
2047         * c-common.c (strip_array_types): Move function to..
2048         * tree.c: ..here.
2049         (get_inner_array_type): Delete.
2050         * c-common.h (strip_array_types): Move declaration to..
2051         * tree.h: ..here.
2052         (get_inner_array_type): Delete.
2053         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
2054         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
2055         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
2056         * config/pa/pa.c (emit_move_sequence): Likewise.
2057
2058 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
2059
2060         * config/i386/i386.md (*sse_prologue_save_insn): Set length
2061         attribute to 34.
2062
2063 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
2064
2065         * function.c: Include target hook for nonlocal_goto frame value.
2066
2067 2008-05-24  Richard Guenther  <rguenther@suse.de>
2068
2069         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that a scalar
2070         variable can be only accessed through a pointer or a union.
2071
2072 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2073
2074         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
2075         * doc/extend.texi: Likewise.
2076
2077 2008-05-23  DJ Delorie  <dj@redhat.com>
2078
2079         * config/m32c/jump.md (untyped_call): Add.
2080
2081         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
2082         for A24 to PSImode.
2083         (m32c_address_cost): Detail costs for indirect offsets.
2084
2085 2008-05-23  Rafael Espindola  <espindola@google.com>
2086
2087         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
2088         if a node is a SUBREG.
2089         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
2090         is a SUBREG.
2091
2092 2008-05-23  Paul Brook  <paul@codesourcery.com>
2093             Carlos O'Donell  <carlos@codesourcery.com>
2094
2095         * doc/extend.texi: Clarify use of __attribute__((naked)).
2096         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2097         * target.h (gcc_target): Add allocate_stack_slots_for_args.
2098         * function.c (use_register_for_decl): Use
2099         targetm.calls.allocate_stack_slots_for_args.
2100         * target-def.h (TARGET_CALLS): Add TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
2101         * config/arm/arm.c (arm_allocate_stack_slots_for_args): New function.
2102         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
2103
2104 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2105
2106         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
2107
2108 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
2109
2110         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
2111         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
2112         is only rounded once.
2113
2114 2008-05-23  Richard Guenther  <rguenther@suse.de>
2115
2116         * tree-ssa-operands.c (mark_difference_for_renaming): Use bitmap_xor.
2117
2118 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
2119             Jakub Jelinek  <jakub@redhat.com>
2120
2121         PR target/36079
2122         * configure.ac: Handle --enable-cld.
2123         * configure: Regenerated.
2124         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
2125         * config/i386/i386.h (struct machine_function): Add needs_cld field.
2126         (ix86_current_function_needs_cld): New define.
2127         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
2128         (cld): New isns pattern.
2129         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
2130         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
2131         * config/i386/i386.opt (mcld): New option.
2132         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
2133         TARGET_CLD and ix86_current_function_needs_cld.
2134         (override_options): Use -mcld by default for 32-bit code if
2135         USE_IX86_CLD.
2136
2137         * doc/install.texi (Options specification): Document --enable-cld.
2138         * doc/invoke.texi (Machine Dependent Options)
2139         [i386 and x86-64 Options]: Add -mcld option.
2140         (Intel 386 and AMD x86-64 Options): Document -mcld option.
2141
2142 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
2143         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
2144         (return_in_memory_64): Likewise.
2145         (return_in_memory_ms_64): Likewise.
2146
2147 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2148
2149         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
2150         * builtins.c (fold_builtin_fpclassify): New.
2151         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
2152         * builtins.def (BUILT_IN_FPCLASSIFY): New.
2153         * c-common.c (handle_type_generic_attribute): Adjust to accept
2154         fixed arguments before an elipsis.
2155         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
2156         * doc/extend.texi: Document __builtin_fpclassify.
2157
2158 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
2159
2160         * omp-low.c (gate_expand_omp_ssa): Remove.
2161         (pass_expand_omp_ssa): Remove.
2162         (gate_expand_omp): Do not check for flag_openmp_ssa.
2163         * common.opt (-fopenmp-ssa): Remove.
2164         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
2165
2166 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
2167
2168         * config/sh/sh.opt (mfixed-range): New option.
2169         * config/sh/sh-protos.h (sh_fix_range): Declare.
2170         * config/sh/sh.c (sh_fix_range): New function.
2171         * config/sh/sh.h (sh_fixed_range_str): Declare.
2172         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
2173         is not empty.
2174         * doc/invoke.texi (SH Options): Document -mfixed-range.
2175
2176 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
2177
2178         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
2179         it before the redeclaration.
2180
2181 2008-05-22  Anatoly Sokolov <aesok@post.ru>
2182
2183         * config/avr/avr.c (get_sequence_length): Add new function.
2184         (expand_prologue, expand_epilogue): Remove duplicate code.
2185
2186 2008-05-22  Rafael Espindola  <espindola@google.com>
2187
2188         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
2189         sharing.
2190
2191 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
2192
2193         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
2194         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
2195
2196         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
2197         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
2198         (vect_update_misalignment_for_peel): Likewise.
2199         (vector_alignment_reachable_p): Likewise.
2200         * tree-vect-transform.c (vectorizable_load): Likewise.
2201         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
2202         (get_vectype_for_scalar_type): Pass mode of scalar_type
2203         to UNITS_PER_SIMD_WORD.
2204
2205         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
2206         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2207         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2208         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2209         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2210
2211 2008-05-22  Ira Rosen  <irar@il.ibm.com>
2212
2213         PR tree-optimization/36293
2214         * tree-vect-transform.c (vect_transform_strided_load): Don't check
2215         if the first load must be skipped because of a gap.
2216
2217 2008-05-22  Richard Guenther  <rguenther@suse.de>
2218
2219         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
2220         more cases of offset disambiguation that is possible if
2221         strict-aliasing rules apply.
2222         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
2223         for basic offset and type-based disambiguation.
2224
2225 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2226
2227         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
2228         ix86_expand_vector_set on V16QImode for SSE4.1.
2229
2230 2008-05-21  Tom Tromey  <tromey@redhat.com>
2231
2232         * c.opt (Wimport): Mark as undocumented.
2233         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
2234         -Wno-import.
2235         (Warning Options): Likewise.
2236         * doc/cppopts.texi: Don't mention -Wimport.
2237
2238 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
2239
2240         PR tree-optimization/36287
2241         PR tree-optimization/36286
2242         * lambda-code.c (build_access_matrix): Do not use the loop->num
2243         for computing the number of induction variables: use the loop depth
2244         instead.
2245
2246 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
2247
2248         PR/36280
2249         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
2250         option -f(no-)leading-underscore.
2251
2252 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2253
2254         * config/i386/i386.c (ix86_expand_vector_init_general): Use
2255         GET_MODE_NUNITS (mode).
2256
2257 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
2258
2259         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
2260         (-mmulhw): Add 464 to description.
2261         (-mdlmzb): Likewise.
2262         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
2263         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
2264         464fp entries.
2265         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
2266         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
2267         * config/rs6000/rs6000.md: Update comments for 464.
2268
2269 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
2270
2271         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
2272
2273 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2274
2275         * config/i386/sse.md (vec_extractv4sf): Removed.
2276         (vec_extractv2df): Likewise.
2277         (vec_extractv2di): Likewise.
2278         (vec_extractv4si): Likewise.
2279         (vec_extractv8hi): Likewise.
2280         (vec_extractv16qi): Likewise.
2281         (vec_extract<mode>): New.
2282
2283 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2284
2285         * config/i386/sse.md (vec_setv4sf): Removed.
2286         (vec_setv2df): Likewise.
2287         (vec_setv2di): Likewise.
2288         (vec_setv4si): Likewise.
2289         (vec_setv8hi): Likewise.
2290         (vec_setv16qi): Likewise.
2291         (vec_set<mode>): New.
2292
2293 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2294
2295         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
2296         goto for vec_concat and vec_interleave.
2297
2298 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
2299
2300         * config/i386/sse.md (vec_initv4sf): Removed.
2301         (vec_initv2df): Likewise.
2302         (vec_initv2di): Likewise.
2303         (vec_initv4si): Likewise.
2304         (vec_initv8hi): Likewise.
2305         (vec_initv16qi): Likewise.
2306         (vec_init<mode>): New.
2307
2308 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
2309
2310         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
2311
2312 2008-05-21  Tom Tromey  <tromey@redhat.com>
2313
2314         * ggc-zone.c (lookup_page_table_if_allocated): New function.
2315         (zone_find_object_offset): Likewise.
2316         (gt_ggc_m_S): Likewise.
2317         (highest_bit): Likewise.
2318         * ggc-page.c (gt_ggc_m_S): New function.
2319         * stringpool.c (string_stack): Remove.
2320         (init_stringpool): Update.
2321         (ggc_alloc_string): Use ggc_alloc.
2322         (maybe_delete_ident): New function.
2323         (ggc_purge_stringpool): Likewise.
2324         (gt_ggc_m_S): Remove.
2325         * ggc-common.c (ggc_protect_identifiers): New global.
2326         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
2327         ggc_protect_identifiers.
2328         * ggc.h (ggc_protect_identifiers): Declare.
2329         (gt_ggc_m_S): Update.
2330         (ggc_purge_stringpool): Declare.
2331         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
2332         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
2333         special case.
2334         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
2335
2336 2008-05-21  David S. Miller  <davem@davemloft.net>
2337
2338         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
2339         tmake_file.
2340
2341 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
2342
2343         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
2344         once finished.
2345
2346 2008-05-20  David Daney  <ddaney@avtrex.com>
2347
2348         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
2349         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
2350         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
2351         UNSPEC_UPDATE_GOT_VERSION): Renumber.
2352         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
2353         (atomic_hiqi_op): New define_code_iterator.
2354         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
2355         mips_expand_compare_and_swap_12.
2356         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
2357         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
2358         (sync_<optab><mode>, sync_old_<optab><mode>,
2359         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
2360         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
2361         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
2362         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
2363         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
2364         (test_and_set_12): New insn.
2365         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
2366         sync_new_<optab><mode>, sync_old_nand<mode>,
2367         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
2368         clobber to operand 0 for SI and DI mode insns.
2369         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
2370         mips_gen_fn_4): New typedefs.
2371         (mips_gen_fn_ptrs): Define new union type.
2372         (mips_expand_compare_and_swap_12): Remove declaration.
2373         (mips_expand_atomic_qihi): Declare function.
2374         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
2375         (mips_expand_atomic_qihi): ... this.  Use new generator function
2376         parameter.
2377         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
2378         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
2379         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP, MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
2380         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
2381         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
2382         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
2383         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
2384         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
2385         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
2386         MIPS_SYNC_EXCHANGE_12_ZERO_OP, MIPS_SYNC_EXCHANGE_12_NONZERO_OP):
2387         New macros.
2388
2389 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
2390
2391         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
2392         the missing break.
2393
2394 2008-05-20  Anatoly Sokolov <aesok@post.ru>
2395
2396         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
2397         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
2398         (avr_attribute_table): Add 'OS_main' function attribute.
2399         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
2400         functions with 'OS_main' attribute.
2401
2402 2008-05-20  Richard Guenther  <rguenther@suse.de>
2403
2404         PR tree-optimization/35204
2405         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
2406         helper, split out from ...
2407         (DFS): ... here.  Make the DFS walk non-recursive.
2408
2409 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
2410             Jan Sjodin  <jan.sjodin@amd.com>
2411
2412         PR tree-optimization/36181
2413         * tree-parloops.c (loop_has_vector_phi_nodes): New.
2414         (parallelize_loops): Don't parallelize when the loop has vector
2415         phi nodes.
2416
2417 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2418             Sebastian Pop  <sebastian.pop@amd.com>
2419
2420         * tree-loop-linear.c (gather_interchange_stats): Look in the access
2421         matrix, and never look at the tree representation of the memory
2422         accesses.
2423         (linear_transform_loops): Computes parameters and access matrices.
2424         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
2425         when fails.
2426         (access_matrix_get_index_for_parameter): New.
2427         * tree-data-ref.h (struct access_matrix): New.
2428         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
2429         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
2430         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
2431         am_vector_index_for_loop): New.
2432         (struct data_reference): Add field access_matrix.
2433         (DR_ACCESS_MATRIX): New.
2434         (compute_data_dependences_for_loop): Update declaration.
2435         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
2436         * lambda.h (lambda_vector_vec_p): Declared.
2437         * lambda-code.c: Depend on pointer-set.h.
2438         (lambda_collect_parameters_from_af, lambda_collect_parameters,
2439         av_for_af_base, av_for_af, build_access_matrix,
2440         lambda_compute_access_matrices): New.
2441         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
2442
2443 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
2444
2445         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
2446         $SOURCEDIR/include.
2447
2448 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2449             Sebastian Pop  <sebastian.pop@amd.com>
2450
2451         PR tree-optimization/36206
2452         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
2453         FOLD_CONVERSIONS.
2454         (instantiate_scev_1): Rename flags to fold_conversions.
2455         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
2456         outeside instantiation_loop.
2457         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
2458         (evolution_function_is_affine_or_constant_p): Removed.
2459         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
2460         instantiate_scev.
2461         (analyze_siv_subscript): Pass in the loop nest number.
2462         Call evolution_function_is_affine_in_loop instead of 
2463         evolution_function_is_affine_p.
2464         (analyze_overlapping_iterations): Pass in the loop nest number.
2465
2466 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
2467             Sebastian Pop  <sebastian.pop@amd.com>
2468
2469         PR tree-optimization/36206
2470         * tree-chrec.h (chrec_fold_op): New.
2471         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
2472         and other trees.
2473
2474 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2475
2476         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
2477         (DIRS_EQ): New.
2478         (remove_duplicates): Do not set inode on non-inode systems.
2479         Use DIRS_EQ.
2480
2481 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
2482
2483         * config.gcc (tm_file): Update comments about relative pathnames.
2484
2485 2008-05-20  Richard Guenther  <rguenther@suse.de>
2486
2487         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
2488         * tree-ssa-sccvn.c (process_scc): Likewise.
2489         * tree-ssa-sink.c (execute_sink_code): Likewise.
2490         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
2491         * tree-vrp.c (process_assert_insertions): Likewise.
2492         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2493         (perform_tree_ssa_dce): Likewise.
2494         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
2495         (dump_dominator_optimization_stats): Likewise.
2496         * tree-vectorizer.c (vectorize_loops): Likewise.
2497
2498 2008-05-20  Richard Guenther  <rguenther@suse.de>
2499
2500         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
2501
2502 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
2503
2504         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
2505         (ix86_i386elf_return_in_memory): Likewise.
2506         (ix86_i386interix_return_in_memory): Likewise.
2507         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
2508         (SUBTARGET_RETURN_IN_MEMORY): New.
2509         * config/i386/i386elf.h: Likewise.
2510         * config/i386/ptx4-i.h: Likewise.
2511         * config/i386/sol2-10.h: Likewise.
2512         * config/i386/sysv4.h: Likewise.
2513         * config/i386/vx-common.h: Likewise.
2514         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
2515         * config/i386/i386.c (ix86_return_in_memory): Made static and
2516         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
2517         (ix86_i386elf_return_in_memory): Removed.
2518         (ix86_i386interix_return_in_memory): Removed.
2519         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
2520         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
2521
2522 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
2523
2524         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
2525
2526 2008-05-19  Xinliang David Li  <davidxl@google.com>
2527
2528         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
2529         * opts.c: Ditto.
2530         * common.opt: Ditto.
2531         * doc/invoke.texi: Ditto.
2532
2533 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
2534
2535         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
2536         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
2537
2538 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2539
2540         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
2541         sizes of operand array from 8/4 to 4/2.
2542         (ix86_expand_vector_init_general): Change size of operand array
2543         from 32 to 16.  Remove op0, op1 and half_mode.
2544
2545 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2546
2547         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
2548         (ix86_expand_vector_init_interleave): Likewise.
2549         (ix86_expand_vector_init_general): Use them.  Assert
2550         word_mode == SImode when n_words == 4.
2551
2552 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
2553
2554         * config/i386/i386.c (ix86_secondary_reload): New static function.
2555         (TARGET_SECONDARY_RELOAD): New define.
2556         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
2557         * config/i386/i386.md (reload_outqi): Remove.
2558
2559 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2560
2561         PR middle-end/35509
2562         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
2563         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
2564         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
2565         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
2566         (fold_builtin_1): Likewise.
2567         * builtins.def (BUILT_IN_ISINF_SIGN): New.
2568         c-common.c (check_builtin_function_arguments): Handle
2569         BUILT_IN_ISINF_SIGN.
2570         * doc/extend.texi: Document __builtin_isinf_sign.
2571         * fold-const.c (operand_equal_p): Handle COND_EXPR.
2572
2573 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
2574
2575         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
2576         EH cleanup at the end of the pass, search for those that have been
2577         turned into forwarder blocks and do the cleanup on their successor.
2578
2579 2008-05-18  Richard Guenther  <rguenther@suse.de>
2580
2581         * tree-cfg.c (verify_gimple_expr): Allow conversions from
2582         pointers to sizetype and vice versa.
2583
2584 2008-05-18 Xinliang David Li   <davidxl@google.com>
2585
2586         * gcc/tree-ssa-dce.c: Coding style fix.
2587         (check_pow): Documentation comment. 
2588         (check_log): Documenation comment. Coding style fix.
2589         (is_unnecessary_except_errno_call): Ditto.
2590         (gen_conditions_for_pow): Ditto.
2591         (gen_conditions_for_log): Ditto.
2592         (gen_shrink_wrap_conditions): Ditto.
2593         (shrink_wrap_one_built_in_calls): Ditto.
2594         * gcc/doc/invoke.texi: Better documentation string.
2595         * ChangeLog: Fix wrong change log entries from 
2596         May 17 checkin on function call DCE.
2597
2598 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2599
2600         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
2601
2602 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
2603
2604         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
2605         * df-problems.c (simulation routines): Fixed block comment to
2606         properly say how to add forwards scanning functions.
2607         
2608 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2609
2610         * tree-inline.c (setup_one_parameter): Remove dead code.
2611
2612 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
2613
2614         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
2615         a BIT_AND_EXPR only for an INTEGER_TYPE.
2616
2617 2008-05-17 Xinliang David Li   <davidxl@google.com>
2618
2619         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
2620         (check_pow, check_log, is_unnecessary_except_errno_call): New 
2621         functions to check for eliminating math functions that are pure 
2622         except for setting errno.
2623         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
2624         general condition expressions for shrink-wrapping pow/log calls.
2625         (gen_shrink_wrap_conditions): Ditto.
2626         (shrink_wrap_one_built_in_call): Ditto.
2627         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
2628         (mark_operand_necessary): If debugging, output if OP is necessary.
2629         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
2630         unnecessary.
2631         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
2632         opt level >= 2.
2633         * gcc/common.opt: New user flag -ftree-builtin-dce.
2634         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
2635
2636 2008-05-16  David S. Miller  <davem@davemloft.net>
2637
2638         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
2639         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
2640
2641 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
2642
2643         PR target/36246
2644         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
2645
2646 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2647
2648         * ifcvt.c (dead_or_predicable): Rename
2649         df_simulate_one_insn_backwards to df_simulate_one_insn.
2650         * recog.c (peephole2_optimize): Ditto.
2651         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
2652         Ditto.
2653         * df.h: Rename df_simulate_one_insn_backwards to
2654         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
2655         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
2656         scanning of defs and uses.
2657         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
2658         (df_simulate_one_insn_forwards): Removed.
2659
2660 2008-05-16  Doug Kwan  <dougkwan@google.com>
2661
2662         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
2663         QNaN & SNaN.
2664         (real_from_string): Handle NaNs and Inf as approriate.
2665
2666 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2667
2668         * doc/gty.texi (Source Files Containing Type Information): Note
2669         that headers should appear first in the gtfiles list.
2670
2671 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2672
2673         * tree.def (COND_EXEC): Properly documented this code.
2674
2675 2008-05-16  Diego Novillo  <dnovillo@google.com>
2676
2677         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
2678         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
2679         the new field.
2680
2681 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2682
2683         * tree-ssa-dse (max_stmt_uid): Removed.
2684         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
2685         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
2686         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
2687         * function.h (cfun.last_stmt_uid): New field.
2688         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
2689         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
2690         New functions.
2691         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
2692         (create_stmt_ann): Initialize the ann->uid field.
2693         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
2694         with new calls.
2695         * tree-flow.h (renumber_gimple_stmt_uids): New function.
2696
2697 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
2698
2699         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
2700         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
2701         (init_empty_tree_cfg): Call it.
2702
2703 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2704
2705         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
2706         Update all users.
2707
2708 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
2709
2710         * doc/invoke.text (-fdump-tree-*-verbose): New option.
2711         * tree-dump.c (dump_options): New verbose option.
2712         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
2713         Add verbose dump.
2714         * tree-pass.h (TDF_VERBOSE): New dump flag.
2715         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
2716         (tree-flow.h): Added include.
2717         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
2718
2719 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2720
2721         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
2722
2723         From Jie Zhang  <jie.zhang@analog.com>
2724         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2725         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
2726         mcpu=bf561-none and mcpu=bf561-0.2.
2727         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2728         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2729         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
2730         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
2731         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
2732         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
2733         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
2734         option.
2735         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
2736         (cputype_selected): Remove.
2737         (bfin_handle_option): Don't use cputype_selected.
2738         (override_options): When no mcpu option, enable all workarounds.
2739         Don't use bfin_workarounds.
2740         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
2741         processor type.
2742         (DEFAULT_CPU_TYPE): Don't define.
2743
2744 2008-05-16  Richard Guenther  <rguenther@suse.de>
2745
2746         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
2747         on deletion of the last stmt.
2748
2749 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2750
2751         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
2752         V8HImode for SSE2 and V16QImode for SSE4.1.
2753
2754 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
2755
2756         * cgraph.h (compute_inline_parameters): Made public.
2757         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
2758         variable_generate_summary, function_write_summary,
2759         variable_write_summary, variable_read_summary.  Added generate_summary,
2760         write_summary, read_summary.
2761         * cgraphunit.c (cgraph_process_new_functions): Changed call from
2762         pass_ipa_inline.function_generate_summary, to
2763         compute_inline_parameters. 
2764         * ipa-inline.c (compute_inline_parameters): Made public and added
2765         node parameter.
2766         (compute_inline_parameters_for_current): New function.
2767         (pass_inline_param): Now calls compute_inline_parameters_for_current.
2768         (inline_generate_summary): Removed parameter and made to loop over
2769         all cgraph nodes.
2770         (pass_ipa_inline): Updated for new IPA_PASS structure.
2771         * passes.c (execute_ipa_summary_passes): Now is called once per
2772         pass rather than once per node*pass.
2773         
2774 2008-05-15  Anatoly Sokolov <aesok@post.ru>
2775
2776         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
2777         avr_have_mul_p, avr_asm_only_p): Remove variables.
2778         (avr_override_options): Remove initialization of removed variables.
2779         (avr_file_start):  Convert removed variables to fields of 
2780         'struct base_arch_s *avr_current_arch'. 
2781         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
2782         (AVR_HAVE_MUL): (Ditto.).
2783         (AVR_HAVE_MOVW): (Ditto.).
2784         (AVR_HAVE_LPMX): (Ditto.). 
2785         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
2786         avr_asm_only_p): Remove declaration.
2787
2788 2008-05-15  Diego Novillo  <dnovillo@google.com>
2789
2790         * config/arm/arm.c (arm_return_in_memory): Fix return type.
2791         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2792
2793 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
2794
2795         PR middle-end/36194
2796         * combine.c (check_conversion): Rename back to check_promoted_subreg.
2797         Don't call record_truncated_value from here.
2798         (record_truncated_value): Turn it into a for_each_rtx callback.
2799         (record_truncated_values): New function.
2800         (combine_instructions): Call note_uses with record_truncated_values.
2801         Change name of check_conversion to check_promoted_subreg. 
2802
2803 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2804
2805         * doc/sourcebuild.texi: Document support for torture tests.
2806
2807 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2808
2809         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
2810         to alternative 4 of operand 2.
2811
2812 2008-05-15  Richard Guenther  <rguenther@suse.de>
2813
2814         * tree-pass.h (current_pass): Declare.
2815         (get_pass_for_id): Likewise.
2816         * passes.c (passes_by_id, passes_by_id_size): New globals.
2817         (set_pass_for_id): New function.
2818         (get_pass_for_id): Likewise.
2819         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
2820         (execute_function_todo): Flush per function statistics.
2821         * toplev.c (compile_file): Init statistics.
2822         (general_init): Do early statistics initialization.
2823         (finalize): Finish statistics.
2824         * statistics.h (statistics_early_init): Declare.
2825         (statistics_init): Likewise.
2826         (statistics_fini): Likewise.
2827         (statistics_fini_pass): Likewise.
2828         (statistics_counter_event): Likewise.
2829         (statistics_histogram_event): Likewise.
2830         * statistics.c: New file.
2831         * Makefile.in (OBJS-common): Add statistics.o.
2832         (statistics.o): Add dependencies.
2833         * doc/invoke.texi (-fdump-statistics): Document.
2834
2835         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
2836         (insert): Likewise.
2837         (execute_pre): Use statistics_counter_event.
2838         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
2839         (substitute_and_fold): Increment it.  Use statistics_counter_event.
2840
2841 2008-05-15  Diego Novillo  <dnovillo@google.com>
2842
2843         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
2844
2845         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
2846         * tree-ssa-alias.c (new_type_alias): Remove references to
2847         sub-variables from comment.
2848         * tree-ssa-operands.c (swap_tree_operands): Likewise.
2849
2850 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2851
2852         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
2853         attribute to 1 only for insertps alternative.
2854
2855 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2856
2857         * config/bfin/bfin.md (loadbytes): New pattern.
2858         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
2859         (bfin_init_builtins): Initialize it.
2860         (bdesc_1arg): Add it.
2861
2862 2008-05-15  Sa Liu  <saliu@de.ibm.com>
2863
2864         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
2865         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
2866         * testsuite/lib/target-supports.exp: Add
2867         check_effective_target_fortran_integer_16.
2868
2869 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2870
2871         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
2872         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
2873         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
2874         (TARGET_RETURN_IN_MEMORY): Define.
2875
2876 2008-05-15  Richard Guenther  <rguenther@suse.de>
2877
2878         PR middle-end/36244
2879         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
2880         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
2881         represent unmodifiable vars.
2882
2883 2008-05-15  Richard Guenther  <rguenther@suse.de>
2884
2885         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
2886         INDIRECT_REF and TARGET_MEM_REF.
2887         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2888         TARGET_MEM_REF.
2889
2890 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
2891             H.J. Lu  <hongjiu.lu@intel.com>
2892
2893         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
2894         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
2895         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
2896         insn alternatives.  Add missing alternatives.
2897         (*vec_concatv2di_rex64_sse4_1): Likewise.
2898         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
2899         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
2900         Require TARGET_SSE.
2901
2902 2008-05-15  Richard Guenther  <rguenther@suse.de>
2903
2904         PR tree-optimization/36009
2905         PR tree-optimization/36204
2906         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
2907         (determine_invariantness_stmt): Record the loop a store is
2908         always executed in.
2909         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
2910         dependency.
2911
2912 2008-05-15  Richard Guenther  <rguenther@suse.de>
2913
2914         PR tree-optimization/34330
2915         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
2916         through the pointer will alias the SMT.
2917
2918 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
2919
2920         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
2921
2922 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2923
2924         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
2925
2926 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
2927             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2928
2929         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
2930         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
2931         (vashl_optab): New optab for vector/vector shifts.
2932         (vashr_optab): Ditto.
2933         (vlshr_optab): Ditto.
2934         (vrotl_optab): Ditto.
2935         (vrotr_optab): Ditto.
2936         (optab_subtype): New enum for optab_for_tree_code call.
2937         (optab_for_tree_code): Add enum optab_subtype argument.
2938
2939         * optabs.c (optab_for_tree_code): Take an additional argument to
2940         distinguish between a vector shift by a scalar and vector shift by
2941         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
2942         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
2943         vector shift by a vector.
2944         (expand_widen_pattern_expr): Pass additional argument to
2945         optab_for_tree_code.
2946
2947         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
2948         vrotl_optab, vrotr_optab.
2949
2950         * expr.c (expand_expr_real_1): Update calls to
2951         optab_for_tree_code to distinguish between vector shifted by a
2952         scalar and vector shifted by a vector.
2953         * tree-vectorizer.c (supportable_widening_operation): Ditto.
2954         (supportable_narrowing_operation): Ditto.
2955         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
2956         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
2957         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
2958         (vect_create_epilog_for_reduction): Ditto.
2959         (vectorizable_reduction): Ditto.
2960         (vectorizable_operation): Ditto.
2961         (vect_strided_store_supported): Ditto.
2962         (vect_strided_load_supported): Ditto.
2963         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2964         * expmed.c (expand_shift): Ditto.
2965
2966         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
2967         scalar type.
2968         (ashr@var{m}3): Ditto.
2969         (vashl@var{m}3): Document new vector/vector shift standard name.
2970         (vashr@var{m}3): Ditto.
2971         (vlshr@var{m}3): Ditto.
2972         (vrotl@var{m}3): Ditto.
2973         (vrotr@var{m}3): Ditto.
2974
2975         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
2976         (PPERM_INVERT): Ditto.
2977         (PPERM_REVERSE): Ditto.
2978         (PPERM_REV_INV): Ditto.
2979         (PPERM_ZERO): Ditto.
2980         (PPERM_ONES): Ditto.
2981         (PPERM_SIGN): Ditto.
2982         (PPERM_INV_SIGN): Ditto.
2983         (PPERM_SRC1): Ditto.
2984         (PPERM_SRC2): Ditto.
2985
2986         * config/i386/sse.md (mulv2di3): Add SSE5 support.
2987         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
2988         allows a memory operand to be the value being added, and split it
2989         to improve vectorization.
2990         (sse5_pmacsdqh_mem): Ditto.
2991         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
2992         (sse5_mulv2div2di3_high): Ditto.
2993         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
2994         (vec_pack_trunc_v4si): Ditto.
2995         (vec_pack_trunc_v2di): Ditto.
2996         (sse5_pcmov_<mode>): Remove code that tried to use use
2997         andps/andnps instead of pcmov.
2998         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
2999         pmacsdqh instructions.
3000         (vec_widen_smult_lo_v4si): Ditto.
3001
3002         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
3003         (PPERM_INVERT): Ditto.
3004         (PPERM_REVERSE): Ditto.
3005         (PPERM_REV_INV): Ditto.
3006         (PPERM_ZERO): Ditto.
3007         (PPERM_ONES): Ditto.
3008         (PPERM_SIGN): Ditto.
3009         (PPERM_INV_SIGN): Ditto.
3010         (PPERM_SRC1): Ditto.
3011         (PPERM_SRC2): Ditto.
3012         (ix86_expand_sse_movcc): Move the SSE5 test after the if
3013         true/false tests.
3014         (ix86_expand_int_vcond): If SSE5 generate all possible integer
3015         comparisons.
3016         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
3017         says ignore whether the last reference is a memory operand.
3018
3019 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3020             Paolo Bonzini <bonzini at gnu dot org>
3021
3022         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
3023         shift patterns.
3024
3025         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
3026         (vlshr<mode>3): Rename from vlshr<mode>3.
3027         (vashr<mode>3): Rename from vashr<mode>3.
3028         (mulv4sf3): Change the names of vector shift patterns.
3029         (mulv4si3): Ditto.
3030         (negv4sf2): Ditt.
3031
3032         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
3033         shift insns.
3034
3035         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
3036         (SI_SHLHI): Ditto.
3037         (SI_SHL): Ditto.
3038         (SI_SHLI): Ditto.
3039         (SI_ROTH): Ditto.
3040         (SI_ROTHI): Ditto.
3041         (SI_ROT): Ditto.
3042         (SI_ROTI): Ditto.
3043         (SPU_RL_0): Ditto.
3044         (SPU_RL_1): Ditto.
3045         (SPU_RL_2): Ditto.
3046         (SPU_RL_3): Ditto.
3047         (SPU_RL_4): Ditto.
3048         (SPU_RL_5): Ditto.
3049         (SPU_RL_6): Ditto.
3050         (SPU_RL_7): Ditto.
3051         (SPU_SL_0): Ditto.
3052         (SPU_SL_1): Ditto.
3053         (SPU_SL_2): Ditto.
3054         (SPU_SL_3): Ditto.
3055         (SPU_SL_4): Ditto.
3056         (SPU_SL_5): Ditto.
3057         (SPU_SL_6): Ditto.
3058         (SPU_SL_7): Ditto.
3059
3060         * config/spu/spu.md (v): New iterator macro to add v for vector types.
3061         (floatunssidf2_internal): Change vector/vector shift names.
3062         (floatunsdidf2_internal): Ditto.
3063         (mulv8hi3): Ditto.
3064         (ashrdi3): Ditto.
3065         (ashrti3): Ditto.
3066         (cgt_df): Ditto.
3067         (cgt_v2df): Ditto.
3068         (dftsv): Ditto.
3069         (vashl<mode>3): Rename from ashl<mode>3.
3070         (vashr<mode>3): Rename from ashr<mode>3.
3071         (vlshr<mode>3): Rename from lshr<mode>3.
3072         (vrotl<mode>3): Rename from rotl<mode>3.
3073
3074 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
3075
3076         PR target/36224
3077         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
3078         multiply gives the wrong value when doing widening multiplies.
3079         (vec_widen_smult_lo_v4si): Ditto.
3080
3081 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3082
3083         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
3084         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
3085         emit_library_call_value. 
3086         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
3087         * tree.h (ECF_LIBCALL_BLOCK): Removed.
3088         * calls.c (initialize_argument_information, precompute_arguments, 
3089         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
3090         (precompute_arguments): Removed flags parameter.
3091         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
3092         
3093 2008-05-14  Richard Guenther  <rguenther@suse.de>
3094
3095         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
3096         Make sure to register the store if the use is a PHI_NODE.
3097
3098 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3099
3100         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
3101         memory if the component is to be referenced in BLKmode according
3102         to get_inner_reference.
3103
3104 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
3105
3106         * calls.c (emit_library_call_value_1): Restore code clearing
3107         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
3108
3109 2008-05-14  Olivier Hainque  <hainque@adacore.com>
3110             Nicolas Roche  <roche@adacore.com>
3111
3112         * configure.ac: Add support for a "gcc_subdir" variable in
3113         config-lang.in, to denote a subdirectory where the language/GCC
3114         integration files are to be found.
3115         * configure: Regenerate.
3116
3117 2008-05-14  Ira Rosen  <irar@il.ibm.com>
3118
3119         PR tree-optimization/36098
3120         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
3121         value for the first load in the group in case of a gap.
3122         (vect_build_slp_tree): Check that there are no gaps in loads.
3123
3124 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
3125
3126         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
3127         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
3128         expand_copysign_bit, ): Change call to emit_no_conflict_block to
3129         emit_insn and remove unneeded code to construct extra args.
3130         (emit_no_conflict_block): Removed.
3131         * optabls.h: (emit_no_conflict_block): Removed.
3132         * cse.c (cse_extended_basic_block): Remove search for
3133         REG_NO_CONFLICT note.
3134         * global.c: Removed incorrect comment added in revision 117.
3135         * expr.c (convert_move): Change call to emit_no_conflict_block to
3136         emit_insn.
3137         * recog.c: Change comments so that they do not mention
3138         REG_NO_CONFLICT.
3139         * local_alloc.c (combine_regs): Removed last parameter.
3140         (no_conflict_p): Removed.
3141         (block_alloc): Removed note, no_conflict_combined_regno and set
3142         local vars. Removed all code to process REG_NO_CONFLICT blocks.
3143         (combine_regs): Removed already_dead and code to look for
3144         REG_NO_CONFLICT notes.
3145         * lower_subreg (remove_retval_note): Removed code to look for
3146         REG_NO_CONFLICT block.
3147         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
3148         (resolve_clobber): Remove code to process libcalls that have
3149         REG_NO_CONFLICT notes.
3150         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
3151         case.
3152         * combine.c (can_combine_p, distribute_notes):  Removed
3153         REG_NO_CONFLICT case.
3154         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
3155         to emit_insns.
3156         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
3157         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
3158         Ditto.
3159         * reg-notes.def (NO_CONFLICT): Removed.
3160
3161 2008-05-14  David S. Miller  <davem@davemloft.net>
3162
3163         * config/sparc/sparc.c (sparc_profile_hook): If
3164         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
3165         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
3166         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
3167
3168 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
3169
3170         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
3171
3172 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
3173
3174         PR target/36222
3175         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
3176         and op1 expansion before vector concat to have less live pseudos.
3177
3178 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
3179
3180         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3181         ix86_expand_vector_set if supported.
3182
3183 2008-05-13  Diego Novillo  <dnovillo@google.com>
3184             Kenneth Zadeck  <zadeck@naturalbridge.com>
3185
3186         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
3187
3188         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
3189         phinodes_print_statistics, init_ssanames, fini_ssanames,
3190         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
3191         release_ssa_name, release_defs, replace_ssa_name_symbol,
3192         ssanames_print_statistics): Move ...
3193         * tree-flow.h: ... here.
3194         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
3195         Use FN instead of cfun.
3196         (make_ssa_name_fn): Rename from make_ssa_name.
3197         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
3198         * tree-flow-inline.h (make_ssa_name): Move from
3199         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
3200         * omp-low.c (expand_omp_parallel):
3201         * tree-flow-inline.h (redirect_edge_var_map_result):
3202         * tree-ssa.c (init_tree_ssa): Add argument FN.
3203         Use it instead of cfun.  Update all users.
3204
3205 2008-05-13  Tom Tromey  <tromey@redhat.com>
3206
3207         PR preprocessor/22168:
3208         * doc/cpp.texi (Top): Update menu.
3209         (Alternatives to Wrapper #ifndef): New node.
3210         (Other Directives): Document deprecation.
3211         (Obsolete Features): Remove menu.
3212         (Assertions): Merge node into Obsolete Features.
3213         (Obsolete once-only headers): Move earlier; rename to Alternatives
3214         to Wrapper #ifndef.
3215         * doc/cppopts.texi: Update.
3216         * c.opt (Wdeprecated): Enable for C and ObjC.
3217         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
3218         (C++ Dialect Options): Move -Wno-deprecated from here to...
3219         (Warning Options): ... here.
3220
3221 2008-05-13  Richard Guenther  <rguenther@suse.de>
3222
3223         PR middle-end/36227
3224         * fold-const.c (fold_sign_changed_comparison): Do not allow
3225         changes in pointer-ness.
3226
3227 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3228
3229         PR target/24713
3230         * config/sh/sh.c (sh_expand_prologue): Don't clear
3231         RTX_FRAME_RELATED_P for push insns.
3232
3233 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
3234
3235         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
3236
3237 2008-05-12  Anatoly Sokolov <aesok@post.ru>
3238
3239         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
3240         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
3241         Use 'machine->is_leaf' instead of 'leaf_func_p'.
3242
3243 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
3244
3245         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
3246         (*vec_concatv4sf_sse): This.
3247         (*sse2_concatv2si): Renamed to ...
3248         (*vec_concatv2si_sse2): This.
3249         (*sse1_concatv2si): Renamed to ...
3250         (*vec_concatv2si_sse): This.
3251         (*vec_concatv2di_rex): Renamed to ...
3252         (*vec_concatv2di_rex64): This.
3253         (*vec_concatv2si_sse4_1): New.
3254         (*vec_concatv2di_rex64_sse4_1): Likewise.
3255
3256 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
3257
3258         PR rtl-optimization/36111
3259         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
3260         that was created for swappable operands.
3261
3262 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
3263
3264         PR ada/36001
3265         * Makefile.in: Substitute GNATMAKE and GNATBIND.
3266         * configure.ac: Add call to ACX_PROG_GNAT.
3267
3268 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
3269
3270         * optc-gen.awk: Fix comment typo.
3271
3272 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3273
3274         * pretty-print.c (pp_integer_with_precision): Use
3275         HOST_LONG_LONG_FORMAT.
3276
3277 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
3278
3279         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
3280                 
3281 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
3282
3283         * config/i386/i386.c (bdesc_ptest): Removed.
3284         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
3285         (bdesc_args): Add __builtin_ia32_ptestz128,
3286         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
3287         (ix86_init_mmx_sse_builtins): Updated.
3288         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
3289         (ix86_expand_builtin): Updated.
3290
3291 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
3292
3293         * tree-cfg.c (valid_fixed_convert_types_p): New function.
3294         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
3295
3296 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
3297
3298         * value-prof.c (interesting_stringop_to_profile): Do not
3299         return early for BUILT_IN_MEMPCPY.
3300
3301 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
3302
3303         * calls.c (expand_call): Don't use callgraph to increase
3304         preferred_stack_boundary.
3305
3306         * cgraph.h (cgraph_rtl_info): Use unsigned on
3307         preferred_incoming_stack_boundary.
3308
3309         * final.c (rest_of_clean_state): Use unsigned on
3310         preferred_stack_boundary.
3311
3312 2008-05-09  Tom Tromey  <tromey@redhat.com>
3313
3314         PR preprocessor/22231:
3315         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
3316         proceeding.
3317
3318 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
3319
3320         PR tree-optimization/36129
3321         * tree-ssa-ccp.c: Include value-prof.h.
3322         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
3323         built-in function was folded to a constant.
3324         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
3325
3326 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
3327             Sebastian Pop  <sebastian.pop@amd.com>
3328
3329         * tree-scalar-evolution.c: Document instantiate_scev.
3330         (instantiate_parameters_1): Renamed instantiate_scev_1.
3331         Don't use the same loop for instantiation_loop and evolution_loop.
3332         (instantiate_scev): New.
3333         (instantiate_parameters): Moved...
3334         (resolve_mixers): Update call to instantiate_scev_1 to pass the
3335         same loop twice.  Maintains the semantics for this function.
3336         * tree-scalar-evolution.h (instantiate_scev): Declare.
3337         (instantiate_parameters): ...here.  Now static inline.
3338         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
3339         instead of resolve_mixers.
3340
3341 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3342
3343         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
3344
3345 2008-05-09  Tomas Bily  <tbily@suse.cz>
3346
3347         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
3348         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
3349         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3350         * c-common.c (c_common_truthvalue_conversion): Likewise.
3351         * tree-object-size.c (compute_object_offset): Likewise.
3352         * tree-inline.c (estimate_num_insns_1): Likewise.
3353         * varasm.c (const_hash_1, compare_constant, copy_constant)
3354         (compute_reloc_for_constant, output_addressed_constants)
3355         (initializer_constant_valid_p): Likewise.
3356         * c-omp.c (check_omp_for_incr_expr): Likewise.
3357         * gimplify.c (gimplify_expr): Likewise.
3358         * c-typeck.c (c_finish_return): Likewise.
3359         * tree-vectorizer.c (supportable_widening_operation)
3360         (supportable_narrowing_operation): Likewise.
3361         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
3362         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
3363         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
3364         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
3365         (descr_info_loc): Likewise.
3366         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3367         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
3368         (fold_unary): Likewise.
3369         * builtins.c (get_pointer_alignment): Likewise.
3370         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
3371         (instantiate_parameters_1): Likewise.
3372         * tree.c (expr_align, stabilize_reference): Likewise.
3373         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
3374         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3375         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
3376         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3377         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
3378         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
3379         Likewise.
3380         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
3381         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
3382         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
3383         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
3384         (forward_propagate_comparison)
3385         (tree_ssa_forward_propagate_single_use_vars): Likewise.
3386         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
3387         * emit-rtl.c (component_ref_for_mem_expr)
3388         (set_mem_attributes_minus_bitpos): Likewise.