1 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
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
9 2007-08-07 Ian Lance Taylor <iant@google.com>
11 * lower-subreg.c (resolve_clobber): If the clobber has a LIBCALL
12 note, just delete the insn.
14 2007-08-07 Andreas Schwab <schwab@suse.de>
17 * gengtype-lex.l: Ignore backslash/newline pair while scanning a
20 2007-08-07 Andreas Krebbel <krebbel1@de.ibm.com>
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.
27 2007-08-07 Rask Ingemann Lambertsen <rask@sygehus.dk>
29 * doc/sourcebuild.texi (Test Directives): Fix "compile" and
30 "assemble" descriptions which were swapped.
32 2007-08-06 Chao-ying Fu <fu@mips.com>
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.
43 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
44 Daniel Jacobowitz <dan@codesourcery.com>
47 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
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.
55 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
57 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
58 Add -fno-asynchronous-unwind-tables.
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.
66 2007-08-06 Steve Ellcey <sje@cup.hp.com>
68 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
69 (TARGET_C_MODE_FOR_SUFFIX): New.
71 2007-08-06 Steve Ellcey <sje@cup.hp.com>
73 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
75 2007-08-06 Steve Ellcey <sje@cup.hp.com>
77 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
79 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
81 * config/i386/i386.md: Check TARGET_ macros and optimize_size
82 before checking function returns in conditional expressions.
84 2007-08-06 Alfred Minarik <a.minarik@aon.at>
87 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
89 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
92 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
95 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
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
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
112 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
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.
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.
122 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
123 Revital Eres <eres@il.ibm.com>
125 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
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.
137 2007-08-04 Richard Sandiford <richard@codesourcery.com>
139 * config/arm/arm.md (movsi): Add braces.
141 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
147 2007-08-03 Zdenek Dvorak <ook@ucw.cz>
149 * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
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):
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.
168 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
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.
174 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
177 * ipa-reference.c (has_proper_scope_for_analysis): Return false when
178 the decl's type has TYPE_NEEDS_CONSTRUCTING set.
180 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
183 * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
184 correct type the negate expression.
186 2007-08-03 Jan Hubicka <jh@suse.cz>
188 * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
191 2007-08-03 David Edelsohn <edelsohn@gnu.org>
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
197 (rios1_costs, rios2_cost): Correct cache line size.
198 (rs6000_override_options): Set l2-cache-size parameter.
200 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
201 Diego Novillo <dnovillo@google.com>
204 * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
205 if the range includes 0.
207 2007-08-03 Ben Elliston <bje@au.ibm.com>
209 * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
210 mode to unspec expressions to silence a warning from the generator
213 2007-08-02 Steve Ellcey <sje@cup.hp.com>
215 * config/ia64/constraints.md ("U"): Make constraint vector only.
217 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
220 * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
221 always_inline attribute on the function decl.
223 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
226 * varasm.c (default_binds_local_p_1): Consult flag_whole_program
227 if we are compiling with -fPIC.
229 2007-08-02 Sandra Loosemore <sandra@codesourcery.com>
230 Nigel Stephens <nigel@mips.com>
232 * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
233 Define for MIPS32 and MIPS64.
235 2007-08-02 Nick Clifton <nickc@redhat.com>
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:
534 2007-08-02 Richard Sandiford <richard@codesourcery.com>
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.
541 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
543 * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
545 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
547 * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
548 argument to find_reloads_address.
550 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com>
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.
557 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
558 David Ung <davidu@mips.com>
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
564 * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
566 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
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
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.
590 * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
591 with three arguments.
593 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
595 * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
598 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
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):
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.
613 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
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
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.
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>
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
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.
668 2007-07-31 Dan Hipschman <dsh@google.com>
670 * gcc.c (end_going_arg): New function.
674 2007-07-31 H.J. Lu <hongjiu.lu@intel.com>
676 * ddg.c (add_cross_iteration_register_deps): Declare bb_info
677 only if ENABLE_CHECKING is defined.
679 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
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.
693 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
696 * pa.md (casesi32): Use match_scratch. Revise insn condition.
697 (casesi32p, casesi64p): Likewise.
698 (casesi): Adjust for above.
700 2007-07-31 Richard Sandiford <richard@codesourcery.com>
702 * mode-switching.c (create_pre_exit): Don't search past calls.
704 2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
706 * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
708 2007-07-31 Revital Eres <eres@il.ibm.com>
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
721 2007-07-31 Julian Brown <julian@codesourcery.com>
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.
727 2007-07-31 Razya Ladelsky <razya@il.ibm.com>
729 * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring
730 to an unallocated space.
732 2007-07-30 Jan Sjodin <jan.sjodin@amd.com>
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.
741 2007-07-30 Seongbae Park <seongbae.park@gmail.com>
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.
748 2007-07-29 Mark Mitchell <mark@codesourcery.com>
751 * config/m68k/lb1sf68.asm (FUNC): New macro.
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.
782 2007-07-30 Ollie Wild <aaw@google.com>
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.
796 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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):
830 * postreload.c (reload_combine_note_store, move2add_note_store):
832 * regmove.c (flags_set_1): Likewise.
833 * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
835 * reload1.c (mark_not_eliminable, forget_old_reloads_1):
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):
844 * var-tracking.c (count_stores, add_stores): Likewise.
846 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
879 2007-07-30 Julian Brown <julian@codesourcery.com>
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.
890 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
893 * tree-affine.h (aff_tree): The type of rest is sizetype for types
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.
900 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
902 * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
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.
911 2007-07-29 Sebastian Pop <sebpop@gmail.com>
913 * tree-data-ref.c (add_multivariate_self_dist): Parametric access
914 functions cannot be represented as classical distance vectors.
916 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
952 * rtlhooks.c (reg_num_sign_bit_copies_general,
953 reg_nonzero_bits_general, reg_truncated_to_mode_general):
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):
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.
978 2007-07-28 Kazu Hirata <kazu@codesourcery.com>
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.
989 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com>
990 Revital Eres <eres@il.ibm.com>
992 * modulo-sched.c (sms_schedule): Avoid loops which includes
993 auto-increment instructions.
995 2007-07-28 Richard Guenther <rguenther@suse.de>
998 * fold-const.c (fold_cond_expr_with_comparison): Convert
999 operand zero of MIN/MAX_EXPR to correct type.
1001 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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.
1021 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
1023 * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
1024 TV_FLOW_INSENSITIVE.
1026 * tree-ssa-alias.c (compute_call_clobbered): Push/pop
1028 (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
1029 (compute_flow_insensitive_aliasing): Ditto for
1030 TV_FLOW_INSENSITIVE.
1032 2007-07-27 Jan Hubicka <jh@suse.cz>
1034 * config/i386/i386.c (register_move_cost): Remove accidentally comitted
1037 * attribs.c: Include hashtab.h
1038 (attribute_hash): New.
1039 (substring): New structure.
1040 (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
1042 (init_attributes): Initialize attribute hash.
1043 (decl_attributes): Use attribute hash.
1044 * Makefile.in (attribs.c): Depend on hashtab.h.
1046 2007-07-27 Steve Ellcey <sje@cup.hp.com>
1048 * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
1050 2007-07-27 Richard Sandiford <richard@codesourcery.com>
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.
1056 2007-07-27 Douglas Gregor <doug.gregor@gmail.com>
1058 * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
1060 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com>
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.
1070 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz>
1072 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
1073 operands with compatible type.
1075 2007-07-27 Richard Sandiford <richard@codesourcery.com>
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
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.
1095 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
1097 * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
1099 (df_ref): Likewise. Put regno with other integer fields.
1101 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
1103 * df.h (df_mw_hardreg): Remove "loc" field.
1104 * df-scan.c (df_ref_record): Don't set it. Remove redundant
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.
1116 2007-07-26 H.J. Lu <hongjiu.lu@intel.com>
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.
1124 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz>
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.
1131 2007-07-26 Steve Ellcey <sje@cup.hp.com>
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.
1137 2007-07-26 Julian Brown <julian@codesourcery.com>
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.
1157 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
1159 * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
1160 (HAVE_AS_GNU_ATTRIBUTE): Undefine.
1162 2007-07-26 Mark Shinwell <shinwell@codesourcery.com>
1163 Julian Brown <julian@codesourcery.com>
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.
1172 (Is_float_mode): New.
1173 (Scalar_mul_8_16): New.
1175 (V_mode_nunits): New.
1176 (All instruction patterns): Annotate with neon_type attribute
1178 * config/arm/arm.md: Include cortex-a8.md.
1179 (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
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.
1185 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com>
1187 * fold-const.c (fold_read_from_constant_string): Use
1189 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1191 2007-07-26 Nick Clifton <nickc@redhat.com>
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.
1300 2007-07-26 Jan Hubicka <jh@suse.cz>
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.
1307 2007-07-25 Ian Lance Taylor <iant@google.com>
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.
1316 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1318 * cfghooks.c (split_block): Fix the information about loop latch.
1320 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1322 * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
1324 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1326 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1327 Scan the new edge for loop exit info.
1329 2007-07-25 Andreas Tobler <a.tobler@schweiz.org>
1331 * config/darwin.c: Include debug.h.
1333 2007-07-25 Steve Ellcey <sje@cup.hp.com>
1336 * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
1338 2007-07-25 Steve Ellcey <sje@cup.hp.com>
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.
1351 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
1376 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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.
1397 2007-07-25 Daniel Berlin <dberlin@dberlin.org>
1399 * config/darwin.c (darwin_override_options): Additional fix for
1400 debug info formats that don't support var tracking.
1402 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1404 * cselib.c (entry_and_rtx_equal_p): Constify.
1405 * gengtype.c (output_mangled_typename, write_types, write_local):
1407 * gengtype.h (const_type_p): New.
1408 * see.c (eq_descriptor_extension, hash_descriptor_extension):
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.
1415 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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):
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):
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):
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):
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.
1481 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
1542 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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):
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.
1611 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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):
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.
1638 2007-07-25 Richard Sandiford <richard@codesourcery.com>
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
1647 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1649 * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
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.
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.
1670 2007-07-25 Julian Brown <julian@codesourcery.com>
1671 Mark Shinwell <shinwell@codesourcery.com>
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
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
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
1713 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
1714 (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
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>
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
1739 (arm_legitimate_address_p): Don't support fancy addressing for NEON
1741 (thumb2_legitimate_address_p): Likewise.
1742 (neon_valid_immediate): Recognize and prepare constants suitable for
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
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
1769 (output_move_neon): Output a NEON load/store to/from a quadword
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
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
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
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
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
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
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__
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
1846 (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
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
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
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
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
1884 * doc/extend.texi (ARM Built-in Functions): Rename and remove
1886 (ARM NEON Intrinsics): New subsection.
1887 * doc/arm-neon-intrinsics.texi: New (autogenerated).
1889 2007-07-25 Danny Smith <dannysmith@users.sourceforge.net>
1891 * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
1894 2007-07-24 Jan Hubicka <jh@suse.cz>
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.
1905 2007-07-24 Daniel Berlin <dberlin@dberlin.org>
1907 * config/darwin.c (darwin_override_options): Don't force on
1908 flag_var_tracking_uninit when no debug info is requested.
1910 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1912 * cfgloop.c (init_loops_structure): New function.
1913 (flow_loops_find): Create root of the loop tree unconditionally.
1915 2007-07-24 Daniel Jacobowitz <dan@codesourcery.com>
1917 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
1919 2007-07-24 Jan Hubicka <jh@suse.cz>
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.
1930 2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
1932 * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
1933 with the mode of the original operand instead of
1936 2007-07-23 Jan Hubicka <jH@suse.cz>
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.
1945 2007-07-23 Sebastian Pop <sebpop@gmail.com>
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.
1955 2007-07-23 Daniel Berlin <dberlin@dberlin.org>
1957 * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
1960 2007-07-23 Peter Bergner <bergner@vnet.ibm.com>
1961 Jakub Jelinek <jakub@redhat.com>
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
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.
1979 2007-07-23 Richard Sandiford <richard@codesourcery.com>
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
1985 * config/mips/mips.opt (mbranch-cost=): New option.
1986 * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
1988 2007-07-23 Richard Sandiford <richard@codesourcery.com>
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.
1995 2007-07-23 Richard Sandiford <richard@codesourcery.com>
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.
2001 2007-07-21 Uros Bizjak <ubizjak@gmail.com>
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.
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.
2018 2007-07-22 Ben Elliston <bje@au.ibm.com>
2020 * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
2022 * struct-equiv.c (note_local_live): Likewise for `y_regno'.
2024 2007-07-20 Richard Guenther <rguenther@suse.de>
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.
2035 2007-07-20 Nigel Stephens <nigel@mips.com>
2036 Richard Sandiford <richard@codesourcery.com>
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
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.
2059 2007-07-20 Richard Sandiford <richard@codesourcery.com>
2061 * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
2064 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
2066 * function.c (thread_prologue_and_epilogue_insns): Fix exit
2067 predecessor fallthru flags.
2069 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
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.
2078 2007-07-18 H.J. Lu <hongjiu.lu@intel.com>
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.
2084 * config/dfp-bit.c: Empty for TFmode conversions.
2086 2007-07-18 Caroline Tice <ctice@apple.com>
2088 * var-tracking.c (find_src_status): Check for COND_EXEC insns
2089 and handle them correctly; check that src is not NULL before
2091 (find_src_set_src): Likewise.
2093 2007-07-18 Bob Wilson <bob.wilson@acm.org>
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.
2113 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
2123 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2127 * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
2128 optabs infrastructure. Provide generic implementation for
2130 (expand_builtin): Handle FINITE/ISFINITE.
2131 (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
2132 (fold_builtin_1): Likewise.
2134 * builtins.def (BUILT_IN_ISFINITE): New.
2136 * doc/extend.texi: Document isfinite.
2138 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
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.
2150 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2154 * builtin-attrs.def (ATTR_TYPEGENERIC,
2155 ATTR_CONST_NOTHROW_TYPEGENERIC): New.
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.
2162 * c-common.c (handle_type_generic_attribute): New.
2163 (c_common_attribute_table): Add "type generic".
2165 * c-typeck.c (convert_arguments): Handle "type generic" functions.
2167 2007-07-18 Daniel Berlin <dberlin@dberlin.org>
2169 * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
2170 * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
2173 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
2176 * config/cris/cris.c (cris_print_index): Don't use XEXP before
2177 checking that the operand is an expression.
2179 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
2180 Danny Smith <dannysmith@users.sourceforge.net>
2183 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
2184 file mapping object in local namespace if Windows version later
2187 2007-07-18 Richard Sandiford <richard@codesourcery.com>
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.
2200 2007-07-18 Richard Sandiford <richard@codesourcery.com>
2202 * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
2204 2007-07-18 Richard Sandiford <richard@codesourcery.com>
2206 * config/mips/mips.md (*extendqihi2): Convert the destination
2209 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2211 * config/pa/fptr.c: Update license header.
2212 * config/pa/milli64.S: Likewise.
2214 2007-07-17 Nick Clifton <nickc@redhat.com>
2216 * COPYING_v3: New file. Contains version 3 of the GNU General
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.
2223 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz>
2225 PR rtl-optimization/32773
2226 * cfglayout.c (force_one_exit_fallthru): New function.
2227 (cfg_layout_finalize): Use it.
2229 2007-07-16 Richard Guenther <rguenther@suse.de>
2230 Uros Bizjak <ubizjak@gmail.com>
2232 * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
2233 before forcing it to gimple operand.
2235 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
2236 David Ung <davidu@mips.com>
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
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
2246 * config/mips/24k.md (define_bypass): Define new
2247 r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
2249 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
2250 Nigel Stephens <nigel@mips.com>
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.
2259 2007-07-16 David Edelsohn <edelsohn@gnu.og>
2261 * config/rs6000/rs6000.c (struct processor_cost): Add
2262 cache_line_size, l1_cache_lines, and simultaneous_prefetches
2264 (*_cost): Add cache information.
2265 (rs6000_override_options): Set cache parameters.
2267 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2270 * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
2271 * doc/install.texi (mips-sgi-irix6): pthread support works now.
2273 2007-07-16 Paul Brook <paul@codesourcery.com>
2276 * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
2277 (cirrus_thumb2_movsi_insn): Ditto.
2279 2007-07-15 Geoffrey Keating <geoffk@apple.com>
2281 * config/rs6000/darwin-fallback.c (interpret_libc): Change
2284 2007-07-15 Andrew Haley <aph@redhat.com>
2286 * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
2287 before looking in the context.
2289 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
2303 2007-07-14 Dirk Mueller <dmueller@suse.de>
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
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.
2315 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org>
2317 * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
2318 (DO_GLOBAL_DTORS_BODY): Likewise.
2320 2007-07-14 Sandra Loosemore <sandra@codesourcery.com>
2321 Nigel Stephens <nigel@mips.com>
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.
2327 2007-07-14 Uros Bizjak <ubizjak@gmail.com>
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.
2344 2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
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.
2350 2007-07-13 David Edelsohn <edelsohn@gnu.org>
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.
2368 2007-07-13 Caroline Tice <ctice@apple.com>
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
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
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
2387 (multiple_reg_loc_descriptor): Add parameter for initialization
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
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
2463 * config/darwin.c (darwin_override_options): Turn on uninitialized
2464 tracking automatically, if var_tracking is on and the system is
2467 2007-07-13 Sa Liu <saliu@de.ibm.com>
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,
2475 * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
2477 * config/spu/spu-protos.h: Add new function prototypes.
2478 * config/spu/spu.c (spu_override_options): Check options -march and
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
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
2500 2007-07-13 Richard Guenther <rguenther@suse.de>
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.
2508 2007-07-13 H.J. Lu <hongjiu.lu@intel.com>
2511 * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
2513 2007-07-13 Andreas Schwab <schwab@suse.de>
2515 * gengtype-lex.l: Allow declarations to be indented.
2517 2007-07-12 Geoffrey Keating <geoffk@apple.com>
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.
2525 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
2527 * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
2528 correct index when setting register save state for xd
2531 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
2533 * config/sh/sh.c (mark_use): Remove.
2535 2007-07-12 Paul Brook <paul@codesourcery.com>
2537 * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
2538 reg does not overlap return value.
2540 2007-07-12 Daniel Berlin <dberlin@dberlin.org>
2542 * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
2543 (set_expression_vuses): Ditto.
2544 (init_pre): Initialize expression_vuses.
2546 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
2548 * config/i386/sse.md (storentdf, storentsf): New.
2550 2007-07-12 Geoffrey Keating <geoffk@apple.com>
2552 * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
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
2562 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
2563 Devang Patel <dpatel@apple.com>
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.
2578 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
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.
2603 2007-07-12 Richard Guenther <rguenther@suse.de>
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.
2612 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
2614 PR rtl-optimization/32729
2615 * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
2616 that fallthru to exit.
2618 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
2620 * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
2621 (symDTPOFF2reg): Likewise.
2623 2007-07-11 Daniel Berlin <dberlin@dberlin.org>
2625 PR tree-optimization/32663
2627 * tree.h (VALUE_HANDLE_VUSES): Remove.
2628 (struct tree_value_handle): Remove vuses.
2630 * tree-vn.c (create_value_handle_for_expr): Don't set
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.
2648 2007-07-11 Alexandre Oliva <aoliva@redhat.com>
2650 * Makefile.in (mostlyclean): Remove object files.
2652 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
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
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
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
2672 * init-regs.c (gate_initialize_regs): Deleted set of
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.
2678 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
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.
2685 2007-07-11 David Daney <ddaney@avtrex.com>
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.
2694 2007-07-11 Nick Clifton <nickc@redhat.com>
2696 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
2697 delta and use gen_int_mode in place of GET_INT instead.
2699 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
2701 * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
2704 2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
2706 * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
2707 (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
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.
2714 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
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.
2720 2007-07-11 Richard Sandiford <richard@codesourcery.com>
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.
2726 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
2728 PR tree-optimization/32713
2729 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
2731 2007-07-11 Paolo Carlini <pcarlini@suse.de>
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.
2738 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
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.
2752 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
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.
2758 2007-07-11 Nick Clifton <nickc@redhat.com>
2760 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
2761 version for 64-bit hosts.
2763 2007-07-10 David Daney <ddaney@avtrex.com>
2765 * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
2767 (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
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.
2778 (clear_hazard): Same.
2779 * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
2781 * testsuite/gcc.target/mips/clear-cache-1.c: New test.
2782 * testsuite/gcc.target/mips/clear-cache-2.c: New test.
2784 2007-07-10 Ian Lance Taylor <iant@google.com>
2786 * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
2789 2007-07-10 David Daney <ddaney@avtrex.com>
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.
2799 2007-07-11 Hans-Peter Nilsson <hp@axis.com>
2801 * config/cris/cris.md ("movsi"): Fix typo in last change.
2803 2007-07-09 Geoffrey Keating <geoffk@apple.com>
2806 * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
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
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
2816 * tree.h (DECL_ALIGN): Update for new location of 'align'.
2817 (DECL_FUNCTION_CODE): Update for new location and name of
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.
2832 2007-07-10 Uros Bizjak <ubizjak@gmail.com>
2835 * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
2836 (*vec_concatv2di_rex): New insn pattern.
2838 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2841 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
2843 2007-07-10 Ian Lance Taylor <iant@google.com>
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.
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.
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
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.
2927 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
2929 PR rtl-optimization/32664
2930 * mode-switching.c (create_pre_exit): Skip barrier insns.
2932 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
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):
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.
2958 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
2960 * cfghooks.c (remove_edge): New function.
2961 (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
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.
2967 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
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
2974 * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
2975 * config/s390/s390.md (signbit<mode>2): New expander.
2977 2007-07-09 Richard Guenther <rguenther@suse.de>
2980 * fold-const.c (fold_plusminus_mult_expr): Move constant
2981 arguments second to allow decomposing.
2983 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
2986 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
2988 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2989 Disregard DECL_FROM_INLINE.
2991 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
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.
2999 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
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.
3005 2007-07-09 Jan HUbicka <jh@suse.cz>
3007 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
3009 2007-07-09 Richard Guenther <rguenther@suse.de>
3011 * c-decl.c (start_function): Do not promote return type.
3013 2007-07-08 Daniel Franke <franke.daniel@gmail.com>
3015 * function.c (do_warn_unused_parameter): Do not warn if
3016 TREE_NO_WARNING is set.
3018 2007-07-08 Andreas Schwab <schwab@suse.de>
3020 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
3022 2007-07-08 Sandra Loosemore <sandra@codesourcery.com>
3025 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
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.
3031 2007-07-07 Daniel Berlin <dberlin@dberlin.org>
3033 Revert (note the sccvn portions are *not* reverted)
3034 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
3036 Fix PR tree-optimization/23488
3038 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
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.
3054 * tree-flow.h: Include pointer-set.h.
3055 (decl_vh_map): Declare.
3056 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
3058 2007-07-07 Eric Weddington <eweddington@cso.atmel.com>
3060 * config/avr/constraints.md (define_memory_constraint "Q"): Fix
3061 the constraint description.
3062 * doc/md.texi: Update documentation of AVR constraints.
3064 2007-07-07 Kazu Hirata <kazu@codesourcery.com>
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.
3074 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3075 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3077 * tree-ssa-operands.c (realloc_vop, realloc_vdef,
3078 realloc_vuse): Remove.
3079 * tree-ssa-operands.h: Remove the prototype for realloc_vdef
3082 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
3084 Fix PR tree-optimization/23488
3086 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
3087 (try_to_simplify): Ditto.
3089 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
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.
3105 * tree-flow.h: Include pointer-set.h.
3106 (decl_vh_map): Declare.
3107 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
3109 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
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.
3115 2007-07-06 Ian Lance Taylor <iant@google.com>
3116 Zack Weinberg <zackw@panix.com>
3119 * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
3121 2007-07-06 Richard Sandiford <richard@codesourcery.com>
3123 * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
3124 (prefetch): Likewise if "pref" would be used.
3126 2007-07-06 Josh Conner <jconner@apple.com>
3130 * calls.c (store_one_arg): Handle arguments which are partially
3131 on the stack when detecting argument overlap.
3133 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
3135 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
3136 chosen during find_reloads.
3138 2007-07-06 Richard Guenther <rguenther@suse.de>
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.
3145 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
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
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
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
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
3172 (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
3175 * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
3176 TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
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.
3183 2007-07-06 Richard Sandiford <richard@codesourcery.com>
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.
3190 2007-07-06 Richard Guenther <rguenther@suse.de>
3192 * c-common.c (boolean_increment): Use correctly typed
3195 2007-07-06 Richard Sandiford <richard@codesourcery.com>
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.
3204 2007-07-06 Uros Bizjak <ubizjak@gmail.com>
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.
3213 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
3216 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3217 Disregard DECL_FROM_INLINE.
3219 2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
3221 * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
3222 IORing with a constant.
3224 2007-07-05 Seongbae Park <seongbae.park@gmail.com>
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.
3230 2007-07-05 Richard Earnshaw <rearnsha@arm.com>
3232 * arm.c (vfp3_const_double_index): Copy signed results of
3233 REAL_VALUE_TO_INT into unsigned vars.
3235 2007-07-05 Richard Guenther <rguenther@suse.de>
3238 * alias.c (get_alias_set): Tread METHOD_TYPE the same as
3240 * tree-ssa.c (useless_type_conversion_p): Check canonical
3243 2007-07-05 Anatoly Sokolov <aesok@post.ru>
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.
3249 2007-07-05 Paolo Bonzini <bonzini@gnu.org>
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.
3259 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
3261 * config/mips/mips.c (mips_file_start): Avoid declaration
3264 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
3266 * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
3268 2007-07-05 Uros Bizjak <ubizjak@gmail.com>
3270 * rtl.def (NOTE): Change print format string to print
3271 operand 5 as a note insn name.
3273 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
3274 David Ung <davidu@mips.com>
3276 * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
3277 * doc/invoke.texi: (MIPS Options): Document them.
3279 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
3280 David Ung <davidu@mips.com>
3282 Add support for SmartMIPS ASE.
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.
3303 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
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
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".
3335 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
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.
3343 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
3345 * config/i386/i386.c (ix86_address_cost): Do not consider more complex
3346 addressing modes cheaper.
3348 2007-07-05 Alexandre Oliva <aoliva@redhat.com>
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.
3363 2007-07-04 Daniel Berlin <dberlin@dberlin.org>
3365 PR tree-optimization/32604
3366 PR tree-optimization/32606
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
3378 2007-07-04 Anatoly Sokolov <aesok@post.ru>
3381 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
3383 (avr_attribute_table): Make "naked" attribute apply to function types
3384 rather than to decls.
3385 (avr_handle_fntype_attribute): New function.
3387 2007-07-04 Joseph Myers <joseph@codesourcery.com>
3389 * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
3392 2007-07-04 David Ung <davidu@mips.com>
3393 Joseph Myers <joseph@codesourcery.com>
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
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".
3421 2007-07-04 Richard Guenther <rguenther@suse.de>
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
3428 2007-07-04 Richard Guenther <rguenther@suse.de>
3430 * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
3431 the same as NOP_EXPR.
3433 2007-07-04 Nick Clifton <nickc@redhat.com>
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
3441 * doc/invoke.texi: Mention that --target-help might print
3442 additional information.
3443 * doc/tm.texi: Document TARGET_HELP hook.
3445 * arm.c (TARGET_HELP): Override default definition.
3446 (arm_target_help): New - display a wrapped list of cores and
3447 architectures supported.
3449 2007-07-04 Rask Ingemann Lambertsen <rask@sygehus.dk>
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.
3459 (*movdf_internal): Delete.
3461 2007-07-04 Richard Sandiford <richard@codesourcery.com>
3463 * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
3464 unless compiling RTP PIC.
3466 2007-07-04 Richard Guenther <rguenther@suse.de>
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.
3473 2007-07-04 Richard Sandiford <richard@codesourcery.com>
3475 * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
3477 2007-07-04 Richard Sandiford <richard@codesourcery.com>
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.
3484 2007-07-04 Sebastian Pop <sebpop@gmail.com>
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.
3491 2007-07-04 Sebastian Pop <sebpop@gmail.com>
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
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.
3503 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
3505 * tree.c (maybe_canonicalize_argtypes): Improve description.
3507 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
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
3515 2007-07-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
3517 * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
3519 (rewrite_use_nonlinear_expr): Likewise.
3521 2007-07-03 Seongbae Park <seongbae.park@gmail.com>
3523 * rtl.def (UNSPEC, USE, CLOBBER): More comments.
3525 2007-07-04 Ben Elliston <bje@au.ibm.com>
3527 * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
3530 * c-objc-common.c (c_types_compatible_p): Fix indentation.
3532 * doc/tm.texi (Run-time Target): Capitalise "CPU".
3533 (Exception Handling): Likewise.
3535 2007-07-03 Jan Hubicka <jh@suse.cz>
3537 * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
3539 2007-07-03 Eric Christopher <echristo@apple.com>
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.
3546 2007-07-03 Geoffrey Keating <geoffk@apple.com>
3548 * tree.h (DECL_ALIGN): Back out previous change.
3550 2007-07-03 Joseph Myers <joseph@codesourcery.com>
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.
3557 2007-07-03 Julian Brown <julian@codesourcery.com>
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
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
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
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
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
3621 (register_constraint "x"): Define.
3622 (constraint "Dv"): Define.
3624 2007-07-03 Geoffrey Keating <geoffk@apple.com>
3626 * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
3628 2007-07-03 Tom Tromey <tromey@redhat.com>
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.
3641 2007-07-03 David Ung <davidu@mips.com>
3643 * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
3645 2007-07-03 David Ung <davidu@mips.com>
3646 Richard Sandiford <richard@codesourcery.com>
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.
3665 2007-07-03 Richard Sandiford <richard@codesourcery.com>
3666 David Ung <davidu@mips.com>
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.
3698 2007-07-01 Kaz Kojima <kkojima@gcc.gnu.org>
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.
3717 2007-07-03 Eric Christopher <echristo@gmail.com>
3719 * libgcc2.h: Conditionally declare __bswapsi2 and
3722 2007-07-03 H.J. Lu <hongjiu.lu@intel.com>
3724 * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
3727 2007-07-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3730 * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
3731 (__gthrw_pragma): Provide default definition.
3733 * gthr-posix.c (__gthrw_pragma): Define.
3735 2007-07-03 Daniel Berlin <dberlin@dberlin.org>
3737 * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
3738 before declaring inequality.
3740 2007-07-03 Rask Ingemann Lambertsen <rask@sygehus.dk>
3742 * combine.c (recog_for_combine): Log the success or failure of
3743 matching new insn patterns against the machine description in
3746 2007-07-03 Revital Eres <eres@il.ibm.com>
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.
3754 2007-07-03 Uros Bizjak <ubizjak@gmail.com>
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).
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.
3771 * doc/extend.texi (Floating Types): New node. Document __float80 and
3772 __float128 types. Document 'w', 'W', 'q' and 'Q' suffixes.
3774 2007-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
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.
3781 2007-07-02 Eric Botcazou <ebotcazou@adacore.com>
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.
3790 2007-07-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
3792 * rtlhooks.c (gen_lowpart_if_possible): Check for
3793 invalid subreg before calling gen_lowpart_SUBREG.
3795 2007-07-02 Geoffrey Keating <geoffk@apple.com>
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.
3803 2007-07-02 Jakub Jelinek <jakub@redhat.com>
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.
3814 2007-07-02 Richard Sandiford <richard@codesourcery.com>
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.
3825 2007-07-02 Daniel Berlin <dberlin@dberlin.org>
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
3834 2007-07-02 Steve Ellcey <sje@cup.hp.com>
3835 Jim Wilson <wilson@specifix.com>
3838 * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
3841 2007-07-02 Sandra Loosemore <sandra@codesourcery.com>
3842 Richard Sandiford <richard@codesourcery.com>
3843 Nigel Stephens <nigel@mips.com>
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):
3867 (mips_expand_prologue, mips_expand_epilogue): Handle
3868 GENERATE_MIPS16E_SAVE_RESTORE.
3869 * config/mips/mips.md (*mips16e_save_restore): New pattern.
3871 2007-07-02 Uros Bizjak <ubizjak@gmail.com>
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
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.
3891 2007-07-02 Jakub Jelinek <jakub@redhat.com>
3893 * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
3894 SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
3896 2007-07-02 Richard Guenther <rguenther@suse.de>
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.
3903 2007-07-02 Richard Guenther <rguenther@suse.de>
3905 * tree-flow.h (types_compatible_p): Declare.