1 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
2 Daniel Jacobowitz <dan@codesourcery.com>
5 * config.gcc (x86_64-*-freebsd*): Add i386/t-crtstuff to
7 (x86_64-*-netbsd*): Likewise.
8 (x86_64-*-linux*): Likewise.
9 (x86_64-*-kfreebsd*-gnu): Likewise.
10 (x86_64-*-knetbsd*-gnu): Likewise.
11 (i[34567]86-*-solaris2.1[0-9]*): Likewise.
13 * config/i386/t-linux64 (CRTSTUFF_T_CFLAGS): Removed.
15 * config/i386/t-crtstuff (CRTSTUFF_T_CFLAGS): Update comments.
16 Add -fno-asynchronous-unwind-tables.
18 * config/t-freebsd (CRTSTUFF_T_CFLAGS_S): Add $(CRTSTUFF_T_CFLAGS).
19 * config/t-libc-ok (CRTSTUFF_T_CFLAGS_S): Likewise.
20 * config/t-lynx (CRTSTUFF_T_CFLAGS_S): Likewise.
21 * config/t-netbsd (CRTSTUFF_T_CFLAGS_S): Likewise.
22 * config/t-svr4 (CRTSTUFF_T_CFLAGS_S): Likewise.
24 2007-08-06 Steve Ellcey <sje@cup.hp.com>
26 * config/ia64/ia64.c (ia64_c_mode_for_suffix): New.
27 (TARGET_C_MODE_FOR_SUFFIX): New.
29 2007-08-06 Steve Ellcey <sje@cup.hp.com>
31 * config/ia64/div.md (m2subrf4_cond): Change 'g' to 'G'.
33 2007-08-06 Steve Ellcey <sje@cup.hp.com>
35 * config/ia64/ia64.h (MODES_TIEABLE_P): Fix typo.
37 2007-08-06 H.J. Lu <hongjiu.lu@intel.com>
39 * config/i386/i386.md: Check TARGET_ macros and optimize_size
40 before checking function returns in conditional expressions.
42 2007-08-06 Alfred Minarik <a.minarik@aon.at>
45 * doc/invoke.texi: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
47 2008-08-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
50 * tree.c (build2_stat): Instead of checking for INTEGER_TYPE, check
53 2008-08-05 Paolo Bonzini <bonzini@gnu.org>
55 * configure.ac: Remove --enable-checking=df from default settings.
56 * tree-pass.h (TODO_df_verify): New. Shift TODO_mark_first_instance.
57 * df-core.c (df_finish_pass) [ENABLE_CHECKING]: Schedule verification
58 if the parameter is true.
59 (df_analyze) [!ENABLE_DF_CHECKING]: Also do verification if the
60 DF_VERIFY_SCHEDULED flag is true.
61 * df.h (enum df_changeable_flags): Add DF_VERIFY_SCHEDULED.
62 (df_finish_pass): Adjust prototype.
63 * passes.c (execute_todo): Schedule verification if TODO_df_verify is
66 * see.c (pass_see): Add TODO_df_verify.
67 * loop-init.c (pass_rtl_move_loop_invariants): Add TODO_df_verify.
68 * global.c (rest_of_handle_global_alloc): Schedule verification
70 * local-alloc.c (rest_of_handle_local_alloc): Schedule verification
72 * function.c (pass_thread_prologue_and_epilogue): Add TODO_df_verify.
73 * gcse.c (rest_of_handle_gcse): Adjust call to df_finish_pass.
74 * loop-iv.c (iv_analysis_done): Schedule verification after the pass.
76 * config/sh/sh.c (sh_output_mi_thunk): Remove dead code.
77 * config/ia64/ia64.c (ia64_reorg): Adjust call to df_finish_pass.
78 * config/bfin/bfin.c (bfin_reorg): Adjust call to df_finish_pass.
80 2007-08-05 Vladimir Yanovsky <yanov@il.ibm.com>
81 Revital Eres <eres@il.ibm.com>
83 * doc/invoke.texi (-fmodulo-sched-allow-regmoves): Document new
85 * ddg.c (create_ddg_dependence): Rename to...
86 (create_ddg_dep_from_intra_loop_link): This. Do not check
87 for interloop edges. Do not create anti dependence edge when
88 a true dependence edge exists in the opposite direction and
89 -fmodulo-sched-allow-regmoves is set.
90 (build_intra_loop_deps): Call create_ddg_dep_from_intra_loop_link.
91 (add_cross_iteration_register_deps): Create anti dependence edge
92 when -fno-modulo-sched-allow-regmoves is set.
93 * common.opt (-fmodulo-sched-allow-regmoves): New flag.
95 2007-08-04 Richard Sandiford <richard@codesourcery.com>
97 * config/arm/arm.md (movsi): Add braces.
99 2007-08-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
102 * fold-const.c (fold_binary <case MINUS_EXPR>): Fix the type of operands
103 for the folding of "A - (A & B)" into "~B & A"; cast them to type.
105 2007-08-03 Zdenek Dvorak <ook@ucw.cz>
107 * tree-ssa-threadupdate.c (thread_through_all_blocks): Use loops' state
109 * cfgloopmanip.c (remove_path, create_preheaders,
110 force_single_succ_latches, fix_loop_structure): Ditto.
111 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
112 tree_duplicate_loop_to_header_edge): Ditto.
113 * cfgloopanal.c (mark_irreducible_loops): Ditto.
114 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize):
116 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures,
117 cleanup_tree_cfg): Ditto.
118 * tree-cfg.c (tree_merge_blocks): Ditto.
119 * cfgloop.c (rescan_loop_exit, record_loop_exits,
120 release_recorded_exits, get_loop_exit_edges, verify_loop_structure,
121 loop_preheader_edge, single_exit): Ditto.
122 (flow_loops_find): Do not clear loops->state.
123 * cfgloop.h (loops_state_satisfies_p, loops_state_set,
124 loops_state_clear): New functions.
126 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
129 * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
130 when adding to the base and convert ELT to sizetype instead of type.
132 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
135 * ipa-reference.c (has_proper_scope_for_analysis): Return false when
136 the decl's type has TYPE_NEEDS_CONSTRUCTING set.
138 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
141 * fold-convert.c (fold_negate_expr <NOP_EXPR>): Convert back to the
142 correct type the negate expression.
144 2007-08-03 Jan Hubicka <jh@suse.cz>
146 * i386.c (setup_incoming_varargs_64): Tolerate 64bit preferred
149 2007-08-03 David Edelsohn <edelsohn@gnu.org>
151 * config/rs6000/rs6000.c (struct processor_cost): Change
152 l1_cache_lines to l1_cache_size. Add l2_cache_size.
153 (*_cost): Convert l1 cache information to kilobytes. Add l2 cache
155 (rios1_costs, rios2_cost): Correct cache line size.
156 (rs6000_override_options): Set l2-cache-size parameter.
158 2007-08-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
159 Diego Novillo <dnovillo@google.com>
162 * tree-vrp.c (simplify_div_or_mod_using_ranges): Also simplify
163 if the range includes 0.
165 2007-08-03 Ben Elliston <bje@au.ibm.com>
167 * config/spu/spu.md (dftsv, dftsv_celledp): Attach the appropriate
168 mode to unspec expressions to silence a warning from the generator
171 2007-08-02 Steve Ellcey <sje@cup.hp.com>
173 * config/ia64/constraints.md ("U"): Make constraint vector only.
175 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
178 * c-objc-common.c (c_cannot_inline_tree_fn): Check for an
179 always_inline attribute on the function decl.
181 2007-08-02 Nathan Froyd <froydnj@codesourcery.com>
184 * varasm.c (default_binds_local_p_1): Consult flag_whole_program
185 if we are compiling with -fPIC.
187 2007-08-02 Sandra Loosemore <sandra@codesourcery.com>
188 Nigel Stephens <nigel@mips.com>
190 * longlong.h [__mips__] (count_leading_zeros, COUNT_LEADING_ZEROS_0):
191 Define for MIPS32 and MIPS64.
193 2007-08-02 Nick Clifton <nickc@redhat.com>
195 * config/host-hpux.c: Change copyright header to refer to version
196 3 of the GNU General Public License and to point readers at the
197 COPYING3 file and the FSF's license web page.
198 * config/alpha/predicates.md, config/alpha/vms-ld.c,
199 config/alpha/linux.h, config/alpha/alpha.opt,
200 config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h,
201 config/alpha/vms-unwind.h, config/alpha/ev4.md,
202 config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c,
203 config/alpha/alpha.h, config/alpha/sync.md,
204 config/alpha/openbsd.h, config/alpha/alpha.md,
205 config/alpha/alpha-modes.def, config/alpha/ev5.md,
206 config/alpha/alpha-protos.h, config/alpha/freebsd.h,
207 config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h,
208 config/alpha/constraints.md, config/alpha/osf.h,
209 config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h,
210 config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h,
211 config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def,
212 config/frv/frv-asm.h, config/frv/frv-protos.h,
213 config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h,
214 config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h,
215 config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt,
216 config/s390/2064.md, config/s390/2084.md, config/s390/s390.md,
217 config/s390/s390.opt, config/s390/s390-modes.def,
218 config/s390/fixdfdi.h, config/s390/constraints.md,
219 config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h,
220 config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md,
221 config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md,
222 config/m32c/m32c-pragma.c, config/m32c/m32c.h,
223 config/m32c/prologue.md, config/m32c/m32c.abi,
224 config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md,
225 config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt,
226 config/m32c/t-m32c, config/m32c/m32c-modes.def,
227 config/m32c/jump.md, config/m32c/shift.md,
228 config/m32c/m32c-protos.h, config/libgloss.h,
229 config/spu/spu-protos.h, config/spu/predicates.md,
230 config/spu/spu-builtins.h, config/spu/spu.c,
231 config/spu/spu-builtins.def, config/spu/spu-builtins.md,
232 config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md,
233 config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt,
234 config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h,
235 config/sparc/hypersparc.md, config/sparc/predicates.md,
236 config/sparc/linux.h, config/sparc/sp64-elf.h,
237 config/sparc/supersparc.md, config/sparc/cypress.md,
238 config/sparc/openbsd1-64.h, config/sparc/openbsd64.h,
239 config/sparc/niagara.md, config/sparc/sparc.md,
240 config/sparc/long-double-switch.opt, config/sparc/ultra3.md,
241 config/sparc/sparc.opt, config/sparc/sync.md,
242 config/sparc/sp-elf.h, config/sparc/sparc-protos.h,
243 config/sparc/ultra1_2.md, config/sparc/biarch64.h,
244 config/sparc/sparc.c, config/sparc/little-endian.opt,
245 config/sparc/sysv4-only.h, config/sparc/sparc.h,
246 config/sparc/linux64.h, config/sparc/freebsd.h,
247 config/sparc/sol2.h, config/sparc/rtemself.h,
248 config/sparc/netbsd-elf.h, config/sparc/vxworks.h,
249 config/sparc/sparc-modes.def, config/sparc/sparclet.md,
250 config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h,
251 config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md,
252 config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt,
253 config/m32r/linux.h, config/m32r/constraints.md,
254 config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt,
255 config/darwin-c.c, config/darwin.opt, config/i386/i386.h,
256 config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h,
257 config/i386/i386.md, config/i386/netware-crt0.c,
258 config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h,
259 config/i386/kaos-i386.h, config/i386/winnt-stubs.c,
260 config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h,
261 config/i386/sol2.h, config/i386/constraints.md,
262 config/i386/netware-libgcc.c, config/i386/sysv5.h,
263 config/i386/predicates.md, config/i386/geode.md,
264 config/i386/x86-64.h, config/i386/kfreebsd-gnu.h,
265 config/i386/freebsd64.h, config/i386/vxworksae.h,
266 config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h,
267 config/i386/rtemself.h, config/i386/netbsd-elf.h,
268 config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c,
269 config/i386/netware.h, config/i386/i386-modes.def,
270 config/i386/sysv4-cpp.h, config/i386/i386-interix.h,
271 config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h,
272 config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h,
273 config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h,
274 config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md,
275 config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt,
276 config/i386/xm-mingw32.h, config/i386/linux64.h,
277 config/i386/openbsdelf.h, config/i386/xm-cygwin.h,
278 config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h,
279 config/i386/winnt-cxx.c, config/i386/i386-interix3.h,
280 config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c,
281 config/i386/cygwin2.c, config/i386/i386-protos.h,
282 config/i386/sync.md, config/i386/openbsd.h,
283 config/i386/host-mingw32.c, config/i386/i386-aout.h,
284 config/i386/nto.h, config/i386/biarch64.h,
285 config/i386/i386-coff.h, config/i386/freebsd.h,
286 config/i386/driver-i386.c, config/i386/knetbsd-gnu.h,
287 config/i386/host-i386-darwin.c, config/i386/vxworks.h,
288 config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h,
289 config/darwin-protos.h, config/linux.opt, config/sol2.c,
290 config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h,
291 config/sh/linux.h, config/sh/elf.h, config/sh/superh.h,
292 config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h,
293 config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h,
294 config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md,
295 config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h,
296 config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c,
297 config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def,
298 config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md,
299 config/sh/superh64.h, config/sh/rtemself.h,
300 config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h,
301 config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h,
302 config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c,
303 config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def,
304 config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h,
305 config/avr/predicates.md, config/avr/constraints.md,
306 config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt,
307 config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h,
308 config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h,
309 config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt,
310 config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt,
311 config/c4x/c4x-modes.def, config/c4x/rtems.h,
312 config/c4x/predicates.md, config/c4x/c4x.h,
313 config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h,
314 config/xtensa/predicates.md, config/xtensa/xtensa.c,
315 config/xtensa/linux.h, config/xtensa/xtensa.h,
316 config/xtensa/elf.h, config/xtensa/xtensa.md,
317 config/xtensa/xtensa.opt, config/xtensa/constraints.md,
318 config/xtensa/xtensa-protos.h, config/dbx.h,
319 config/stormy16/predicates.md, config/stormy16/stormy16.md,
320 config/stormy16/stormy16.c, config/stormy16/stormy16.opt,
321 config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h,
322 config/host-solaris.c, config/fr30/fr30.h,
323 config/fr30/predicates.md, config/fr30/fr30-protos.h,
324 config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt,
325 config/vxworksae.h, config/sol2-c.c, config/lynx.h,
326 config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md,
327 config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c,
328 config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h,
329 config/m68hc11/m68hc12.h, config/openbsd-oldgas.h,
330 config/host-linux.c, config/interix3.h, config/cris/cris.c,
331 config/cris/predicates.md, config/cris/linux.h,
332 config/cris/cris.h, config/cris/aout.h, config/cris/cris.md,
333 config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt,
334 config/cris/aout.opt, config/cris/cris-protos.h,
335 config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h,
336 config/iq2000/iq2000.h, config/iq2000/predicates.md,
337 config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md,
338 config/iq2000/iq2000.c, config/iq2000/iq2000.opt,
339 config/host-darwin.c, config/mt/mt.md, config/mt/mt.c,
340 config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h,
341 config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h,
342 config/chorus.h, config/mn10300/mn10300.c,
343 config/mn10300/mn10300.opt, config/mn10300/predicates.md,
344 config/mn10300/mn10300.h, config/mn10300/linux.h,
345 config/mn10300/constraints.md, config/mn10300/mn10300-protos.h,
346 config/mn10300/mn10300.md, config/ia64/predicates.md,
347 config/ia64/itanium1.md, config/ia64/unwind-ia64.h,
348 config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c,
349 config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md,
350 config/ia64/freebsd.h, config/ia64/ia64.md,
351 config/ia64/ia64-modes.def, config/ia64/constraints.md,
352 config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h,
353 config/gofast.h, config/rtems.h, config/sol2-10.h,
354 config/m68k/predicates.md, config/m68k/m68k.md,
355 config/m68k/linux.h, config/m68k/m68k-modes.def,
356 config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h,
357 config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt,
358 config/m68k/openbsd.h, config/m68k/m68k-aout.h,
359 config/m68k/m68k.opt, config/m68k/m68020-elf.h,
360 config/m68k/m68kelf.h, config/m68k/m68k-devices.def,
361 config/m68k/uclinux-oldabi.h, config/m68k/m68k.c,
362 config/m68k/constraints.md, config/m68k/rtemself.h,
363 config/m68k/netbsd-elf.h, config/m68k/m68k.h,
364 config/m68k/uclinux.h, config/rs6000/power4.md,
365 config/rs6000/host-darwin.c, config/rs6000/6xx.md,
366 config/rs6000/linux.h, config/rs6000/eabi.h,
367 config/rs6000/aix41.opt, config/rs6000/xcoff.h,
368 config/rs6000/secureplt.h, config/rs6000/linuxspe.h,
369 config/rs6000/eabialtivec.h, config/rs6000/8540.md,
370 config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h,
371 config/rs6000/windiss.h, config/rs6000/603.md,
372 config/rs6000/aix41.h, config/rs6000/cell.md,
373 config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h,
374 config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt,
375 config/rs6000/darwin.md, config/rs6000/darwin64.h,
376 config/rs6000/default64.h, config/rs6000/7xx.md,
377 config/rs6000/darwin.opt, config/rs6000/spe.md,
378 config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c,
379 config/rs6000/rios2.md, config/rs6000/linuxaltivec.h,
380 config/rs6000/7450.md, config/rs6000/linux64.h,
381 config/rs6000/constraints.md, config/rs6000/440.md,
382 config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c,
383 config/rs6000/rs6000.c, config/rs6000/aix52.h,
384 config/rs6000/rs6000.h, config/rs6000/power6.md,
385 config/rs6000/predicates.md, config/rs6000/altivec.md,
386 config/rs6000/aix64.opt, config/rs6000/rios1.md,
387 config/rs6000/rs6000-modes.def, config/rs6000/rs64.md,
388 config/rs6000/eabisim.h, config/rs6000/sysv4le.h,
389 config/rs6000/darwin7.h, config/rs6000/dfp.md,
390 config/rs6000/linux64.opt, config/rs6000/sync.md,
391 config/rs6000/vxworksae.h, config/rs6000/power5.md,
392 config/rs6000/lynx.h, config/rs6000/biarch64.h,
393 config/rs6000/rs6000.md, config/rs6000/sysv4.opt,
394 config/rs6000/eabispe.h, config/rs6000/e500.h,
395 config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h,
396 config/rs6000/netbsd.h, config/rs6000/e500-double.h,
397 config/rs6000/aix.h, config/rs6000/vxworks.h,
398 config/rs6000/40x.md, config/rs6000/aix51.h,
399 config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md,
400 config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def,
401 config/arc/arc.h, config/mcore/mcore-elf.h,
402 config/mcore/mcore-protos.h, config/mcore/predicates.md,
403 config/mcore/mcore.md, config/mcore/mcore.c,
404 config/mcore/mcore.opt, config/mcore/mcore.h,
405 config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h,
406 config/score/predicates.md, config/score/score-version.h,
407 config/score/score-protos.h, config/score/misc.md,
408 config/score/elf.h, config/score/score.c, config/score/mac.md,
409 config/score/score7.md, config/score/score.h,
410 config/score/score-conv.h, config/score/score-mdaux.c,
411 config/score/score.md, config/score/score.opt,
412 config/score/score-modes.def, config/score/score-mdaux.h,
413 config/score/mul-div.S, config/arm/uclinux-elf.h,
414 config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md,
415 config/arm/symbian.h, config/arm/linux-elf.h,
416 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
417 config/arm/elf.h, config/arm/aout.h, config/arm/arm.c,
418 config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h,
419 config/arm/strongarm-pe.h, config/arm/arm.h,
420 config/arm/cortex-a8-neon.md, config/arm/semiaof.h,
421 config/arm/cortex-a8.md, config/arm/uclinux-eabi.h,
422 config/arm/arm-modes.def, config/arm/linux-eabi.h,
423 config/arm/rtems-elf.h, config/arm/neon-schedgen.ml,
424 config/arm/arm-cores.def, config/arm/arm-protos.h,
425 config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h,
426 config/arm/wince-pe.h, config/arm/neon.md,
427 config/arm/constraints.md, config/arm/neon.ml,
428 config/arm/xscale-elf.h, config/arm/strongarm-coff.h,
429 config/arm/arm.opt, config/arm/arm926ejs.md,
430 config/arm/predicates.md, config/arm/iwmmxt.md,
431 config/arm/arm_neon.h, config/arm/unknown-elf.h,
432 config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt,
433 config/arm/neon-testgen.ml, config/arm/arm.md,
434 config/arm/xscale-coff.h, config/arm/pe.c,
435 config/arm/arm-generic.md, config/arm/pe.h,
436 config/arm/kaos-strongarm.h, config/arm/freebsd.h,
437 config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md,
438 config/arm/strongarm-elf.h, config/arm/cirrus.md,
439 config/arm/netbsd-elf.h, config/arm/vxworks.h,
440 config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c,
441 config/pa/predicates.md, config/pa/pa64-hpux.h,
442 config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt,
443 config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h,
444 config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h,
445 config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h,
446 config/pa/pa-hpux10.h, config/pa/pa-hpux11.h,
447 config/pa/pa-hpux1010.h, config/pa/pa-protos.h,
448 config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h,
449 config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h,
450 config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt,
451 config/pa/pa64-regs.h, config/pa/pa-modes.def,
452 config/pa/constraints.md, config/darwin9.h, config/mips/4100.md,
453 config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h,
454 config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h,
455 config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md,
456 config/mips/7000.md, config/mips/9000.md, config/mips/4600.md,
457 config/mips/linux64.h, config/mips/elforion.h,
458 config/mips/constraints.md, config/mips/generic.md,
459 config/mips/predicates.md, config/mips/4300.md,
460 config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md,
461 config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md,
462 config/mips/5k.md, config/mips/vr4120-div.S,
463 config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md,
464 config/mips/mips-protos.h, config/mips/6000.md,
465 config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h,
466 config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h,
467 config/mips/mips-modes.def, config/mips/vr.h,
468 config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h,
469 config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h,
470 config/vax/vax.h, config/vax/elf.h, config/vax/vax.md,
471 config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def,
472 config/vax/openbsd1.h, config/vax/netbsd.h,
473 config/vax/vax-protos.h, config/vax/netbsd-elf.h,
474 config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h,
475 config/h8300/rtems.h, config/h8300/predicates.md,
476 config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h,
477 config/h8300/h8300.md, config/h8300/h8300.opt,
478 config/h8300/coff.h, config/h8300/h8300-protos.h,
479 config/v850/v850.md, config/v850/predicates.md,
480 config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt,
481 config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c,
482 config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h,
483 config/mmix/mmix.h, config/mmix/predicates.md,
484 config/mmix/mmix-protos.h, config/mmix/mmix.md,
485 config/mmix/mmix.c, config/mmix/mmix.opt,
486 config/mmix/mmix-modes.def, config/bfin/bfin.opt,
487 config/bfin/rtems.h, config/bfin/bfin-modes.def,
488 config/bfin/predicates.md, config/bfin/bfin-protos.h,
489 config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md:
492 2007-08-02 Richard Sandiford <richard@codesourcery.com>
494 * emit-rtl.c (reset_used_decls): Rename to...
495 (set_used_decls): ...this. Set the used flag rather than clearing it.
496 (unshare_all_rtl_again): Update accordingly. Set flags on argument
497 DECL_RTLs rather than resetting them.
499 2007-08-02 Andreas Krebbel <krebbel1@de.ibm.com>
501 * config/s390/s390.md ("*xordi3_cconly"): Change xr to xg.
503 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
505 * reload.c (find_reloads_address_part): Pass correct MEMREFLOC
506 argument to find_reloads_address.
508 2007-08-01 Daniel Jacobowitz <dan@codesourcery.com>
510 PR tree-optimization/32919
511 * tree-ssa-sccvn.c (visit_phi): Do not visit abnormal PHIs.
512 * tree-ssa-coalesce.c (ssa_conflicts_dump): New.
513 (coalesce_ssa_name): Call it.
515 2007-08-01 Sandra Loosemore <sandra@codesourcery.com>
516 David Ung <davidu@mips.com>
518 * config/mips/mips16.S (__mips16_unordsf2, __mips16_floatunsisf): New.
519 (__mips16_unorddf2, __mips16_floatunsidf): New.
520 * config/mips/mips.c (mips_init_libfuncs): Add optab entries for
522 * config/mips/t-libgcc-mips16 (LIB1ASMFUNCS): Add new functions.
524 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
526 * tree-pretty-print.c (dump_generic_node): Dump OMP_SECTIONS_SWITCH.
527 Display new operands of OMP_SECTIONS and OMP_CONTINUE.
528 * tree.h (OMP_SECTIONS_CONTROL): New macro.
529 (OMP_DIRECTIVE_P): Add OMP_SECTIONS_SWITCH.
530 * omp-low.c (get_ws_args_for, determine_parallel_type,
531 expand_omp_for_generic, expand_omp_for_static_nochunk,
532 expand_omp_for_static_chunk, expand_omp_for, expand_omp_sections):
533 Work with more precise CFG.
534 (build_omp_regions_1): Handle OMP_SECTIONS_SWITCH.
535 (lower_omp_sections): Emit OMP_SECTIONS_SWITCH. Add arguments to
537 * tree-gimple.c (is_gimple_stmt): Handle OMP_SECTIONS_SWITCH.
538 * gimple-low.c (lower_stmt): Ditto.
539 * tree-inline.c (estimate_num_insns_1): Ditto.
540 * tree.def (OMP_SECTIONS, OMP_CONTINUE): Added new operands.
541 (OMP_SECTIONS_SWITCH): New.
542 * tree-cfgcleanup.c (cleanup_omp_return): New.
543 (cleanup_tree_cfg_bb): Call cleanup_omp_return.
544 * tree-cfg.c (make_edges): Create back edges for OMP_CONTINUE
545 and exit edge for OMP_FOR. Handle OMP_SECTIONS_SWITCH.
546 (tree_redirect_edge_and_branch): Handle omp constructs.
548 * fortran/trans-openmp.c (gfc_trans_omp_sections): Build OMP_SECTIONS
549 with three arguments.
551 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
553 * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
556 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
558 * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
559 the loop structures may need fixing.
560 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
562 (cleanup_tree_cfg_loop): Removed.
563 (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
564 * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
565 instead of running cleanup_tree_cfg_loop.
566 * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
567 * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
568 (tree_predictive_commoning): Declaration changed.
569 * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
571 2007-08-01 Zdenek Dvorak <ook@ucw.cz>
573 * doc/invoke.texi (l1-cache-size): Update documentation.
574 (l2-cache-size): Document.
575 * params.h (L2_CACHE_SIZE): New macro.
576 * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
577 that L1_CACHE_SIZE is in kB now.
578 (L2_CACHE_SIZE_BYTES): New macro.
579 (tree_ssa_prefetch_arrays): Show size in kB.
580 * config/i386/i386.h (struct processor_costs): Add l1_cache_size
581 and l2_cache_size fields.
582 * config/i386/driver-i386.c (describe_cache): Detect cache size
584 * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
585 pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
586 amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
587 generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
588 (override_options): Set l1-cache-size and l2-cache-size to default
589 values if not specified otherwise.
590 * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
591 (PARAM_L2_CACHE_SIZE): New.
593 2007-08-01 Nigel Stephens <nigel@mips.com>
594 David Ung <davidu@mips.com>
595 Thiemo Seufer <ths@mips.com>
596 Chris Dearman <chris@mips.com>
597 Richard Sandiford <richard@codesourcery.com>
599 * config.gcc (mips*-sde-elf*): New stanza.
600 (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
601 (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
602 (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
603 (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
604 (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
605 (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
607 * config/mips/sde.h: New file.
608 * config/mips/t-libgcc-mips16: Likewise.
609 * config/mips/t-sde: Likewise.
610 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
611 of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
612 _MIPS_FPSET and _MIPS_SZINT.
613 * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
614 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
615 insertion of a default -mips option. Use MIPS_32BIT_OPTION_SPEC.
616 * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
617 * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
618 * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
619 * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
620 _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
621 _MIPS_SZPTR and _MIPS_FPSET.
622 (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
623 architecture is specified.
624 (MIPS_32BIT_OPTION_SPEC): New macro.
626 2007-07-31 Dan Hipschman <dsh@google.com>
628 * gcc.c (end_going_arg): New function.
632 2007-07-31 H.J. Lu <hongjiu.lu@intel.com>
634 * ddg.c (add_cross_iteration_register_deps): Declare bb_info
635 only if ENABLE_CHECKING is defined.
637 2007-07-31 Kenneth Zadeck <zadeck@naturalbridge.com>
639 * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
640 df_ru_add_problem, df_ru_get_bb_info): Removed.
641 (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
642 * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
643 df_ru_free_bb_info, df_ru_alloc,
644 df_ru_bb_local_compute_process_def,
645 df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
646 df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
647 df_ru_transfer_function, df_ru_free, df_ru_start_dump,
648 df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
649 df_ru_add_problem): Removed.
651 2007-07-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
654 * pa.md (casesi32): Use match_scratch. Revise insn condition.
655 (casesi32p, casesi64p): Likewise.
656 (casesi): Adjust for above.
658 2007-07-31 Richard Sandiford <richard@codesourcery.com>
660 * mode-switching.c (create_pre_exit): Don't search past calls.
662 2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
664 * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
666 2007-07-31 Revital Eres <eres@il.ibm.com>
668 * ddg.c (add_deps_for_def): Rename to...
669 (add_cross_iteration_register_deps): This. Change implementation
670 to use only reaching def and def-use chains to construct the
671 inter loop dependencies.
672 (add_deps_for_use): Remove function.
673 (build_inter_loop_deps): Call add_cross_iteration_register_deps
674 function to build the inter loop dependencies.
675 * modulo-sched.c (sms_schedule): Build only
676 reaching def and def-use chains for the propose of the ddg
679 2007-07-31 Julian Brown <julian@codesourcery.com>
681 * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
682 New define_insns. Use correct RTL.
683 (vec_set<mode>): Write as expander.
685 2007-07-31 Razya Ladelsky <razya@il.ibm.com>
687 * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring
688 to an unallocated space.
690 2007-07-30 Jan Sjodin <jan.sjodin@amd.com>
693 (split_constant_offset): Enable split_constant_offset to extract
694 constants from other statements.
695 * tree-vect-transform.c
696 (vect_create_addr_base_for_vector_ref): Generate data_ref_base
697 to a temp var. Force base_offset to be simple.
699 2007-07-30 Seongbae Park <seongbae.park@gmail.com>
701 * df-scan.c (df_scan_verify): Remove artificial limit on
702 the number of blocks for verification.
703 * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
704 df_simulate_defs): Avoid unnecessary insn checking for defs.
706 2007-07-29 Mark Mitchell <mark@codesourcery.com>
709 * config/m68k/lb1sf68.asm (FUNC): New macro.
711 (__udivsi3): Likewise.
712 (__divsi3): Likewise.
713 (__umodsi3): Likewise.
714 (__modsi3): Likewise.
715 (__subdf3): Likewise.
716 (__adddf3): Likewise.
717 (__muldf3): Likewise.
718 (__divdf3): Likewise.
719 (__negdf2): Likewise.
720 (__cmpdf2): Likewise.
721 (__subsf3): Likewise.
722 (__addsf3): Likewise.
723 (__mulsf3): Likewise.
724 (__divsf3): Likewise.
725 (__negsf2): Likewise.
726 (__cmpsf2): Likewise.
740 2007-07-30 Ollie Wild <aaw@google.com>
742 * c-ppoutput.c (print_lines_directives_only): New function.
743 (scan_translation_unit_directives_only): New function.
744 (preprocess_file): Add call to scan_translation_unit_directives_only.
745 * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
746 (sanitize_cpp_opts): Add default flag_dump_macros setting for
747 -fdirectives-only. Add errors for -fdirectives-only conflict with
748 -Wunused-macros and -traditional.
749 (finish_options): Add builtin macro initialization for
750 -fdirectives-only + -fpreprocessed.
751 * c.opt (fdirectives-only): New.
752 * doc/cppopts.texi (fdirectives-only): New.
754 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
756 * alias.c (record_set, memory_modified_1): Constify.
757 * bt-load.c (note_btr_set): Likewise.
758 * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
759 * combine.c (set_nonzero_bits_and_sign_copies,
760 expand_field_assignment, record_dead_and_set_regs_1,
761 use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
762 likely_spilled_retval_1): Likewise.
763 * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
764 frv_io_handle_set): Likewise.
765 * config/mips/mips.c (mips_sim_record_set,
766 vr4130_true_reg_dependence_p_1): Likewise.
767 * config/mt/mt.c (insn_dependent_p_1): Likewise.
768 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
769 * config/sh/sh.c (flow_dependent_p_1): Likewise.
770 * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
771 * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
772 * ddg.c (mark_mem_store): Likewise.
773 * df-problems.c (df_urec_mark_reg_change): Likewise.
774 * function.c (update_epilogue_consts): Likewise.
775 * gcse.c (record_set_info, record_last_set_info,
776 mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
777 reg_clear_last_set): Likewise.
778 * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
780 * jump.c (reversed_comparison_code_parts): Likewise.
781 * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
782 reg_is_set): Likewise.
783 * loop-iv.c (mark_altered): Likewise.
784 * mode-switching.c (reg_becomes_live): Likewise.
785 * optabs.c (no_conflict_move_test): Likewise.
786 * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
788 * postreload.c (reload_combine_note_store, move2add_note_store):
790 * regmove.c (flags_set_1): Likewise.
791 * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
793 * reload1.c (mark_not_eliminable, forget_old_reloads_1):
795 * resource.c (update_live_status): Likewise.
796 * rtl.h (set_of, note_stores): Likewise.
797 * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
798 note_stores, parms_set): Likewise.
799 * sched-rgn.c (sets_likely_spilled_1): Likewise.
800 * stack-ptr-mod.c (notice_stack_pointer_modification_1):
802 * var-tracking.c (count_stores, add_stores): Likewise.
804 2007-07-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
806 * alias.c (mems_in_disjoint_alias_sets_p,
807 fixed_scalar_and_varying_struct_p, aliases_everything_p,
808 nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
809 write_dependence_p, mems_in_disjoint_alias_sets_p,
810 read_dependence, true_dependence, canon_true_dependence,
811 anti_dependence, output_dependence): Constify.
812 * combine.c (extended_count): Likewise.
813 * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
814 * cselib.c (get_value_hash, references_value_p,
815 cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
816 * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
817 * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
818 * function.c (contains, prologue_epilogue_contains,
819 sibcall_epilogue_contains): Likewise.
820 * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
821 pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
822 only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
823 reg_or_subregno): Likewise.
824 * recog.c (asm_noperands): Likewise.
825 * reload1.c (function_invariant_p): Likewise.
826 * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
827 rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
828 condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
829 simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
830 true_regnum, reg_or_subregno, condjump_in_parallel_p,
831 extended_count, prologue_epilogue_contains,
832 sibcall_epilogue_contains, function_invariant_p, true_dependence,
833 canon_true_dependence, read_dependence, anti_dependence,
834 output_dependence): Likewise.
835 * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
837 2007-07-30 Julian Brown <julian@codesourcery.com>
839 * config/arm/neon.md (V_ext): New mode attribute.
840 (neon_vget_lane<mode>): Replace with define_expand.
841 (neon_vget_lane<mode>_sext_internal)
842 (neon_vget_lane<mode>_zext_internal): New define_insns for double
843 and quad precision vectors.
844 (neon_vget_lanedi): Add bounds check. Remove dead comment.
845 * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
846 have typeless 32-bit result.
848 2007-07-30 Andrew Pinski <andrew_pinski@playstation.sony.com>
851 * tree-affine.h (aff_tree): The type of rest is sizetype for types
853 * tree-affine.c (aff_combination_scale): If type is a pointer type,
854 use sizetype for rest.
855 (aff_combination_add_elt): Likewise. Don't specialize pointer types.
856 (aff_combination_convert): Don't convert rest for pointer types.
858 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
860 * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
862 * tree-ssa-alias.c: Add alloc-pool.h.
863 (init_alias_info): Free alias_bitmap_obstack.
864 (delete_alias_info): Call delete_mem_ref_stats.
865 (get_mem_sym_stats_for): Use alloc_pool.
866 (init_mem_ref_stats): Do not delete mem_ref_stats here.
867 (delete_mem_sym_stats): Removed.
869 2007-07-29 Sebastian Pop <sebpop@gmail.com>
871 * tree-data-ref.c (add_multivariate_self_dist): Parametric access
872 functions cannot be represented as classical distance vectors.
874 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
876 * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
877 * builtins.c (validate_arg, builtin_mathfn_code,
878 validate_arglist): Likewise.
879 * calls.c (call_expr_flags): Likewise.
880 * combine.c (reg_nonzero_bits_for_combine,
881 reg_num_sign_bit_copies_for_combine, get_last_value,
882 reg_truncated_to_mode): Likewise.
883 * emit-rtl.c (subreg_lowpart_p): Likewise.
884 * expr.c (highest_pow2_factor_for_target,
885 categorize_ctor_elements_1, categorize_ctor_elements,
886 count_type_elements, contains_packed_reference,
887 highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
888 * fold-const.c (may_negate_without_overflow_p, int_const_binop,
889 fold_convertible_p, operand_equal_p, tree_swap_operands_p,
890 native_encode_int, native_encode_real, native_encode_complex,
891 native_encode_vector, native_encode_expr, native_interpret_int,
892 native_interpret_real, native_interpret_complex,
893 native_interpret_vector, native_interpret_expr): Likewise.
894 * function.c (use_register_for_decl): Likewise.
895 * gimplify.c (get_name): Likewise.
896 * langhooks-def.h (lhd_return_null_const_tree): New.
897 (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
898 * langhooks.c (lhd_return_null_const_tree): New.
899 * langhooks.h (lang_get_callee_fndecl): Constify.
900 * output.h (constructor_static_from_elts_p): Likewise.
901 * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
902 * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
903 subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
904 * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
905 cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
906 nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
907 * rtlhooks-def.h (reg_nonzero_bits_general,
908 reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
910 * rtlhooks.c (reg_num_sign_bit_copies_general,
911 reg_nonzero_bits_general, reg_truncated_to_mode_general):
913 * stmt.c (warn_if_unused_value, is_body_block): Likewise.
914 * stor-layout.c (mode_for_size_tree): Likewise.
915 * tree-ssa-loop-im.c (memref_eq): Likewise.
916 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
917 * tree.c (contains_placeholder_p, type_list_equal,
918 simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
920 * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
921 mode_for_size_tree, categorize_ctor_elements, count_type_elements,
922 contains_placeholder_p, contains_packed_reference,
923 get_callee_fndecl, operand_equal_for_phi_arg_p,
924 warn_if_unused_value, is_body_block, native_encode_expr,
925 native_interpret_expr, fold_convertible_p, operand_equal_p,
926 int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
927 validate_arglist, simple_cst_equal, type_list_equal,
928 use_register_for_decl, call_expr_flags, get_name,
929 highest_pow2_factor): Likewise.
930 (const_call_expr_arg_iterator_d,
931 init_const_call_expr_arg_iterator, next_const_call_expr_arg,
932 first_const_call_expr_arg, more_const_call_expr_args_p,
933 FOR_EACH_CONST_CALL_EXPR_ARG): New.
934 * varasm.c (constructor_static_from_elts_p): Constify.
936 2007-07-28 Kazu Hirata <kazu@codesourcery.com>
938 * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
939 config/arm/neon-schedgen.ml, config/arm/neon.ml,
940 config/arm/vec-common.md, config/ia64/div.md, cselib.c,
941 df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
942 regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
943 tree-vect-transform.c, tree.def: Fix comment typos. Follow
944 spelling conventions.
945 * doc/invoke.texi: Follow spelling conventions.
947 2007-07-29 Vladimir Yanovsky <yanov@il.ibm.com>
948 Revital Eres <eres@il.ibm.com>
950 * modulo-sched.c (sms_schedule): Avoid loops which includes
951 auto-increment instructions.
953 2007-07-28 Richard Guenther <rguenther@suse.de>
956 * fold-const.c (fold_cond_expr_with_comparison): Convert
957 operand zero of MIN/MAX_EXPR to correct type.
959 2007-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
961 * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
962 flags_from_decl_or_type): Constify.
963 * gcc.c (do_spec_1): Likewise.
964 * print-tree.c (dump_addr, print_node_brief): Likewise.
965 * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
966 simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
967 tree_purge_all_dead_eh_edges): Likewise.
968 * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
969 tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
971 * tree.c (expr_location, expr_has_location, expr_locus,
972 expr_filename, expr_lineno, get_inner_array_type,
973 fields_compatible_p): Likewise.
974 * tree.h (get_inner_array_type, fields_compatible_p,
975 expr_location, expr_has_location, expr_locus, expr_filename,
976 expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
977 setjmp_call_p, alloca_call_p): Likewise.
979 2007-07-28 Daniel Berlin <dberlin@dberlin.org>
981 * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
984 * tree-ssa-alias.c (compute_call_clobbered): Push/pop
986 (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
987 (compute_flow_insensitive_aliasing): Ditto for
990 2007-07-27 Jan Hubicka <jh@suse.cz>
992 * config/i386/i386.c (register_move_cost): Remove accidentally comitted
995 * attribs.c: Include hashtab.h
996 (attribute_hash): New.
997 (substring): New structure.
998 (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
1000 (init_attributes): Initialize attribute hash.
1001 (decl_attributes): Use attribute hash.
1002 * Makefile.in (attribs.c): Depend on hashtab.h.
1004 2007-07-27 Steve Ellcey <sje@cup.hp.com>
1006 * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
1008 2007-07-27 Richard Sandiford <richard@codesourcery.com>
1010 * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
1011 __mips_dspr2 and __mips_dsp_rev macros.
1012 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
1014 2007-07-27 Douglas Gregor <doug.gregor@gmail.com>
1016 * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
1018 2007-07-26 Kenneth Zadeck <zadeck@naturalbridge.com>
1022 * df-problems.c (df_create_unused_note): Removed do_not_gen parm
1023 and the updating of the live and do_not_gen sets.
1024 (df_note_bb_compute): Added updating of live and do_not_gen sets
1025 for regular defs so that the case of clobber inside conditional
1026 call is processed correctly.
1028 2007-07-27 Zdenek Dvorak <dvorakz@suse.cz>
1030 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
1031 operands with compatible type.
1033 2007-07-27 Richard Sandiford <richard@codesourcery.com>
1035 * expr.h (store_bit_field): Don't return a value.
1036 * expmed.c (check_predicate_volatile_ok): New function.
1037 (store_bit_field_1): New function, extracted from store_bit_field.
1038 Take a fallback_p argument and return true if the operation succeeded.
1039 Only use store_fixed_bit_field if fallback_p. Don't recompute
1040 mode_for_extraction; use op_mode instead. Try forcing memories
1041 into registers if the insv expander fails.
1042 (store_bit_field): Use store_bit_field_1 with fallback_p true.
1043 Don't return a value.
1044 (convert_extracted_bit_field): New function, extracted from
1046 (extract_bit_field_1): Likewise. Take a fallback_p argument
1047 and return NULL if the operation succeeded. Only use
1048 extract_fixed_bit_field if fallback_p. Only calculate one
1049 extraction mode. Combine code for extv and extzv. Try forcing
1050 memories into registers if the ext(z)v expander fails.
1051 (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
1053 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
1055 * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
1057 (df_ref): Likewise. Put regno with other integer fields.
1059 2007-07-27 Richard Sandiford <rsandifo@nildram.co.uk>
1061 * df.h (df_mw_hardreg): Remove "loc" field.
1062 * df-scan.c (df_ref_record): Don't set it. Remove redundant
1064 * df-problems.c (df_whole_mw_reg_unused_p): New function,
1065 split out from df_set_unused_notes_for_mw. Return false for
1066 partial references. Assert that mw_reg is a REG when returning true.
1067 (df_set_unused_notes_for_mw): Use it. Use mw_reg instead of *loc.
1068 (df_whole_mw_reg_dead_p): New function, split out from
1069 df_set_dead_notes_for_mw. Return false for partial references.
1070 Assert that mw_reg is a REG when returning true.
1071 (df_set_dead_notes_for_mw): Use it. Use mw_reg instead of *loc.
1072 Remove redundant bitmap check.
1074 2007-07-26 H.J. Lu <hongjiu.lu@intel.com>
1076 * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
1077 ($(T)crtend.o): Likwise.
1078 ($(T)crtbeginS.o): Likwise.
1079 ($(T)crtendS.o): Likwise.
1080 ($(T)crtfastmath.o): Likwise.
1082 2007-07-26 Zdenek Dvorak <dvorakz@suse.cz>
1084 * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
1085 * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
1086 * basic-block.h (struct control_flow_graph): Added x_dom_computed
1087 and x_n_bbs_in_dom_tree fields.
1089 2007-07-26 Steve Ellcey <sje@cup.hp.com>
1091 PR tree-optimization/32087
1092 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
1093 Do not call scale_bbs_frequencies_int with prob of zero.
1095 2007-07-26 Julian Brown <julian@codesourcery.com>
1097 * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
1098 (neon_element_bits): Add prototypes.
1099 * config/arm/arm.c (bounds_check, neon_lane_bounds)
1100 (neon_const_bounds, neon_element_bits): New functions.
1101 * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
1102 (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
1103 (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
1104 (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
1105 (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
1106 (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
1107 (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
1108 (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
1109 (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
1110 (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
1111 (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
1112 (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
1113 (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
1115 2007-07-26 Nathan Froyd <froydnj@codesourcery.com>
1117 * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
1118 (HAVE_AS_GNU_ATTRIBUTE): Undefine.
1120 2007-07-26 Mark Shinwell <shinwell@codesourcery.com>
1121 Julian Brown <julian@codesourcery.com>
1123 * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
1124 * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
1125 * config/arm/cortex-a8.md: New.
1126 * config/arm/cortex-a8-neon.md: New.
1127 * config/arm/neon-schedgen.ml: New.
1128 * config/arm/neon.md (vqh_mnem): New.
1130 (Is_float_mode): New.
1131 (Scalar_mul_8_16): New.
1133 (V_mode_nunits): New.
1134 (All instruction patterns): Annotate with neon_type attribute
1136 * config/arm/arm.md: Include cortex-a8.md.
1137 (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
1139 Annotate instruction patterns accordingly.
1140 (generic_sched): Do not use generic scheduling for Cortex-A8.
1141 (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
1143 2007-07-26 Daniel Jacobowitz <dan@codesourcery.com>
1145 * fold-const.c (fold_read_from_constant_string): Use
1147 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1149 2007-07-26 Nick Clifton <nickc@redhat.com>
1151 * tree-ssa-operands.h: Change copyright header to refer to version
1152 3 of the GNU General Public License and to point readers at the
1153 COPYING3 file and the FSF's license web page.
1154 * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
1155 sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
1156 tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
1157 targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
1158 tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
1159 hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
1160 flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
1161 opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
1162 gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
1163 cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
1164 rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
1165 optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
1166 tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
1167 genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
1168 reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
1169 c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
1170 rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
1171 tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
1172 diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
1173 gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
1174 input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
1175 gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
1176 cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
1177 graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
1178 genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
1179 tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
1180 reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
1181 real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
1182 omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
1183 tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
1184 regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
1185 tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
1186 scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
1187 double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
1188 dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
1189 gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
1190 hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
1191 ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
1192 c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
1193 tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
1194 xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
1195 tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
1196 gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
1197 mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
1198 alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
1199 dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
1200 expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
1201 genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
1202 timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
1203 tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
1204 recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
1205 dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
1206 matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
1207 tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
1208 lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
1209 ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
1210 ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
1211 langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
1212 sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
1213 gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
1214 ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
1215 init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
1216 loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
1217 mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
1218 opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
1219 insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
1220 tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
1221 dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
1222 bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
1223 coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
1224 stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
1225 cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
1226 tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
1227 loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
1228 lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
1229 tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
1230 tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
1231 ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
1232 varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
1233 sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
1234 target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
1235 omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
1236 intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
1237 sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
1238 genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
1239 tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
1240 bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
1241 cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
1242 cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
1243 tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
1244 c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
1245 fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
1246 vecprim.h, basic-block.h, tree-ssa-structalias.c,
1247 tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
1248 passes.c, genconstants.c, c-incpath.c, c-incpath.h,
1249 struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
1250 varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
1251 reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
1252 stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
1253 params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
1254 tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
1255 convert.c, convert.h, langhooks-def.h, reload1.c,
1256 tree-ssa-operands.c: Likewise.
1258 2007-07-26 Jan Hubicka <jh@suse.cz>
1260 * tree-ssa-live.c: Include debug.h and flags.h.
1261 (mark_scope_block_unused): New function.
1262 (remove_unused_scope_block_p): New function.
1263 (remove_unused_locals): Remove unused blocks too.
1265 2007-07-25 Ian Lance Taylor <iant@google.com>
1267 * combine.c (combine_max_regno): Remove. Remove all uses.
1268 (struct reg_stat_struct): Rename from struct reg_stat.
1269 (reg_stat_type): Define, and declare VECs.
1270 (reg_stat): Change from pointer to VEC. Change all uses.
1271 (combine_split_insns): New static function.
1272 (try_combine, find_split_point): Call it instead of split_insns.
1274 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1276 * cfghooks.c (split_block): Fix the information about loop latch.
1278 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1280 * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
1282 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1284 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1285 Scan the new edge for loop exit info.
1287 2007-07-25 Andreas Tobler <a.tobler@schweiz.org>
1289 * config/darwin.c: Include debug.h.
1291 2007-07-25 Steve Ellcey <sje@cup.hp.com>
1294 * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
1296 2007-07-25 Steve Ellcey <sje@cup.hp.com>
1298 * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
1299 (HARD_REGNO_MODE_OK): Ditto.
1300 (MODES_TIEABLE_P): Ditto.
1301 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
1302 (CLASS_MAX_NREGS): Ditto.
1303 * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
1304 * config/ia64/ia64.md (divsf3_internal_thr): Removed.
1305 (divdf3_internal_thr): Removed.
1306 * config/ia64/div.md: New file.
1307 * config/ia64/constraints.md: Add H constraint.
1309 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1311 * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
1312 sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
1313 sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
1314 sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
1315 sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
1316 sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
1317 sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
1318 sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
1319 sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
1320 dump_sbitmap_file, debug_sbitmap, popcount_table,
1321 sbitmap_popcount): Constify.
1322 * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
1323 (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
1324 dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
1325 sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
1326 sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
1327 sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
1328 sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
1329 sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
1330 sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
1331 sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
1332 sbitmap_popcount, sbitmap_verify_popcount): Constify.
1334 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1336 * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
1337 bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
1338 bitmap_first_set_bit, bitmap_and, bitmap_and_into,
1339 bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
1340 bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
1341 bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
1342 bitmap_intersect_p, bitmap_intersect_compl_p,
1343 bitmap_ior_and_compl, bitmap_ior_and_compl_into,
1344 debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
1346 * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
1347 bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
1348 bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
1349 bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
1350 bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
1351 debug_bitmap, debug_bitmap_file, bitmap_print,
1352 bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
1353 bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
1355 2007-07-25 Daniel Berlin <dberlin@dberlin.org>
1357 * config/darwin.c (darwin_override_options): Additional fix for
1358 debug info formats that don't support var tracking.
1360 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1362 * cselib.c (entry_and_rtx_equal_p): Constify.
1363 * gengtype.c (output_mangled_typename, write_types, write_local):
1365 * gengtype.h (const_type_p): New.
1366 * see.c (eq_descriptor_extension, hash_descriptor_extension):
1368 * tlink.c (scan_linker_output): De-constify.
1369 * tree-ssa-loop-im.c (memref_eq): Constify.
1370 * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
1371 (shared_bitmap_hash, shared_bitmap_eq): Constify.
1373 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1375 * c-common.c (fname_as_string, c_type_hash): Constify.
1376 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
1377 * cgraph.c (edge_hash, edge_eq): Likewise.
1378 * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
1379 * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
1380 reg_attrs_htab_eq): Likewise.
1381 * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
1383 * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
1384 const_decl_t, const_state_t, const_automata_list_el_t): New.
1385 (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
1386 DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
1387 automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
1388 insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
1389 reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
1390 automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
1391 compare_max_occ_cycle_nums, out_state_arcs_num,
1392 compare_transition_els_num, units_cmp, state_reservs_cmp):
1394 * genmodes.c (cmp_modes): Likewise.
1395 * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
1396 * gimplify.c (compare_case_labels): Likewise.
1397 * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
1398 * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
1399 * matrix-reorg.c (mtt_info_hash): Likewise.
1400 * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
1401 * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
1402 (htab_hash_bucket, htab_hash_elem): Constify.
1403 * tree-browser.c (TB_parent_eq): Likewise.
1404 * tree-scalar-evolution.c (hash_scev_info): Likewise.
1405 * tree-ssa-alias.c (sort_tags_by_id): Likewise.
1406 * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
1407 (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
1409 * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
1410 * tree-ssa-pre.c (const_expr_pred_trans_t): New.
1411 (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
1412 * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
1413 const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
1415 (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
1416 vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
1417 vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
1418 * tree-ssa-threadupdate.c (redirection_data_hash,
1419 redirection_data_eq): Likewise.
1420 * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
1421 * tree-ssa.c (var_ann_eq): Likewise.
1422 * tree-vrp.c (compare_case_labels): Likewise.
1423 * tree.c (int_cst_hash_hash, int_cst_hash_eq,
1424 tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
1425 tree_not_check_failed, tree_class_check_failed,
1426 tree_range_check_failed, tree_not_class_check_failed,
1427 omp_clause_check_failed, omp_clause_range_check_failed,
1428 tree_contains_struct_check_failed, tree_operand_check_failed):
1430 * tree.h (tree_contains_struct_check_failed, tree_check_failed,
1431 tree_not_check_failed, tree_class_check_failed,
1432 tree_range_check_failed, tree_not_class_check_failed,
1433 tree_operand_check_failed, omp_clause_operand_check_failed,
1434 tree_operand_length): Likewise.
1435 * var-tracking.c (const_variable): New.
1436 (variable_htab_hash, variable_htab_eq): Constify.
1437 * varasm.c (const_desc_hash): Likewise.
1439 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1441 * expr.c (handled_component_p): Constify.
1442 * fold-const.c (fit_double_type): Likewise.
1443 * real.h (real_value_from_int_cst): Likewise.
1444 * tree-flow-inline.h (gimple_in_ssa_p,
1445 gimple_aliases_computed_p, gimple_addressable_vars,
1446 gimple_call_clobbered_vars, gimple_referenced_vars,
1447 gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
1448 end_htab_p, end_referenced_vars_p, var_ann, function_ann,
1449 may_aliases, end_readonly_imm_use_p, has_zero_uses,
1450 has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
1451 is_label_stmt, is_global_var, phi_ssa_name_p,
1452 factoring_name_p, is_call_clobbered, tree_common_ann,
1453 op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
1454 unmodifiable_var_p, array_ref_contains_indirect_ref,
1455 ref_contains_array_ref, lookup_subvars_for_var,
1456 var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
1457 gimple_mem_ref_stats): Likewise.
1458 * tree-flow.h (tree_common_ann, var_ann, function_ann,
1459 may_aliases, is_exec_stmt, is_label_stmt,
1460 ref_contains_array_ref, array_ref_contains_indirect_ref,
1461 var_can_have_subvars, overlap_subvar, is_call_clobbered,
1462 unmodifiable_var_p): Likewise.
1463 * tree-gimple.c (is_gimple_min_invariant): Likewise.
1464 * tree-gimple.h (is_gimple_min_invariant): Likewise.
1465 * tree.c (type_hash_list, attribute_hash_list, tree_size,
1466 cst_and_fits_in_hwi, real_value_from_int_cst,
1467 build_real_from_int_cst, integer_zerop, integer_onep,
1468 integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
1469 tree_floor_log2, real_zerop, real_onep, real_twop,
1470 real_minus_onep, really_constant_p, purpose_member, chain_member,
1471 list_length, fields_length, int_size_in_bytes, bit_position,
1472 int_bit_position, byte_position, int_byte_position, expr_align,
1473 array_type_nelts, tree_node_structure,
1474 type_contains_placeholder_1, iterative_hash_pointer,
1475 is_attribute_with_length_p, is_attribute_p, check_qualified_type,
1476 tree_map_base_eq, type_hash_list, type_hash_eq,
1477 attribute_hash_list, type_num_arguments, tree_int_cst_equal,
1478 tree_int_cst_lt, tree_int_cst_compare, host_integerp,
1479 tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
1480 simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
1481 int_fits_type_p, get_containing_scope, decl_function_context,
1482 decl_type_context, omp_clause_operand_check_failed,
1483 initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
1484 * tree.h (omp_clause_operand_check_failed, tree_size,
1485 build_real_from_int_cst, array_type_nelts, purpose_member,
1486 tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
1487 host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
1488 is_attribute_p, check_qualified_type, expr_align,
1489 int_size_in_bytes, bit_position, int_bit_position, byte_position,
1490 int_byte_position, list_length, fields_length, initializer_zerop,
1491 integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
1492 integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
1493 tree_node_structure, handled_component_p, get_containing_scope,
1494 decl_function_context, decl_type_context, real_zerop,
1495 type_num_arguments, fit_double_type, really_constant_p,
1496 int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
1497 compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
1498 real_twop, real_minus_onep, int_cst_value): Likewise.
1500 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1502 * cfglayout.c (insn_scope, insn_line): Constify.
1503 * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
1504 const_double_htab_hash, const_double_htab_eq,
1505 mem_attrs_htab_hash): Likewise.
1506 * loop-iv.c (biv_eq): Likewise.
1507 * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
1508 print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
1509 debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
1511 * rtl-error.c (location_for_asm, diagnostic_for_asm,
1512 error_for_asm, warning_for_asm, _fatal_insn,
1513 _fatal_insn_not_found): Likewise.
1514 * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
1515 rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
1516 rtl_check_failed_type2, rtl_check_failed_code1,
1517 rtl_check_failed_code2, rtl_check_failed_code_mode,
1518 rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
1519 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
1520 rtl_check_failed_type2, rtl_check_failed_code1,
1521 rtl_check_failed_code2, rtl_check_failed_code_mode,
1522 rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
1523 SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
1524 shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
1525 get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
1526 mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
1527 rtx_unstable_p, get_integer_term, get_related_value,
1528 offset_within_block_p, reg_mentioned_p, count_occurrences,
1529 reg_referenced_p, reg_used_between_p, no_labels_between_p,
1530 single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
1531 reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
1532 find_reg_note, find_regno_note, find_reg_equal_equiv_note,
1533 find_constant_src, find_reg_fusage, find_regno_fusage,
1534 pure_call_p, remove_note, side_effects_p, volatile_refs_p,
1535 volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
1536 may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
1537 computed_jump_p, auto_inc_p, in_expr_list_p,
1538 remove_node_from_expr_list, loc_mentioned_in_p,
1539 label_is_jump_target_p, reversed_comparison_code_parts,
1540 debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
1541 print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
1542 print_inline_rtx): Likewise.
1543 * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
1544 computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
1545 rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
1546 get_integer_term, get_related_value, offset_within_block_p,
1547 count_occurrences, reg_mentioned_p, no_labels_between_p,
1548 reg_used_between_p, reg_referenced_p, single_set_2,
1549 multiple_sets, set_noop_p, refers_to_regno_p,
1550 reg_overlap_mentioned_p, dead_or_set_p,
1551 covers_regno_no_parallel_p, covers_regno_p,
1552 dead_or_set_regno_p, find_reg_note, find_regno_note,
1553 find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
1554 find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
1555 remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
1556 side_effects_p, may_trap_p_1, may_trap_p,
1557 may_trap_after_code_motion_p, may_trap_or_fault_p,
1558 inequality_comparisons_p, tablejump_p, computed_jump_p_1,
1559 computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
1560 subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
1561 * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
1562 mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
1564 * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
1565 warning_for_asm): Likewise.
1566 * tree.h (print_rtl): Likewise.
1567 * varasm.c (get_pool_mode): Likewise.
1569 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1571 * c-lex.c (c_lex_with_flags, lex_string): Constify.
1572 * c-ppoutput.c (print_line, pp_dir_change): Likewise.
1573 * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
1574 * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
1575 * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
1576 * ddg.c (compare_sccs): Likewise.
1577 * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
1578 * dfp.c (decimal_real_from_string, decimal_to_decnumber,
1579 decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
1580 decimal_do_fix_trunc, decimal_real_to_integer,
1581 decimal_real_to_integer2, decimal_real_maxval): Likewise.
1582 * dse.c (const_group_info_t): New.
1583 (invariant_group_base_eq, invariant_group_base_hash): Constify.
1584 * dwarf2out.c (const_dw_die_ref): New.
1585 (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
1586 * tree-browser.c (TB_parent_eq): Likewise.
1587 * unwind-dw2-fde.c (__register_frame_info_bases,
1588 __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
1589 add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
1591 * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
1592 * unwind-dw2.c (uw_frame_state_for): Likewise.
1593 * value-prof.c (histogram_hash, histogram_eq): Likewise.
1594 * value-prof.h (const_histogram_value): New.
1596 2007-07-25 Richard Sandiford <richard@codesourcery.com>
1598 * config/mips/mips.c (machine_function): Add
1599 initialized_mips16_gp_pseudo_p.
1600 (mips16_gp_pseudo_reg): Do not emit the initialization of
1601 mips16_gp_pseudo_rtx when being called from the gimple cost-
1602 calculation routines; emit it on the first use outside those
1605 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1607 * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
1610 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1611 RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
1612 RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
1613 RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
1614 RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
1615 Preserve const-ness of parameters through use of __typeof(),
1616 also constify and tidy.
1618 * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
1619 TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
1620 NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
1621 CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
1622 OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
1623 GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
1624 PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
1625 TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
1626 TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
1628 2007-07-25 Julian Brown <julian@codesourcery.com>
1629 Mark Shinwell <shinwell@codesourcery.com>
1631 * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
1632 (alpha_mangle_type): This.
1633 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1634 (TARGET_MANGLE_TYPE): Define this instead.
1635 * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
1636 * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
1637 (arm_init_neon_builtins): Fix comment.
1638 (arm_mangle_map_entry): New.
1639 (arm_mangle_map): New.
1640 (arm_mangle_type): New.
1641 * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
1642 (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
1643 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
1644 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1645 (TARGET_MANGLE_TYPE): Define this instead.
1646 * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
1647 (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
1648 mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
1649 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1650 (TARGET_MANGLE_TYPE): Define this instead.
1651 * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
1653 (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
1654 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1655 (TARGET_MANGLE_TYPE): Define this instead.
1656 * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
1657 (s390_mangle_type): This.
1658 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1659 (TARGET_MANGLE_TYPE): Define this instead.
1660 * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
1661 (sparc_mangle_type): This.
1662 (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1663 (TARGET_MANGLE_TYPE): Define this instead.
1664 * cp/mangle.c (write_type): Call mangle_type target hook on all
1665 types before mangling. Use original type, not main variant, as
1667 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
1668 (TARGET_MANGLE_TYPE): This.
1669 * target.h (gcc_target): Rename mangle_fundamental_type to
1671 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
1672 (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
1674 2007-07-25 Julian Brown <julian@codesourcery.com>
1675 Paul Brook <paul@codesourcery.com>
1676 Joseph Myers <joseph@codesourcery.com>
1677 Mark Shinwell <shinwell@codesourcery.com>
1679 * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
1680 * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
1681 (with_fpu): Allow --with-fpu=neon.
1682 * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1683 * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1684 * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
1685 * config/arm/arm-protos.h (neon_immediate_valid_for_move)
1686 (neon_immediate_valid_for_logic, neon_output_logic_immediate)
1687 (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
1688 (neon_emit_pair_result_insn, neon_disambiguate_copy)
1689 (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
1690 (output_move_neon): Add prototypes.
1691 * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
1692 (all_fpus): Add FPUTYPE_NEON.
1693 (fp_model_for_fpu): Add NEON field.
1694 (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
1695 (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
1697 (arm_legitimate_address_p): Don't support fancy addressing for NEON
1699 (thumb2_legitimate_address_p): Likewise.
1700 (neon_valid_immediate): Recognize and prepare constants suitable for
1702 (neon_immediate_valid_for_move): New function. Recognize and prepare
1703 immediates for NEON move instructions.
1704 (neon_immediate_valid_for_logic): New function. Recognize and
1705 prepare immediates for NEON logic instructions.
1706 (neon_output_logic_immediate): New function. Create asm string
1707 suitable for outputting immediate logic instructions.
1708 (neon_pairwise_reduce): New function. Implement reduction using
1709 pairwise operations.
1710 (neon_expand_vector_init): New function. Expand a (possibly
1711 non-constant) vector initialization.
1712 (neon_vector_mem_operand): New function. Memory operands supported
1713 for quad-word loads/stores to/from ARM or NEON registers. Don't
1714 allow base+offset addressing for core regs.
1715 (neon_struct_mem_operand): New function. Valid mems for NEON
1717 (coproc_secondary_reload_class): Enable NEON registers to be loaded
1718 from neon_vector_mem_operand addresses without a secondary register.
1719 (add_minipool_forward_ref): Handle >8-byte minipool entries.
1720 (add_minipool_backward_ref): Likewise.
1721 (dump_minipool): Likewise.
1722 (push_minipool_fix): Likewise.
1723 (output_move_quad): New function. Output quad-word moves, loads and
1724 stores using ARM registers.
1725 (output_move_vfp): Add support for vectors in VFP (NEON) D
1727 (output_move_neon): Output a NEON load/store to/from a quadword
1729 (arm_print_operand): Implement new codes:
1730 - 'c' for unadorned integers (without a # sign).
1731 - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
1733 - 'e', 'f' for the low and high D parts of a NEON Q register.
1734 - 'q' outputs a NEON Q register.
1735 - 'h' outputs ranges of D registers for VLDM/VSTM etc.
1736 - 'T' prints NEON opcode features from a coded bitmask.
1737 - 'F' is similar to T, but signed/unsigned codes both print as
1739 - 't' is similar to T, but 'u' is printed instead of 'p'.
1740 - 'O' prints 'r' if NEON instruction should perform rounding (as
1741 specified by bitmask), else prints nothing.
1742 - '#' is a punctuation character to stop operand numbers from
1743 running together with following digits in the assembler
1744 strings for instructions (when using mode attributes).
1745 (arm_assemble_integer): Handle extra NEON vector modes. Permute
1746 constant vectors in big-endian mode, where necessary.
1747 (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
1748 Handle EI, OI, CI, XI modes.
1749 (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
1750 (ashrv2si3): Rename IWMMXT2_BUILTINs to...
1751 (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
1752 (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
1753 (neon_builtin_type_bits): Add enumeration, one bit for each vector
1755 (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
1756 (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
1757 to turn v8qi, etc. into bits defined above.
1758 (neon_itype): New enumeration. Classifications of NEON builtins.
1759 (neon_builtin_datum): Define struct. Contains information about
1760 a single builtin (with multiple modes).
1761 (CF): Define helper macro for...
1762 (VAR1...VAR10): Define builtins with a type, name and 1-10 different
1764 (neon_builtin_data): New array. Define information about builtins
1765 for use during initialization/expansion.
1766 (arm_init_neon_builtins): New function.
1767 (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
1769 (neon_builtin_compare): New function.
1770 (locate_neon_builtin_icode): New function. Find an insn code for a
1771 builtin given a function code for that builtin. Also return type of
1772 builtin (NEON_BINOP, NEON_UNOP etc.).
1773 (builtin_arg): New enumeration. Types of arguments for builtins.
1774 (arm_expand_neon_args): New function. Expand a generic NEON builtin.
1775 Takes a variable argument list of builtin_arg types, terminated by
1777 (arm_expand_neon_builtin): New function. Expand a NEON builtin.
1778 (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
1779 (neon_emit_pair_result_insn): New function. Support returning pairs
1780 of vectors via a pointer.
1781 (neon_disambiguate_copy): New function. Set up operands for a
1782 multi-word copy such that registers do not get clobbered.
1783 (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
1784 ARM_BUILTIN_NEON_BASE.
1785 (arm_file_start): Set float-abi attribute for NEON.
1786 (arm_vector_mode_supported_p): Enable NEON vector modes.
1787 (arm_mangle_map_entry): New.
1788 (arm_mangle_map): New.
1789 (arm_mangle_vector_type): New.
1790 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
1792 (TARGET_NEON): New macro. Target supports NEON.
1793 (fputype): Add FPUTYPE_NEON.
1794 (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
1795 for vectorization based on command-line arg.
1796 (NEON_REGNO_OK_FOR_NREGS): Define.
1797 (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
1798 (VALID_NEON_STRUCT_MODE): Define.
1799 (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
1800 (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
1801 * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
1802 (consttable_16): Add pattern for outputting 16-byte minipool
1804 (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
1806 (vec-common.md, neon.md): Include md files.
1807 * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
1808 * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
1809 (memory_constraint "Ut", "Un", "Us"): Define.
1810 * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
1811 (MMX_char): New mode attribute.
1812 (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
1813 (*add<mode>3_iwmmxt): New insn pattern.
1814 (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
1815 (*sub<mode>3_iwmmxt): New insn pattern.
1816 (mulv4hi3): Rename to...
1817 (*mulv4hi3_iwmmxt): This.
1818 (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
1819 (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
1820 (uminv4hi3, uminv2si3): Remove. Replace with...
1821 (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
1822 (*umin<mode>3_iwmmxt): These.
1823 (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
1824 (ashr<mode>3_iwmmxt): This new pattern.
1825 (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
1826 (lshr<mode>3_iwmmxt): This new pattern.
1827 (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
1828 (ashl<mode>3_iwmmxt): This new pattern.
1829 * config/arm/neon-docgen.ml: New file. Generate documentation for
1831 * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
1832 * config/arm/arm_neon.h: New (autogenerated).
1833 * config/arm/neon-testgen.ml: New file. Generate NEON tests
1835 * config/arm/neon.md: New file. Define NEON instructions.
1836 * config/arm/neon.ml: New file. Abstract description of NEON
1837 instructions, used to generate arm_neon.h header, documentation and
1839 * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
1840 * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
1842 * doc/extend.texi (ARM Built-in Functions): Rename and remove
1844 (ARM NEON Intrinsics): New subsection.
1845 * doc/arm-neon-intrinsics.texi: New (autogenerated).
1847 2007-07-25 Danny Smith <dannysmith@users.sourceforge.net>
1849 * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
1852 2007-07-24 Jan Hubicka <jh@suse.cz>
1854 * regclass.c (move_table): New type.
1855 (move_cost, may_move_in_cost, may_move_out_cost): Use it.
1856 (init_move_cost): Break out from ...
1857 (init_reg_sets_1): ... here; simplify computation of
1858 have_regs-of_mode and contains_reg_of_mode.
1859 (record_reg_classes): Unswitch internal loops.
1860 (copy_cost): Trigger lazy initialization of move cost
1861 (record_address_regs): Likewise.
1863 2007-07-24 Daniel Berlin <dberlin@dberlin.org>
1865 * config/darwin.c (darwin_override_options): Don't force on
1866 flag_var_tracking_uninit when no debug info is requested.
1868 2007-07-25 Zdenek Dvorak <dvorakz@suse.cz>
1870 * cfgloop.c (init_loops_structure): New function.
1871 (flow_loops_find): Create root of the loop tree unconditionally.
1873 2007-07-24 Daniel Jacobowitz <dan@codesourcery.com>
1875 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
1877 2007-07-24 Jan Hubicka <jh@suse.cz>
1879 * caller-save.c: Include ggc.h, gt-caller-save.h
1880 (reg_save_code, reg_restore_code): Rename to ...
1881 (cached_reg_save_code, cached_reg_restore_code): ... those.
1882 (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
1883 (reg_save_code, reg_restore_code): New functions.
1884 (init_caller_save): Do not intialize
1885 reg_save_code/reg_restore_code tables.
1886 * Makefile.in: (gt-caller-save.h): New.
1888 2007-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
1890 * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
1891 with the mode of the original operand instead of
1894 2007-07-23 Jan Hubicka <jH@suse.cz>
1896 * i386.c (ix86_secondary_memory_needed): Break out to...
1897 (inline_secondary_memory_needed): ... here.
1898 (ix86_memory_move_cost): Break out to ...
1899 (inline_memory_move_cost): ... here; add support for IN value of 2 for
1900 maximum of input and output; fix handling of Q_REGS on 64bit.
1901 (ix86_secondary_memory_needed): Microoptimize.
1903 2007-07-23 Sebastian Pop <sebpop@gmail.com>
1905 * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
1906 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1907 stmts_from_loop, known_dependences_p, build_rdg): New.
1908 * tree-data-ref.h: Depends on graphds.h.
1909 (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
1910 (build_rdg): Declared.
1911 * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
1913 2007-07-23 Daniel Berlin <dberlin@dberlin.org>
1915 * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
1918 2007-07-23 Peter Bergner <bergner@vnet.ibm.com>
1919 Jakub Jelinek <jakub@redhat.com>
1921 PR middle-end/PR28690
1922 * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
1923 * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
1924 and MEM_POINTER operands over REG and MEM operands.
1925 (swap_commutative_operands_p): Change return value to bool.
1926 * rtl.h: Update the corresponding prototype.
1927 * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
1928 instead of gen_rtx_PLUS.
1929 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
1930 value to bool. Change function arguments to rtx's and update code
1932 (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
1933 calls to match the new declaration.
1934 * simplify-rtx.c (simplify_associative_operation): Don't
1935 reorder simplify_binary_operation arguments.
1937 2007-07-23 Richard Sandiford <richard@codesourcery.com>
1939 * config/mips/mips.c (override_options): Use mips_costs to derive
1940 the default branch cost.
1941 * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
1943 * config/mips/mips.opt (mbranch-cost=): New option.
1944 * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
1946 2007-07-23 Richard Sandiford <richard@codesourcery.com>
1948 * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
1949 (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
1950 * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
1951 instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
1953 2007-07-23 Richard Sandiford <richard@codesourcery.com>
1955 * config/mips/constraints.md (ks): New constraint.
1956 * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
1957 (*add<mode>3_mips16): ...here.
1959 2007-07-21 Uros Bizjak <ubizjak@gmail.com>
1961 * optabs.h (enum optab_index): Add new OTI_signbit.
1962 (signbit_optab): Define corresponding macro.
1963 (enum insn_code signbit_optab[]): Remove array.
1964 * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
1965 (expand_copysign_absneg): If back end provides signbit insn, use it
1966 instead of bit operations on floating point argument.
1967 * builtins.c (enum insn_code signbit_optab[]): Remove array.
1968 (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
1969 availability of signbit insn.
1971 * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
1972 signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
1973 SSE mode is not active.
1974 (isinf<mode>2): Disable for mfpmath=sse,387.
1976 2007-07-22 Ben Elliston <bje@au.ibm.com>
1978 * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
1980 * struct-equiv.c (note_local_live): Likewise for `y_regno'.
1982 2007-07-20 Richard Guenther <rguenther@suse.de>
1984 * tree-cfg.c (verify_expr): COND_EXPRs can have any
1985 integral typed condition.
1986 * tree-ssa.c (useless_type_conversion_p): Do not preserve
1987 booleanness. Only preserve conversions from a non-base
1988 type to a base type, not in general between types with
1989 different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
1990 * tree.def (COND_EXPR): Document that the condition
1991 can be of any integral type.
1993 2007-07-20 Nigel Stephens <nigel@mips.com>
1994 Richard Sandiford <richard@codesourcery.com>
1996 * config/mips/mips.h (mips_dwarf_regno): Declare.
1997 (DBX_REGISTER_NUMBER): Remove redundant brackets.
1998 (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
1999 (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
2000 (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
2001 (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
2002 (REG_CLASS_NAMES): Update accordingly.
2003 * config/mips/mips.c (mips_dwarf_regno): New array.
2004 (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
2005 (mips_subword): Remove special handling for accumulator registers.
2006 (override_options): Initiailize mips_dwarf_regno. Remove use
2008 (mips_swap_registers): New function.
2009 (mips_conditional_register_usage): Swap accumulator registers
2010 around if TARGET_LITTLE_ENDIAN.
2011 (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
2012 * config/mips/constraints.md (h, l): Use the endianness to choose
2013 between MD0_REG and MD1_REG.
2014 * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
2015 alternative-dependent template.
2017 2007-07-20 Richard Sandiford <richard@codesourcery.com>
2019 * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
2022 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
2024 * function.c (thread_prologue_and_epilogue_insns): Fix exit
2025 predecessor fallthru flags.
2027 2007-07-20 Zdenek Dvorak <dvorakz@suse.cz>
2029 * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
2030 of compare to the same type.
2031 * cfgloopmanip.c (add_loop): Update information about loop exits.
2032 (loop_version): Remove the innermost loop requirement.
2033 * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
2034 to sizetype for pointers.
2036 2007-07-18 H.J. Lu <hongjiu.lu@intel.com>
2038 * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
2039 (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
2040 (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
2042 * config/dfp-bit.c: Empty for TFmode conversions.
2044 2007-07-18 Caroline Tice <ctice@apple.com>
2046 * var-tracking.c (find_src_status): Check for COND_EXEC insns
2047 and handle them correctly; check that src is not NULL before
2049 (find_src_set_src): Likewise.
2051 2007-07-18 Bob Wilson <bob.wilson@acm.org>
2053 * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
2054 (struct alignment_context, init_alignment_context): New.
2055 (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
2056 * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
2057 (XCHAL_HAVE_S32C1I): Likewise.
2058 (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
2059 * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
2060 (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
2061 (ATOMIC, HQI): New macros.
2062 (memory_barrier, *memory_barrier): New.
2063 (sync_lock_releasesi): New.
2064 (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
2065 (sync_lock_test_and_set<mode>): New.
2066 (sync_<atomic><mode>): New.
2067 (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
2068 * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
2069 (xtensa_expand_atomic): New.
2071 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2075 * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
2076 transformation for builtin ISNORMAL.
2077 (expand_builtin): Handle BUILT_IN_ISNORMAL.
2078 * builtins.def (BUILT_IN_ISNORMAL): New.
2079 * doc/extend.texi: Document isnormal.
2081 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2085 * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
2086 optabs infrastructure. Provide generic implementation for
2088 (expand_builtin): Handle FINITE/ISFINITE.
2089 (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
2090 (fold_builtin_1): Likewise.
2092 * builtins.def (BUILT_IN_ISFINITE): New.
2094 * doc/extend.texi: Document isfinite.
2096 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2101 * builtins.c (expand_builtin_interclass_mathfn): Provide a
2102 generic fallback for isinf.
2103 * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
2104 calculation code ...
2105 * real.c (get_max_float): ... to here.
2106 * real.h (get_max_float): New.
2108 2007-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2112 * builtin-attrs.def (ATTR_TYPEGENERIC,
2113 ATTR_CONST_NOTHROW_TYPEGENERIC): New.
2115 * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
2116 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
2117 BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
2118 BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
2120 * c-common.c (handle_type_generic_attribute): New.
2121 (c_common_attribute_table): Add "type generic".
2123 * c-typeck.c (convert_arguments): Handle "type generic" functions.
2125 2007-07-18 Daniel Berlin <dberlin@dberlin.org>
2127 * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
2128 * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
2131 2007-07-18 Rask Ingemann Lambertsen <rask@sygehus.dk>
2134 * config/cris/cris.c (cris_print_index): Don't use XEXP before
2135 checking that the operand is an expression.
2137 2007-07-19 Christoph von Wittich <Christoph_vW@reactos.org>
2138 Danny Smith <dannysmith@users.sourceforge.net>
2141 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
2142 file mapping object in local namespace if Windows version later
2145 2007-07-18 Richard Sandiford <richard@codesourcery.com>
2147 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
2148 * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
2149 arm_cannot_force_const_mem.
2150 (arm_cannot_force_const_mem): New function.
2151 * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
2152 (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
2153 of arm_tls_referenced_p.
2154 * config/arm/arm.md (movsi): Split out-of-section constants when
2155 ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
2156 * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
2158 2007-07-18 Richard Sandiford <richard@codesourcery.com>
2160 * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
2162 2007-07-18 Richard Sandiford <richard@codesourcery.com>
2164 * config/mips/mips.md (*extendqihi2): Convert the destination
2167 2007-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2169 * config/pa/fptr.c: Update license header.
2170 * config/pa/milli64.S: Likewise.
2172 2007-07-17 Nick Clifton <nickc@redhat.com>
2174 * COPYING_v3: New file. Contains version 3 of the GNU General
2176 * COPYING.LIB_v3: New file. Contains version 3 of the GNU
2177 Lesser General Public License.
2178 * doc/include/gpl_v3.texi: New file. Contains version 3 of
2179 the GNU General Public License.
2181 2007-07-17 Zdenek Dvorak <dvorakz@suse.cz>
2183 PR rtl-optimization/32773
2184 * cfglayout.c (force_one_exit_fallthru): New function.
2185 (cfg_layout_finalize): Use it.
2187 2007-07-16 Richard Guenther <rguenther@suse.de>
2188 Uros Bizjak <ubizjak@gmail.com>
2190 * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
2191 before forcing it to gimple operand.
2193 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
2194 David Ung <davidu@mips.com>
2196 * config/mips/mips.h (TUNE_24K): Define.
2197 (TUNE_MACC_CHAINS): Add TUNE_24K.
2198 * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
2200 * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
2201 (r74k_int_madd): .. this new reservation.
2202 (define_bypass): Fixed bypasses for r74k_int_madd to use
2204 * config/mips/24k.md (define_bypass): Define new
2205 r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
2207 2007-07-16 Sandra Loosemore <sandra@codesourcery.com>
2208 Nigel Stephens <nigel@mips.com>
2210 * config/mips/mips.md: Include 20kc.md.
2211 * config/mips/20kc.md: New file.
2212 * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
2213 (mips_adjust_cost): Tweak for 20Kc.
2214 (mips_issue_rate): Likewise.
2215 * config/mips/mips.h (TUNE_20KC): Define.
2217 2007-07-16 David Edelsohn <edelsohn@gnu.og>
2219 * config/rs6000/rs6000.c (struct processor_cost): Add
2220 cache_line_size, l1_cache_lines, and simultaneous_prefetches
2222 (*_cost): Add cache information.
2223 (rs6000_override_options): Set cache parameters.
2225 2007-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2228 * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
2229 * doc/install.texi (mips-sgi-irix6): pthread support works now.
2231 2007-07-16 Paul Brook <paul@codesourcery.com>
2234 * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
2235 (cirrus_thumb2_movsi_insn): Ditto.
2237 2007-07-15 Geoffrey Keating <geoffk@apple.com>
2239 * config/rs6000/darwin-fallback.c (interpret_libc): Change
2242 2007-07-15 Andrew Haley <aph@redhat.com>
2244 * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
2245 before looking in the context.
2247 2007-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2251 * pa-protos.h (pa_eh_return_handler_rtx): Declare.
2252 * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
2253 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2254 (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
2255 to generate .CALLINFO statement.
2256 (hppa_expand_prologue): Set rp_saved.
2257 (hppa_expand_epilogue): Use rp_saved.
2258 (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
2259 * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
2261 2007-07-14 Dirk Mueller <dmueller@suse.de>
2263 * omega.c (coalesce): Fix memory leak on early exit.
2264 * matrix-reorg.c (check_allocation_function): Likewise.
2265 * tree-vect-transform.c (vect_get_new_vect_var): free result
2267 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2268 pass pointer to edge vector
2269 (partition_hot_cold_basic_blocks): Fix memory leak.
2270 * collect2.c (prefix_from_string): Free temporary storage.
2271 * reload1.c (fixup_abnormal_edges): Free sbitmap.
2273 2007-07-14 Kaz Kojima <kkojima@gcc.gnu.org>
2275 * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
2276 (DO_GLOBAL_DTORS_BODY): Likewise.
2278 2007-07-14 Sandra Loosemore <sandra@codesourcery.com>
2279 Nigel Stephens <nigel@mips.com>
2281 * config/mips/mips.c (mips_classify_symbol): Don't return
2282 SYMBOL_SMALL_DATA for constant pool addresses if
2283 TARGET_EMBEDDED_DATA is true.
2285 2007-07-14 Uros Bizjak <ubizjak@gmail.com>
2287 * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
2288 except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
2289 __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
2290 __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
2291 __builtin_ia32_storehps, __builtin_ia32_storelps,
2292 __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
2293 __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
2294 __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
2295 __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
2296 __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
2297 __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
2298 __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
2299 __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
2300 using def_builtin_const.
2302 2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
2304 PR tree-optimization/32705
2305 * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
2306 (simplify_binary_expression): Use SSA_VAL consistently.
2308 2007-07-13 David Edelsohn <edelsohn@gnu.org>
2310 * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
2311 (SPEFSCR_REGNO): Delete definition.
2312 * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
2313 COUNT_REGISTER_REGNUM -> CTR_REGNO.
2314 * config/rs6000/rs6000.h: Do not define *_REGNO.
2315 LINK_REGISTER_REGNUM -> LR_REGNO.
2316 COUNT_REGISTER_REGNUM -> CTR_REGNO.
2317 * config/rs6000/predicates.md: LINK_REGISTER_REGNUM -> LR_REGNO.
2318 COUNT_REGISTER_REGNUM -> CTR_REGNO.
2319 * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
2320 R_VRSAVE, R_VSCR. Use them.
2321 * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
2322 R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR. Use them.
2323 * config/rs6000/rs6000.md: Define REGNO constants. Use them.
2324 * config/rs6000/aix.h: Define R_LR. Use it.
2326 2007-07-13 Caroline Tice <ctice@apple.com>
2328 * toplev.c (process_options): Turn flag_var_tracking_uninit off when
2329 flag_var_tracking is explicitly turned off (i.e. when variable
2330 tracking is not feasible); otherwise, turn flag_var_tracking on when
2331 flag_var_tracking_uninit is on.
2332 * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
2333 note definitions, to allow recording of initialization status in the
2335 * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
2336 (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
2337 determine if two note locations are equal.
2338 (output_loc_list): Don't output list entries whose start & end labels
2340 (reg_loc_descriptor): Add parameter for initialization status; pass it
2341 to other loc descriptor functions.
2342 (one_reg_loc_descriptor): Add parameter for initialization status;
2343 check its value and add DW_OP_GNU_uninit to returned loc descr if
2345 (multiple_reg_loc_descriptor): Add parameter for initialization
2347 pass init status argument to other loc descriptor functions; check
2348 value of intialization parameter and add DW_OP_GNU_uninit to returned
2349 loc descr if appropriate.
2350 (based_loc_descr): Add parameter for initialization status; add new
2351 variable for return value; check value of initialization parameter and
2352 add DW_OP_GNU_uninit to returned loc descr if appropriate.
2353 (concatn_mem_loc_descriptor): Add parameter for initialization status;
2354 pass init status argument to other loc descriptor functions; check
2355 value of intialization parameter and add DW_OP_GNU_uninit to returned
2356 loc descr if appropriate.
2357 (mem_loc_descriptor): Likewise.
2358 (concat_loc_descriptor): Likewise.
2359 (concatn_loc_descriptor): Likewise.
2360 (loc_descriptor): Add parameter for initialization status; pass it as
2361 argument to other loc descriptor function calls.
2362 (loc_descriptor_from_tree_1): Add appropriate initialization status
2363 to loc descriptor function calls.
2364 (add_location_or_const_value_attribute): Get initialization status
2365 from VAR_LOCATION note; add initialization status to loc descriptor
2367 * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
2368 * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
2369 status is uninitialized, add "[uninint]" to output.
2370 * common.opt (fvar-tracking-uninit): New option, similar to
2371 fvar-tracking, to turn on tracking of uninitialized variables; creates
2372 a new global flag, flag_var_tracking_uninit.
2373 * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
2374 (enum var_init_status): New type, for var initialization status field.
2375 * var-tracking.c (struct location_chain_def): Two new fields, init,
2376 for initialization status, and set_src for the assignment value expr.
2377 (unshare_variable): New parameter for initialization status;
2378 initialize new init and set_src fields.
2379 (var_reg_set): New parameters for initialization status and value;
2380 pass them to set_variable_part.
2381 (var_mem_set): Likewise.
2382 (get_init_value): New function.
2383 (var_reg_delete_and_set): New initialization status & value
2384 parameters; add call to get_init_value if status is unknown; pass new
2385 parameters to clobber_variable_part and var_reg_set.
2386 (var_mem_delete_and_set): Likewise.
2387 (var_reg_delete): Pass null set_src value to clobber_variable_part.
2388 (var_mem_delete): Likewise.
2389 (variable_union): Pass status to unshare_variable; initialize new init
2390 and set_src fields. If flag_var_tracking_uninit is not set, force
2391 status to initialized.
2392 (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
2393 used later to get the set_src value.
2394 (find_src_status): New function.
2395 (find_src_set_src): New function.
2396 (compute_bb_dataflow): Pass init status to calls to var_reg_set,
2397 var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
2398 MO_SET, get set_src value and pass it to var_reg_delete_and_set
2399 and var_mem_delete_and_set.
2400 (dump_variable): Print out "[uninit]" if appropriate.
2401 (set_variable_part): Add new initialization and set_src parameters;
2402 pass status to unshare_variable; set node->init and node- >set_src
2403 fields and modify slot in hash table appropriately; save the init and
2404 set_src values if appropriate and assign to the new node.
2405 (clobber_variable_part): New set_src parameter; if two nodes have
2406 same variable and same location but different set_src (assignment)
2407 values, clobber old node.
2408 (delete_variable_part): Pass init status to unshare_variable.
2409 (emit_note_insn_var_location): Add initialized var; assign var's init
2410 status to new 'initialized'; pass new init status field to calls to
2411 gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
2412 status to initialized.
2413 (emit_notes_in_bb): Pass initialization status to calls to
2414 var_reg_set, var_mem_set, var_reg_delete_and_set and
2415 var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
2416 var_reg_delete_and_set and var_mem_delete_and_set; call
2417 emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
2418 make up for change in add_stores.
2419 (vt_add_function_parameters): Add status to calls to
2421 * config/darwin.c (darwin_override_options): Turn on uninitialized
2422 tracking automatically, if var_tracking is on and the system is
2425 2007-07-13 Sa Liu <saliu@de.ibm.com>
2427 * config.gcc: Add options for arch and tune on SPU.
2428 * config/spu/predicates.md: Add constant operands 0 and 1.
2429 * config/spu/spu-builtins.def: Add builtins for double precision
2430 floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt,
2431 si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
2433 * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with
2435 * config/spu/spu-protos.h: Add new function prototypes.
2436 * config/spu/spu.c (spu_override_options): Check options -march and
2438 (spu_comp_icode): Add comparison code for DFmode and vector mode.
2439 (spu_emit_branch_or_set): Use the new code for DFmode and vector
2441 (spu_const_from_int): New. Create a vector constant from 4 ints.
2442 (get_vec_cmp_insn): New. Get insn index of vector compare instruction.
2443 (spu_emit_vector_compare): New. Emit vector compare.
2444 (spu_emit_vector_cond_expr): New. Emit vector conditional expression.
2445 * config/spu/spu.h: Add options -march and -mtune. Define processor
2446 types PROCESSOR_CELL and PROCESSOR_CELLEDP. Define macro
2447 CANONICALIZE_COMPARISON.
2448 * config/spu/spu.md: Add new insns for double precision compare
2449 and double precision vector compare. Add vcond and smax/smin patterns
2450 to enable DFmode vector conditional expression.
2451 * config/spu/spu.opt: Add options -march and -mtune.
2452 * config/spu/spu_internals.h: Add builtins for CELLEDP target:
2453 si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv. Add builtin for
2454 both CELL and CELLEDP targets: spu_testsv.
2455 * config/spu/spu_intrinsics.h: Add flag mnemonics for test special
2458 2007-07-13 Richard Guenther <rguenther@suse.de>
2460 PR tree-optimization/32721
2461 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
2462 TREE_THIS_VOLATILE on the folded reference.
2463 * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
2464 if the array reference has TREE_THIS_VOLATILE set.
2466 2007-07-13 H.J. Lu <hongjiu.lu@intel.com>
2469 * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
2471 2007-07-13 Andreas Schwab <schwab@suse.de>
2473 * gengtype-lex.l: Allow declarations to be indented.
2475 2007-07-12 Geoffrey Keating <geoffk@apple.com>
2477 * ginclude/tgmath.h: New.
2478 * config.gcc: Use GCC's tgmath.h on non-glibc systems.
2479 * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
2480 * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
2481 * configure: Regenerate.
2483 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
2485 * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
2486 correct index when setting register save state for xd
2489 2007-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
2491 * config/sh/sh.c (mark_use): Remove.
2493 2007-07-12 Paul Brook <paul@codesourcery.com>
2495 * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
2496 reg does not overlap return value.
2498 2007-07-12 Daniel Berlin <dberlin@dberlin.org>
2500 * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
2501 (set_expression_vuses): Ditto.
2502 (init_pre): Initialize expression_vuses.
2504 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
2506 * config/i386/sse.md (storentdf, storentsf): New.
2508 2007-07-12 Geoffrey Keating <geoffk@apple.com>
2510 * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
2512 * tree.c (build_decl_stat): Move code from here...
2513 (make_node_stat): ... to here. Don't uselessly clear DECL_USER_ALIGN.
2514 (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL. Add comment
2515 about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
2516 * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
2517 * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
2520 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
2521 Devang Patel <dpatel@apple.com>
2523 PR tree-optimization/25413
2524 * targhooks.c (default_builtin_vector_alignment_reachable): New.
2525 * targhooks.h (default_builtin_vector_alignment_reachable): New.
2526 * tree.h (contains_packed_reference): New.
2527 * expr.c (contains_packed_reference): New.
2528 * tree-vect-analyze.c (vector_alignment_reachable_p): New.
2529 (vect_enhance_data_refs_alignment): Call
2530 vector_alignment_reachable_p.
2531 * target.h (vector_alignment_reachable): New builtin.
2532 * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
2533 * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
2534 (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
2536 2007-07-12 Dorit Nuzman <dorit@il.ibm.com>
2538 * target.h (builtin_vectorization_cost): Add new target builtin.
2539 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
2540 * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
2541 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
2542 * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
2543 uninitialized variables.
2544 * tree-vect-transform.c (cost_for_stmt): New function.
2545 (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
2546 using cost 1 for all scalar stmts. Be less conservative when
2547 estimating the number of prologue/epulogue iterations. Call
2548 targetm.vectorize.builtin_vectorization_cost. Return
2549 min_profitable_iters-1.
2550 (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
2551 initialization cost instead of TARG_VEC_STMT_COST. Use
2552 TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
2553 epilogue code. Fix epilogue cost computation.
2554 * config/spu/spu.c (spu_builtin_vectorization_cost): New.
2555 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
2556 * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
2557 (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
2558 (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
2559 (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
2561 2007-07-12 Richard Guenther <rguenther@suse.de>
2563 * gimplify.c (gimplify_conversion): Make sure that the result
2564 from maybe_fold_offset_to_reference is trivially convertible
2565 to the desired type before doing the simplification.
2566 (gimplify_expr): Likewise.
2567 * fold-const.c (fold_binary): Use the correct types for
2568 building the simplified expression.
2570 2007-07-12 Zdenek Dvorak <dvorakz@suse.cz>
2572 PR rtl-optimization/32729
2573 * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
2574 that fallthru to exit.
2576 2007-07-12 Kaz Kojima <kkojima@gcc.gnu.org>
2578 * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
2579 (symDTPOFF2reg): Likewise.
2581 2007-07-11 Daniel Berlin <dberlin@dberlin.org>
2583 PR tree-optimization/32663
2585 * tree.h (VALUE_HANDLE_VUSES): Remove.
2586 (struct tree_value_handle): Remove vuses.
2588 * tree-vn.c (create_value_handle_for_expr): Don't set
2591 * tree-ssa-pre.c (expression_vuses): New.
2592 (alloc_expression_id): Set up expression_vuses.
2593 (get_expression_vuses): New.
2594 (set_expression_vuses): Ditto.
2595 (clear_expression_ids): Modify for expression_vuses.
2596 (phi_translate_1): Ditto.
2597 (phi_translate_set): Ditto.
2598 (value_dies_in_block_x): Ditto
2599 (valid_in_sets): Ditto.
2600 (add_to_sets): Ditto.
2601 (find_existing_value_expr): Ditto.
2602 (create_value_handle_for_expr): Ditto.
2603 (make_values_for_stmt): Ditto.
2604 (vuse_equiv): Remove.
2606 2007-07-11 Alexandre Oliva <aoliva@redhat.com>
2608 * Makefile.in (mostlyclean): Remove object files.
2610 2007-07-11 Kenneth Zadeck <zadeck@naturalbridge.com>
2612 * toplev.c (no_new_pseudos): Deleted.
2613 * rtl.h (no_new_pseudos): Deleted.
2614 * tree-pass.h (pass_no_new_pseudos): Deleted.
2615 * passes.c (pass_no_new_pseudos): Deleted.
2616 * final.c (rest_of_clean_state): Removed no_new_pseudos.
2617 (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
2618 * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with
2620 * cfgcleanup.c (try_crossjump_to_edge): Ditto.
2621 * rtlhooks.c (gen_lowpart_general): Ditto.
2622 * optabs.c (prepare_operand): Ditto.
2623 * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
2625 * modulo-sched.c (rest_of_handle_sms): Ditto.
2626 * see.c (rest_of_handle_see): Ditto.
2627 * ifcvt.c (if_convert): Ditto.
2628 (gate_handle_if_after_combine): Replaced no_new_pseudos with
2630 * init-regs.c (gate_initialize_regs): Deleted set of
2632 * lower-subreg.c (decompose_multiword_subregs): Ditto.
2633 * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
2634 * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
2636 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
2639 * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
2640 (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
2641 (*vec_extractv2di_1_rex64): New insn pattern.
2643 2007-07-11 David Daney <ddaney@avtrex.com>
2645 * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
2646 return address calculation. Substitute DWARF_ALT_FRAME_RETURN_COLUMN
2647 for SIGNAL_UNWIND_RETURN_COLUMN.
2648 * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
2649 (DWARF_FRAME_REGNUM): Rewrite.
2650 (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
2652 2007-07-11 Nick Clifton <nickc@redhat.com>
2654 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
2655 delta and use gen_int_mode in place of GET_INT instead.
2657 2007-07-11 Uros Bizjak <ubizjak@gmail.com>
2659 * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
2662 2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
2664 * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
2665 (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
2667 * params.h (VERIFY_CANONICAL_TYPES): Remove.
2668 (USE_CANONICAL_TYPES): New.
2669 * doc/invoke.texi (verify-canonical-types): Remove.
2670 (use-canonical-types): Add.
2672 2007-07-11 Ulrich Weigand <uweigand@de.ibm.com>
2674 * config/spu/spu.c (spu_optimization_options): Remove setting of
2675 parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
2676 (spu_override_options): Move it here.
2678 2007-07-11 Richard Sandiford <richard@codesourcery.com>
2680 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
2681 * config/mips/mips.c (mips_cpu_info_table): Mention
2682 MIPS_ISA_LEVEL_SPEC in the comment.
2684 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
2686 PR tree-optimization/32713
2687 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
2689 2007-07-11 Paolo Carlini <pcarlini@suse.de>
2692 * c-opts.c (c_common_post_options): Do not change flag_complex_method
2693 conditional to flag_isoc99.
2694 (c_common_init_options): Do it here, unconditionally.
2696 2007-07-11 Eric Botcazou <ebotcazou@adacore.com>
2698 PR tree-optimization/32589
2699 * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
2700 * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
2701 * tree-ssa-propagate.c (valid_gimple_expression_p): New
2702 predicate, extracted from...
2703 (set_rhs): ...here. Call it for the expression on entry.
2704 * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
2705 * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
2706 (simplify_binary_expression): Use valid_gimple_expression_p
2707 to validate the simplification.
2708 * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
2710 2007-07-11 Danny Smith <dannysmith@users.sourceforge.net>
2712 * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
2713 DWARF2_DEBUG on 32 bit target too.
2714 (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.
2716 2007-07-11 Nick Clifton <nickc@redhat.com>
2718 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
2719 version for 64-bit hosts.
2721 2007-07-10 David Daney <ddaney@avtrex.com>
2723 * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
2725 (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of library
2727 * config/mips/mips.c (mips_expand_synci_loop): New function.
2728 * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
2729 (UNSPEC_RDHWR): Same.
2730 (UNSPEC_SYNCI): Same.
2731 (UNSPEC_SYNC): Same.
2732 (clear_cache): New expand.
2736 (clear_hazard): Same.
2737 * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
2739 * testsuite/gcc.target/mips/clear-cache-1.c: New test.
2740 * testsuite/gcc.target/mips/clear-cache-2.c: New test.
2742 2007-07-10 Ian Lance Taylor <iant@google.com>
2744 * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
2747 2007-07-10 David Daney <ddaney@avtrex.com>
2749 * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
2750 * builtins.c (expand_builtin___clear_cache): New function.
2751 (expand_builtin): Call expand_builtin___clear_cache for
2752 BUILT_IN_CLEAR_CACHE case.
2753 * doc/extend.texi (__builtin___clear_cache): Document new builtin.
2754 * doc/md.texi (clear_cache): Document new instruction pattern.
2755 * testsuite/gcc.dg/builtins-64.c: New test.
2757 2007-07-11 Hans-Peter Nilsson <hp@axis.com>
2759 * config/cris/cris.md ("movsi"): Fix typo in last change.
2761 2007-07-09 Geoffrey Keating <geoffk@apple.com>
2764 * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
2766 (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
2767 * varasm.c (assemble_start_function): Honor DECL_ALIGN
2768 for FUNCTION_DECLs. Don't use align_functions_log if
2770 * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
2771 even for FUNCTION_DECLs.
2772 * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
2774 * tree.h (DECL_ALIGN): Update for new location of 'align'.
2775 (DECL_FUNCTION_CODE): Update for new location and name of
2777 (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
2778 (struct tree_decl_common): Move 'align' and 'off_align' out
2779 of union, ensure they're still on a 32-bit boundary. Remove
2780 other fields in union 'u1'.
2781 (struct tree_function_decl): Add field 'function_code' replacing
2782 'u1.f' in tree_decl_common.
2783 * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
2784 * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
2785 (Variable Attributes): Cross-reference 'aligned' attribute
2786 to Function Attributes.
2787 * flags.h (force_align_functions_log): Delete.
2788 * toplev.c (force_align_functions_log): Delete.
2790 2007-07-10 Uros Bizjak <ubizjak@gmail.com>
2793 * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
2794 (*vec_concatv2di_rex): New insn pattern.
2796 2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2799 * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
2801 2007-07-10 Ian Lance Taylor <iant@google.com>
2803 Replace no_new_pseudos in backends.
2804 * rtl.h (can_create_pseudo_p): Define.
2805 * config/darwin.c (machopic_indirect_data_reference): Use
2806 can_create_pseudo_p () instead of no_new_pseudos.
2807 (machopic_indirect_data_reference): Likewise.
2808 (machopic_legitimize_pic_address): Likewise.
2809 * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
2810 (alpha_emit_set_const_1): Likewise.
2811 (alpha_emit_set_const): Likewise.
2812 (alpha_emit_conditional_move): Likewise.
2813 (alpha_split_conditional_move): Likewise.
2814 * config/alpha/alpha.md (various splitters): Likewise.
2816 * config/arm/arm.c (legitimize_pic_address): Likewise.
2817 (arm_load_pic_register): Likewise.
2818 * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
2819 (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
2820 * config/bfin/bfin.c (legitimize_pic_address): Likewise.
2821 * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
2822 * config/cris/cris.md (movsi): Likewise.
2823 * config/frv/frv.md (symGOT2reg_hilo): Likewise.
2824 (symGOTOFF2reg_hilo): Likewise.
2825 (symGPREL2reg, symGPREL2reg_hilo): Likewise.
2826 * config/h8300/h8300.md (insv, extzv): Likewise.
2827 * config/i386/i386.c (ix86_expand_move): Likewise.
2828 (ix86_expand_vector_move): Likewise.
2829 (ix86_prepare_fp_compare_args): Likewise.
2830 (ix86_expand_carry_flag_compare): Likewise.
2831 * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
2832 (tls_dynamic_gnu2_combine_32): Likewise.
2833 (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
2834 * config/ia64/ia64.c (ia64_expand_move): Likewise.
2835 (ia64_expand_movxf_movrf): Likewise.
2836 * config/m32c/m32c.c (m32c_prepare_move): Likewise.
2837 (m32c_split_move): Likewise.
2838 (m32c_expand_insv): Likewise.
2839 * config/m68k/m68k.md (movsi): Likewise.
2840 * config/mips/mips.c (mips_force_temporary): Likewise.
2841 (mips_split_symbol): Likewise.
2842 (mips_move_integer): Likewise.
2843 (mips_legitimize_const_move): Likewise.
2844 * config/mn10300/mn10300.md (movsi): Likewise.
2845 * config/pa/pa.c (emit_move_sequence): Likewise.
2846 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2847 (rs6000_got_register): Likewise.
2848 (create_TOC_reference): Likewise.
2849 (rs6000_machopic_legitimize_pic_address): Likewise.
2850 * config/rs6000/rs6000.md (add<mode>3): Likewise.
2851 (various splitters): Likewise.
2852 (iorsi3, xorsi3, iordi3, xordi3): Likewise.
2853 (movsi_got): Likewise.
2854 * config/s390/s390.c (emit_symbolic_move): Likewise.
2855 * config/s390/s390.md (movhi, movqi): Likewise.
2856 (load_multiple, store_multiple): Likewise.
2857 * config/score/score.c (score_force_temporary): Likewise.
2858 * config/sh/sh.c (prepare_move_operands): Likewise.
2859 (prepare_cbranch_operands): Likewise.
2860 (emit_fpu_switch): Likewise.
2861 (fpscr_set_from_mem): Likewise.
2862 * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
2863 (adddi3, subsi3): Likewise.
2864 (various splitters): Likewise.
2865 (divsi_inv_fp_combine): Likewise.
2866 (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
2867 (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
2869 * config/sh/predicates.md (xor_operand): Likewise.
2870 * config/sparc/sparc.c (legitimize_tls_address): Likewise.
2871 * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
2872 (movdi_pic_label_ref): Likewise.
2873 * config/spu/spu.c (spu_split_immediate): Likewise.
2874 * config/alpha/alpha.md (various splitters): Remove test
2875 !no_new_pseudos || reload_completed.
2876 * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
2878 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2879 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
2880 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2881 * config/score/score.c (th_output_mi_thunk): Likewise.
2882 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2883 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2885 2007-07-10 Kaz Kojima <kkojima@gcc.gnu.org>
2887 PR rtl-optimization/32664
2888 * mode-switching.c (create_pre_exit): Skip barrier insns.
2890 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
2892 * tree-scalar-evolution.c (scev_const_prop): Add arguments to
2893 force_gimple_operand_bsi.
2894 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
2895 rewrite_use_compare): Ditto.
2896 * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
2898 * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
2899 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2900 * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
2901 * tree-profile.c (prepare_instrumented_value,
2902 tree_gen_interval_profiler, tree_gen_pow2_profiler,
2903 tree_gen_one_value_profiler, tree_gen_ic_profiler,
2904 tree_gen_ic_func_profiler, tree_gen_average_profiler,
2905 tree_gen_ior_profiler): Ditto.
2906 * tree-ssa-reassoc.c (negate_value): Ditto.
2907 * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
2908 Use force_gimple_operand_bsi.
2909 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2910 * tree-if-conv.c (add_to_dst_predicate_list,
2911 find_phi_replacement_condition): Ditto.
2912 * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
2913 Call mark_symbols_for_renaming for new statements.
2914 * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
2916 2007-07-10 Zdenek Dvorak <dvorakz@suse.cz>
2918 * cfghooks.c (remove_edge): New function.
2919 (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
2921 * cfghooks.h (remove_edge): Declare.
2922 * cfg.c (remove_edge): Renamed to remove_edge_raw.
2923 * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
2925 2007-07-09 Wolfgang Gellerich <gellerich@de.ibm.com>
2927 * optabs.h: Added declaration for signbit_optab.
2928 * optabs.c: (init_optabs): Added initialization for signbit_optab.
2929 * genoptinit.c (optabs): Added entry for signbit insns.
2930 * builtins.c (expand_builtin_signbit): Added code to use a signbit
2932 * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.
2933 * config/s390/s390.md (signbit<mode>2): New expander.
2935 2007-07-09 Richard Guenther <rguenther@suse.de>
2938 * fold-const.c (fold_plusminus_mult_expr): Move constant
2939 arguments second to allow decomposing.
2941 2007-07-09 Alexandre Oliva <aoliva@oliva.athome.lsd.ic.unicamp.br>
2944 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
2946 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2947 Disregard DECL_FROM_INLINE.
2949 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
2952 * doc/invoke.texi: Add ftree-reassoc flag.
2953 * common.opt (ftree-reassoc): New flag.
2954 * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
2955 (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
2957 2007-07-09 Uros Bizjak <ubizjak@gmail.com>
2959 PR tree-optimization/32681
2960 * tree-if-conv.c (find_phi_replacement_condition): Use the condition
2961 saved in second_edge->aux when first_bb is a loop header.
2963 2007-07-09 Jan HUbicka <jh@suse.cz>
2965 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
2967 2007-07-09 Richard Guenther <rguenther@suse.de>
2969 * c-decl.c (start_function): Do not promote return type.
2971 2007-07-08 Daniel Franke <franke.daniel@gmail.com>
2973 * function.c (do_warn_unused_parameter): Do not warn if
2974 TREE_NO_WARNING is set.
2976 2007-07-08 Andreas Schwab <schwab@suse.de>
2978 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
2980 2007-07-08 Sandra Loosemore <sandra@codesourcery.com>
2983 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
2985 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2986 apply to assembly language, too.
2987 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2989 2007-07-07 Daniel Berlin <dberlin@dberlin.org>
2991 Revert (note the sccvn portions are *not* reverted)
2992 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
2994 Fix PR tree-optimization/23488
2996 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2998 * tree-flow-inline.h (get_value_handle): Ditto.
2999 * tree-ssa-pre.c (decl_vh_map): New.
3000 (decl_node_pool): New.
3001 (can_value_number_operation): Support DECL_P.
3002 (can_PRE_operation): Ditto.
3003 (create_expression_by_pieces): Ditto.
3004 (find_existing_value_expr): Modify to differnetiate between
3005 addressing and top level.
3006 (create_value_handle_for_expr): Handle DECL's.
3007 (poolify_tree): Ditto.
3008 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
3009 (make_values_for_stmt): Handle DECL's properly.
3010 (init_pre): Reorg to not init useless things during FRE.
3012 * tree-flow.h: Include pointer-set.h.
3013 (decl_vh_map): Declare.
3014 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
3016 2007-07-07 Eric Weddington <eweddington@cso.atmel.com>
3018 * config/avr/constraints.md (define_memory_constraint "Q"): Fix
3019 the constraint description.
3020 * doc/md.texi: Update documentation of AVR constraints.
3022 2007-07-07 Kazu Hirata <kazu@codesourcery.com>
3024 * auto-inc-dec.c, config/arm/arm.c,
3025 config/m32r/constraints.md, config/mips/mips.md,
3026 config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
3027 df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
3028 tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
3029 typos. Follow spelling conventions.
3030 * doc/invoke.texi, doc/rtl.texi: Fix typos.
3032 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3033 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3035 * tree-ssa-operands.c (realloc_vop, realloc_vdef,
3036 realloc_vuse): Remove.
3037 * tree-ssa-operands.h: Remove the prototype for realloc_vdef
3040 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
3042 Fix PR tree-optimization/23488
3044 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
3045 (try_to_simplify): Ditto.
3047 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
3049 * tree-flow-inline.h (get_value_handle): Ditto.
3050 * tree-ssa-pre.c (decl_vh_map): New.
3051 (decl_node_pool): New.
3052 (can_value_number_operation): Support DECL_P.
3053 (can_PRE_operation): Ditto.
3054 (create_expression_by_pieces): Ditto.
3055 (find_existing_value_expr): Modify to differnetiate between
3056 addressing and top level.
3057 (create_value_handle_for_expr): Handle DECL's.
3058 (poolify_tree): Ditto.
3059 (make_values_for_phi): Don't insert into PHI_GEN during FRE.
3060 (make_values_for_stmt): Handle DECL's properly.
3061 (init_pre): Reorg to not init useless things during FRE.
3063 * tree-flow.h: Include pointer-set.h.
3064 (decl_vh_map): Declare.
3065 * Makefile.in (TREE_FLOW_H): Add pointer-set.h
3067 2007-07-06 Sandra Loosemore <sandra@codesourcery.com>
3069 * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
3070 apply to assembly language, too.
3071 * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
3073 2007-07-06 Ian Lance Taylor <iant@google.com>
3074 Zack Weinberg <zackw@panix.com>
3077 * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
3079 2007-07-06 Richard Sandiford <richard@codesourcery.com>
3081 * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
3082 (prefetch): Likewise if "pref" would be used.
3084 2007-07-06 Josh Conner <jconner@apple.com>
3088 * calls.c (store_one_arg): Handle arguments which are partially
3089 on the stack when detecting argument overlap.
3091 2007-07-06 Bernd Schmidt <bernd.schmidt@analog.com>
3093 * reload1.c (choose_reload_regs): Set reload_spill_index for regs
3094 chosen during find_reloads.
3096 2007-07-06 Richard Guenther <rguenther@suse.de>
3098 * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
3099 TYPE_ARG_TYPES for verification of argument types. Use
3100 DECL_ARG_TYPE instead of the PARM_DECL type. Take excess
3101 parameters as variable arguments.
3103 2007-07-06 Andreas Krebbel <krebbel1@de.ibm.com>
3105 * libgcc2.h (word_type): Type definition removed.
3106 (cmp_return_type, shift_count_type): Type definitions added.
3107 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
3108 replaced with shift_count_type.
3109 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
3111 * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
3112 changed from word_type to Wtype.
3113 (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
3114 replaced with shift_count_type.
3115 (__cmpdi2, __ucmpdi2): word_type of return type replaced with
3117 * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
3118 and libgcc_shift_count attribute added.
3119 * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
3120 TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
3121 (TARGET_INITIALIZER): New target hooks added.
3122 * targhooks.c (default_libgcc_cmp_return_mode,
3123 default_libgcc_shift_count_mode): Default implementations for the new
3125 * targhooks.h (default_libgcc_cmp_return_mode,
3126 default_libgcc_shift_count_mode): Function prototypes added.
3127 * target.h (struct gcc_target): Fields for the new target hooks added.
3128 * optabs.c (expand_binop): Use shift_count_mode when expanding shift
3130 (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
3133 * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
3134 TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
3136 * config/s390/s390.c (s390_libgcc_cmp_return_mode,
3137 s390_libgcc_shift_count_mode): Functions added.
3138 (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
3139 Target hooks defined.
3141 2007-07-06 Richard Sandiford <richard@codesourcery.com>
3143 * config/mips/mips.c (compute_frame_size): Restore the original
3144 gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
3145 fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
3146 Document why the difference is needed.
3148 2007-07-06 Richard Guenther <rguenther@suse.de>
3150 * c-common.c (boolean_increment): Use correctly typed
3153 2007-07-06 Richard Sandiford <richard@codesourcery.com>
3155 * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
3156 the topmost argument register is not also included in the save mask.
3157 (mips16e_collect_argument_save_p): Take a pointer to the argument
3158 register, rather than a pointer to the number of arguments.
3159 (mips16e_collect_argument_saves): Only include argument saves
3160 that aren't in the register mask.
3162 2007-07-06 Uros Bizjak <ubizjak@gmail.com>
3164 PR rtl-optimization/32450
3165 * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
3166 to ensure that instructions are not moved into the prologue when
3167 profiling is on. Remove unused prologue_end variable.
3168 (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
3169 as a scheduling barrier.
3171 2007-07-06 Alexandre Oliva <aoliva@redhat.com>
3174 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
3175 Disregard DECL_FROM_INLINE.
3177 2007-07-05 Adam Nemet <anemet@caviumnetworks.com>
3179 * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
3180 IORing with a constant.
3182 2007-07-05 Seongbae Park <seongbae.park@gmail.com>
3184 PR rtl-optimization/32475
3185 * df-scan.c (df_def_record_1): Add a use of the stack pointer
3186 for every definition of the stack pointer.
3188 2007-07-05 Richard Earnshaw <rearnsha@arm.com>
3190 * arm.c (vfp3_const_double_index): Copy signed results of
3191 REAL_VALUE_TO_INT into unsigned vars.
3193 2007-07-05 Richard Guenther <rguenther@suse.de>
3196 * alias.c (get_alias_set): Tread METHOD_TYPE the same as
3198 * tree-ssa.c (useless_type_conversion_p): Check canonical
3201 2007-07-05 Anatoly Sokolov <aesok@post.ru>
3203 * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2,
3204 zero_extendhisi2): Change to define_insn_and_split.
3205 (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
3207 2007-07-05 Paolo Bonzini <bonzini@gnu.org>
3209 * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
3210 pass_match_asm_constraints): New.
3211 * passes.c (init_optimization_passes): Add new pass.
3212 * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
3213 * function.h (struct function): Add has_asm_statement bit.
3214 (current_function_has_asm_statement): New.
3215 * tree-pass.h (pass_match_asm_constraints): New.
3217 2007-07-05 Richard Sandiford <rsandifo@nildram.co.uk>
3219 * config/mips/mips.c (mips_file_start): Avoid declaration
3222 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
3224 * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
3226 2007-07-05 Uros Bizjak <ubizjak@gmail.com>
3228 * rtl.def (NOTE): Change print format string to print
3229 operand 5 as a note insn name.
3231 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
3232 David Ung <davidu@mips.com>
3234 * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
3235 * doc/invoke.texi: (MIPS Options): Document them.
3237 2007-07-05 Sandra Loosemore <sandra@codesourcery.com>
3238 David Ung <davidu@mips.com>
3240 Add support for SmartMIPS ASE.
3242 * optabs.c (expand_binop_directly): New, broken out from...
3243 (expand_binop): Here. Make it try rotating in the other
3244 direction even when the second operand isn't constant.
3245 * config/mips/mips.md (*lwxs): New.
3246 * config/mips/mips.opt (msmartmips): New.
3247 * config/mips/mips.c (mips_lwxs_address_p): New.
3248 (mips_rtx_costs): Make it recognize scaled indexed addressing.
3249 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
3250 __mips_smartmips when compiling for TARGET_SMARTMIPS.
3251 (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
3252 (ISA_HAS_LWXS): New.
3253 (ASM_SPEC): Add -msmartmips/-mno-smartmips.
3254 * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
3255 * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
3256 * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
3257 * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
3258 * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
3259 * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
3261 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
3263 * tree-vectorizer.c (new_loop_vec_info): Initialize
3264 LOOP_VINFO_COST_MODEL_MIN_ITERS.
3265 * tree-vectorizer.h (_loop_vec_info): Added new filed
3266 min_profitable_iters.
3267 (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
3268 (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
3269 * tree-vect-analyze.c (vect_analyze_operations): Set
3270 LOOP_VINFO_COST_MODEL_MIN_ITERS.
3271 * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
3272 VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
3273 Fix calculation of peel_iters_prologue. Move consideration of epilogue
3274 and prologue cost to after they are computed.
3275 (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
3277 (vect_model_simple_cost): Takes additional argument dt. Consider cost
3278 of creating vectors from scalars according to dt.
3279 (vect_model_store_cost): Likewise.
3280 (vectorizable_call): Use dt array instead of scalar dt. Call
3281 vect_model_simple_cost with additional argument dt.
3282 (vectorizable_assignment): Likewise.
3283 (vectorizable_operation): Likewise.
3284 (vectorizable_type_demotion): Likewise.
3285 (vectorizable_type_promotion): Likewise.
3286 (vectorizable_store): Use dt array instead of scalar dt. Call
3287 vect_model_store_cost with additional argument dt.
3288 (vect_do_peeling_for_loop_bound): Don't call
3289 vect_estimate_min_profitable_iters. Instead, lookup
3290 LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
3291 "may not be profitable".
3293 2007-07-05 Dorit Nuzman <dorit@il.ibm.com>
3296 * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
3297 (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
3298 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
3299 (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns.
3301 2007-07-05 Zdenek Dvorak <dvorakz@suse.cz>
3303 * config/i386/i386.c (ix86_address_cost): Do not consider more complex
3304 addressing modes cheaper.
3306 2007-07-05 Alexandre Oliva <aoliva@redhat.com>
3308 * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
3309 (dw_ranges_struct): Rename block_num to num. Adjust.
3310 (dw_ranges_by_label_struct): New.
3311 (ranges_by_label, ranges_by_label_allocated,
3312 ranges_by_label_in_use): New variables.
3313 (add_ranges_num): Factored most of the code out of...
3314 (add_ranges): ... this one. Rewrite in terms of the former.
3315 (add_ranges_by_labels): New.
3316 (output_ranges): Output by-label ranges.
3317 (dwarf2out_finish): Output range for multiple-section
3318 compile_unit. Output standard DW_AT_low_pc in addition to
3319 unexpected DW_AT_entry_pc.
3321 2007-07-04 Daniel Berlin <dberlin@dberlin.org>
3323 PR tree-optimization/32604
3324 PR tree-optimization/32606
3326 * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
3327 (compute_antic_safe): Removed.
3328 (ANTIC_SAFE_LOADS): Ditto.
3329 (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
3330 (execute_pre): Don't call compute_antic_safe.
3331 (vuse_equiv): New function.
3332 (make_values_for_stmt): Use it
3333 * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
3336 2007-07-04 Anatoly Sokolov <aesok@post.ru>
3339 * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
3341 (avr_attribute_table): Make "naked" attribute apply to function types
3342 rather than to decls.
3343 (avr_handle_fntype_attribute): New function.
3345 2007-07-04 Joseph Myers <joseph@codesourcery.com>