OSDN Git Service

498460c58c356f4f56c86b91728488597c76dcfc
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-08-07  Carlos O'Donell  <carlos@codesourcery.com>
2
3         * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
4         * configure: Regenerate.
5         * config.in: Regenerate.
6         * gcc.c [HAVE_GNU_AS]: Add "%{v} %{w:-W} %{I*} " to asm_options
7         spec string.
8
9 2007-08-07  Ian Lance Taylor  <iant@google.com>
10
11         * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
12         note, just delete the insn.
13
14 2007-08-07  Andreas Schwab  <schwab@suse.de>
15
16         PR bootstrap/32973
17         * gengtype-lex.l: Ignore backslash/newline pair while scanning a
18         struct definition.
19
20 2007-08-07  Andreas Krebbel  <krebbel1@de.ibm.com>
21
22         * lower-subreg.c (resolve_subreg_use): Remove assertion.
23         (find_decomposable_shift_zext, resolve_shift_zext): New functions.
24         (decompose_multiword_subregs): Use the functions above to decompose
25         multiword shifts and zero-extends.
26
27 2007-08-07  Rask Ingemann Lambertsen  <rask@sygehus.dk>
28
29         * doc/sourcebuild.texi (Test Directives): Fix "compile" and
30         "assemble" descriptions which were swapped.
31
32 2007-08-06  Chao-ying Fu  <fu@mips.com>
33
34         * fixed-value.h: New file.
35         * fixed-value.c: New file.
36         * Makefile.in (OBJS-common): Add fixed-value.o.
37         (fixed-value.o): New rule.
38         (GTFILES): Add fixed-value.h.
39         * double-int.c (double_int_scmp): We should use unsigned HOST_WIDE_INT
40         to compare a.low and b.low.
41         * gengtype.c (main): Handle FIXED_VALUE_TYPE type as scalar typedef.
42
43 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
44             Daniel Jacobowitz  <dan@codesourcery.com>
45
46         PR target/31868
47         * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
48         tmake_file.
49         (x86_64-*-netbsd*): Likewise.
50         (x86_64-*-linux*): Likewise.
51         (x86_64-*-kfreebsd*-gnu): Likewise.
52         (x86_64-*-knetbsd*-gnu): Likewise.
53         (i[34567]86-*-solaris2.1[0-9]*): Likewise.
54
55         * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
56
57         * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
58         Add -fno-asynchronous-unwind-tables.
59
60         * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
61         * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
62         * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
63         * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
64         * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
65
66 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
67
68         * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
69         (TARGET_C_MODE_FOR_SUFFIX): New.
70
71 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
72
73         * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
74
75 2007-08-06  Steve Ellcey  <sje@cup.hp.com>
76
77         * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
78
79 2007-08-06  H.J. Lu  <hongjiu.lu@intel.com>
80
81         * config/i386/i386.md: Check TARGET_ macros and optimize_size
82         before checking function returns in conditional expressions.
83
84 2007-08-06  Alfred Minarik  <a.minarik@aon.at>
85
86         PR pch/13676
87         * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
88
89 2008-08-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
90
91         PR middle-end/32988
92         * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
93         for INTEGRAL_TYPE_P.
94
95 2008-08-05  Paolo Bonzini  <bonzini@gnu.org>
96
97         * configure.ac: Remove --enable-checking=df from default settings.
98         * tree-pass.h (TODO_df_verify): New.  Shift TODO_mark_first_instance.
99         * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
100         if the parameter is true.
101         (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
102         DF_VERIFY_SCHEDULED flag is true.
103         * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
104         (df_finish_pass): Adjust prototype.
105         * passes.c (execute_todo): Schedule verification if TODO_df_verify is
106         true.
107
108         * see.c (pass_see): Add TODO_df_verify.
109         * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
110         * global.c (rest_of_handle_global_alloc): Schedule verification
111         after the pass.
112         * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
113         before the pass.
114         * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
115         * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
116         * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
117
118         * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
119         * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
120         * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
121
122 2007-08-05  Vladimir Yanovsky  <yanov@il.ibm.com>
123             Revital Eres <eres@il.ibm.com>
124
125         * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
126         flag.
127         * ddg.c (create_ddg_dependence): Rename to...
128         (create_ddg_dep_from_intra_loop_link): This.  Do not check
129         for interloop edges.  Do not create anti dependence edge when
130         a true dependence edge exists in the opposite direction and
131         -fmodulo-sched-allow-regmoves is set.
132         (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
133         (add_cross_iteration_register_deps): Create anti dependence edge
134         when -fno-modulo-sched-allow-regmoves is set.
135         * common.opt (-fmodulo-sched-allow-regmoves): New flag.
136
137 2007-08-04  Richard Sandiford  <richard@codesourcery.com>
138
139         * config/arm/arm.md (movsi): Add braces.
140
141 2007-08-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
142
143         PR middle-end/32780
144         * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of operands
145         for the folding of "A - (A & B)" into "~B & A"; cast them to type.
146
147 2007-08-03  Zdenek Dvorak  <ook@ucw.cz>
148
149         * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
150         accessor functions.
151         * cfgloopmanip.c (remove_path, create_preheaders,
152         force_single_succ_latches, fix_loop_structure): Ditto.
153         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
154         tree_duplicate_loop_to_header_edge): Ditto.
155         * cfgloopanal.c (mark_irreducible_loops): Ditto.
156         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
157         Ditto.
158         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
159         cleanup_tree_cfg): Ditto.
160         * tree-cfg.c (tree_merge_blocks): Ditto.
161         * cfgloop.c (rescan_loop_exit, record_loop_exits,
162         release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
163         loop_preheader_edge, single_exit): Ditto.
164         (flow_loops_find): Do not clear loops->state.
165         * cfgloop.h (loops_state_satisfies_p, loops_state_set,
166         loops_state_clear): New functions.
167
168 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
169
170         PR middle-end/32399
171         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
172         when adding to the base and convert ELT to sizetype instead of type.
173
174 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
175
176         PR middle-end/32304
177         * ipa-reference.c (has_proper_scope_for_analysis): Return false when
178         the decl's type has TYPE_NEEDS_CONSTRUCTING set.
179
180 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
181
182         PR middle-end/32935
183         * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
184          correct type the negate expression.
185
186 2007-08-03  Jan Hubicka  <jh@suse.cz>
187
188         * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
189         stack boundary.
190
191 2007-08-03  David Edelsohn  <edelsohn@gnu.org>
192
193         * config/rs6000/rs6000.c (struct processor_cost): Change
194         l1_cache_lines to l1_cache_size.  Add l2_cache_size.
195         (*_cost): Convert l1 cache information to kilobytes.  Add l2 cache
196         information.
197         (rios1_costs, rios2_cost): Correct cache line size.
198         (rs6000_override_options): Set l2-cache-size parameter.
199
200 2007-08-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
201             Diego Novillo  <dnovillo@google.com>
202
203         PR 31521
204         * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
205         if the range includes 0.
206
207 2007-08-03  Ben Elliston  <bje@au.ibm.com>
208
209         * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
210         mode to unspec expressions to silence a warning from the generator
211         programs.
212         
213 2007-08-02  Steve Ellcey  <sje@cup.hp.com>
214
215         * config/ia64/constraints.md ("U"): Make constraint vector only.
216
217 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
218
219         PR middle-end/25446
220         * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
221         always_inline attribute on the function decl.
222
223 2007-08-02  Nathan Froyd  <froydnj@codesourcery.com>
224
225         PR middle-end/25445
226         * varasm.c (default_binds_local_p_1): Consult flag_whole_program
227         if we are compiling with -fPIC.
228
229 2007-08-02  Sandra Loosemore  <sandra@codesourcery.com>
230             Nigel Stephens  <nigel@mips.com>
231
232         * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
233         Define for MIPS32 and MIPS64.
234
235 2007-08-02  Nick Clifton  <nickc@redhat.com>
236
237         * config/host-hpux.c: Change copyright header to refer to version
238         3 of the GNU General Public License and to point readers at the
239         COPYING3 file and the FSF's license web page.
240         * config/alpha/predicates.md, config/alpha/vms-ld.c,
241         config/alpha/linux.h, config/alpha/alpha.opt,
242         config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
243         config/alpha/vms-unwind.h, config/alpha/ev4.md,
244         config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
245         config/alpha/alpha.h, config/alpha/sync.md,
246         config/alpha/openbsd.h, config/alpha/alpha.md,
247         config/alpha/alpha-modes.def, config/alpha/ev5.md,
248         config/alpha/alpha-protos.h, config/alpha/freebsd.h,
249         config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
250         config/alpha/constraints.md, config/alpha/osf.h,
251         config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
252         config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
253         config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
254         config/frv/frv-asm.h, config/frv/frv-protos.h,
255         config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
256         config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
257         config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
258         config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
259         config/s390/s390.opt, config/s390/s390-modes.def,
260         config/s390/fixdfdi.h, config/s390/constraints.md,
261         config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
262         config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
263         config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
264         config/m32c/m32c-pragma.c, config/m32c/m32c.h,
265         config/m32c/prologue.md, config/m32c/m32c.abi,
266         config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
267         config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
268         config/m32c/t-m32c, config/m32c/m32c-modes.def,
269         config/m32c/jump.md, config/m32c/shift.md,
270         config/m32c/m32c-protos.h, config/libgloss.h,
271         config/spu/spu-protos.h, config/spu/predicates.md,
272         config/spu/spu-builtins.h, config/spu/spu.c,
273         config/spu/spu-builtins.def, config/spu/spu-builtins.md,
274         config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
275         config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
276         config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
277         config/sparc/hypersparc.md, config/sparc/predicates.md,
278         config/sparc/linux.h, config/sparc/sp64-elf.h,
279         config/sparc/supersparc.md, config/sparc/cypress.md,
280         config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
281         config/sparc/niagara.md, config/sparc/sparc.md,
282         config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
283         config/sparc/sparc.opt, config/sparc/sync.md,
284         config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
285         config/sparc/ultra1_2.md, config/sparc/biarch64.h,
286         config/sparc/sparc.c, config/sparc/little-endian.opt,
287         config/sparc/sysv4-only.h, config/sparc/sparc.h,
288         config/sparc/linux64.h, config/sparc/freebsd.h,
289         config/sparc/sol2.h, config/sparc/rtemself.h,
290         config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
291         config/sparc/sparc-modes.def, config/sparc/sparclet.md,
292         config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
293         config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
294         config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
295         config/m32r/linux.h, config/m32r/constraints.md,
296         config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
297         config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
298         config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
299         config/i386/i386.md, config/i386/netware-crt0.c,
300         config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
301         config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
302         config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
303         config/i386/sol2.h, config/i386/constraints.md,
304         config/i386/netware-libgcc.c, config/i386/sysv5.h,
305         config/i386/predicates.md, config/i386/geode.md,
306         config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
307         config/i386/freebsd64.h, config/i386/vxworksae.h,
308         config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
309         config/i386/rtemself.h, config/i386/netbsd-elf.h,
310         config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
311         config/i386/netware.h, config/i386/i386-modes.def,
312         config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
313         config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
314         config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
315         config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
316         config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
317         config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
318         config/i386/xm-mingw32.h, config/i386/linux64.h,
319         config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
320         config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
321         config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
322         config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
323         config/i386/cygwin2.c, config/i386/i386-protos.h,
324         config/i386/sync.md, config/i386/openbsd.h,
325         config/i386/host-mingw32.c, config/i386/i386-aout.h,
326         config/i386/nto.h, config/i386/biarch64.h,
327         config/i386/i386-coff.h, config/i386/freebsd.h,
328         config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
329         config/i386/host-i386-darwin.c, config/i386/vxworks.h,
330         config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
331         config/darwin-protos.h, config/linux.opt, config/sol2.c,
332         config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
333         config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
334         config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
335         config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
336         config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
337         config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
338         config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
339         config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
340         config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
341         config/sh/superh64.h, config/sh/rtemself.h,
342         config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
343         config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
344         config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
345         config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
346         config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
347         config/avr/predicates.md, config/avr/constraints.md,
348         config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
349         config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
350         config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
351         config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
352         config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
353         config/c4x/c4x-modes.def, config/c4x/rtems.h,
354         config/c4x/predicates.md, config/c4x/c4x.h,
355         config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
356         config/xtensa/predicates.md, config/xtensa/xtensa.c,
357         config/xtensa/linux.h, config/xtensa/xtensa.h,
358         config/xtensa/elf.h, config/xtensa/xtensa.md,
359         config/xtensa/xtensa.opt, config/xtensa/constraints.md,
360         config/xtensa/xtensa-protos.h, config/dbx.h,
361         config/stormy16/predicates.md, config/stormy16/stormy16.md,
362         config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
363         config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
364         config/host-solaris.c, config/fr30/fr30.h,
365         config/fr30/predicates.md, config/fr30/fr30-protos.h,
366         config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
367         config/vxworksae.h, config/sol2-c.c, config/lynx.h,
368         config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
369         config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
370         config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
371         config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
372         config/host-linux.c, config/interix3.h, config/cris/cris.c,
373         config/cris/predicates.md, config/cris/linux.h,
374         config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
375         config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
376         config/cris/aout.opt, config/cris/cris-protos.h,
377         config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
378         config/iq2000/iq2000.h, config/iq2000/predicates.md,
379         config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
380         config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
381         config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
382         config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
383         config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
384         config/chorus.h, config/mn10300/mn10300.c,
385         config/mn10300/mn10300.opt, config/mn10300/predicates.md,
386         config/mn10300/mn10300.h, config/mn10300/linux.h,
387         config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
388         config/mn10300/mn10300.md, config/ia64/predicates.md,
389         config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
390         config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
391         config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
392         config/ia64/freebsd.h, config/ia64/ia64.md,
393         config/ia64/ia64-modes.def, config/ia64/constraints.md,
394         config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
395         config/gofast.h, config/rtems.h, config/sol2-10.h,
396         config/m68k/predicates.md, config/m68k/m68k.md,
397         config/m68k/linux.h, config/m68k/m68k-modes.def,
398         config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
399         config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
400         config/m68k/openbsd.h, config/m68k/m68k-aout.h,
401         config/m68k/m68k.opt, config/m68k/m68020-elf.h,
402         config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
403         config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
404         config/m68k/constraints.md, config/m68k/rtemself.h,
405         config/m68k/netbsd-elf.h, config/m68k/m68k.h,
406         config/m68k/uclinux.h, config/rs6000/power4.md,
407         config/rs6000/host-darwin.c, config/rs6000/6xx.md,
408         config/rs6000/linux.h, config/rs6000/eabi.h,
409         config/rs6000/aix41.opt, config/rs6000/xcoff.h,
410         config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
411         config/rs6000/eabialtivec.h, config/rs6000/8540.md,
412         config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
413         config/rs6000/windiss.h, config/rs6000/603.md,
414         config/rs6000/aix41.h, config/rs6000/cell.md,
415         config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
416         config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
417         config/rs6000/darwin.md, config/rs6000/darwin64.h,
418         config/rs6000/default64.h, config/rs6000/7xx.md,
419         config/rs6000/darwin.opt, config/rs6000/spe.md,
420         config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
421         config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
422         config/rs6000/7450.md, config/rs6000/linux64.h,
423         config/rs6000/constraints.md, config/rs6000/440.md,
424         config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
425         config/rs6000/rs6000.c, config/rs6000/aix52.h,
426         config/rs6000/rs6000.h, config/rs6000/power6.md,
427         config/rs6000/predicates.md, config/rs6000/altivec.md,
428         config/rs6000/aix64.opt, config/rs6000/rios1.md,
429         config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
430         config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
431         config/rs6000/darwin7.h, config/rs6000/dfp.md,
432         config/rs6000/linux64.opt, config/rs6000/sync.md,
433         config/rs6000/vxworksae.h, config/rs6000/power5.md,
434         config/rs6000/lynx.h, config/rs6000/biarch64.h,
435         config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
436         config/rs6000/eabispe.h, config/rs6000/e500.h,
437         config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
438         config/rs6000/netbsd.h, config/rs6000/e500-double.h,
439         config/rs6000/aix.h, config/rs6000/vxworks.h,
440         config/rs6000/40x.md, config/rs6000/aix51.h,
441         config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
442         config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
443         config/arc/arc.h, config/mcore/mcore-elf.h,
444         config/mcore/mcore-protos.h, config/mcore/predicates.md,
445         config/mcore/mcore.md, config/mcore/mcore.c,
446         config/mcore/mcore.opt, config/mcore/mcore.h,
447         config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
448         config/score/predicates.md, config/score/score-version.h,
449         config/score/score-protos.h, config/score/misc.md,
450         config/score/elf.h, config/score/score.c, config/score/mac.md,
451         config/score/score7.md, config/score/score.h,
452         config/score/score-conv.h, config/score/score-mdaux.c,
453         config/score/score.md, config/score/score.opt,
454         config/score/score-modes.def, config/score/score-mdaux.h,
455         config/score/mul-div.S, config/arm/uclinux-elf.h,
456         config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
457         config/arm/symbian.h, config/arm/linux-elf.h,
458         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
459         config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
460         config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
461         config/arm/strongarm-pe.h, config/arm/arm.h,
462         config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
463         config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
464         config/arm/arm-modes.def, config/arm/linux-eabi.h,
465         config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
466         config/arm/arm-cores.def, config/arm/arm-protos.h,
467         config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
468         config/arm/wince-pe.h, config/arm/neon.md,
469         config/arm/constraints.md, config/arm/neon.ml,
470         config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
471         config/arm/arm.opt, config/arm/arm926ejs.md,
472         config/arm/predicates.md, config/arm/iwmmxt.md,
473         config/arm/arm_neon.h, config/arm/unknown-elf.h,
474         config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
475         config/arm/neon-testgen.ml, config/arm/arm.md,
476         config/arm/xscale-coff.h, config/arm/pe.c,
477         config/arm/arm-generic.md, config/arm/pe.h,
478         config/arm/kaos-strongarm.h, config/arm/freebsd.h,
479         config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
480         config/arm/strongarm-elf.h, config/arm/cirrus.md,
481         config/arm/netbsd-elf.h, config/arm/vxworks.h,
482         config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
483         config/pa/predicates.md, config/pa/pa64-hpux.h,
484         config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
485         config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
486         config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
487         config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
488         config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
489         config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
490         config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
491         config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
492         config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
493         config/pa/pa64-regs.h, config/pa/pa-modes.def,
494         config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
495         config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
496         config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
497         config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
498         config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
499         config/mips/linux64.h, config/mips/elforion.h,
500         config/mips/constraints.md, config/mips/generic.md,
501         config/mips/predicates.md, config/mips/4300.md,
502         config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
503         config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
504         config/mips/5k.md, config/mips/vr4120-div.S,
505         config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
506         config/mips/mips-protos.h, config/mips/6000.md,
507         config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
508         config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
509         config/mips/mips-modes.def, config/mips/vr.h,
510         config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
511         config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
512         config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
513         config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
514         config/vax/openbsd1.h, config/vax/netbsd.h,
515         config/vax/vax-protos.h, config/vax/netbsd-elf.h,
516         config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
517         config/h8300/rtems.h, config/h8300/predicates.md,
518         config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
519         config/h8300/h8300.md, config/h8300/h8300.opt,
520         config/h8300/coff.h, config/h8300/h8300-protos.h,
521         config/v850/v850.md, config/v850/predicates.md,
522         config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
523         config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
524         config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
525         config/mmix/mmix.h, config/mmix/predicates.md,
526         config/mmix/mmix-protos.h, config/mmix/mmix.md,
527         config/mmix/mmix.c, config/mmix/mmix.opt,
528         config/mmix/mmix-modes.def, config/bfin/bfin.opt,
529         config/bfin/rtems.h, config/bfin/bfin-modes.def,
530         config/bfin/predicates.md, config/bfin/bfin-protos.h,
531         config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
532         Likewise.
533
534 2007-08-02  Richard Sandiford  <richard@codesourcery.com>
535
536         * emit-rtl.c (reset_used_decls): Rename to...
537         (set_used_decls): ...this.  Set the used flag rather than clearing it.
538         (unshare_all_rtl_again): Update accordingly.  Set flags on argument
539         DECL_RTLs rather than resetting them.
540
541 2007-08-02  Andreas Krebbel  <krebbel1@de.ibm.com>
542
543         * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
544
545 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
546
547         * reload.c (find_reloads_address_part):  Pass correct MEMREFLOC
548         argument to find_reloads_address.
549
550 2007-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
551
552         PR tree-optimization/32919
553         * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
554         * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
555         (coalesce_ssa_name): Call it.
556
557 2007-08-01  Sandra Loosemore  <sandra@codesourcery.com>
558             David Ung  <davidu@mips.com>
559
560         * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
561         (__mips16_unorddf2, __mips16_floatunsidf): New.
562         * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
563         above functions.
564         * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
565
566 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
567
568         * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
569         Display new operands of OMP_SECTIONS and OMP_CONTINUE.
570         * tree.h (OMP_SECTIONS_CONTROL): New macro.
571         (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
572         * omp-low.c (get_ws_args_for, determine_parallel_type,
573         expand_omp_for_generic, expand_omp_for_static_nochunk,
574         expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
575         Work with more precise CFG.
576         (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
577         (lower_omp_sections): Emit OMP_SECTIONS_SWITCH.  Add arguments to
578         OMP_CONTINUE.
579         * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
580         * gimple-low.c (lower_stmt): Ditto.
581         * tree-inline.c (estimate_num_insns_1): Ditto.
582         * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
583         (OMP_SECTIONS_SWITCH): New.
584         * tree-cfgcleanup.c (cleanup_omp_return): New.
585         (cleanup_tree_cfg_bb): Call cleanup_omp_return.
586         * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
587         and exit edge for OMP_FOR.  Handle OMP_SECTIONS_SWITCH.
588         (tree_redirect_edge_and_branch): Handle omp constructs.
589
590         * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
591         with three arguments.
592
593 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
594
595         * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
596         in loop closed ssa.
597
598 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
599
600         * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
601         the loop structures may need fixing.
602         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
603         New functions.
604         (cleanup_tree_cfg_loop): Removed.
605         (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
606         * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
607         instead of running cleanup_tree_cfg_loop.
608         * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
609         * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
610         (tree_predictive_commoning): Declaration changed.
611         * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
612
613 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
614
615         * doc/invoke.texi (l1-cache-size): Update documentation.
616         (l2-cache-size): Document.
617         * params.h (L2_CACHE_SIZE): New macro.
618         * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
619         that L1_CACHE_SIZE is in kB now.
620         (L2_CACHE_SIZE_BYTES): New macro.
621         (tree_ssa_prefetch_arrays): Show size in kB.
622         * config/i386/i386.h (struct processor_costs): Add l1_cache_size
623         and l2_cache_size fields.
624         * config/i386/driver-i386.c (describe_cache): Detect cache size
625         in kB.
626         * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
627         pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
628         amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
629         generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
630         (override_options): Set l1-cache-size and l2-cache-size to default
631         values if not specified otherwise.
632         * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
633         (PARAM_L2_CACHE_SIZE): New.
634
635 2007-08-01  Nigel Stephens  <nigel@mips.com>
636             David Ung  <davidu@mips.com>
637             Thiemo Seufer  <ths@mips.com>
638             Chris Dearman  <chris@mips.com>
639             Richard Sandiford  <richard@codesourcery.com>
640
641         * config.gcc (mips*-sde-elf*): New stanza.
642         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
643         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
644         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
645         (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
646         (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
647         (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
648         to tmake_file.
649         * config/mips/sde.h: New file.
650         * config/mips/t-libgcc-mips16: Likewise.
651         * config/mips/t-sde: Likewise.
652         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
653         of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
654         _MIPS_FPSET and _MIPS_SZINT.
655         * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
656         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
657         insertion of a default -mips option.  Use MIPS_32BIT_OPTION_SPEC.
658         * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
659         * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
660         * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
661         * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
662         _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
663         _MIPS_SZPTR and _MIPS_FPSET.
664         (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
665         architecture is specified.
666         (MIPS_32BIT_OPTION_SPEC): New macro.
667
668 2007-07-31  Dan Hipschman  <dsh@google.com>
669
670         * gcc.c (end_going_arg): New function.
671         (do_spec_2): Use it.
672         (do_spec_1): Use it.
673
674 2007-07-31  H.J. Lu  <hongjiu.lu@intel.com>
675
676         * ddg.c (add_cross_iteration_register_deps): Declare bb_info
677         only if ENABLE_CHECKING is defined.
678
679 2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
680
681         * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
682         df_ru_add_problem, df_ru_get_bb_info): Removed.
683         (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
684         * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
685         df_ru_free_bb_info, df_ru_alloc,
686         df_ru_bb_local_compute_process_def,
687         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
688         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
689         df_ru_transfer_function, df_ru_free, df_ru_start_dump,
690         df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
691         df_ru_add_problem): Removed.
692
693 2007-07-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
694
695         PR target/32847
696         * pa.md (casesi32): Use match_scratch.  Revise insn condition.
697         (casesi32p, casesi64p): Likewise.
698         (casesi): Adjust for above.
699
700 2007-07-31  Richard Sandiford  <richard@codesourcery.com>
701
702         * mode-switching.c (create_pre_exit): Don't search past calls.
703
704 2007-07-31  Sandra Loosemore  <sandra@codesourcery.com>
705
706         * config/mips/mips.h (ISA_HAS_SYNCI):  Add !TARGET_MIPS16 test.
707
708 2007-07-31  Revital Eres  <eres@il.ibm.com>
709
710         * ddg.c (add_deps_for_def): Rename to...
711         (add_cross_iteration_register_deps): This.  Change implementation
712         to use only reaching def and def-use chains to construct the
713         inter loop dependencies.
714         (add_deps_for_use): Remove function.
715         (build_inter_loop_deps): Call add_cross_iteration_register_deps
716         function to build the inter loop dependencies.
717         * modulo-sched.c (sms_schedule): Build only
718         reaching def and def-use chains for the propose of the ddg
719         construction.
720
721 2007-07-31  Julian Brown  <julian@codesourcery.com>
722
723         * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
724         New define_insns. Use correct RTL.
725         (vec_set<mode>): Write as expander.
726
727 2007-07-31  Razya Ladelsky  <razya@il.ibm.com>
728
729         * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring 
730         to an unallocated space.
731
732 2007-07-30  Jan Sjodin  <jan.sjodin@amd.com>
733
734         * tree-data-ref.c
735         (split_constant_offset): Enable split_constant_offset to extract
736         constants from other statements.
737         * tree-vect-transform.c
738         (vect_create_addr_base_for_vector_ref): Generate data_ref_base
739         to a temp var. Force base_offset to be simple.
740
741 2007-07-30  Seongbae Park <seongbae.park@gmail.com>
742
743         * df-scan.c (df_scan_verify): Remove artificial limit on
744         the number of blocks for verification.
745         * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
746         df_simulate_defs): Avoid unnecessary insn checking for defs.
747
748 2007-07-29  Mark Mitchell  <mark@codesourcery.com>
749
750         gcc/
751         * config/m68k/lb1sf68.asm (FUNC): New macro.
752         (__mulsi3): Use it.
753         (__udivsi3): Likewise.
754         (__divsi3): Likewise.
755         (__umodsi3): Likewise.
756         (__modsi3): Likewise.
757         (__subdf3): Likewise.
758         (__adddf3): Likewise.
759         (__muldf3): Likewise.
760         (__divdf3): Likewise.
761         (__negdf2): Likewise.
762         (__cmpdf2): Likewise.
763         (__subsf3): Likewise.
764         (__addsf3): Likewise.
765         (__mulsf3): Likewise.
766         (__divsf3): Likewise.
767         (__negsf2): Likewise.
768         (__cmpsf2): Likewise.
769         (__eqdf2): Likewise.
770         (__nedf2): Likewise.
771         (__gtdf2): Likewise.
772         (__gedf2): Likewise.
773         (__ltdf2): Likewise.
774         (__ledf2): Likewise.
775         (__eqsf2): Likewise.
776         (__nesf2): Likewise.
777         (__gtsf2): Likewise.
778         (__gesf2): Likewise.
779         (__ltsf2): Likewise.
780         (__lesf2): Likewise.
781
782 2007-07-30  Ollie Wild  <aaw@google.com>
783
784         * c-ppoutput.c (print_lines_directives_only): New function.
785         (scan_translation_unit_directives_only): New function.
786         (preprocess_file): Add call to scan_translation_unit_directives_only.
787         * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
788         (sanitize_cpp_opts): Add default flag_dump_macros setting for
789         -fdirectives-only.  Add errors for -fdirectives-only conflict with
790         -Wunused-macros and -traditional.
791         (finish_options): Add builtin macro initialization for
792         -fdirectives-only + -fpreprocessed.
793         * c.opt (fdirectives-only): New.
794         * doc/cppopts.texi (fdirectives-only): New.
795
796 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
797
798         * alias.c (record_set, memory_modified_1): Constify.
799         * bt-load.c (note_btr_set): Likewise.
800         * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
801         * combine.c (set_nonzero_bits_and_sign_copies,
802         expand_field_assignment, record_dead_and_set_regs_1,
803         use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
804         likely_spilled_retval_1): Likewise.
805         * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
806         frv_io_handle_set): Likewise.
807         * config/mips/mips.c (mips_sim_record_set,
808         vr4130_true_reg_dependence_p_1): Likewise.
809         * config/mt/mt.c (insn_dependent_p_1): Likewise.
810         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
811         * config/sh/sh.c (flow_dependent_p_1): Likewise.
812         * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
813         * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
814         * ddg.c (mark_mem_store): Likewise.
815         * df-problems.c (df_urec_mark_reg_change): Likewise.
816         * function.c (update_epilogue_consts): Likewise.
817         * gcse.c (record_set_info, record_last_set_info,
818         mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
819         reg_clear_last_set): Likewise.
820         * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
821         Likewise.
822         * jump.c (reversed_comparison_code_parts): Likewise.
823         * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
824         reg_is_set): Likewise.
825         * loop-iv.c (mark_altered): Likewise.
826         * mode-switching.c (reg_becomes_live): Likewise.
827         * optabs.c (no_conflict_move_test): Likewise.
828         * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
829         Likewise.
830         * postreload.c (reload_combine_note_store, move2add_note_store):
831         Likewise.
832         * regmove.c (flags_set_1): Likewise.
833         * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
834         Likewise.
835         * reload1.c (mark_not_eliminable, forget_old_reloads_1):
836         Likewise. 
837         * resource.c (update_live_status): Likewise.
838         * rtl.h (set_of, note_stores): Likewise.
839         * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
840         note_stores, parms_set): Likewise.
841         * sched-rgn.c (sets_likely_spilled_1): Likewise.
842         * stack-ptr-mod.c (notice_stack_pointer_modification_1):
843         Likewise. 
844         * var-tracking.c (count_stores, add_stores): Likewise.
845
846 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
847
848         * alias.c (mems_in_disjoint_alias_sets_p,
849         fixed_scalar_and_varying_struct_p, aliases_everything_p,
850         nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
851         write_dependence_p, mems_in_disjoint_alias_sets_p,
852         read_dependence, true_dependence, canon_true_dependence,
853         anti_dependence, output_dependence): Constify.
854         * combine.c (extended_count): Likewise.
855         * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
856         * cselib.c (get_value_hash, references_value_p,
857         cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
858         * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
859         * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
860         * function.c (contains, prologue_epilogue_contains,
861         sibcall_epilogue_contains): Likewise. 
862         * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
863         pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
864         only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
865         reg_or_subregno): Likewise.
866         * recog.c (asm_noperands): Likewise.
867         * reload1.c (function_invariant_p): Likewise.
868         * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
869         rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
870         condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
871         simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
872         true_regnum, reg_or_subregno, condjump_in_parallel_p,
873         extended_count, prologue_epilogue_contains,
874         sibcall_epilogue_contains, function_invariant_p, true_dependence,
875         canon_true_dependence, read_dependence, anti_dependence,
876         output_dependence): Likewise.
877         * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
878
879 2007-07-30  Julian Brown  <julian@codesourcery.com>
880
881         * config/arm/neon.md (V_ext): New mode attribute.
882         (neon_vget_lane<mode>): Replace with define_expand.
883         (neon_vget_lane<mode>_sext_internal)
884         (neon_vget_lane<mode>_zext_internal): New define_insns for double
885         and quad precision vectors.
886         (neon_vget_lanedi): Add bounds check. Remove dead comment.
887         * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
888         have typeless 32-bit result.
889
890 2007-07-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
891
892         PR tree-opt/32527
893         * tree-affine.h (aff_tree): The type of rest is sizetype for types
894         of pointers.
895         * tree-affine.c (aff_combination_scale): If type is a pointer type,
896         use sizetype for rest.
897         (aff_combination_add_elt): Likewise. Don't specialize pointer types.
898         (aff_combination_convert): Don't convert rest for pointer types.
899
900 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
901
902         * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
903
904         * tree-ssa-alias.c: Add alloc-pool.h.
905         (init_alias_info): Free alias_bitmap_obstack.
906         (delete_alias_info): Call delete_mem_ref_stats.
907         (get_mem_sym_stats_for): Use alloc_pool.
908         (init_mem_ref_stats): Do not delete mem_ref_stats here.
909         (delete_mem_sym_stats): Removed.
910         
911 2007-07-29  Sebastian Pop  <sebpop@gmail.com>
912
913         * tree-data-ref.c (add_multivariate_self_dist): Parametric access
914         functions cannot be represented as classical distance vectors.
915
916 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
917
918         * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
919         * builtins.c (validate_arg, builtin_mathfn_code,
920         validate_arglist): Likewise.
921         * calls.c (call_expr_flags): Likewise.
922         * combine.c (reg_nonzero_bits_for_combine,
923         reg_num_sign_bit_copies_for_combine, get_last_value,
924         reg_truncated_to_mode): Likewise.
925         * emit-rtl.c (subreg_lowpart_p): Likewise.
926         * expr.c (highest_pow2_factor_for_target,
927         categorize_ctor_elements_1, categorize_ctor_elements,
928         count_type_elements, contains_packed_reference,
929         highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
930         * fold-const.c (may_negate_without_overflow_p, int_const_binop,
931         fold_convertible_p, operand_equal_p, tree_swap_operands_p,
932         native_encode_int, native_encode_real, native_encode_complex,
933         native_encode_vector, native_encode_expr, native_interpret_int,
934         native_interpret_real, native_interpret_complex,
935         native_interpret_vector, native_interpret_expr): Likewise.
936         * function.c (use_register_for_decl): Likewise.
937         * gimplify.c (get_name): Likewise.
938         * langhooks-def.h (lhd_return_null_const_tree): New.
939         (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
940         * langhooks.c (lhd_return_null_const_tree): New.
941         * langhooks.h (lang_get_callee_fndecl): Constify.
942         * output.h (constructor_static_from_elts_p): Likewise.
943         * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
944         * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
945         subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
946         * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
947         cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
948         nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
949         * rtlhooks-def.h (reg_nonzero_bits_general,
950         reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
951         Likewise. 
952         * rtlhooks.c (reg_num_sign_bit_copies_general,
953         reg_nonzero_bits_general, reg_truncated_to_mode_general):
954         Likewise. 
955         * stmt.c (warn_if_unused_value, is_body_block): Likewise.
956         * stor-layout.c (mode_for_size_tree): Likewise.
957         * tree-ssa-loop-im.c (memref_eq): Likewise.
958         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
959         * tree.c (contains_placeholder_p, type_list_equal,
960         simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
961         Likewise. 
962         * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
963         mode_for_size_tree, categorize_ctor_elements, count_type_elements,
964         contains_placeholder_p, contains_packed_reference,
965         get_callee_fndecl, operand_equal_for_phi_arg_p,
966         warn_if_unused_value, is_body_block, native_encode_expr,
967         native_interpret_expr, fold_convertible_p, operand_equal_p,
968         int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
969         validate_arglist, simple_cst_equal, type_list_equal,
970         use_register_for_decl, call_expr_flags, get_name,
971         highest_pow2_factor): Likewise.
972         (const_call_expr_arg_iterator_d,
973         init_const_call_expr_arg_iterator, next_const_call_expr_arg,
974         first_const_call_expr_arg, more_const_call_expr_args_p,
975         FOR_EACH_CONST_CALL_EXPR_ARG): New.
976         * varasm.c (constructor_static_from_elts_p): Constify.
977
978 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
979
980         * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
981         config/arm/neon-schedgen.ml, config/arm/neon.ml,
982         config/arm/vec-common.md, config/ia64/div.md, cselib.c,
983         df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
984         regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
985         tree-vect-transform.c, tree.def: Fix comment typos.  Follow
986         spelling conventions.
987         * doc/invoke.texi: Follow spelling conventions.
988
989 2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
990             Revital Eres  <eres@il.ibm.com>
991
992         * modulo-sched.c (sms_schedule): Avoid loops which includes
993         auto-increment instructions.
994
995 2007-07-28  Richard Guenther  <rguenther@suse.de>
996
997         PR middle-end/32920
998         * fold-const.c (fold_cond_expr_with_comparison): Convert
999         operand zero of MIN/MAX_EXPR to correct type.
1000
1001 2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1002
1003         * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
1004         flags_from_decl_or_type): Constify.
1005         * gcc.c (do_spec_1): Likewise.
1006         * print-tree.c (dump_addr, print_node_brief): Likewise.
1007         * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
1008         simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
1009         tree_purge_all_dead_eh_edges): Likewise.
1010         * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
1011         tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
1012         Likewise. 
1013         * tree.c (expr_location, expr_has_location, expr_locus,
1014         expr_filename, expr_lineno, get_inner_array_type,
1015         fields_compatible_p): Likewise.
1016         * tree.h (get_inner_array_type, fields_compatible_p,
1017         expr_location, expr_has_location, expr_locus, expr_filename,
1018         expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
1019         setjmp_call_p, alloca_call_p): Likewise.
1020
1021 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
1022
1023         * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
1024         TV_FLOW_INSENSITIVE.
1025
1026         * tree-ssa-alias.c (compute_call_clobbered): Push/pop
1027         TV_CALL_CLOBBER.
1028         (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
1029         (compute_flow_insensitive_aliasing): Ditto for
1030         TV_FLOW_INSENSITIVE.    
1031
1032 2007-07-27  Jan Hubicka  <jh@suse.cz>
1033
1034         * config/i386/i386.c (register_move_cost): Remove accidentally comitted
1035         #if 0 block.
1036
1037         * attribs.c: Include hashtab.h
1038         (attribute_hash): New.
1039         (substring): New structure.
1040         (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
1041         New function.
1042         (init_attributes): Initialize attribute hash.
1043         (decl_attributes): Use attribute hash.
1044         * Makefile.in (attribs.c): Depend on hashtab.h.
1045
1046 2007-07-27  Steve Ellcey  <sje@cup.hp.com>
1047
1048         * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
1049
1050 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
1051
1052         * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
1053         __mips_dspr2 and __mips_dsp_rev macros.
1054         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
1055
1056 2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
1057         
1058        * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
1059
1060 2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>
1061
1062         PR middle-end/32749
1063         
1064         * df-problems.c (df_create_unused_note): Removed do_not_gen parm
1065         and the updating of the live and do_not_gen sets.
1066         (df_note_bb_compute): Added updating of live and do_not_gen sets
1067         for regular defs so that the case of clobber inside conditional
1068         call is processed correctly.
1069         
1070 2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
1071
1072         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
1073         operands with compatible type.
1074
1075 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
1076
1077         * expr.h (store_bit_field): Don't return a value.
1078         * expmed.c (check_predicate_volatile_ok): New function.
1079         (store_bit_field_1): New function, extracted from store_bit_field.
1080         Take a fallback_p argument and return true if the operation succeeded.
1081         Only use store_fixed_bit_field if fallback_p.  Don't recompute
1082         mode_for_extraction; use op_mode instead.  Try forcing memories
1083         into registers if the insv expander fails.
1084         (store_bit_field): Use store_bit_field_1 with fallback_p true.
1085         Don't return a value.
1086         (convert_extracted_bit_field): New function, extracted from
1087         store_bit_field.
1088         (extract_bit_field_1): Likewise.  Take a fallback_p argument
1089         and return NULL if the operation succeeded.  Only use
1090         extract_fixed_bit_field if fallback_p.  Only calculate one
1091         extraction mode.  Combine code for extv and extzv.  Try forcing
1092         memories into registers if the ext(z)v expander fails.
1093         (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
1094
1095 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
1096
1097         * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
1098         into bitfields.
1099         (df_ref): Likewise.  Put regno with other integer fields.
1100
1101 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
1102
1103         * df.h (df_mw_hardreg): Remove "loc" field.
1104         * df-scan.c (df_ref_record): Don't set it.  Remove redundant
1105         local variable.
1106         * df-problems.c (df_whole_mw_reg_unused_p): New function,
1107         split out from df_set_unused_notes_for_mw.  Return false for
1108         partial references.  Assert that mw_reg is a REG when returning true.
1109         (df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
1110         (df_whole_mw_reg_dead_p): New function, split out from
1111         df_set_dead_notes_for_mw.  Return false for partial references.
1112         Assert that mw_reg is a REG when returning true.
1113         (df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
1114         Remove redundant bitmap check.
1115
1116 2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>
1117
1118         * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
1119         ($(T)crtend.o): Likwise.
1120         ($(T)crtbeginS.o): Likwise.
1121         ($(T)crtendS.o): Likwise.
1122         ($(T)crtfastmath.o): Likwise.
1123
1124 2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>
1125
1126         * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
1127         * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
1128         * basic-block.h (struct control_flow_graph): Added x_dom_computed
1129         and x_n_bbs_in_dom_tree fields.
1130
1131 2007-07-26  Steve Ellcey  <sje@cup.hp.com>
1132
1133         PR tree-optimization/32087
1134         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
1135         Do not call scale_bbs_frequencies_int with prob of zero.
1136
1137 2007-07-26  Julian Brown  <julian@codesourcery.com>
1138
1139         * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
1140         (neon_element_bits): Add prototypes.
1141         * config/arm/arm.c (bounds_check, neon_lane_bounds)
1142         (neon_const_bounds, neon_element_bits): New functions.
1143         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
1144         (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
1145         (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
1146         (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
1147         (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
1148         (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
1149         (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
1150         (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
1151         (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
1152         (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
1153         (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
1154         (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
1155         (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
1156
1157 2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>
1158
1159         * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
1160         (HAVE_AS_GNU_ATTRIBUTE): Undefine.
1161
1162 2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
1163             Julian Brown  <julian@codesourcery.com>
1164
1165         * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
1166         * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
1167         * config/arm/cortex-a8.md: New.
1168         * config/arm/cortex-a8-neon.md: New.
1169         * config/arm/neon-schedgen.ml: New.
1170         * config/arm/neon.md (vqh_mnem): New.
1171         (neon_type): New.
1172         (Is_float_mode): New.
1173         (Scalar_mul_8_16): New.
1174         (Is_d_reg): New.
1175         (V_mode_nunits): New.
1176         (All instruction patterns): Annotate with neon_type attribute
1177         values.
1178         * config/arm/arm.md: Include cortex-a8.md.
1179         (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
1180         values.
1181         Annotate instruction patterns accordingly.
1182         (generic_sched): Do not use generic scheduling for Cortex-A8.
1183         (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
1184
1185 2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1186
1187         * fold-const.c (fold_read_from_constant_string): Use
1188         build_int_cst_type.
1189         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1190
1191 2007-07-26  Nick Clifton  <nickc@redhat.com>
1192
1193         * tree-ssa-operands.h: Change copyright header to refer to version
1194         3 of the GNU General Public License and to point readers at the
1195         COPYING3 file and the FSF's license web page.
1196         * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
1197         sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
1198         tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
1199         targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
1200         tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
1201         hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
1202         flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
1203         opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
1204         gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
1205         cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
1206         rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
1207         optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
1208         tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
1209         genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
1210         reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
1211         c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
1212         rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
1213         tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
1214         diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
1215         gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
1216         input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
1217         gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
1218         cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
1219         graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
1220         genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
1221         tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
1222         reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
1223         real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
1224         omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
1225         tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
1226         regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
1227         tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
1228         scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
1229         double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
1230         dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
1231         gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
1232         hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
1233         ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
1234         c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
1235         tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
1236         xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
1237         tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
1238         gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
1239         mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
1240         alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
1241         dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
1242         expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
1243         genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
1244         timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
1245         tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
1246         recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
1247         dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
1248         matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
1249         tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
1250         lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
1251         ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
1252         ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
1253         langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
1254         sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
1255         gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
1256         ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
1257         init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
1258         loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
1259         mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
1260         opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
1261         insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
1262         tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
1263         dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
1264         bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
1265         coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
1266         stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
1267         cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
1268         tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
1269         loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
1270         lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
1271         tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
1272         tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
1273         ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
1274         varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
1275         sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
1276         target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
1277         omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
1278         intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
1279         sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
1280         genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
1281         tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
1282         bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
1283         cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
1284         cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
1285         tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
1286         c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
1287         fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
1288         vecprim.h, basic-block.h, tree-ssa-structalias.c,
1289         tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
1290         passes.c, genconstants.c, c-incpath.c, c-incpath.h,
1291         struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
1292         varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
1293         reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
1294         stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
1295         params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
1296         tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
1297         convert.c, convert.h, langhooks-def.h, reload1.c,
1298         tree-ssa-operands.c: Likewise.
1299
1300 2007-07-26  Jan Hubicka  <jh@suse.cz>
1301
1302         * tree-ssa-live.c: Include debug.h and flags.h.
1303         (mark_scope_block_unused): New function.
1304         (remove_unused_scope_block_p): New function.
1305         (remove_unused_locals): Remove unused blocks too.
1306
1307 2007-07-25  Ian Lance Taylor  <iant@google.com>
1308
1309         * combine.c (combine_max_regno): Remove.  Remove all uses.
1310         (struct reg_stat_struct): Rename from struct reg_stat.
1311         (reg_stat_type): Define, and declare VECs.
1312         (reg_stat): Change from pointer to VEC.  Change all uses.
1313         (combine_split_insns): New static function.
1314         (try_combine, find_split_point): Call it instead of split_insns.
1315
1316 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1317
1318         * cfghooks.c (split_block): Fix the information about loop latch.
1319
1320 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1321
1322         * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
1323
1324 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1325
1326         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1327         Scan the new edge for loop exit info.
1328
1329 2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
1330
1331         * config/darwin.c: Include debug.h.
1332
1333 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
1334
1335         PR target/32218
1336         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
1337
1338 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
1339
1340         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
1341         (HARD_REGNO_MODE_OK): Ditto.
1342         (MODES_TIEABLE_P): Ditto.
1343         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
1344         (CLASS_MAX_NREGS): Ditto.
1345         * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
1346         * config/ia64/ia64.md (divsf3_internal_thr): Removed.
1347         (divdf3_internal_thr): Removed.
1348         * config/ia64/div.md: New file.
1349         * config/ia64/constraints.md: Add H constraint.
1350
1351 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1352
1353         * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
1354         sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
1355         sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
1356         sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
1357         sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
1358         sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
1359         sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
1360         sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
1361         sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
1362         dump_sbitmap_file, debug_sbitmap, popcount_table,
1363         sbitmap_popcount): Constify.
1364         * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
1365         (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
1366         dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
1367         sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
1368         sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
1369         sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
1370         sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
1371         sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
1372         sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
1373         sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
1374         sbitmap_popcount, sbitmap_verify_popcount): Constify.
1375
1376 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1377
1378         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
1379         bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
1380         bitmap_first_set_bit, bitmap_and, bitmap_and_into,
1381         bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
1382         bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
1383         bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
1384         bitmap_intersect_p, bitmap_intersect_compl_p,
1385         bitmap_ior_and_compl, bitmap_ior_and_compl_into,
1386         debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
1387         Constify.
1388         * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
1389         bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
1390         bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
1391         bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
1392         bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
1393         debug_bitmap, debug_bitmap_file, bitmap_print,
1394         bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
1395         bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
1396
1397 2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
1398
1399         * config/darwin.c (darwin_override_options): Additional fix for
1400         debug info formats that don't support var tracking.
1401
1402 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1403
1404         * cselib.c (entry_and_rtx_equal_p): Constify.
1405         * gengtype.c (output_mangled_typename, write_types, write_local):
1406         Likewise.
1407         * gengtype.h (const_type_p): New.
1408         * see.c (eq_descriptor_extension, hash_descriptor_extension):
1409         Constify.
1410         * tlink.c (scan_linker_output): De-constify.
1411         * tree-ssa-loop-im.c (memref_eq): Constify.
1412         * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
1413         (shared_bitmap_hash, shared_bitmap_eq): Constify.
1414
1415 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1416
1417         * c-common.c (fname_as_string, c_type_hash): Constify.
1418         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
1419         * cgraph.c (edge_hash, edge_eq): Likewise.
1420         * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
1421         * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
1422         reg_attrs_htab_eq): Likewise.
1423         * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
1424         Likewise.
1425         * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
1426         const_decl_t, const_state_t, const_automata_list_el_t): New.
1427         (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
1428         DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
1429         automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
1430         insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
1431         reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
1432         automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
1433         compare_max_occ_cycle_nums, out_state_arcs_num,
1434         compare_transition_els_num, units_cmp, state_reservs_cmp):
1435         Constify.
1436         * genmodes.c (cmp_modes): Likewise.
1437         * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
1438         * gimplify.c (compare_case_labels): Likewise.
1439         * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
1440         * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
1441         * matrix-reorg.c (mtt_info_hash): Likewise.
1442         * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
1443         * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
1444         (htab_hash_bucket, htab_hash_elem): Constify.
1445         * tree-browser.c (TB_parent_eq): Likewise.
1446         * tree-scalar-evolution.c (hash_scev_info): Likewise.
1447         * tree-ssa-alias.c (sort_tags_by_id): Likewise.
1448         * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
1449         (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
1450         Constify.
1451         * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
1452         * tree-ssa-pre.c (const_expr_pred_trans_t): New.
1453         (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
1454         * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
1455         const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
1456         New.
1457         (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
1458         vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
1459         vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
1460         * tree-ssa-threadupdate.c (redirection_data_hash,
1461         redirection_data_eq): Likewise. 
1462         * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
1463         * tree-ssa.c (var_ann_eq): Likewise.
1464         * tree-vrp.c (compare_case_labels): Likewise.
1465         * tree.c (int_cst_hash_hash, int_cst_hash_eq,
1466         tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
1467         tree_not_check_failed, tree_class_check_failed,
1468         tree_range_check_failed, tree_not_class_check_failed,
1469         omp_clause_check_failed, omp_clause_range_check_failed,
1470         tree_contains_struct_check_failed, tree_operand_check_failed):
1471         Likewise. 
1472         * tree.h (tree_contains_struct_check_failed, tree_check_failed,
1473         tree_not_check_failed, tree_class_check_failed,
1474         tree_range_check_failed, tree_not_class_check_failed,
1475         tree_operand_check_failed, omp_clause_operand_check_failed,
1476         tree_operand_length): Likewise. 
1477         * var-tracking.c (const_variable): New.
1478         (variable_htab_hash, variable_htab_eq): Constify.
1479         * varasm.c (const_desc_hash): Likewise.
1480
1481 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1482
1483         * expr.c (handled_component_p): Constify.
1484         * fold-const.c (fit_double_type): Likewise.
1485         * real.h (real_value_from_int_cst): Likewise.
1486         * tree-flow-inline.h (gimple_in_ssa_p,
1487         gimple_aliases_computed_p, gimple_addressable_vars,
1488         gimple_call_clobbered_vars, gimple_referenced_vars,
1489         gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
1490         end_htab_p, end_referenced_vars_p, var_ann, function_ann,
1491         may_aliases, end_readonly_imm_use_p, has_zero_uses,
1492         has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
1493         is_label_stmt, is_global_var, phi_ssa_name_p,
1494         factoring_name_p, is_call_clobbered, tree_common_ann,
1495         op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
1496         unmodifiable_var_p, array_ref_contains_indirect_ref,
1497         ref_contains_array_ref, lookup_subvars_for_var,
1498         var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
1499         gimple_mem_ref_stats): Likewise.
1500         * tree-flow.h (tree_common_ann, var_ann, function_ann,
1501         may_aliases, is_exec_stmt, is_label_stmt,
1502         ref_contains_array_ref, array_ref_contains_indirect_ref,
1503         var_can_have_subvars, overlap_subvar, is_call_clobbered,
1504         unmodifiable_var_p): Likewise.
1505         * tree-gimple.c (is_gimple_min_invariant): Likewise.
1506         * tree-gimple.h (is_gimple_min_invariant): Likewise. 
1507         * tree.c (type_hash_list, attribute_hash_list, tree_size,
1508         cst_and_fits_in_hwi, real_value_from_int_cst,
1509         build_real_from_int_cst, integer_zerop, integer_onep,
1510         integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
1511         tree_floor_log2, real_zerop, real_onep, real_twop,
1512         real_minus_onep, really_constant_p, purpose_member, chain_member,
1513         list_length, fields_length, int_size_in_bytes, bit_position,
1514         int_bit_position, byte_position, int_byte_position, expr_align,
1515         array_type_nelts, tree_node_structure,
1516         type_contains_placeholder_1, iterative_hash_pointer,
1517         is_attribute_with_length_p, is_attribute_p, check_qualified_type,
1518         tree_map_base_eq, type_hash_list, type_hash_eq,
1519         attribute_hash_list, type_num_arguments, tree_int_cst_equal,
1520         tree_int_cst_lt, tree_int_cst_compare, host_integerp,
1521         tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
1522         simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
1523         int_fits_type_p, get_containing_scope, decl_function_context,
1524         decl_type_context, omp_clause_operand_check_failed,
1525         initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
1526         * tree.h (omp_clause_operand_check_failed, tree_size,
1527         build_real_from_int_cst, array_type_nelts, purpose_member,
1528         tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
1529         host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
1530         is_attribute_p, check_qualified_type, expr_align,
1531         int_size_in_bytes, bit_position, int_bit_position, byte_position,
1532         int_byte_position, list_length, fields_length, initializer_zerop,
1533         integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
1534         integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
1535         tree_node_structure, handled_component_p, get_containing_scope,
1536         decl_function_context, decl_type_context, real_zerop,
1537         type_num_arguments, fit_double_type, really_constant_p,
1538         int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
1539         compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
1540         real_twop, real_minus_onep, int_cst_value): Likewise.
1541
1542 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1543
1544         * cfglayout.c (insn_scope, insn_line): Constify.
1545         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
1546         const_double_htab_hash, const_double_htab_eq,
1547         mem_attrs_htab_hash): Likewise.
1548         * loop-iv.c (biv_eq): Likewise.
1549         * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
1550         print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
1551         debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
1552         Likewise. 
1553         * rtl-error.c (location_for_asm, diagnostic_for_asm,
1554         error_for_asm, warning_for_asm, _fatal_insn,
1555         _fatal_insn_not_found): Likewise. 
1556         * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
1557         rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
1558         rtl_check_failed_type2, rtl_check_failed_code1,
1559         rtl_check_failed_code2, rtl_check_failed_code_mode,
1560         rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
1561         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
1562         rtl_check_failed_type2, rtl_check_failed_code1,
1563         rtl_check_failed_code2, rtl_check_failed_code_mode,
1564         rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
1565         SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
1566         shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
1567         get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
1568         mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
1569         rtx_unstable_p, get_integer_term, get_related_value,
1570         offset_within_block_p, reg_mentioned_p, count_occurrences,
1571         reg_referenced_p, reg_used_between_p, no_labels_between_p,
1572         single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
1573         reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
1574         find_reg_note, find_regno_note, find_reg_equal_equiv_note,
1575         find_constant_src, find_reg_fusage, find_regno_fusage,
1576         pure_call_p, remove_note, side_effects_p, volatile_refs_p,
1577         volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
1578         may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
1579         computed_jump_p, auto_inc_p, in_expr_list_p,
1580         remove_node_from_expr_list, loc_mentioned_in_p,
1581         label_is_jump_target_p, reversed_comparison_code_parts,
1582         debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
1583         print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
1584         print_inline_rtx): Likewise.
1585         * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
1586         computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
1587         rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
1588         get_integer_term, get_related_value, offset_within_block_p,
1589         count_occurrences, reg_mentioned_p, no_labels_between_p,
1590         reg_used_between_p, reg_referenced_p, single_set_2,
1591         multiple_sets, set_noop_p, refers_to_regno_p,
1592         reg_overlap_mentioned_p, dead_or_set_p,
1593         covers_regno_no_parallel_p, covers_regno_p,
1594         dead_or_set_regno_p, find_reg_note, find_regno_note,
1595         find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
1596         find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
1597         remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
1598         side_effects_p, may_trap_p_1, may_trap_p,
1599         may_trap_after_code_motion_p, may_trap_or_fault_p,
1600         inequality_comparisons_p, tablejump_p, computed_jump_p_1,
1601         computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
1602         subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
1603         * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
1604         mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
1605         Likewise. 
1606         * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
1607         warning_for_asm): Likewise.
1608         * tree.h (print_rtl): Likewise.
1609         * varasm.c (get_pool_mode): Likewise.
1610
1611 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1612
1613         * c-lex.c (c_lex_with_flags, lex_string): Constify.
1614         * c-ppoutput.c (print_line, pp_dir_change): Likewise.
1615         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
1616         * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
1617         * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
1618         * ddg.c (compare_sccs): Likewise.
1619         * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
1620         * dfp.c (decimal_real_from_string, decimal_to_decnumber,
1621         decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
1622         decimal_do_fix_trunc, decimal_real_to_integer,
1623         decimal_real_to_integer2, decimal_real_maxval): Likewise.
1624         * dse.c (const_group_info_t): New.
1625         (invariant_group_base_eq, invariant_group_base_hash): Constify.
1626         * dwarf2out.c (const_dw_die_ref): New.
1627         (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
1628         * tree-browser.c (TB_parent_eq): Likewise.
1629         * unwind-dw2-fde.c (__register_frame_info_bases,
1630         __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
1631         add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
1632         Likewise.
1633         * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
1634         * unwind-dw2.c (uw_frame_state_for): Likewise.
1635         * value-prof.c (histogram_hash, histogram_eq): Likewise.
1636         * value-prof.h (const_histogram_value): New.
1637
1638 2007-07-25  Richard Sandiford  <richard@codesourcery.com>
1639
1640         * config/mips/mips.c (machine_function): Add
1641         initialized_mips16_gp_pseudo_p.
1642         (mips16_gp_pseudo_reg): Do not emit the initialization of
1643         mips16_gp_pseudo_rtx when being called from the gimple cost-
1644         calculation routines; emit it on the first use outside those
1645         routines.
1646
1647 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1648
1649         * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
1650         New.
1651         
1652         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1653         RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
1654         RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
1655         RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
1656         RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
1657         Preserve const-ness of parameters through use of __typeof(),
1658         also constify and tidy.
1659         
1660         * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
1661         TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
1662         NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
1663         CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
1664         OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
1665         GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
1666         PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
1667         TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
1668         TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
1669
1670 2007-07-25  Julian Brown  <julian@codesourcery.com>
1671             Mark Shinwell  <shinwell@codesourcery.com>
1672
1673         * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
1674         (alpha_mangle_type): This.
1675         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1676         (TARGET_MANGLE_TYPE): Define this instead.
1677         * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
1678         * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
1679         (arm_init_neon_builtins): Fix comment.
1680         (arm_mangle_map_entry): New.
1681         (arm_mangle_map): New.
1682         (arm_mangle_type): New.
1683         * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
1684         (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
1685         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
1686         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1687         (TARGET_MANGLE_TYPE): Define this instead.
1688         * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
1689         (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
1690         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
1691         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1692         (TARGET_MANGLE_TYPE): Define this instead.
1693         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
1694         to...
1695         (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
1696         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1697         (TARGET_MANGLE_TYPE): Define this instead.
1698         * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
1699         (s390_mangle_type): This.
1700         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1701         (TARGET_MANGLE_TYPE): Define this instead.
1702         * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
1703         (sparc_mangle_type): This.
1704         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1705         (TARGET_MANGLE_TYPE): Define this instead.
1706         * cp/mangle.c (write_type): Call mangle_type target hook on all
1707         types before mangling.  Use original type, not main variant, as
1708         argument.
1709         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
1710         (TARGET_MANGLE_TYPE): This.
1711         * target.h (gcc_target): Rename mangle_fundamental_type to
1712         mangle_type.
1713         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
1714         (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
1715
1716 2007-07-25  Julian Brown  <julian@codesourcery.com>
1717             Paul Brook  <paul@codesourcery.com>
1718             Joseph Myers  <joseph@codesourcery.com>
1719             Mark Shinwell  <shinwell@codesourcery.com>
1720
1721         * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
1722         * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
1723         (with_fpu): Allow --with-fpu=neon.
1724         * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1725         * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1726         * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
1727         * config/arm/arm-protos.h (neon_immediate_valid_for_move)
1728         (neon_immediate_valid_for_logic, neon_output_logic_immediate)
1729         (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
1730         (neon_emit_pair_result_insn, neon_disambiguate_copy)
1731         (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
1732         (output_move_neon): Add prototypes.
1733         * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
1734         (all_fpus): Add FPUTYPE_NEON.
1735         (fp_model_for_fpu): Add NEON field.
1736         (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
1737         (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
1738         in registers.
1739         (arm_legitimate_address_p): Don't support fancy addressing for NEON
1740         structure moves.
1741         (thumb2_legitimate_address_p): Likewise.
1742         (neon_valid_immediate): Recognize and prepare constants suitable for
1743         NEON instructions.
1744         (neon_immediate_valid_for_move): New function. Recognize and prepare
1745         immediates for NEON move instructions.
1746         (neon_immediate_valid_for_logic): New function. Recognize and
1747         prepare immediates for NEON logic instructions.
1748         (neon_output_logic_immediate): New function. Create asm string
1749         suitable for outputting immediate logic instructions.
1750         (neon_pairwise_reduce): New function. Implement reduction using
1751         pairwise operations.
1752         (neon_expand_vector_init): New function. Expand a (possibly
1753         non-constant) vector initialization.
1754         (neon_vector_mem_operand): New function. Memory operands supported
1755         for quad-word loads/stores to/from ARM or NEON registers. Don't
1756         allow base+offset addressing for core regs.
1757         (neon_struct_mem_operand): New function. Valid mems for NEON
1758         structure moves.
1759         (coproc_secondary_reload_class): Enable NEON registers to be loaded
1760         from neon_vector_mem_operand addresses without a secondary register.
1761         (add_minipool_forward_ref): Handle >8-byte minipool entries.
1762         (add_minipool_backward_ref): Likewise.
1763         (dump_minipool): Likewise.
1764         (push_minipool_fix): Likewise.
1765         (output_move_quad): New function. Output quad-word moves, loads and
1766         stores using ARM registers.
1767         (output_move_vfp): Add support for vectors in VFP (NEON) D
1768         registers.
1769         (output_move_neon): Output a NEON load/store to/from a quadword
1770         register.
1771         (arm_print_operand): Implement new codes:
1772         - 'c' for unadorned integers (without a # sign).
1773         - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
1774         mode.
1775         - 'e', 'f' for the low and high D parts of a NEON Q register.
1776         - 'q' outputs a NEON Q register.
1777         - 'h' outputs ranges of D registers for VLDM/VSTM etc.
1778         - 'T' prints NEON opcode features from a coded bitmask.
1779         - 'F' is similar to T, but signed/unsigned codes both print as
1780         'i'.
1781         - 't' is similar to T, but 'u' is printed instead of 'p'.
1782         - 'O' prints 'r' if NEON instruction should perform rounding (as
1783         specified by bitmask), else prints nothing.
1784         - '#' is a punctuation character to stop operand numbers from
1785         running together with following digits in the assembler
1786         strings for instructions (when using mode attributes).
1787         (arm_assemble_integer): Handle extra NEON vector modes. Permute
1788         constant vectors in big-endian mode, where necessary.
1789         (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
1790         Handle EI, OI, CI, XI modes.
1791         (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
1792         (ashrv2si3): Rename IWMMXT2_BUILTINs to...
1793         (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
1794         (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
1795         (neon_builtin_type_bits): Add enumeration, one bit for each vector
1796         type.
1797         (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
1798         (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
1799         to turn v8qi, etc. into bits defined above.
1800         (neon_itype): New enumeration. Classifications of NEON builtins.
1801         (neon_builtin_datum): Define struct. Contains information about
1802         a single builtin (with multiple modes).
1803         (CF): Define helper macro for...
1804         (VAR1...VAR10): Define builtins with a type, name and 1-10 different
1805         modes.
1806         (neon_builtin_data): New array. Define information about builtins
1807         for use during initialization/expansion.
1808         (arm_init_neon_builtins): New function.
1809         (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
1810         true.
1811         (neon_builtin_compare): New function.
1812         (locate_neon_builtin_icode): New function. Find an insn code for a
1813         builtin given a function code for that builtin. Also return type of
1814         builtin (NEON_BINOP, NEON_UNOP etc.).
1815         (builtin_arg): New enumeration. Types of arguments for builtins.
1816         (arm_expand_neon_args): New function. Expand a generic NEON builtin.
1817         Takes a variable argument list of builtin_arg types, terminated by
1818         NEON_ARG_STOP.
1819         (arm_expand_neon_builtin): New function. Expand a NEON builtin.
1820         (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
1821         (neon_emit_pair_result_insn): New function. Support returning pairs
1822         of vectors via a pointer.
1823         (neon_disambiguate_copy): New function. Set up operands for a
1824         multi-word copy such that registers do not get clobbered.
1825         (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
1826         ARM_BUILTIN_NEON_BASE.
1827         (arm_file_start): Set float-abi attribute for NEON.
1828         (arm_vector_mode_supported_p): Enable NEON vector modes.
1829         (arm_mangle_map_entry): New.
1830         (arm_mangle_map): New.
1831         (arm_mangle_vector_type): New.
1832         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
1833         when appropriate.
1834         (TARGET_NEON): New macro. Target supports NEON.
1835         (fputype): Add FPUTYPE_NEON.
1836         (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
1837         for vectorization based on command-line arg.
1838         (NEON_REGNO_OK_FOR_NREGS): Define.
1839         (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
1840         (VALID_NEON_STRUCT_MODE): Define.
1841         (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
1842         (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
1843         * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
1844         (consttable_16): Add pattern for outputting 16-byte minipool
1845         entries.
1846         (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
1847         vec-common.md).
1848         (vec-common.md, neon.md): Include md files.
1849         * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
1850         * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
1851         (memory_constraint "Ut", "Un", "Us"): Define.
1852         * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
1853         (MMX_char): New mode attribute.
1854         (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
1855         (*add<mode>3_iwmmxt): New insn pattern.
1856         (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
1857         (*sub<mode>3_iwmmxt): New insn pattern.
1858         (mulv4hi3): Rename to...
1859         (*mulv4hi3_iwmmxt): This.
1860         (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
1861         (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
1862         (uminv4hi3, uminv2si3): Remove. Replace with...
1863         (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
1864         (*umin<mode>3_iwmmxt): These.
1865         (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
1866         (ashr<mode>3_iwmmxt): This new pattern.
1867         (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
1868         (lshr<mode>3_iwmmxt): This new pattern.
1869         (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
1870         (ashl<mode>3_iwmmxt): This new pattern.
1871         * config/arm/neon-docgen.ml: New file. Generate documentation for
1872         intrinsics.
1873         * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
1874         * config/arm/arm_neon.h: New (autogenerated).
1875         * config/arm/neon-testgen.ml: New file. Generate NEON tests
1876         automatically.
1877         * config/arm/neon.md: New file. Define NEON instructions.
1878         * config/arm/neon.ml: New file. Abstract description of NEON
1879         instructions, used to generate arm_neon.h header, documentation and
1880         tests.
1881         * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
1882         * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
1883         support.
1884         * doc/extend.texi (ARM Built-in Functions): Rename and remove
1885         extraneous comma.
1886         (ARM NEON Intrinsics): New subsection.
1887         * doc/arm-neon-intrinsics.texi: New (autogenerated).
1888
1889 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
1890
1891         * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
1892         prototype.
1893
1894 2007-07-24  Jan Hubicka  <jh@suse.cz>
1895
1896         * regclass.c (move_table): New type.
1897         (move_cost, may_move_in_cost, may_move_out_cost): Use it.
1898         (init_move_cost): Break out from ...
1899         (init_reg_sets_1): ... here; simplify computation of
1900         have_regs-of_mode and contains_reg_of_mode.
1901         (record_reg_classes): Unswitch internal loops.
1902         (copy_cost): Trigger lazy initialization of move cost
1903         (record_address_regs): Likewise.
1904
1905 2007-07-24  Daniel Berlin  <dberlin@dberlin.org>
1906
1907         * config/darwin.c (darwin_override_options): Don't force on
1908         flag_var_tracking_uninit when no debug info is requested.
1909
1910 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1911
1912         * cfgloop.c (init_loops_structure): New function.
1913         (flow_loops_find): Create root of the loop tree unconditionally.
1914
1915 2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
1916
1917         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
1918
1919 2007-07-24  Jan Hubicka  <jh@suse.cz>
1920
1921         * caller-save.c: Include ggc.h, gt-caller-save.h
1922         (reg_save_code, reg_restore_code): Rename to ...
1923         (cached_reg_save_code, cached_reg_restore_code): ... those.
1924         (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
1925         (reg_save_code, reg_restore_code): New functions.
1926         (init_caller_save): Do not intialize
1927         reg_save_code/reg_restore_code tables.
1928         * Makefile.in: (gt-caller-save.h): New.
1929
1930 2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1931
1932         * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
1933         with the mode of the original operand instead of
1934         integer_one_node.
1935
1936 2007-07-23  Jan Hubicka  <jH@suse.cz>
1937
1938         * i386.c (ix86_secondary_memory_needed): Break out to...
1939         (inline_secondary_memory_needed): ... here.
1940         (ix86_memory_move_cost): Break out to ...
1941         (inline_memory_move_cost): ... here; add support for IN value of 2 for
1942         maximum of input and output; fix handling of Q_REGS on 64bit.
1943         (ix86_secondary_memory_needed): Microoptimize.
1944
1945 2007-07-23  Sebastian Pop  <sebpop@gmail.com>
1946
1947         * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
1948         create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1949         stmts_from_loop, known_dependences_p, build_rdg): New.
1950         * tree-data-ref.h: Depends on graphds.h.
1951         (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
1952         (build_rdg): Declared.
1953         * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
1954
1955 2007-07-23  Daniel Berlin  <dberlin@dberlin.org>
1956
1957         * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
1958         ccp_min_invariant.
1959
1960 2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
1961             Jakub Jelinek  <jakub@redhat.com>
1962
1963         PR middle-end/PR28690
1964         * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
1965         * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
1966         and MEM_POINTER operands over REG and MEM operands.
1967         (swap_commutative_operands_p): Change return value to bool.
1968         * rtl.h: Update the corresponding prototype.
1969         * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
1970         instead of gen_rtx_PLUS.
1971         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
1972         value to bool.  Change function arguments to rtx's and update code
1973         to match.
1974         (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
1975         calls to match the new declaration.
1976         * simplify-rtx.c (simplify_associative_operation): Don't
1977         reorder simplify_binary_operation arguments.
1978
1979 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1980
1981         * config/mips/mips.c (override_options): Use mips_costs to derive
1982         the default branch cost.
1983         * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
1984         than mips_costs.
1985         * config/mips/mips.opt (mbranch-cost=): New option.
1986         * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
1987
1988 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1989
1990         * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
1991         (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
1992         * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
1993         instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
1994
1995 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1996
1997         * config/mips/constraints.md (ks): New constraint.
1998         * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
1999         (*add<mode>3_mips16): ...here.
2000
2001 2007-07-21  Uros Bizjak  <ubizjak@gmail.com>
2002
2003         * optabs.h (enum optab_index): Add new OTI_signbit.
2004         (signbit_optab): Define corresponding macro.
2005         (enum insn_code signbit_optab[]): Remove array.
2006         * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
2007         (expand_copysign_absneg): If back end provides signbit insn, use it
2008         instead of bit operations on floating point argument.
2009         * builtins.c (enum insn_code signbit_optab[]): Remove array.
2010         (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
2011         availability of signbit insn.
2012
2013         * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
2014         signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
2015         SSE mode is not active.
2016         (isinf<mode>2): Disable for mfpmath=sse,387.
2017
2018 2007-07-22  Ben Elliston  <bje@au.ibm.com>
2019
2020         * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
2021         `class' parameter.
2022         * struct-equiv.c (note_local_live): Likewise for `y_regno'.
2023
2024 2007-07-20  Richard Guenther  <rguenther@suse.de>
2025
2026         * tree-cfg.c (verify_expr): COND_EXPRs can have any
2027         integral typed condition.
2028         * tree-ssa.c (useless_type_conversion_p): Do not preserve
2029         booleanness.  Only preserve conversions from a non-base
2030         type to a base type, not in general between types with
2031         different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
2032         * tree.def (COND_EXPR): Document that the condition
2033         can be of any integral type.
2034
2035 2007-07-20  Nigel Stephens  <nigel@mips.com>
2036             Richard Sandiford  <richard@codesourcery.com>
2037
2038         * config/mips/mips.h (mips_dwarf_regno): Declare.
2039         (DBX_REGISTER_NUMBER): Remove redundant brackets.
2040         (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
2041         (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
2042         (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
2043         (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
2044         (REG_CLASS_NAMES): Update accordingly.
2045         * config/mips/mips.c (mips_dwarf_regno): New array.
2046         (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
2047         (mips_subword): Remove special handling for accumulator registers.
2048         (override_options): Initiailize mips_dwarf_regno.  Remove use
2049         of ACC_HI_REG_P.
2050         (mips_swap_registers): New function.
2051         (mips_conditional_register_usage): Swap accumulator registers
2052         around if TARGET_LITTLE_ENDIAN.
2053         (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
2054         * config/mips/constraints.md (h, l): Use the endianness to choose
2055         between MD0_REG and MD1_REG.
2056         * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
2057         alternative-dependent template.
2058
2059 2007-07-20  Richard Sandiford  <richard@codesourcery.com>
2060
2061         * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
2062         no_new_pseudos.
2063
2064 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
2065
2066         * function.c (thread_prologue_and_epilogue_insns): Fix exit
2067         predecessor fallthru flags.
2068
2069 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
2070
2071         * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
2072         of compare to the same type.
2073         * cfgloopmanip.c (add_loop): Update information about loop exits.
2074         (loop_version): Remove the innermost loop requirement.
2075         * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
2076         to sizetype for pointers.
2077
2078 2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>
2079
2080         * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
2081         (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
2082         (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
2083
2084         * config/dfp-bit.c: Empty for TFmode conversions.
2085
2086 2007-07-18  Caroline Tice  <ctice@apple.com>
2087         
2088         * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
2089         and handle them correctly; check that src is not NULL before
2090         trying to use it.
2091         (find_src_set_src): Likewise.
2092         
2093 2007-07-18  Bob Wilson  <bob.wilson@acm.org>
2094         
2095         * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
2096         (struct alignment_context, init_alignment_context): New.
2097         (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
2098         * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
2099         (XCHAL_HAVE_S32C1I): Likewise.
2100         (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
2101         * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
2102         (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
2103         (ATOMIC, HQI): New macros.
2104         (memory_barrier, *memory_barrier): New.
2105         (sync_lock_releasesi): New.
2106         (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
2107         (sync_lock_test_and_set<mode>): New.
2108         (sync_<atomic><mode>): New.
2109         (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
2110         * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
2111         (xtensa_expand_atomic): New.
2112         
2113 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2114
2115         PR target/30652
2116
2117         * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
2118         transformation for builtin ISNORMAL.
2119         (expand_builtin): Handle BUILT_IN_ISNORMAL.
2120         * builtins.def (BUILT_IN_ISNORMAL): New.
2121         * doc/extend.texi: Document isnormal.
2122
2123 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2124
2125         PR target/30652
2126
2127         * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
2128         optabs infrastructure.  Provide generic implementation for
2129         FINITE/ISFINITE.
2130         (expand_builtin): Handle FINITE/ISFINITE.
2131         (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
2132         (fold_builtin_1): Likewise.
2133
2134         * builtins.def (BUILT_IN_ISFINITE): New.
2135
2136         * doc/extend.texi: Document isfinite.
2137
2138 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2139
2140         PR target/30652
2141         PR middle-end/20558
2142
2143         * builtins.c (expand_builtin_interclass_mathfn): Provide a
2144         generic fallback for isinf.
2145         * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
2146         calculation code ...
2147         * real.c (get_max_float): ... to here.
2148         * real.h (get_max_float): New.
2149
2150 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2151
2152         PR middle-end/32668
2153
2154         * builtin-attrs.def (ATTR_TYPEGENERIC,
2155         ATTR_CONST_NOTHROW_TYPEGENERIC): New.
2156
2157         * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
2158         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
2159         BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
2160         BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
2161
2162         * c-common.c (handle_type_generic_attribute): New.
2163         (c_common_attribute_table): Add "type generic".
2164
2165         * c-typeck.c (convert_arguments): Handle "type generic" functions.
2166
2167 2007-07-18  Daniel Berlin  <dberlin@dberlin.org>
2168
2169         * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
2170         * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
2171         properly.
2172
2173 2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2174
2175         PR target/32808
2176         * config/cris/cris.c (cris_print_index): Don't use XEXP before
2177         checking that the operand is an expression.
2178
2179 2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
2180             Danny Smith  <dannysmith@users.sourceforge.net>
2181
2182         PR/other 30335
2183         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
2184         file mapping object in local namespace if Windows version later
2185         than NT4
2186
2187 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
2188
2189         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
2190         * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
2191         arm_cannot_force_const_mem.
2192         (arm_cannot_force_const_mem): New function.
2193         * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
2194         (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
2195         of arm_tls_referenced_p.
2196         * config/arm/arm.md (movsi): Split out-of-section constants when
2197         ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
2198         * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
2199
2200 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
2201
2202         * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
2203
2204 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
2205
2206         * config/mips/mips.md (*extendqihi2): Convert the destination
2207         to SImode.
2208
2209 2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2210
2211         * config/pa/fptr.c: Update license header.
2212         * config/pa/milli64.S: Likewise.
2213
2214 2007-07-17  Nick Clifton  <nickc@redhat.com>
2215
2216         * COPYING_v3: New file.  Contains version 3 of the GNU General
2217         Public License.
2218         * COPYING.LIB_v3: New file.  Contains version 3 of the GNU
2219         Lesser General Public License.
2220         * doc/include/gpl_v3.texi: New file.  Contains version 3 of
2221         the GNU General Public License.
2222
2223 2007-07-17  Zdenek Dvorak  <dvorakz@suse.cz>
2224
2225         PR rtl-optimization/32773
2226         * cfglayout.c (force_one_exit_fallthru): New function.
2227         (cfg_layout_finalize): Use it.
2228
2229 2007-07-16  Richard Guenther  <rguenther@suse.de>
2230             Uros Bizjak  <ubizjak@gmail.com>
2231
2232         * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
2233         before forcing it to gimple operand.
2234
2235 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
2236             David Ung  <davidu@mips.com>
2237
2238         * config/mips/mips.h (TUNE_24K): Define.
2239         (TUNE_MACC_CHAINS): Add TUNE_24K.
2240         * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
2241         imadd.
2242         * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
2243         (r74k_int_madd): .. this new reservation.
2244         (define_bypass): Fixed bypasses for r74k_int_madd to use
2245         mips_linked_madd_p.
2246         * config/mips/24k.md (define_bypass): Define new
2247         r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
2248
2249 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
2250             Nigel Stephens  <nigel@mips.com>
2251
2252         * config/mips/mips.md:  Include 20kc.md.
2253         * config/mips/20kc.md: New file.
2254         * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
2255         (mips_adjust_cost): Tweak for 20Kc.
2256         (mips_issue_rate): Likewise.
2257         * config/mips/mips.h (TUNE_20KC): Define.
2258
2259 2007-07-16  David Edelsohn  <edelsohn@gnu.og>
2260
2261         * config/rs6000/rs6000.c (struct processor_cost): Add
2262         cache_line_size, l1_cache_lines, and simultaneous_prefetches
2263         fields.
2264         (*_cost): Add cache information.
2265         (rs6000_override_options): Set cache parameters.
2266
2267 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2268
2269         PR bootstrap/3456
2270         * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
2271         * doc/install.texi (mips-sgi-irix6): pthread support works now.
2272
2273 2007-07-16  Paul Brook  <paul@codesourcery.com>
2274
2275         PR target/32753
2276         * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
2277         (cirrus_thumb2_movsi_insn): Ditto.
2278
2279 2007-07-15  Geoffrey Keating  <geoffk@apple.com>
2280
2281         * config/rs6000/darwin-fallback.c (interpret_libc): Change
2282         CR2_REGNO to R_CR2.
2283
2284 2007-07-15  Andrew Haley  <aph@redhat.com>
2285
2286         * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
2287         before looking in the context.
2288
2289 2007-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2290
2291         PR middle-end/32398
2292         PR middle-end/32769
2293         * pa-protos.h (pa_eh_return_handler_rtx): Declare.
2294         * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
2295         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2296         (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
2297         to generate .CALLINFO statement.
2298         (hppa_expand_prologue): Set rp_saved.
2299         (hppa_expand_epilogue): Use rp_saved.
2300         (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
2301         * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
2302
2303 2007-07-14  Dirk Mueller  <dmueller@suse.de>
2304
2305         * omega.c (coalesce): Fix memory leak on early exit.
2306         * matrix-reorg.c (check_allocation_function): Likewise.
2307         * tree-vect-transform.c (vect_get_new_vect_var): free result
2308         of concat().
2309         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2310         pass pointer to edge vector
2311         (partition_hot_cold_basic_blocks): Fix memory leak.
2312         * collect2.c (prefix_from_string): Free temporary storage.
2313         * reload1.c (fixup_abnormal_edges): Free sbitmap.
2314
2315 2007-07-14  Kaz Kojima  <kkojima@gcc.gnu.org>
2316
2317         * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
2318         (DO_GLOBAL_DTORS_BODY): Likewise.
2319
2320 2007-07-14  Sandra Loosemore  <sandra@codesourcery.com>
2321             Nigel Stephens  <nigel@mips.com>
2322
2323         * config/mips/mips.c (mips_classify_symbol): Don't return
2324         SYMBOL_SMALL_DATA for constant pool addresses if
2325         TARGET_EMBEDDED_DATA is true.
2326
2327 2007-07-14  Uros Bizjak  <ubizjak@gmail.com>
2328
2329         * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
2330         except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
2331         __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
2332         __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
2333         __builtin_ia32_storehps, __builtin_ia32_storelps,
2334         __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
2335         __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
2336         __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
2337         __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
2338         __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
2339         __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
2340         __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
2341         __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
2342         using def_builtin_const.
2343
2344 2007-07-14  Eric Botcazou  <ebotcazou@adacore.com>
2345
2346         PR tree-optimization/32705
2347         * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
2348         (simplify_binary_expression): Use SSA_VAL consistently.
2349
2350 2007-07-13  David Edelsohn  <edelsohn@gnu.org>
2351
2352         * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
2353         (SPEFSCR_REGNO): Delete definition.
2354         * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
2355         COUNT_REGISTER_REGNUM -> CTR_REGNO.
2356         * config/rs6000/rs6000.h: Do not define *_REGNO.
2357         LINK_REGISTER_REGNUM -> LR_REGNO.
2358         COUNT_REGISTER_REGNUM -> CTR_REGNO.
2359         * config/rs6000/predicates.md: LINK_REGISTER_REGNUM ->  LR_REGNO.
2360         COUNT_REGISTER_REGNUM -> CTR_REGNO.
2361         * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
2362         R_VRSAVE, R_VSCR. Use them.
2363         * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
2364         R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR.  Use them.
2365         * config/rs6000/rs6000.md: Define REGNO constants.  Use them.
2366         * config/rs6000/aix.h: Define R_LR.  Use it.
2367         
2368 2007-07-13  Caroline Tice  <ctice@apple.com>
2369         
2370         * toplev.c (process_options): Turn flag_var_tracking_uninit off when
2371         flag_var_tracking is explicitly turned off (i.e. when variable
2372         tracking is not feasible); otherwise, turn flag_var_tracking on when
2373         flag_var_tracking_uninit is on.
2374         * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
2375         note definitions, to allow recording of initialization status in the
2376         notes.
2377         * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
2378         (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
2379         determine if two note locations are equal.
2380         (output_loc_list): Don't output list entries whose start & end labels
2381         are the same.
2382         (reg_loc_descriptor): Add parameter for initialization status; pass it
2383         to other loc descriptor functions.
2384         (one_reg_loc_descriptor): Add parameter for initialization status;
2385         check its value and add DW_OP_GNU_uninit to returned loc descr if
2386         appropriate.
2387         (multiple_reg_loc_descriptor): Add parameter for initialization
2388         status;
2389         pass init status argument to other loc descriptor functions; check
2390         value of intialization parameter and add DW_OP_GNU_uninit to returned
2391         loc descr if appropriate.
2392         (based_loc_descr): Add parameter for initialization status; add new
2393         variable for return value; check value of initialization parameter and
2394         add DW_OP_GNU_uninit to returned loc descr if appropriate.
2395         (concatn_mem_loc_descriptor): Add parameter for initialization status;
2396         pass init status argument to other loc descriptor functions; check
2397         value of intialization parameter and add DW_OP_GNU_uninit to returned
2398         loc descr if appropriate.
2399         (mem_loc_descriptor): Likewise.
2400         (concat_loc_descriptor): Likewise.
2401         (concatn_loc_descriptor): Likewise.
2402         (loc_descriptor): Add parameter for initialization status; pass it as
2403         argument to other loc descriptor function calls.
2404         (loc_descriptor_from_tree_1): Add appropriate initialization status
2405         to loc descriptor function calls.
2406         (add_location_or_const_value_attribute): Get initialization status
2407         from VAR_LOCATION note; add initialization status to loc descriptor
2408         function calls.
2409         * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
2410         * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
2411         status is uninitialized, add "[uninint]" to output.
2412         * common.opt (fvar-tracking-uninit): New option, similar to
2413         fvar-tracking, to turn on tracking of uninitialized variables; creates
2414         a new global flag, flag_var_tracking_uninit.
2415         * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
2416         (enum var_init_status): New type, for var initialization status field.
2417         * var-tracking.c (struct location_chain_def): Two new fields, init,
2418         for initialization status, and set_src for the assignment value expr.
2419         (unshare_variable): New parameter for initialization status;
2420         initialize new init and set_src fields.
2421         (var_reg_set): New parameters for initialization status and value;
2422         pass them to set_variable_part.
2423         (var_mem_set): Likewise.
2424         (get_init_value): New function.
2425         (var_reg_delete_and_set): New initialization status & value
2426         parameters; add call to get_init_value if status is unknown; pass new
2427         parameters to clobber_variable_part and var_reg_set.
2428         (var_mem_delete_and_set): Likewise.
2429         (var_reg_delete): Pass null set_src value to clobber_variable_part.
2430         (var_mem_delete): Likewise.
2431         (variable_union): Pass status to unshare_variable; initialize new init
2432         and set_src fields. If flag_var_tracking_uninit is not set, force
2433         status to initialized.
2434         (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
2435         used later to get the set_src value.
2436         (find_src_status): New function.
2437         (find_src_set_src): New function.
2438         (compute_bb_dataflow): Pass init status to calls to var_reg_set,
2439         var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
2440         MO_SET, get set_src value and pass it to var_reg_delete_and_set
2441         and var_mem_delete_and_set.
2442         (dump_variable): Print out "[uninit]" if appropriate.
2443         (set_variable_part): Add new initialization and set_src parameters;
2444         pass status to unshare_variable; set node->init and node- >set_src
2445         fields and modify slot in hash table appropriately; save the init and
2446         set_src values if appropriate and assign to the new node.
2447         (clobber_variable_part): New set_src parameter; if two nodes have
2448         same variable and same location but different set_src (assignment)
2449         values, clobber old node.
2450         (delete_variable_part): Pass init status to unshare_variable.
2451         (emit_note_insn_var_location): Add initialized var; assign var's init
2452         status to new 'initialized'; pass new init status field to calls to
2453         gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
2454         status to initialized.
2455         (emit_notes_in_bb): Pass initialization status to calls to
2456         var_reg_set, var_mem_set, var_reg_delete_and_set and
2457         var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
2458         var_reg_delete_and_set and var_mem_delete_and_set; call
2459         emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
2460         make up for change in add_stores.
2461         (vt_add_function_parameters): Add status to calls to
2462         set_variable_part.
2463         * config/darwin.c (darwin_override_options): Turn on uninitialized
2464         tracking automatically, if var_tracking is on and the system is
2465         10.5 or higher.
2466         
2467 2007-07-13  Sa Liu  <saliu@de.ibm.com>
2468
2469         * config.gcc: Add options for arch and tune on SPU.
2470         * config/spu/predicates.md: Add constant operands 0 and 1.
2471         * config/spu/spu-builtins.def: Add builtins for double precision 
2472         floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, 
2473         si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
2474         spu_testsv.
2475         * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with 
2476         a CELLEDP target.
2477         * config/spu/spu-protos.h: Add new function prototypes. 
2478         * config/spu/spu.c (spu_override_options): Check options -march and
2479         -mtune.
2480         (spu_comp_icode): Add comparison code for DFmode and vector mode.
2481         (spu_emit_branch_or_set): Use the new code for DFmode and vector 
2482         mode comparison.
2483         (spu_const_from_int): New.  Create a vector constant from 4 ints.
2484         (get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
2485         (spu_emit_vector_compare): New.  Emit vector compare.
2486         (spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
2487         * config/spu/spu.h: Add options -march and -mtune.  Define processor
2488         types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
2489         CANONICALIZE_COMPARISON.
2490         * config/spu/spu.md: Add new insns for double precision compare
2491         and double precision vector compare.  Add vcond and smax/smin patterns
2492         to enable DFmode vector conditional expression.
2493         * config/spu/spu.opt: Add options -march and -mtune.
2494         * config/spu/spu_internals.h: Add builtins for CELLEDP target:
2495         si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
2496         both CELL and CELLEDP targets: spu_testsv.
2497         * config/spu/spu_intrinsics.h: Add flag mnemonics for test special 
2498         values.
2499
2500 2007-07-13  Richard Guenther  <rguenther@suse.de>
2501
2502         PR tree-optimization/32721
2503         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
2504         TREE_THIS_VOLATILE on the folded reference.
2505         * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
2506         if the array reference has TREE_THIS_VOLATILE set.
2507
2508 2007-07-13  H.J. Lu  <hongjiu.lu@intel.com>
2509
2510         PR other/32188
2511         * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
2512
2513 2007-07-13  Andreas Schwab  <schwab@suse.de>
2514
2515         * gengtype-lex.l: Allow declarations to be indented.
2516
2517 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
2518
2519         * ginclude/tgmath.h: New.
2520         * config.gcc: Use GCC's tgmath.h on non-glibc systems.
2521         * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
2522         * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
2523         * configure: Regenerate.
2524
2525 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2526
2527         * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
2528         correct index when setting register save state for xd
2529         registers.
2530
2531 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2532
2533         * config/sh/sh.c (mark_use): Remove.
2534
2535 2007-07-12  Paul Brook  <paul@codesourcery.com>
2536
2537         * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
2538         reg does not overlap return value.
2539
2540 2007-07-12  Daniel Berlin  <dberlin@dberlin.org>
2541
2542         * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
2543         (set_expression_vuses): Ditto.
2544         (init_pre): Initialize expression_vuses.
2545
2546 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
2547
2548         * config/i386/sse.md (storentdf, storentsf): New.
2549
2550 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
2551
2552         * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
2553         FUNCTION_DECL.
2554         * tree.c (build_decl_stat): Move code from here...
2555         (make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
2556         (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
2557         about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
2558         * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
2559         * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
2560         FUNCTION_BOUNDARY.
2561
2562 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
2563             Devang Patel  <dpatel@apple.com>
2564
2565         PR tree-optimization/25413
2566         * targhooks.c (default_builtin_vector_alignment_reachable): New.
2567         * targhooks.h (default_builtin_vector_alignment_reachable): New.
2568         * tree.h (contains_packed_reference): New.
2569         * expr.c (contains_packed_reference): New.
2570         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
2571         (vect_enhance_data_refs_alignment): Call
2572         vector_alignment_reachable_p.
2573         * target.h (vector_alignment_reachable): New builtin.
2574         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
2575         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
2576         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
2577
2578 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
2579
2580         * target.h (builtin_vectorization_cost): Add new target builtin.
2581         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
2582         * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
2583         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
2584         * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
2585         uninitialized variables.
2586         * tree-vect-transform.c (cost_for_stmt): New function.
2587         (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
2588         using cost 1 for all scalar stmts. Be less conservative when
2589         estimating the number of prologue/epulogue iterations. Call
2590         targetm.vectorize.builtin_vectorization_cost. Return
2591         min_profitable_iters-1.
2592         (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
2593         initialization cost instead of TARG_VEC_STMT_COST. Use
2594         TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
2595         epilogue code. Fix epilogue cost computation.
2596         * config/spu/spu.c (spu_builtin_vectorization_cost): New.
2597         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
2598         * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
2599         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
2600         (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
2601         (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
2602
2603 2007-07-12  Richard Guenther  <rguenther@suse.de>
2604
2605         * gimplify.c (gimplify_conversion): Make sure that the result
2606         from maybe_fold_offset_to_reference is trivially convertible
2607         to the desired type before doing the simplification.
2608         (gimplify_expr): Likewise.
2609         * fold-const.c (fold_binary): Use the correct types for
2610         building the simplified expression.
2611
2612 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
2613
2614         PR rtl-optimization/32729
2615         * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
2616         that fallthru to exit.
2617
2618 2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2619
2620         * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
2621         (symDTPOFF2reg): Likewise.
2622
2623 2007-07-11  Daniel Berlin  <dberlin@dberlin.org>
2624
2625         PR tree-optimization/32663
2626         
2627         * tree.h (VALUE_HANDLE_VUSES): Remove.
2628         (struct tree_value_handle): Remove vuses.
2629
2630         * tree-vn.c (create_value_handle_for_expr): Don't set
2631         VALUE_HANDLE_VUSES. 
2632
2633         * tree-ssa-pre.c (expression_vuses): New.
2634         (alloc_expression_id): Set up expression_vuses.
2635         (get_expression_vuses): New.
2636         (set_expression_vuses): Ditto.
2637         (clear_expression_ids): Modify for expression_vuses.
2638         (phi_translate_1): Ditto.
2639         (phi_translate_set): Ditto.
2640         (value_dies_in_block_x): Ditto
2641         (valid_in_sets): Ditto.
2642         (add_to_sets): Ditto.
2643         (find_existing_value_expr): Ditto.
2644         (create_value_handle_for_expr): Ditto.
2645         (make_values_for_stmt): Ditto.
2646         (vuse_equiv): Remove.
2647
2648 2007-07-11  Alexandre Oliva  <aoliva@redhat.com>
2649
2650         * Makefile.in (mostlyclean): Remove object files.
2651
2652 2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2653
2654         * toplev.c (no_new_pseudos): Deleted.
2655         * rtl.h (no_new_pseudos): Deleted.
2656         * tree-pass.h (pass_no_new_pseudos): Deleted. 
2657         * passes.c (pass_no_new_pseudos): Deleted.
2658         * final.c (rest_of_clean_state): Removed no_new_pseudos.
2659         (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
2660         * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
2661         reload_completed.
2662         * cfgcleanup.c (try_crossjump_to_edge): Ditto. 
2663         * rtlhooks.c (gen_lowpart_general): Ditto.
2664         * optabs.c (prepare_operand): Ditto.
2665         * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
2666         no_new_pseudos.
2667         * modulo-sched.c (rest_of_handle_sms): Ditto.
2668         * see.c (rest_of_handle_see): Ditto.
2669         * ifcvt.c (if_convert): Ditto.
2670         (gate_handle_if_after_combine): Replaced no_new_pseudos with 
2671         reload_completed.
2672         * init-regs.c (gate_initialize_regs): Deleted set of
2673         no_new_pseudos.
2674         * lower-subreg.c (decompose_multiword_subregs): Ditto. 
2675         * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
2676         * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
2677         
2678 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
2679
2680         PR target/32661
2681         * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
2682         (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
2683         (*vec_extractv2di_1_rex64): New insn pattern.
2684
2685 2007-07-11  David Daney  <ddaney@avtrex.com>
2686
2687         * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
2688         return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
2689         for SIGNAL_UNWIND_RETURN_COLUMN.
2690         * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
2691         (DWARF_FRAME_REGNUM): Rewrite.
2692         (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
2693
2694 2007-07-11  Nick Clifton  <nickc@redhat.com>
2695
2696         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
2697         delta and use gen_int_mode in place of GET_INT instead.
2698
2699 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
2700
2701         * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
2702         and letter field.
2703
2704 2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>
2705
2706         * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
2707         (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
2708         types or not.
2709         * params.h (VERIFY_CANONICAL_TYPES): Remove.
2710         (USE_CANONICAL_TYPES): New.
2711         * doc/invoke.texi (verify-canonical-types): Remove.
2712         (use-canonical-types): Add.
2713
2714 2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
2715
2716         * config/spu/spu.c (spu_optimization_options): Remove setting of
2717         parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
2718         (spu_override_options): Move it here.
2719
2720 2007-07-11  Richard Sandiford  <richard@codesourcery.com>
2721
2722         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
2723         * config/mips/mips.c (mips_cpu_info_table): Mention
2724         MIPS_ISA_LEVEL_SPEC in the comment.
2725
2726 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2727
2728         PR tree-optimization/32713
2729         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
2730
2731 2007-07-11  Paolo Carlini  <pcarlini@suse.de>
2732
2733         PR middle-end/30482
2734         * c-opts.c (c_common_post_options): Do not change flag_complex_method
2735         conditional to flag_isoc99.
2736         (c_common_init_options): Do it here, unconditionally.
2737
2738 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2739
2740         PR tree-optimization/32589
2741         * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
2742         * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
2743         * tree-ssa-propagate.c (valid_gimple_expression_p): New
2744         predicate, extracted from...
2745         (set_rhs): ...here.  Call it for the expression on entry.
2746         * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
2747         * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
2748         (simplify_binary_expression): Use valid_gimple_expression_p
2749         to validate the simplification.
2750         * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
2751
2752 2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
2753
2754         * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
2755         DWARF2_DEBUG on 32 bit target too.
2756         (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 
2757
2758 2007-07-11  Nick Clifton  <nickc@redhat.com>
2759
2760         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
2761         version for 64-bit hosts.
2762
2763 2007-07-10  David Daney  <ddaney@avtrex.com>
2764
2765         * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
2766         predicate.
2767         (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
2768         call.
2769         * config/mips/mips.c (mips_expand_synci_loop): New function.
2770         * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
2771         (UNSPEC_RDHWR): Same.
2772         (UNSPEC_SYNCI): Same.
2773         (UNSPEC_SYNC): Same.
2774         (clear_cache): New expand.
2775         (sync): New insn.
2776         (synci): Same.
2777         (rdhwr): Same.
2778         (clear_hazard): Same.
2779         * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
2780         function.
2781         * testsuite/gcc.target/mips/clear-cache-1.c: New test.
2782         * testsuite/gcc.target/mips/clear-cache-2.c: New test.
2783
2784 2007-07-10  Ian Lance Taylor  <iant@google.com>
2785
2786         * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
2787         no_new_pseudos.
2788
2789 2007-07-10  David Daney  <ddaney@avtrex.com>
2790
2791         * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
2792         * builtins.c (expand_builtin___clear_cache): New function.
2793         (expand_builtin): Call expand_builtin___clear_cache for
2794         BUILT_IN_CLEAR_CACHE case.
2795         * doc/extend.texi (__builtin___clear_cache): Document new builtin.
2796         * doc/md.texi (clear_cache): Document new instruction pattern.
2797         * testsuite/gcc.dg/builtins-64.c: New test.
2798
2799 2007-07-11  Hans-Peter Nilsson  <hp@axis.com>
2800
2801         * config/cris/cris.md ("movsi"): Fix typo in last change.
2802
2803 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
2804
2805         PR 32617
2806         * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
2807         FUNCTION_DECLs.
2808         (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
2809         * varasm.c (assemble_start_function): Honor DECL_ALIGN
2810         for FUNCTION_DECLs.  Don't use align_functions_log if
2811         DECL_USER_ALIGN.
2812         * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
2813         even for FUNCTION_DECLs.
2814         * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
2815         FUNCTION_DECLs.
2816         * tree.h (DECL_ALIGN): Update for new location of 'align'.
2817         (DECL_FUNCTION_CODE): Update for new location and name of
2818         'function_code'.
2819         (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
2820         (struct tree_decl_common): Move 'align' and 'off_align' out
2821         of union, ensure they're still on a 32-bit boundary.  Remove
2822         other fields in union 'u1'.
2823         (struct tree_function_decl): Add field 'function_code' replacing
2824         'u1.f' in tree_decl_common.
2825         * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
2826         * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
2827         (Variable Attributes): Cross-reference 'aligned' attribute
2828         to Function Attributes.
2829         * flags.h (force_align_functions_log): Delete.
2830         * toplev.c (force_align_functions_log): Delete.
2831
2832 2007-07-10  Uros Bizjak  <ubizjak@gmail.com>
2833
2834         PR target/32708
2835         * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
2836         (*vec_concatv2di_rex): New insn pattern.
2837
2838 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2839
2840         PR target/32538
2841         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
2842
2843 2007-07-10  Ian Lance Taylor  <iant@google.com>
2844
2845         Replace no_new_pseudos in backends.
2846         * rtl.h (can_create_pseudo_p): Define.
2847         * config/darwin.c (machopic_indirect_data_reference): Use
2848         can_create_pseudo_p () instead of no_new_pseudos.
2849         (machopic_indirect_data_reference): Likewise.
2850         (machopic_legitimize_pic_address): Likewise.
2851         * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
2852         (alpha_emit_set_const_1): Likewise.
2853         (alpha_emit_set_const): Likewise.
2854         (alpha_emit_conditional_move): Likewise.
2855         (alpha_split_conditional_move): Likewise.
2856         * config/alpha/alpha.md (various splitters): Likewise.
2857         (movti): Likewise.
2858         * config/arm/arm.c (legitimize_pic_address): Likewise.
2859         (arm_load_pic_register): Likewise.
2860         * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
2861         (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
2862         * config/bfin/bfin.c (legitimize_pic_address): Likewise.
2863         * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
2864         * config/cris/cris.md (movsi): Likewise.
2865         * config/frv/frv.md (symGOT2reg_hilo): Likewise.
2866         (symGOTOFF2reg_hilo): Likewise.
2867         (symGPREL2reg, symGPREL2reg_hilo): Likewise.
2868         * config/h8300/h8300.md (insv, extzv): Likewise.
2869         * config/i386/i386.c (ix86_expand_move): Likewise.
2870         (ix86_expand_vector_move): Likewise.
2871         (ix86_prepare_fp_compare_args): Likewise.
2872         (ix86_expand_carry_flag_compare): Likewise.
2873         * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
2874         (tls_dynamic_gnu2_combine_32): Likewise.
2875         (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
2876         * config/ia64/ia64.c (ia64_expand_move): Likewise.
2877         (ia64_expand_movxf_movrf): Likewise.
2878         * config/m32c/m32c.c (m32c_prepare_move): Likewise.
2879         (m32c_split_move): Likewise.
2880         (m32c_expand_insv): Likewise.
2881         * config/m68k/m68k.md (movsi): Likewise.
2882         * config/mips/mips.c (mips_force_temporary): Likewise.
2883         (mips_split_symbol): Likewise.
2884         (mips_move_integer): Likewise.
2885         (mips_legitimize_const_move): Likewise.
2886         * config/mn10300/mn10300.md (movsi): Likewise.
2887         * config/pa/pa.c (emit_move_sequence): Likewise.
2888         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2889         (rs6000_got_register): Likewise.
2890         (create_TOC_reference): Likewise.
2891         (rs6000_machopic_legitimize_pic_address): Likewise.
2892         * config/rs6000/rs6000.md (add<mode>3): Likewise.
2893         (various splitters): Likewise.
2894         (iorsi3, xorsi3, iordi3, xordi3): Likewise.
2895         (movsi_got): Likewise.
2896         * config/s390/s390.c (emit_symbolic_move): Likewise.
2897         * config/s390/s390.md (movhi, movqi): Likewise.
2898         (load_multiple, store_multiple): Likewise.
2899         * config/score/score.c (score_force_temporary): Likewise.
2900         * config/sh/sh.c (prepare_move_operands): Likewise.
2901         (prepare_cbranch_operands): Likewise.
2902         (emit_fpu_switch): Likewise.
2903         (fpscr_set_from_mem): Likewise.
2904         * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
2905         (adddi3, subsi3): Likewise.
2906         (various splitters): Likewise.
2907         (divsi_inv_fp_combine): Likewise.
2908         (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
2909         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
2910         (sne): Likewise.
2911         * config/sh/predicates.md (xor_operand): Likewise.
2912         * config/sparc/sparc.c (legitimize_tls_address): Likewise.
2913         * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
2914         (movdi_pic_label_ref): Likewise.
2915         * config/spu/spu.c (spu_split_immediate): Likewise.
2916         * config/alpha/alpha.md (various splitters): Remove test
2917         !no_new_pseudos || reload_completed.
2918         * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
2919         no_new_pseudos.
2920         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2921         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
2922         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2923         * config/score/score.c (th_output_mi_thunk): Likewise.
2924         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2925         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2926
2927 2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2928
2929         PR rtl-optimization/32664
2930         * mode-switching.c (create_pre_exit): Skip barrier insns.
2931
2932 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2933
2934         * tree-scalar-evolution.c (scev_const_prop): Add arguments to
2935         force_gimple_operand_bsi.
2936         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
2937         rewrite_use_compare): Ditto.
2938         * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
2939         Ditto.
2940         * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
2941         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2942         * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
2943         * tree-profile.c (prepare_instrumented_value,
2944         tree_gen_interval_profiler, tree_gen_pow2_profiler,
2945         tree_gen_one_value_profiler, tree_gen_ic_profiler,
2946         tree_gen_ic_func_profiler, tree_gen_average_profiler,
2947         tree_gen_ior_profiler): Ditto.
2948         * tree-ssa-reassoc.c (negate_value): Ditto.
2949         * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
2950         Use force_gimple_operand_bsi.
2951         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2952         * tree-if-conv.c (add_to_dst_predicate_list,
2953         find_phi_replacement_condition): Ditto.
2954         * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
2955         Call mark_symbols_for_renaming for new statements.
2956         * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
2957
2958 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2959
2960         * cfghooks.c (remove_edge): New function.
2961         (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
2962         loop exit rescans.
2963         * cfghooks.h (remove_edge): Declare.
2964         * cfg.c (remove_edge): Renamed to remove_edge_raw.
2965         * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
2966
2967 2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>
2968
2969         * optabs.h: Added declaration for signbit_optab.  
2970         * optabs.c: (init_optabs): Added initialization for signbit_optab.
2971         * genoptinit.c (optabs): Added entry for signbit insns.  
2972         * builtins.c (expand_builtin_signbit): Added code to use a signbit
2973         insn, if available.  
2974         * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
2975         * config/s390/s390.md (signbit<mode>2): New expander.  
2976
2977 2007-07-09  Richard Guenther  <rguenther@suse.de>
2978
2979         PR middle-end/32698
2980         * fold-const.c (fold_plusminus_mult_expr): Move constant
2981         arguments second to allow decomposing.
2982
2983 2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>
2984
2985         Revert:
2986         2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
2987         PR debug/23551
2988         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2989         Disregard DECL_FROM_INLINE.
2990
2991 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2992
2993         PR target/27855
2994         * doc/invoke.texi: Add ftree-reassoc flag.
2995         * common.opt (ftree-reassoc): New flag.
2996         * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
2997         (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
2998
2999 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
3000
3001         PR tree-optimization/32681
3002         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
3003         saved in second_edge->aux when first_bb is a loop header.
3004
3005 2007-07-09  Jan HUbicka  <jh@suse.cz>
3006
3007         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
3008
3009 2007-07-09  Richard Guenther  <rguenther@suse.de>
3010
3011         * c-decl.c (start_function): Do not promote return type.
3012
3013 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
3014
3015         * function.c (do_warn_unused_parameter): Do not warn if
3016         TREE_NO_WARNING is set.
3017
3018 2007-07-08  Andreas Schwab  <schwab@suse.de>
3019
3020         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
3021
3022 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
3023
3024         Revert this patch:
3025         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
3026
3027         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
3028         apply to assembly language, too.
3029         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
3030
3031 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
3032
3033         Revert (note the sccvn portions are *not* reverted)
3034         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
3035
3036         Fix PR tree-optimization/23488
3037
3038         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
3039         handles.
3040         * tree-flow-inline.h (get_value_handle): Ditto.
3041         * tree-ssa-pre.c (decl_vh_map): New.
3042         (decl_node_pool): New.
3043         (can_value_number_operation): Support DECL_P.
3044         (can_PRE_operation): Ditto.
3045         (create_expression_by_pieces): Ditto.
3046         (find_existing_value_expr): Modify to differnetiate between
3047         addressing and top level.
3048         (create_value_handle_for_expr): Handle DECL's.
3049         (poolify_tree): Ditto.
3050         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
3051         (make_values_for_stmt): Handle DECL's properly.
3052         (init_pre): Reorg to not init useless things during FRE.
3053         (fini_pre): Ditto.
3054         * tree-flow.h: Include pointer-set.h.
3055         (decl_vh_map): Declare.
3056         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
3057
3058 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
3059
3060         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
3061         the constraint description.
3062         * doc/md.texi: Update documentation of AVR constraints.
3063
3064 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
3065
3066         * auto-inc-dec.c, config/arm/arm.c,
3067         config/m32r/constraints.md, config/mips/mips.md,
3068         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
3069         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
3070         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
3071         typos.  Follow spelling conventions.
3072         * doc/invoke.texi, doc/rtl.texi: Fix typos.
3073
3074         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3075         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3076
3077         * tree-ssa-operands.c (realloc_vop, realloc_vdef,
3078         realloc_vuse): Remove.
3079         * tree-ssa-operands.h: Remove the prototype for realloc_vdef
3080         and realloc_vuse.
3081
3082 2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
3083
3084         Fix PR tree-optimization/23488
3085
3086         * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
3087         (try_to_simplify): Ditto.
3088         (visit_use): Ditto.
3089         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
3090         handles.
3091         * tree-flow-inline.h (get_value_handle): Ditto.
3092         * tree-ssa-pre.c (decl_vh_map): New.
3093         (decl_node_pool): New.
3094         (can_value_number_operation): Support DECL_P.
3095         (can_PRE_operation): Ditto.
3096         (create_expression_by_pieces): Ditto.
3097         (find_existing_value_expr): Modify to differnetiate between
3098         addressing and top level.
3099         (create_value_handle_for_expr): Handle DECL's.
3100         (poolify_tree): Ditto.
3101         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
3102         (make_values_for_stmt): Handle DECL's properly.
3103         (init_pre): Reorg to not init useless things during FRE.
3104         (fini_pre): Ditto.
3105         * tree-flow.h: Include pointer-set.h.
3106         (decl_vh_map): Declare.
3107         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
3108                 
3109 2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
3110
3111         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
3112         apply to assembly language, too.
3113         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
3114
3115 2007-07-06  Ian Lance Taylor  <iant@google.com>
3116             Zack Weinberg  <zackw@panix.com>
3117
3118         PR middle-end/32441
3119         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
3120
3121 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
3122
3123         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
3124         (prefetch): Likewise if "pref" would be used.
3125
3126 2007-07-06  Josh Conner  <jconner@apple.com>
3127
3128         PR middle-end/32602
3129         PR middle-end/32603
3130         * calls.c (store_one_arg): Handle arguments which are partially
3131         on the stack when detecting argument overlap.
3132
3133 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
3134
3135         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
3136         chosen during find_reloads.
3137
3138 2007-07-06  Richard Guenther  <rguenther@suse.de>
3139
3140         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
3141         TYPE_ARG_TYPES for verification of argument types.  Use
3142         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
3143         parameters as variable arguments.
3144
3145 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
3146
3147         * libgcc2.h (word_type): Type definition removed.
3148         (cmp_return_type, shift_count_type): Type definitions added.
3149         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
3150         replaced with shift_count_type.
3151         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
3152         cmp_return_type.
3153         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
3154         changed from word_type to Wtype.
3155         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
3156         replaced with shift_count_type.
3157         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
3158         cmp_return_type.
3159         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
3160         and libgcc_shift_count attribute added.
3161         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
3162         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
3163         (TARGET_INITIALIZER): New target hooks added.
3164         * targhooks.c (default_libgcc_cmp_return_mode,
3165         default_libgcc_shift_count_mode): Default implementations for the new
3166         target hooks added.
3167         * targhooks.h (default_libgcc_cmp_return_mode,
3168         default_libgcc_shift_count_mode): Function prototypes added.
3169         * target.h (struct gcc_target): Fields for the new target hooks added.
3170         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
3171         as library call.
3172         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
3173         library call.
3174
3175         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
3176         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
3177
3178         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
3179         s390_libgcc_shift_count_mode): Functions added.
3180         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
3181         Target hooks defined.
3182
3183 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
3184
3185         * config/mips/mips.c (compute_frame_size): Restore the original
3186         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
3187         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
3188         Document why the difference is needed.
3189
3190 2007-07-06  Richard Guenther  <rguenther@suse.de>
3191
3192         * c-common.c (boolean_increment): Use correctly typed
3193         constant.
3194
3195 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
3196
3197         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
3198         the topmost argument register is not also included in the save mask.
3199         (mips16e_collect_argument_save_p): Take a pointer to the argument
3200         register, rather than a pointer to the number of arguments.
3201         (mips16e_collect_argument_saves): Only include argument saves
3202         that aren't in the register mask.
3203
3204 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
3205
3206         PR rtl-optimization/32450
3207         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
3208         to ensure that instructions are not moved into the prologue when
3209         profiling is on.  Remove unused prologue_end variable.
3210         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
3211         as a scheduling barrier.
3212
3213 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
3214
3215         PR debug/23551
3216         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3217         Disregard DECL_FROM_INLINE.
3218
3219 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
3220
3221         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
3222         IORing with a constant.
3223
3224 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
3225
3226         PR rtl-optimization/32475
3227         * df-scan.c (df_def_record_1): Add a use of the stack pointer
3228         for every definition of the stack pointer.
3229
3230 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
3231
3232         * arm.c (vfp3_const_double_index): Copy signed results of
3233         REAL_VALUE_TO_INT into unsigned vars.
3234
3235 2007-07-05  Richard Guenther  <rguenther@suse.de>
3236
3237         PR middle-end/32639
3238         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
3239         FUNCTION_TYPE.
3240         * tree-ssa.c (useless_type_conversion_p): Check canonical
3241         types early.
3242
3243 2007-07-05 Anatoly Sokolov <aesok@post.ru>
3244
3245         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
3246         zero_extendhisi2): Change to define_insn_and_split. 
3247         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
3248
3249 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
3250
3251         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
3252         pass_match_asm_constraints): New.
3253         * passes.c (init_optimization_passes): Add new pass.
3254         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
3255         * function.h (struct function): Add has_asm_statement bit.
3256         (current_function_has_asm_statement): New.
3257         * tree-pass.h (pass_match_asm_constraints): New.
3258
3259 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
3260
3261         * config/mips/mips.c (mips_file_start): Avoid declaration
3262         after code.
3263
3264 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
3265
3266         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
3267
3268 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
3269
3270         * rtl.def (NOTE): Change print format string to print
3271         operand 5 as a note insn name.
3272
3273 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
3274             David Ung  <davidu@mips.com>
3275
3276         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
3277         * doc/invoke.texi: (MIPS Options): Document them.
3278
3279 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
3280             David Ung  <davidu@mips.com>
3281
3282         Add support for SmartMIPS ASE.
3283
3284         * optabs.c (expand_binop_directly): New, broken out from...
3285         (expand_binop): Here.  Make it try rotating in the other
3286         direction even when the second operand isn't constant.
3287         * config/mips/mips.md (*lwxs): New.
3288         * config/mips/mips.opt (msmartmips): New.
3289         * config/mips/mips.c (mips_lwxs_address_p): New.
3290         (mips_rtx_costs): Make it recognize scaled indexed addressing.
3291         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3292         __mips_smartmips when compiling for TARGET_SMARTMIPS.
3293         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
3294         (ISA_HAS_LWXS): New.
3295         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
3296         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
3297         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
3298         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
3299         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
3300         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
3301         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
3302
3303 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
3304
3305         * tree-vectorizer.c (new_loop_vec_info): Initialize
3306         LOOP_VINFO_COST_MODEL_MIN_ITERS.
3307         * tree-vectorizer.h (_loop_vec_info): Added new filed
3308         min_profitable_iters.
3309         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
3310         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
3311         * tree-vect-analyze.c (vect_analyze_operations): Set
3312         LOOP_VINFO_COST_MODEL_MIN_ITERS.
3313         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
3314         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
3315         Fix calculation of peel_iters_prologue. Move consideration of epilogue
3316         and prologue cost to after they are computed.
3317         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
3318         TARG_VEC_STMT_COST.
3319         (vect_model_simple_cost): Takes additional argument dt. Consider cost
3320         of creating vectors from scalars according to dt.
3321         (vect_model_store_cost): Likewise.
3322         (vectorizable_call): Use dt array instead of scalar dt. Call
3323         vect_model_simple_cost with additional argument dt.
3324         (vectorizable_assignment): Likewise.
3325         (vectorizable_operation): Likewise.
3326         (vectorizable_type_demotion): Likewise.
3327         (vectorizable_type_promotion): Likewise.
3328         (vectorizable_store): Use dt array instead of scalar dt. Call
3329         vect_model_store_cost with additional argument dt.
3330         (vect_do_peeling_for_loop_bound): Don't call
3331         vect_estimate_min_profitable_iters. Instead, lookup
3332         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
3333         "may not be profitable".
3334
3335 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
3336
3337         PR testsuite/32014
3338         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
3339         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
3340         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
3341         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
3342
3343 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
3344
3345         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
3346         addressing modes cheaper.
3347
3348 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
3349
3350         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
3351         (dw_ranges_struct): Rename block_num to num.  Adjust.
3352         (dw_ranges_by_label_struct): New.
3353         (ranges_by_label, ranges_by_label_allocated,
3354         ranges_by_label_in_use): New variables.
3355         (add_ranges_num): Factored most of the code out of...
3356         (add_ranges): ... this one.  Rewrite in terms of the former.
3357         (add_ranges_by_labels): New.
3358         (output_ranges): Output by-label ranges.
3359         (dwarf2out_finish): Output range for multiple-section
3360         compile_unit.  Output standard DW_AT_low_pc in addition to
3361         unexpected DW_AT_entry_pc.
3362
3363 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
3364
3365         PR tree-optimization/32604
3366         PR tree-optimization/32606
3367
3368         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
3369         (compute_antic_safe): Removed.
3370         (ANTIC_SAFE_LOADS): Ditto.
3371         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
3372         (execute_pre): Don't call compute_antic_safe.
3373         (vuse_equiv): New function.
3374         (make_values_for_stmt): Use it
3375         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
3376         not always true.
3377
3378 2007-07-04 Anatoly Sokolov <aesok@post.ru>
3379
3380         PR target/31331
3381         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
3382         rather than a decl. 
3383         (avr_attribute_table): Make "naked" attribute apply to function types
3384         rather than to decls.
3385         (avr_handle_fntype_attribute): New function.
3386
3387 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
3388
3389         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
3390         after \.
3391
3392 2007-07-04  David Ung  <davidu@mips.com>
3393             Joseph Myers  <joseph@codesourcery.com>
3394
3395         * config/mips/mips.md (type): Add logical, signext and move.
3396         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
3397         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
3398         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
3399         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
3400         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
3401         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
3402         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
3403         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
3404         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
3405         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
3406         movv2sf_hardfloat_64bit): Use the new types.
3407         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
3408         *movdf_softfloat, *movdf_mips16): Use "multi".
3409         (extendqihi2): Replace with a define_expand.
3410         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
3411         Based on extend<SHORT:mode><GPR:mode>2 patterns.
3412         * config/mips/74k.md (r74k_int_logical): New reservation and
3413         bypasses.
3414         (r74k_int_arith): Remove "slt".
3415         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
3416         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
3417         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
3418         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
3419         reservations for "arith".
3420
3421 2007-07-04  Richard Guenther  <rguenther@suse.de>
3422
3423         * tree-ssa.c (useless_type_conversion_p): Add handling for
3424         scalar float and vector types.  Only call the types_compatible_p
3425         langhook for aggregate types as last resort.  Follow the
3426         rules.
3427
3428 2007-07-04  Richard Guenther  <rguenther@suse.de>
3429
3430         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
3431         the same as NOP_EXPR.
3432
3433 2007-07-04  Nick Clifton  <nickc@redhat.com>
3434
3435         * target.h (struct gcc_target): Add target_help field.
3436         * target-def.h (TARGET_HELP): New.
3437         (TARGET_INITIALIZER): Use TARGET_HELP.
3438         * opts.c (command_handle_option): Invoke target_help function, if
3439         defined, when the user has specified --target-help on the command
3440         line.
3441         * doc/invoke.texi: Mention that --target-help might print
3442         additional information.
3443         * doc/tm.texi: Document TARGET_HELP hook.
3444
3445         * arm.c (TARGET_HELP): Override default definition.
3446         (arm_target_help): New - display a wrapped list of cores and
3447         architectures supported.
3448
3449 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3450
3451         * config/gcc/v850/v850.c (expand_prologue): Make sure
3452         GEN_INT() argument is sign extended rather than zero extended.
3453         (expand_epilogue): Likewise.
3454         (output_move_double): Delete.
3455         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
3456         * config/gcc/v850/v850.md (movdi): Delete.
3457         (*movdi_internal): Delete.
3458         (movdf): Delete.
3459         (*movdf_internal): Delete.
3460
3461 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
3462
3463         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
3464         unless compiling RTP PIC.
3465
3466 2007-07-04  Richard Guenther  <rguenther@suse.de>
3467
3468         PR tree-optimization/32482
3469         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
3470         original ssa name if we didn't find a shift expression.
3471         Fix shift constant for bit zero test.
3472
3473 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
3474
3475         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
3476
3477 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
3478
3479         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
3480         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
3481         * config/arm/vxworks.h (ASM_SPEC): Delete.
3482         (SUBTARGET_EXTRA_ASM_SPEC): Define.
3483
3484 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
3485
3486         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
3487         (DDR_REVERSED_P): New.
3488         * tree-data-ref.c (initialize_data_dependence_relation,
3489         build_classic_dist_vector): Set DDR_REVERSED_P.
3490
3491 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
3492
3493         PR middle-end/32457
3494         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
3495         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
3496         init_omega_for_ddr_1): Use non conservative number of iterations
3497         estimations.
3498         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
3499         (analyze_siv_subscript): Remove FIXME and reinitialization of 
3500         last_conflicts to chrec_dont_know.
3501         * testsuite/gfortran.dg/vect/pr32457.f90: New.
3502
3503 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
3504
3505         * tree.c (maybe_canonicalize_argtypes): Improve description.
3506
3507 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
3508
3509         * tree.c (maybe_canonicalize_argtypes): New.
3510         (build_function_type): Set canonical type.
3511         (build_method_type_directly): Ditto.
3512         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
3513         properly.
3514
3515 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3516
3517         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
3518         like PLUS_EXPR.
3519         (rewrite_use_nonlinear_expr): Likewise.
3520
3521 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
3522
3523         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
3524
3525 2007-07-04  Ben Elliston  <bje@au.ibm.com>
3526
3527         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
3528         of this file.
3529
3530         * c-objc-common.c (c_types_compatible_p): Fix indentation.
3531
3532         * doc/tm.texi (Run-time Target): Capitalise "CPU".
3533         (Exception Handling): Likewise.
3534
3535 2007-07-03  Jan Hubicka  <jh@suse.cz>
3536
3537         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
3538
3539 2007-07-03  Eric Christopher  <echristo@apple.com>
3540
3541         * doc/cppopts.texi: Add conflicting option note to -dM.
3542         * doc/invoke.texi: Add note about possible conflicts with
3543         -E for -dCHARS and note that -dM will not produce
3544         any results if there is no machine dependent reorg.
3545         
3546 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
3547
3548         * tree.h (DECL_ALIGN): Back out previous change.
3549
3550 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
3551
3552         * configure.ac: Test for .dtprelword support on MIPS.
3553         * configure, config.in: Regenerate.
3554         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
3555         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3556
3557 2007-07-03  Julian Brown  <julian@codesourcery.com>
3558
3559         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
3560         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
3561         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
3562         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
3563         capability.
3564         (all_fpus): Add FPUTYPE_VFP3.
3565         (fp_model_for_fpu): Add VFPv3 field.
3566         (arm_rtx_costs_1): Give cost to VFPv3 constants.
3567         (vfp3_const_double_index): New function. Return integer index of
3568         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
3569         isn't suitable.
3570         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
3571         and argument represents a valid RTX for a VFPv3 constant.
3572         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
3573         two instructions.
3574         (vfp_emit_fstmd): Similar, for fstmd.
3575         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
3576         constants, represented as integer indices.
3577         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
3578         VFP_REGNO_OK_FOR_DOUBLE macros.
3579         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
3580         (arm_file_start): Set float-abi attribute for VFPv3, and output
3581         correct ".fpu" assembler directive.
3582         (arm_dbx_register_numbering): Add FIXME.
3583         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
3584         (fputype): Add FPUTYPE_VFP3.
3585         (FIXED_REGISTERS): Add 32 registers for D16-D31.
3586         (CALL_USED_REGISTERS): Likewise.
3587         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
3588         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
3589         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
3590         (D7_VFP_REGNUM): New.
3591         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
3592         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
3593         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
3594         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
3595         (REG_ALLOC_ORDER): Adjust for VFPv3.
3596         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
3597         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
3598         VFP_LO_REGS, VFP_HI_REGS.
3599         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
3600         (IS_VFP_CLASS): Define macro.
3601         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
3602         IS_VFP_CLASS.
3603         (REGISTER_MOVE_COST): Likewise.
3604         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
3605         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
3606         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
3607         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
3608         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
3609         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
3610         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
3611         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
3612         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
3613         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
3614         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
3615         where appropriate for single-word registers.
3616         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
3617         As above. Fix type attributes.
3618         * config/arm/constraints.md (register_contraint "t"): Define.
3619         (register_constraint "w"): Change to D0-D15, or D0-D31 for
3620         VFPv3/NEON.
3621         (register_constraint "x"): Define.
3622         (constraint "Dv"): Define.
3623
3624 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
3625
3626         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
3627
3628 2007-07-03  Tom Tromey  <tromey@redhat.com>
3629
3630         * c-parser.c (objc_pq_context): Removed.
3631         (objc_need_raw_identifier): Likewise.
3632         (c_parser) <objc_pq_context>: New field.
3633         <objc_need_raw_identifier>: Likewise.
3634         (OBJC_NEED_RAW_IDENTIFIER): Removed.
3635         (c_lex_one_token): Update.
3636         (c_parser_objc_protocol_definition): Update.
3637         (c_parser_objc_method_definition): Update.
3638         (c_parser_objc_methodproto): Update.
3639         (c_parser_declspecs): Update.
3640
3641 2007-07-03  David Ung  <davidu@mips.com>
3642
3643         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
3644
3645 2007-07-03  David Ung  <davidu@mips.com>
3646             Richard Sandiford  <richard@codesourcery.com>
3647
3648         * doc/invoke.texi: Document -march=74kf3_2.
3649         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
3650         (TUNE_74K): Check for it.
3651         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
3652         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
3653         * config/mips/mips.md (cpu): Add 74kf3_2.
3654         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
3655         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
3656         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
3657         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
3658         74kf3_2 to the CPU list.
3659         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
3660         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
3661         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
3662         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
3663         (r74kf3_2_fxfer_from_c1): New insn reservations.
3664
3665 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
3666             David Ung  <davidu@mips.com>
3667
3668         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
3669         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
3670         and 74k[fx].  Document aliases for the new options.
3671         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
3672         (PROCESSOR_24KF2_1): ...this.
3673         (PROCESSOR_24KX): Rename to...
3674         (PROCESSOR_24KF1_1): ...this.
3675         (PROCESSOR_74KF): Rename to...
3676         (PROCESSOR_74KF2_1): ...this.
3677         (PROCESSOR_74KX): Rename to...
3678         (PROCESSOR_74KF1_1): ...this.
3679         (TUNE_74K): Update PROCESSOR_* names.
3680         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
3681         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
3682         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
3683         (mips_rtx_cost_data): Update processor names in comments.
3684         (mips_issue_rate): Update PROCESSOR_* names.
3685         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
3686         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
3687         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
3688         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
3689         Update cpu attribute names.
3690         (r24k_fpu_iss): Rename this reservation to...
3691         (r24kf2_1_fpu_iss): ...this and update all uses.
3692         (r24kx_fpu_iss): Rename this reservation to...
3693         (r24kf1_1_fpu_iss): ...this and update all uses.
3694         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
3695         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
3696         Update cpu attribute names.
3697
3698 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3699
3700         * config/m32r/constraints.md: New file.
3701         * config/m32r/m32r.c: Include tm-constrs.h.
3702         (small_data_operand): Use satisfies_constraint_* instead of macro.
3703         (addr24_operand, gen_compare): Likewise.
3704         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
3705         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
3706         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
3707         EXTRA_CONSTRAINT): Likewise.
3708         * config/m32r/m32r.md: Include constraints.md.
3709         (*movsi_insn): Use satisfies_constraint_* instead of macro.
3710         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
3711         * config/m32r/predicates.md (conditional_move_operand): Likewise.
3712         (two_insn_const_operand, int8_operand, uint16_operand,
3713         reg_or_int16_operand, reg_or_uint16_operand,
3714         reg_or_cmp_int16_operand, cmp_int16_operand,
3715         seth_add3_operand): Likewise.
3716
3717 2007-07-03  Eric Christopher  <echristo@gmail.com>
3718
3719         * libgcc2.h: Conditionally declare __bswapsi2 and
3720         __bswapdi2.
3721         
3722 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3723
3724         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
3725         defined.
3726
3727 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3728
3729         PR target/28307
3730         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
3731         (__gthrw_pragma): Provide default definition.
3732         (__gthrw2): Use it.
3733         * gthr-posix.c (__gthrw_pragma): Define.
3734
3735 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
3736
3737         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
3738         before declaring inequality.
3739
3740 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3741
3742         * combine.c (recog_for_combine): Log the success or failure of
3743           matching new insn patterns against the machine description in
3744           detailed dumps.
3745
3746 2007-07-03  Revital Eres  <eres@il.ibm.com>
3747
3748         * ddg.c (print_sccs): New function.
3749         (check_sccs): New function.
3750         (create_ddg_all_sccs): Use it.
3751         * ddg.h (print_sccs): Declare.
3752         * modulo-sched.c (sms_order_nodes): Call print_sccs.
3753
3754 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
3755
3756         * targhooks.h (default_mode_for_suffix): New function declaration.
3757         * targhooks.c (default_mode_for_suffix): New default target hook.
3758         * target.h (struct c): New structure in the targetm struct.
3759         (mode_for_suffix): New target hook as part of struct c.
3760         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
3761         default_mode_for_suffix.
3762         (TARGET_C): New define.
3763         * c-lex.c: Include "target.h".
3764         (interpret_float): Use targetm.c.mode_for_suffix to determine
3765         the mode for a given non-standard suffix.
3766         Makefile.in (c-lex.o): Depend on $(TARGET_H).
3767
3768         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
3769         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
3770
3771         * doc/extend.texi (Floating Types): New node.  Document __float80 and
3772         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
3773
3774 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3775
3776         PR target/32506
3777         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
3778         predicate instead of target_operand.
3779         (divsi3_i1_media, divsi3_media_2): Likewise.
3780
3781 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3782
3783         * tree.h (alias_sets_might_conflict_p): Rename into
3784         alias_sets_must_conflict_p.
3785         * alias.c (alias_sets_might_conflict_p): Likewise.
3786         (alias_sets_conflict_p): Use it.
3787         (objects_must_conflict_p): Likewise.
3788         * c-common.c (strict_aliasing_warning): Adjust.
3789
3790 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3791
3792         * rtlhooks.c (gen_lowpart_if_possible): Check for
3793         invalid subreg before calling gen_lowpart_SUBREG.
3794
3795 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
3796
3797         * config/darwin9.h: Add copyright notice.
3798         (LINK_COMMAND_SPEC): Add comment.
3799         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
3800         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
3801         DARWIN_LIBSYSTEM_HAS_UNWIND.
3802
3803 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3804
3805         PR libgomp/32468
3806         * omp-low.c (check_combined_parallel): New function.
3807         (lower_omp_parallel): Call it via walk_stmts, set
3808         OMP_PARALLEL_COMBINED if appropriate.
3809         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
3810         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
3811         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
3812         don't consider it as combined parallel.
3813
3814 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
3815
3816         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3817         (gcc_tooldir): Likewise.
3818         * configure: Regenerate.
3819         * Makefile.in (libsubdir_to_prefix): New variable, based on the
3820         old configure.ac gcc_tooldir setting.
3821         (prefix_to_exec_prefix): New variable.
3822         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3823         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3824
3825 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
3826
3827         Fix PR tree-optimization/32583
3828         Fix PR tree-optimization/32584
3829         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
3830         (phi_translate_set): Use phi_translate directly now.
3831         (make_values_for_stmt): Don't value number RHS if we already know
3832         it is constant.
3833
3834 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
3835             Jim Wilson <wilson@specifix.com>
3836
3837         PR target/31684
3838         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
3839         copy_insn.
3840
3841 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
3842             Richard Sandiford  <richard@codesourcery.com>
3843             Nigel Stephens  <nigel@mips.com>
3844
3845         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
3846         (mips16e_output_save_restore): Declare.
3847         (mips16e_save_restore_pattern_p): Likewise.
3848         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
3849         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
3850         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
3851         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
3852         (BITSET_P): New global macro, extracted from...
3853         (mips_for_each_saved_reg): ...here.
3854         (mips16e_save_restore_info): New struct.
3855         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
3856         (mips16e_save_restore_regs): New variable.
3857         (mips_split_plus, mips16e_find_first_register): New functions.
3858         (mips16e_mask_registers): New function.
3859         (compute_frame_size): Expand the commentary before the function.
3860         Enforce the MIPS16e save and restore register range restrictions.
3861         Pad the general register save area at the low end.
3862         (mips16e_save_restore_reg, mips16e_build_save_restore)
3863         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
3864         (mips16e_output_save_restore, mips16e_collect_propagate_value)
3865         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
3866         New functions.
3867         (mips_expand_prologue, mips_expand_epilogue): Handle
3868         GENERATE_MIPS16E_SAVE_RESTORE.
3869         * config/mips/mips.md (*mips16e_save_restore): New pattern.
3870
3871 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
3872
3873         PR tree-optimization/31966
3874         PR tree-optimization/32533
3875         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
3876         "basic_block" description as its third argument.  Update function
3877         calls to get destination bb from "edge" argument.  Save "cond" into
3878         aux field of the edge.  Update prototype for changed arguments.
3879         (if_convertible_loop_p): Clear aux field of incoming edges if bb
3880         contains phi node.
3881         (find_phi_replacement_condition): Operate on incoming edges, not
3882         on predecessor blocks.  If there is a condition saved in the
3883         incoming edge aux field, AND it with incoming bb predicate.
3884         Return source bb of the first edge.
3885         (clean_predicate_lists): Clean aux field of outgoing node edges.
3886         (tree_if_conversion): Do not initialize cond variable. Move
3887         variable declaration into the loop.
3888         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
3889         initializations of new_stmt, arg0 and arg1 variables.
3890
3891 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3892
3893         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
3894         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
3895
3896 2007-07-02  Richard Guenther  <rguenther@suse.de>
3897
3898         * tree-ssa.c (useless_type_conversion_p): Document
3899         future intent as defining the middle-end type system.
3900         Re-structure to call langhook last, group by type class,
3901         mark questionable parts.
3902
3903 2007-07-02  Richard Guenther  <rguenther@suse.de>
3904
3905         * tree-flow.h (types_compatible_p): Declare.
3906         * tree-ssa.c (ty