1 2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
4 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
7 2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
9 * configure.ac: Fixed typo in case statement: :: changed to ;;
11 2006-11-06 Bob Wilson <bob.wilson@acm.org>
13 * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
14 count_leading_zeros, and count_trailing_zeros.
15 * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
16 (TARGET_FOLD_BUILTIN): Define.
17 (TARGET_EXPAND_BUILTIN): Define.
18 (xtensa_init_builtins): New.
19 (xtensa_fold_builtin): New.
20 (xtensa_expand_builtin): New.
21 (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT.
22 * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
23 (CLZ_DEFINED_VALUE_AT_ZERO): Define.
24 (CTZ_DEFINED_VALUE_AT_ZERO): Define.
25 * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
26 (any_extend): New code macro.
27 (u, su): New code attributes.
28 (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
29 (nsau): Remove; replaced by clzsi2.
31 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
32 _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz.
33 * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
34 (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
35 (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
37 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
39 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
41 * config/arm/t-strongarm-elf: Likewise.
42 * config/arm/t-pe: Likewise.
43 * config/arm/t-arm-elf: Likewise.
44 * config/arm/t-xscale-elf: Likewise.
45 * config/arm/t-arm-coff: Likewise.
46 * config/arm/t-xscale-coff: Likewise.
47 * config/arm/t-wince-pe: Likewise.
49 2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
51 * config/sh/lib1funcs-4-300.asm: Guard entire file with
54 2006-11-05 Jakub Jelinek <jakub@redhat.com>
57 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
60 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
63 * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
64 as a valid 80387 constant.
65 (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
66 * config/i386/i386.md (unnamed splitter): Split the load of
67 constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed
70 2006-11-04 Richard Earnshaw <rearnsha@arm.com>
72 * arm.c (thumb_legitimate_addres_p): Allow any constant offset
73 from the soft-frame, argument and virtual registers.
75 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
77 * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
78 patterns for standard 80387 constants.
80 2006-11-03 Paolo Bonzini <bonzini@gnu.org>
81 Steven Bosscher <steven@gcc.gnu.org>
84 * Makefile.in: Add fwprop.o.
85 * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
86 * passes.c (init_optimization_passes): Schedule forward propagation.
87 * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
89 * timevar.def (TV_FWPROP): New.
90 * common.opt (-fforward-propagate): New.
91 * opts.c (decode_options): Enable forward propagation at -O2.
92 * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
93 * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
94 canon_for_address, table_size): Remove.
95 (new_basic_block, insert, remove_from_table): Remove references to
97 (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
98 simplification loop more straightforward by not calling fold_rtx
100 (equiv_constant): Move here a small part of fold_rtx_subreg,
101 do not call fold_rtx. Call avoid_constant_pool_reference
103 * recog.h (canonicalize_change_group): New.
105 * doc/invoke.texi (Optimization Options): Document fwprop.
106 * doc/passes.texi (RTL passes): Document fwprop.
108 2006-11-03 Geoffrey Keating <geoffk@apple.com>
110 * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
111 (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
112 (grokdeclarator): Likewise.
114 2006-11-03 Steven Bosscher <steven@gcc.gnu.org>
116 * tree-dump.c (dump_enable_all): Rename local variable
117 ir_type to avoid name conflicts.
118 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
119 instead of using ir_type().
120 * profile.c (tree_register_profile_hooks): Likewise.
121 * value-prof.c (tree_register_value_prof_hooks): Likewise.
122 * basic-block.h (struct edge_def): Likewise.
123 * config/arm/arm.c (legitimize_pic_address): Likewise.
124 * coretypes.h (ir_type): New enum of all intermediate languages
126 * cfghooks.c (ir_type): Rename to...
127 (current_ir_type): ...this. Distinguish between cfgrtl and
128 cfglayout mode when the current IR is RTL. Return enum ir_type.
129 * cfghooks.h (ir_type): Replace with current_ir_type prototype.
131 2006-11-03 Paul Brook <paul@codesourcery.com>
133 * config/arm/arm.c (arm_file_start): New function.
134 (TARGET_ASM_FILE_START): Define.
135 (arm_default_cpu): New variable.
136 (arm_override_options): Set arm_default_cpu.
138 2006-11-03 David Ung <davidu@mips.com>
140 * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
141 PROCESSOR_24KC and PROCESSOR_24KF.
142 * config/mips/mips.c (mips_cpu_info_table): Add processor names
143 and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
144 (mips_rtx_cost_data): Add costs for the 24kc.
145 * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
146 * config/mips/24k.md: Remove references to 24k and replace with
147 uses of 24kc/24kf in the appropriate reservations.
148 * doc/invoke.texi (MIPS Options): Updated.
150 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
152 * config/sh/crt1.asm: Fix #ifdef indent.
154 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
155 Merged from STMicroelectronics sources:
156 2006-10-06 Andrew Stubbs <andrew.stubbs@st.com>
157 * config/sh/crt1.asm (vbr_600): Add missing #if.
158 2006-08-03 J"orn Rennecke <joern.rennecke@st.com>
159 * sh.opt (mfused-madd): New option.
160 * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
161 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
162 * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
163 Remove pointless handler at VBR+0.
164 (vbr_200, vbr_300, vbr_500): Remove pointless handler.
165 (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
166 fr7. Make sure the timer handler is called with the correct FPU
167 precision setting, according to the ABI.
168 2006-06-14 J"orn Rennecke <joern.rennecke@st.com>
169 * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
170 * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
171 (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
172 2006-06-09 J"orn Rennecke <joern.rennecke@st.com>
173 * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept
174 zero as second operand.
175 2006-04-28 J"orn Rennecke <joern.rennecke@st.com>
176 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
177 Fixed some bugs related to negative values, in particular -0
178 and overflow at -0x80000000.
179 * config/sh/divcost-analysis: Added sh4-300 figures.
180 2006-04-27 J"orn Rennecke <joern.rennecke@st.com>
181 * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
182 2006-04-26 J"orn Rennecke <joern.rennecke@st.com>
183 * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
184 ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
185 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
187 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
189 2006-04-24 J"orn Rennecke <joern.rennecke@st.com>
190 SH4-300 scheduling description & fixes to SH4-[12]00 description:
191 * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
192 mac_mem, mem_mac, dfp_mul, fp_cmp.
193 (insn_class, dfp_comp, any_fp_comp): Update.
194 (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
195 (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
196 (muldf3_i): Likewise.
197 (movsi_i): Split rI08 alternative into two separate alternatives.
199 (movsi_ie, movsi_i_lowpart): Likewise.
200 (movqi_i): Split ri alternative into two separate alternatives.
202 * sh1.md (sh1_load_store, sh1_fp): Update.
203 * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
204 (mac_mem, sh4_fpscr_toggle): New insn_reservations.
205 * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
206 (sh4a_fp_double_arith): Likewise.
207 * sh4-300.md: New file.
208 * sh.c (sh_handle_option): Handle m4-300* options.
209 (sh_adjust_cost): Fix latency of auto-increments.
210 Handle SH4-300 differently than other SH4s. Check for new insn types.
211 * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
212 been set by an option.
213 * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
214 (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
215 (mbranch-cost=): Likewise.
216 * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
218 * sh.md (mulsf3): Remove special expansion code.
219 (mulsf3_ie): Now a define_insn_and_split.
220 (macsf3): Allow for TARGET_SH4.
222 * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
223 * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
224 (expand_cbranchdi4): Likewise.
225 (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
226 CONST_DOUBLE if the outer code is COMPARE.
227 * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
228 TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
229 (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
230 (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
231 Remove redundant fp_{zero,one}_operand checks.
232 * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
233 * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
234 (expand_cbranchdi4): Likewise.
235 2006-04-20 J"orn Rennecke <joern.rennecke@st.com>
236 * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
238 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
240 * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
243 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
245 * doc/invoke.texi: Fix mfp-trap-mode typo.
247 2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
249 * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
250 * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
251 file_end_indicate_exec_stack.
252 * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
254 * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
255 for a non-executable stack.
256 * crti.asm: Likewise.
257 * crtn.asm: Likewise.
258 * libunwind.S: Likewise.
260 2006-11-02 Ben Elliston <bje@au.ibm.com>
262 * tree-ssa.c (warn_uninit): Use expand_location variables for
263 locus and declaration locus.
265 2006-11-02 Kaz Kojima <kkojima@gcc.gnu.org>
268 * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
269 (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
270 cmp{eq,gt,gtu}{si,di}_media.
271 (*cmpne0si_media): Remove.
272 (*movsicc_umin): Adjust gen_cmp*_media call.
273 (unordered): Change the mode of unordered and operands[1] to
275 (seq): Adjust gen_cmp*_media calls. Make the mode of
276 a temporary result of compare SImode if needed. If the mode
277 of operands[0] is DImode, extend the temporary result to DImode.
278 (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
279 (sunorderd): Change the mode of match_operand and unorderd to
281 (cmpeq{sf,df}_media): Remove.
282 (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
283 (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
284 and compare operation to SImode.
286 2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
288 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
290 (sparc64-sun-solaris2*): Likewise.
292 2006-11-02 Paul Brook <paul@codesourcery.com>
294 * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
295 from priority argument. Use different section for non-default
297 * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
299 2006-11-02 Eric Botcazou <ebotcazou@adacore.com>
302 * except.c (switch_to_exception_section): Do not cache the section
303 if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
304 and flag_function_sections is set.
306 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
309 * builtins.c (do_mpfr_sincos): New.
310 (fold_builtin_1): Use it to fold builtin sincos.
312 2006-11-01 Roger Sayle <roger@eyesopen.com>
314 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
315 it into -D_REENTRANT.
317 2006-11-01 Roger Sayle <roger@eyesopen.com>
319 * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
320 whether the assembler supports taking the difference of symbols in
321 different sections. On x86/Solaris, GAS does but Solaris as doesn't.
322 * configure: Regenerate.
323 * config.in: Regenerate.
324 * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
325 the assembler doesn't support taking the difference of symbols in
326 different sections, i.e. we're using the native solaris assembler.
328 2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
329 Peter Bergner <bergner@vnet.ibm.com>
331 * doc/invoke.texi: Add cpu_type power6x
332 (RS/6000 and PowerPC Options): Add -mmfpgpr.
333 * config.gcc: Add cpu_type power6x.
334 * configure.ac: Add test for mf{t,f}gpr instructions.
335 (HAVE_AS_MFPGPR): New.
336 * config.in: Regenerate.
337 * configure: Regenerate.
338 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
339 * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
340 shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
341 and mftgpr attributes.
342 (define_attr "cpu"): Add power6.
343 Change instruction sequences to use new attributes.
344 (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
345 (fix_truncdfsi2_mfpgpr): New.
346 (floatsidf_ppc64_mfpgpr): New.
347 (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
348 (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
349 (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
350 (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
351 (fix_truncdfsi2): Use gpc_reg_operand constraint.
352 * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
353 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
354 Add descriptions for insert_dword, shift,trap,var_shift_rotate,
355 cntlz,exts and var_delayed_compare.
356 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
357 _ARCH_PWR6X, if features enabled.
358 * config/rs6000/rs6000.opt (mmfpgpr): New.
359 * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
360 (cached_can_issue_more): New variable.
361 (processor_costs): Add power6_cost.
362 (rs6000_sched_init): New function.
363 (is_dispatch_slot_restricted): Deleted.
364 (set_to_load_agen): New function.
365 (is_load_insn,is_store_insn): New functions.
366 (adjacent_mem_locations): New function.
367 (insn_must_be_first_in_group): New function.
368 (insn_must_be_last_in_group): New function.
369 (rs6000_sched_reorder): New function.
370 (rs6000_sched_reorder2): New function.
371 (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
372 TARGET_SCHED_REORDER2): Define.
373 (processor_target_table): Use PROCESSOR_POWER6 for power6.
374 Add power6x. Add MASK_MFPGPR for power6x.
375 (POWERPC_MASKS): Add MASK_MFPGPR.
376 (rs6000_override_options): Set rs6000_always_hint to false
377 for power6. Set rs6000_align_branch_targets. Replace
378 rs6000_sched_groups check with rs6000_align_branch_targets.
379 Use PROCESSOR_POWER6.
380 (last_scheduled_insn): New variable.
381 (load_store_pendulum): New variable.
382 (rs6000_variable_issue): Set last_scheduled_insn and
383 cached_can_issue_more.
384 (rs6000_adjust_cost): Add power6 cost adjustments.
385 (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
386 with insn_must_be_first_in_group. Add power6 priority adjustments.
387 (rs6000_issue_rate): Add CPU_POWER6.
388 (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
389 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
390 (TARGET_MFPGPR): New.
391 (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
392 (ASM_CPU_SPEC): Add power6x.
393 (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
395 * config/rs6000/power6.md: New file.
397 2006-11-01 Adam Nemet <anemet@caviumnetworks.com>
399 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
400 HOST_WIDE_INT_PRINT to print high and low parts. Use
401 HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When
402 printing a hexadecimal number prefix it with 0x.
404 2006-11-01 Chris Johns <chris@contemporary.net.au>
407 * Makefile.in (install-driver): Use exeext when installing
408 $target-gcc-$version.
410 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
412 * c-common.c (flag_cpp0x): New.
413 * c-common.h (flag_cpp0x): New.
414 * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
415 supported, define __GXX_EXPERIMENTAL_CPP0X__.
416 * c-opts.c (set_std_cxx0x): New.
417 (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
418 * c.opt (std=c++0x): Document.
419 (std=gnu++0x): Ditto.
420 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
421 * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
423 2006-11-01 Richard Guenther <rguenther@suse.de>
425 * config/i386/i386.c (ix86_expand_rint): Fix issues with
427 (ix86_expand_floorceildf_32): Likewise.
428 (ix86_expand_floorceil): Likewise.
429 (ix86_expand_trunc): Likewise.
431 2006-10-31 Andrew Pinski <pinskia@gmail.com>
433 * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
436 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
438 * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
440 * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
442 * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
444 * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
445 * configure.ac (use_cxa_atexit): As a special case, don't test
446 for libc definition of __cxa_atexit on mingw32
447 * configure: Regenerate.
448 * config.gcc (i[34567]86-pc-mingw32): Default to
449 enable__cxa_atexit=yes.
451 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
453 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
455 2006-10-31 Geoffrey Keating <geoffk@apple.com>
458 * c-decl.c (start_struct): Don't create self-containing
460 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
462 * config/rs6000/rs6000-protos.h
463 (darwin_rs6000_special_round_type_align): New.
464 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
465 (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
467 2006-10-31 Geoffrey Keating <geoffk@apple.com>
469 * toplev.c (compile_file): Call final_write_globals
470 even if there have been errors.
472 2006-10-31 Eric Christopher <echristo@apple.com>
473 Falk Hueffner <falk@debian.org>
475 * doc/extend.texi (__builtin_bswap32): Document.
476 (__builtin_bswap64): Ditto.
477 * doc/libgcc.texi (bswapsi2): Document.
479 * doc/rtl.texi (bswap): Document.
480 * optabs.c (expand_unop): Don't widen a bswap.
481 (init_optabs): Init bswap. Set libfuncs explicitly
482 for bswapsi2 and bswapdi2.
483 * optabs.h (OTI_bswap): New.
484 (bswap_optab): Ditto.
485 * genopinit.c (optabs): Handle bswap_optab.
486 * tree.h (tree_index): Add TI_UINT32_TYPE and
488 (uint32_type_node): New.
489 (uint64_type_node): Ditto.
490 * tree.c (build_common_tree_nodes_2): Initialize
491 uint32_type_node and uint64_type_node.
492 * builtins.c (expand_builtin_bswap): New.
493 (expand_builtin): Call.
494 (fold_builtin_bswap): New.
495 (fold_builtin_1): Call.
496 * fold-const.c (tree_expr_nonnegative_p): Return true
498 * builtin-types.def (BT_UINT32): New.
500 (BT_FN_UINT32_UINT32): Ditto.
501 (BT_FN_UINT64_UINT64): Ditto.
502 * builtins.def (BUILT_IN_BSWAP32): New.
503 (BUILT_IN_BSWAP64): Ditto.
504 * rtl.def (BSWAP): New.
505 * genattrtab.c (check_attr_value): New.
506 * libgcc2.c (__bswapSI2): New.
508 * libgcc2.h (__bswapSI2): Declare.
510 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
511 * simplify-rtx.c (simplify_const_unary_operation): Return
513 * libgcc-std.ver (__bwapsi2): Add.
515 * reload1.c (eliminate_regs_1): Add bswap.
516 (elimination_effects): Ditto.
517 * config/i386/i386.h (x86_bswap): New.
519 * config/i386/i386.c (x86_bswap): Set.
521 2006-10-31 Geoffrey Keating <geoffk@apple.com>
523 * coverage.c (coverage_checksum_string): Update comment.
524 * dwarf2out.c (switch_to_eh_frame_section): Update for removal
525 of get_file_function_name.
526 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
527 of get_file_function_name_long.
528 * tree.c (get_file_function_name): Rename from
529 get_file_function_name_long; improve comment; handle 'I' and 'D'
530 specially when the target has ctor/dtor support; remove special
532 (get_file_function_name): Remove.
533 * tree.h (get_file_function_name): Rename from
534 get_file_function_name_long.
535 (get_file_function_name): Remove prototype.
537 2006-10-31 Geoffrey Keating <geoffk@apple.com>
539 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
540 * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
542 * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
543 Call dsymutil when compiling and linking one or more source files
546 2006-10-31 Geoffrey Keating <geoffk@apple.com>
549 * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
551 2006-10-31 Geoffrey Keating <geoffk@apple.com>
553 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
554 inline static functions in c99 mode.
557 * doc/extend.texi (Inline): Update.
558 * c-tree.h (struct language_function): Remove field 'extern_inline'.
559 * c-decl.c (current_extern_inline): Delete.
560 (pop_scope): Adjust test for an undefined nested function.
561 Add warning about undeclared inline function.
562 (diagnose_mismatched_decls): Update comments. Disallow overriding
563 of inline functions in a translation unit in C99. Allow inline
564 declarations in C99 at any time.
565 (merge_decls): Boolize variables. Handle C99 'extern inline'
567 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
568 C99 inline semantics.
569 (start_function): Don't clear current_extern_inline. Don't set
571 (c_push_function_context): Don't push current_extern_inline.
572 (c_pop_function_context): Don't restore current_extern_inline.
575 * c-typeck.c (build_external_ref): Warn about static variables
576 used in extern inline functions.
577 * c-decl.c (start_decl): Warn about static variables declared
578 in extern inline functions.
580 2006-10-31 Roger Sayle <roger@eyesopen.com>
583 * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
584 * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
585 pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
586 or y is an even integer.
588 2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
591 * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
592 * gthr-posix95.h (__gthread_active_p): Likewise.
594 2006-10-31 Richard Guenther <rguenther@suse.de>
596 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
597 acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
598 expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
599 exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
600 ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
601 lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
602 lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
603 btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
606 2006-10-31 Steven Bosscher <steven@gcc.gnu.org>
608 * opts.c (decode_options): Disable CSE skip blocks.
610 2006-10-30 Dirk Mueller <dmueller@suse.de>
612 * c-common.h (strict_aliasing_warning): Fix whitespace.
613 * c-decl (start_function): Move code for main decl warning ..
614 * c-common.c (check_main_parameter_types): .. here.
615 * c-common.h (check_main_parameter_types): Declare.
617 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
620 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
622 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
624 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
625 be a PARALLEL containing sets. Return false when out_pat is not
628 2006-10-30 Richard Sandiford <richard@codesourcery.com>
630 * config/mips/mips.md (mul<mode>3): Split into...
631 (mulsi3, muldi3): ...these separate patterns.
633 2006-10-30 Richard Sandiford <richard@codesourcery.com>
635 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
636 but with each set of options separated by spaces.
638 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
640 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
641 dwarf_reg_size_table has been initialized.
643 2006-10-30 Roger Sayle <roger@eyesopen.com>
645 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
646 * ddg.c (print_ddg_edge): Likewise.
647 * dwarf2out.c (prune_unused_types_walk): Likewise.
648 * ifcvt.c (noce_try_cmove_arith): Likewise.
649 * langhooks.c (add_builtin_function): Likewise.
650 * reg-stack.c (subst_stack_regs_pat): Likewise.
651 * tree.c (expanded_location): Likewise.
652 * tree-dump.c (dequeue_and_dump): Likewise.
654 2006-10-30 David Daney <ddaney@avtrex.com>
656 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
658 2006-10-30 Jakub Jelinek <jakub@redhat.com>
660 PR tree-optimization/29637
661 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
662 of the innertype is the innertype itself.
664 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
666 * dwarf2out.c (file_name_acquire): Correct typo.
668 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
670 * tree.h (tree_value_handle): Remove struct value_set declaration.
671 Change value_set to bitmap_set.
672 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
673 * tree-vn.c (get_value_handle): Made inline and moved to
675 * tree-flow-inline.h: (has_stmt_ann): New function.
676 * tree-ssa-pre.c (expressions): New variable.
677 (next_expression_id): Ditto.
678 (alloc_expression_id): New function.
679 (struct value_set): Remove.
680 (get_expression_id): New function.
681 (get_or_alloc_expression_id): Ditto.
682 (expression_for_id): Ditto.
683 (clear_expression_ids): Ditto.
684 (FOR_EACH_EXPR_ID_IN_SET): New macro.
685 (bb_value_sets): Renamed to bb_bitmap_sets.
686 All value sets replaced with bitmap_sets.
688 (BB_VISITED): New macro.
689 (postorder): New variable.
690 (add_to_value): Removed.
691 (value_exists_in_set_bitmap): Ditto.
692 (value_insert_into_set_bitmap): Ditto.
696 (set_contains_value): Ditto.
697 (insert_into_set): Ditto.
699 (find_leader): Ditto.
700 (bitmap_set_subtract_from_value_set): Ditto.
701 (value_insert_into_set): Ditto.
702 (print_value_set): Ditto.
703 (debug_value_set): Ditto.
704 (constant_expr_p): New function.
705 (bitmap_remove_from_set): Ditto.
706 (bitmap_insert_into_set): Ditto.
707 (bitmap_set_free): Ditto.
709 (sorted_array_from_bitmap_set): Ditto.
710 (bitmap_set_subtract): Ditto.
711 (bitmap_set_equal): Ditto.
712 (debug_bitmap_set): Ditto.
713 (find_leader_in_sets): Ditto.
714 (bitmap_set_replace_value): Modify for bitmapped sets.
715 (phi_translate): Ditto.
716 (phi_translate_set): Ditto.
717 (bitmap_find_leader): Ditto.
718 (valid_in_sets): Ditto.
719 (union_contains_value): Ditto.
721 (compute_antic_aux): Ditto. Mark changed blocks.
722 (compute_antic): Ditto. Iterate in postorder and only over
724 (compute_rvuse_and_antic_safe): Reuse postorder.
725 (create_component_ref_by_pieces): Modify for bitmapped sets.
726 (find_or_generate_expression): Ditto.
727 (create_expression_by_pieces): Ditto.
728 (insert_into_preds_of_block): Ditto.
729 (changed_blocks): New variable.
730 (do_regular_insertion): Broken out from insert_aux.
731 (insert_aux): Modified for bitmapped sets.
732 (find_existing_value_expr): New function.
733 (create_value_expr_from): Use it.
734 (insert_extra_phis): Removed.
735 (print_bitmap_set): Renamed from bitmap_print_value_set.
736 (compute_avail): Handle RETURN_EXPR.
737 (init_pre): Modify for bitmapped sets.
738 * tree-flow.h (has_stmt_ann): New function.
740 2006-10-29 Roger Sayle <roger@eyesopen.com>
742 * builtins.c (fold_builtin_floor): Check for the availability of
743 the C99 trunc function before transforming floor into trunc.
745 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
747 * builtins.c (fold_builtin_hypot): Rearrange recursive
748 transformation before others, and also do ABS_EXPR. When
749 necessary, check flag_unsafe_math_optimizations. When necessary,
752 2006-10-29 Roger Sayle <roger@eyesopen.com>
754 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
755 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
756 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
757 Fold -X eq/ne -Y as X eq/ne Y.
759 2006-10-29 Richard Sandiford <richard@codesourcery.com>
761 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
762 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
763 rather than GENERATE_MULT3_SI in the various define_peephole2s.
764 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
765 Use an inclusive test for "mult" rather than "mul".
766 (rotr<mode>3): Depend on ISA_HAS_ROR.
767 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
769 (GENERATE_MULT3_DI): Delete.
770 (ISA_HAS_64BIT_REGS): Use consistent formatting.
771 (ISA_HAS_MUL3): New macro.
772 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
773 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
774 (ISA_HAS_CLZ_CLO): Likewise.
775 (ISA_HAS_DCLZ_DCLO): Delete.
776 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
777 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
778 the VR4120 and VR4130.
779 (ISA_HAS_MACCHI): Use consistent formatting.
780 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
781 (ISA_HAS_ROR): ...this new macro.
782 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
783 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
784 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
786 2006-10-29 Roger Sayle <roger@eyesopen.com>
788 PR tree-optimization/15458
789 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
792 2006-10-29 Richard Guenther <rguenther@suse.de>
794 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
795 (ix86_expand_truncdf_32): Likewise.
796 * config/i386/i386.c (ix86_expand_trunc): New function expanding
797 trunc inline for SSE math and -fno-trapping-math and if not
799 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
800 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
801 for expanding btrunc inline for SSE math.
803 2006-10-29 Joseph Myers <joseph@codesourcery.com>
805 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
806 Handle tuning for bi-arch i[34567]86-*-linux* like that for
807 i[34567]86-*-solaris2.1[0-9]*.
808 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
809 Define conditionally depending on TARGET_64BIT_DEFAULT.
810 (SPEC_32, SPEC_64): Define.
811 (LINK_SPEC): Use them.
812 * doc/install.texi (--enable-targets=all): Document for x86-linux.
814 2006-10-29 Richard Guenther <rguenther@suse.de>
816 * config/i386/i386-protos.h (ix86_expand_round): Declare.
817 (ix86_expand_rounddf_32): Likewise.
818 * config/i386/i386.c (ix86_expand_round): New function expanding
819 round inline for SSE math and -fno-trapping-math and if not
821 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
822 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
823 round via ix86_expand_round.
825 2006-10-29 Richard Guenther <rguenther@suse.de>
827 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
828 (ix86_expand_floorceildf_32): Likewise.
829 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
830 static helper function.
831 (ix86_expand_floorceil): Expander for floor and ceil to SSE
833 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
834 * config/i386/i386.md (floordf2): Adjust to enable floor
835 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
836 -fno-trapping-math is enabled and if not optimizing for size.
837 (floorsf2, ceildf2, ceilsf2): Likewise.
838 * config/i386/sse.md (sse_maskcmpsf3): New insn.
839 (sse2_maskcmpdf3): Likewise.
841 2006-10-29 Richard Guenther <rguenther@suse.de>
843 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
844 rint in case -fno-trapping-math is enabled.
845 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
846 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
847 (ix86_expand_sse_fabs): Likewise.
848 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
849 * config/i386/i386.md (rintdf2): Enable for SSE math if
850 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
853 2006-10-29 Richard Guenther <rguenther@suse.de>
855 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
856 to conversion optabs.
857 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
859 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
860 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
861 (lfloor_optab, lceil_optab): Adjust defines.
862 * builtins.c (expand_builtin_int_roundingfn): Adjust for
863 lfloor and lceil optabs now being conversion optabs.
864 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
865 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
866 New static helper function.
867 (ix86_expand_lfloorceil): New function to expand lfloor and
869 * config/i386/i386.md (lfloor<mode>2): Split into ...
870 (lfloorxf<mode>2): ... x87 variant
871 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
872 using ix86_expand_lfloorceil.
873 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
875 * doc/md.texi (lfloorMN, lceilMN): Document.
877 2006-10-29 Richard Sandiford <richard@codesourcery.com>
879 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
880 -mno-shared assembler option on mips targets.
881 * configure, config.in: Regenerate.
882 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
883 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
884 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
886 2006-10-29 Richard Sandiford <richard@codesourcery.com>
888 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
889 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
891 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
893 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
894 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
897 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
900 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
901 (fold_builtin_pow): Evaluate constant arguments at compile-time
903 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
904 (do_mpfr_ckconv): New helper function.
905 (do_mpfr_arg1): Use do_mpfr_ckconv.
908 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
911 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
912 (-fdump-rtl-sched): Rename to ..
913 (-fdump-rtl-sched1): here. Also fix file extension number.
915 2006-10-28 Richard Guenther <rguenther@suse.de>
917 * fold-const.c (maybe_canonicalize_comparison): Fix code
920 2006-10-28 Uros Bizjak <uros@kss-loka.si>
922 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
923 (NON_QI_REG_P): Use IN_RANGE.
924 (REX_INT_REGNO_P): Use IN_RANGE.
925 (FP_REGNO_P): Use IN_RANGE.
926 (SSE_REGNO_P): Use IN_RANGE.
927 (REX_SSE_REGNO_P): Use IN_RANGE.
928 (MMX_REGNO_P): Use IN_RANGE.
929 (STACK_REGNO_P): New macro.
930 (STACK_REG_P): Use STACK_REGNO_P.
931 (NON_STACK_REG_P): Use STACK_REGNO_P.
932 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
933 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
934 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
935 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
936 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
938 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
940 * except.h (output_function_exception_table): Add 'const char*' param.
941 * except.c (switch_to_exception_section): Add 'const char*' param.
942 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
943 and flag_function_sections is set, use a function-specific section.
944 (output_function_exception_table): Add 'const char*' param.
945 Adjust call to switch_to_exception_section.
946 * final.c (rest_of_handle_final): Adjust calls to
947 output_function_exception_table.
948 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
949 * config.in: Regenerate.
950 * configure: Likewise.
952 2006-10-28 Richard Guenther <rguenther@suse.de>
955 * fold-const.c (maybe_canonicalize_comparison_1): Helper
956 for maybe_canonicalize_comparison.
957 (maybe_canonicalize_comparison): New function for canonicalizing
959 (fold_comparison): Call it to canonicalize comparisons with
962 2006-10-28 Richard Guenther <rguenther@suse.de>
965 * builtins.c (expand_builtin_int_roundingfn_2): Expand
966 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
967 (expand_builtin): Adjust likewise.
968 * genopinit.c (optabs[]): Add lround optab.
969 * optabs.c (init_optabs): Initialize lround_optab.
970 * optabs.h (enum convert_optab_index): Add COI_lround.
971 (lround_optab): Define.
972 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
973 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
975 (ix86_expand_lround): New function.
976 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
978 * doc/md.texi (lroundMN2): Document.
980 2006-10-28 Uros Bizjak <uros@kss-loka.si>
983 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
984 argument to HOST_WIDE_INT. Update function prototype.
985 (round_frame_size): Change return type to HOST_WIDE_INT. Change
986 "size" argument to HOST_WIDE_INT. Update function prototype.
988 2006-10-28 Uros Bizjak <uros@kss-loka.si>
990 * config/i386/i386.c (output_387_ffreep): Create output from a
991 template string for !HAVE_AS_IX86_FFREEP.
993 2006-10-27 Eric Christopher <echristo@apple.com>
995 * config/darwin.c: Fix formatting and grammar.
997 2006-10-27 Jan Hubicka <jh@suse.cz>
999 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
1000 to be thrown away soon when IGNORE is set.
1001 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
1002 indicating when return value shall not be computed.
1003 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
1005 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
1007 * config/i386/i386.h (TARGET_GEODE):
1008 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
1009 (TARGET_CPU_DEFAULT_geode): New macro.
1010 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
1011 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
1012 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
1013 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
1014 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
1016 (TARGET_CPU_DEFAULT_NAMES): Add geode.
1017 (processor_type): Add PROCESSOR_GEODE.
1019 * config/i386/i386.md: Include geode.md.
1022 * config/i386/i386.c (geode_cost): New initialized global
1024 (m_GEODE, m_K6_GEODE): New macros.
1025 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
1026 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
1027 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
1028 x86_schedule): Use m_K6_GEODE instead of m_K6.
1029 (x86_movx, x86_cmove): Set up m_GEODE.
1030 (x86_integer_DFmode_moves): Clear m_GEODE.
1031 (processor_target_table): Add entry for geode.
1032 (processor_alias_table): Ditto.
1034 * config/i386/geode.md: New file.
1036 * doc/invoke.texi: Add entry about geode processor.
1038 2006-10-27 Mike Stump <mrs@apple.com>
1040 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
1041 __DYNAMIC__ from here back to ...
1042 * config/darwin.h (CPP_SPEC): ... here.
1044 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
1045 Nathan Sidwell <nathan@codesourcery.com>
1047 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
1048 when choosing the minimum heapsize.
1050 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
1052 * gcc/unwind-dw2.h: Move cfa-related variables into
1053 struct frame_state_reg_info to ensure that the CFA is properly
1054 handled when executing DW_CFA_{remember,restore}_state.
1055 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
1056 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
1057 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
1058 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
1059 gcc/config/rs6000/linux-unwind.h,
1060 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
1061 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
1062 Modify to use new cfa_* fields.
1064 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
1066 * config/s390/s390.c (s390_init_frame_layout): Check positive
1069 2006-10-26 Ben Elliston <bje@au.ibm.com>
1071 * gimplify.c (get_name): Remove extraneous break.
1072 (gimplify_omp_for): Initialise ret with GS_OK.
1074 2006-10-25 Steve Ellcey <sje@cup.hp.com>
1076 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
1077 Add unix98.o to link line.
1079 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1082 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
1083 Calculate compile-time constants using MPFR.
1084 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
1085 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
1087 2006-10-25 Bob Wilson <bob.wilson@acm.org>
1089 * config/xtensa/lib2funcs.S: Use C-style comments.
1091 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
1093 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
1094 (file_table_relative_p): Likewise.
1095 (dwarf2out_finish): Likewise.
1096 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
1098 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
1100 * tree-ssa-structalias.c (intra_create_variable_infos):
1101 Don't recreate nonlocal_all if it already exists.
1103 2006-10-25 Richard Guenther <rguenther@suse.de>
1106 * optabs.h (enum optab_index): Remove OTI_lrint.
1107 (enum convert_optab_index): Add COI_lrint.
1108 (lrint_optab): Adjust.
1109 (expand_sfix_optab): Declare.
1110 * optabs.c (expand_sfix_optab): New function.
1111 (init_optabs): Init lrint_optab as conversion optab.
1112 * genopinit.c (lrint_optab): Change to a conversion optab.
1113 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
1114 expansion via conversion optab.
1115 * config/i386/i386.md (*fistdi2_1): Remove
1116 flag_unsafe_math_optimizations guard.
1117 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
1118 fist<mode>2_with_temp): Likewise.
1119 (lrint<mode>2): Split into...
1120 (lrintxf<mode>2): ... x87 part
1121 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
1122 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
1123 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
1124 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
1125 * doc/md.texi (lrintMN2): Document.
1127 2006-10-25 Uros Bizjak <uros@kss-loka.si>
1130 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
1131 Use inc and dec instructions for TARGET_USE_INCDEC.
1132 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
1133 ("sync_double_compare_and_swap<mode>"): Likewise.
1134 ("*sync_double_compare_and_swapdi_pic"): Likewise.
1135 ("*sync_compare_and_swap_cc<mode>"): Likewise.
1136 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
1137 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
1138 ("sync_old_add<mode>"): Likewise.
1139 ("sync_lock_test_and_set<mode>"): Likewise.
1140 ("sync_lock_test_and_set<mode>"): Likewise.
1141 ("sync_add<mode>"): Likewise.
1142 ("sync_sub<mode>"): Likewise.
1143 ("sync_ior<mode>"): Likewise.
1144 ("sync_and<mode>"): Likewise.
1145 ("sync_xor<mode>"): Likewise.
1147 2006-10-25 Uros Bizjak <uros@kss-loka.si>
1149 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
1150 (remainder_optab): Define corresponding macro.
1151 (drem_optab): Remove.
1152 * optabs.c (init_optabs): Initialize remainder_optab. Remove
1153 drem_optab initialization.
1154 * genopinit.c (optabs): Implement remainder_optab using
1155 remainder?f3 patterns. Remove drem_optab.
1156 * builtins.c (expand_builtin_mathfn_2): Handle
1157 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
1158 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
1159 expand_builtin_mathfn_2.
1161 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
1162 depend on flag_unsafe_math_optimizations.
1164 * config/i386/i386.md ("remaindersf3", "remainderdf3")
1165 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
1166 Do not depend on flag_unsafe_math_optimizations. Use
1167 truncxf?f expander instead of truncxf?f_i387_noop.
1169 ("fpremxf4", "fprem1xf4"): Do not depend on
1170 flag_unsafe_math_optimizations.
1171 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
1172 flag_unsafe_math_optimizations. Use truncxf?f expander
1173 instead of truncxf?f_i387_noop.
1175 * doc/md.texi (fmod, remainder): Document standard named pattern.
1177 2006-10-24 Richard Sandiford <richard@codesourcery.com>
1178 David Daney <ddaney@avtrex.com>
1181 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
1183 2006-10-25 Ben Elliston <bje@au.ibm.com>
1185 * doc/extend.texi (Variable Attributes): Typo fix.
1187 2006-10-24 Uros Bizjak <uros@kss-loka.si>
1189 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
1190 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
1191 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
1192 (FRAME_POINTER_REGNUM): Update register number to 21.
1193 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
1194 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
1196 * config/i386/i386.c (regclass_map): Add fpcr entry.
1197 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
1199 (print_reg): Assert REGNO (x) != FPCR_REG.
1201 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
1202 (DIRFLAG_REG): Renumber.
1203 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
1204 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
1205 (sse_prologue_save, *sse_prologue_save_insn): Renumber
1206 hardcoded SSE register numbers.
1208 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
1209 hardcoded MMX register numbers.
1211 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1214 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
1215 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
1217 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
1218 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
1219 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
1220 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
1222 2006-10-24 Richard Guenther <rguenther@suse.de>
1225 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
1226 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
1227 for deciding optimizations in consistency with fold-const.c
1228 (fold_builtin_unordered_cmp): Likewise.
1230 2006-10-24 Richard Guenther <rguenther@suse.de>
1232 * builtins.c (fold_builtin_floor): Fold floor (x) where
1233 x is nonnegative to trunc (x).
1234 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
1235 nonnegative to FIX_TRUNC_EXPR.
1237 2006-10-24 Richard Guenther <rguenther@suse.de>
1239 PR tree-optimization/29567
1240 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
1241 for TRUTH_NOT_EXPR. Clarify comments.
1243 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1246 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
1247 at compile-time using MPFR. Change parameter VALUE to FUNC,
1249 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
1250 for overflow and underflow at all times and avoid folding in
1253 2006-10-24 Ben Elliston <bje@au.ibm.com>
1255 * reload1.c: Formatting fixes.
1257 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
1259 PR tree-optimization/14784
1260 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
1261 * tree-ssa-structalias.c (get_constraint_for,
1262 intra_create_variable_infos): Set is_heapvar.
1263 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
1264 non-heapvar pointer variables specially.
1266 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1269 * builtins.c (fold_builtin_sin, fold_builtin_cos,
1270 fold_builtin_tan): Fold all constant arguments. Take a "type"
1271 argument as necessary.
1272 (do_mpfr_arg1): New.
1273 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
1275 2006-10-23 Bob Wilson <bob.wilson@acm.org>
1277 * config/xtensa/lib1funcs.asm: Use C-style comments.
1279 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
1281 * tree.c (local_define_builtin): Replace calls to
1282 lang_hooks.builtin_function with add_builtin_function.
1283 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
1285 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
1287 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
1288 common code to add_builtin_function.
1289 * langhooks.c (add_builtin_function): New function.
1290 (lhd_builtin_function): New function.
1291 * langhooks.h (struct lang_hooks): Change the signature of
1293 (add_builtin_function): New function.
1294 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
1295 calls to lang_hooks.builtin_function with add_builtin_function.
1296 * c-common.c (decl_builtin_1): Replace calls to
1297 lang_hooks.builtin_function with add_builtin_function.
1298 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
1299 lang_hooks.builtin_function with add_builtin_function.
1300 * config/frv/frv.c (def_builtin): Replace calls to
1301 lang_hooks.builtin_function with add_builtin_function.
1302 * config/s390/s390.c (s390_init_builtins): Replace calls to
1303 lang_hooks.builtin_function with add_builtin_function.
1304 * config/sparc/sparc.c (def_builtin): Replace calls to
1305 lang_hooks.builtin_function with add_builtin_function.
1306 * config/i386/i386.c (def_builtin): Replace calls to
1307 lang_hooks.builtin_function with add_builtin_function.
1308 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
1309 lang_hooks.builtin_function with add_builtin_function.
1310 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
1311 lang_hooks.builtin_function with add_builtin_function.
1312 * config/stormy16/stormy16.c (xstormy16_init_builtins):
1313 Replace calls to lang_hooks.builtin_function with
1314 add_builtin_function.
1315 * config/iq2000/iq2000.c (def_builtin):
1316 Replace calls to lang_hooks.builtin_function with
1317 add_builtin_function.
1318 * config/ia64/ia64.c (def_builtin): Replace calls to
1319 lang_hooks.builtin_function with add_builtin_function.
1320 * config/rs6000/rs6000.c (def_builtin): Replace calls to
1321 lang_hooks.builtin_function with add_builtin_function.
1322 (altivec_init_builtins): Replace calls to
1323 lang_hooks.builtin_function with add_builtin_function.
1324 * config/arm/arm.c (def_mbuiltin): Replace calls to
1325 lang_hooks.builtin_function with add_builtin_function.
1326 (arm_init_tls_builtins): Replace calls to
1327 lang_hooks.builtin_function with add_builtin_function.
1328 * config/mips/mips.c (mips_init_builtins): Replace calls to
1329 lang_hooks.builtin_function with add_builtin_function.
1330 * config/bfin/bfin.c (def_builtin): Replace calls to
1331 lang_hooks.builtin_function with add_builtin_function.
1332 * langhooks-def.h (lhd_builtin_function): New function.
1333 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
1335 2006-10-23 Jakub Jelinek <jakub@redhat.com>
1337 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
1338 BUILT_IN_STRNCAT_CHK.
1340 2006-10-23 Jan Hubicka <jh@suse.cz>
1342 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
1343 don't do conversion from memmove to memcpy here.
1344 (expand_builtin_bcopy, expand_builtin): Update call of
1345 expand_builtin_memmove.
1346 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
1348 2006-10-23 Paul Brook <paul@codesourcery.com>
1350 * stor-layout.c (start_record_layout): maximum_field_alignment
1351 overrides STRUCTURE_SIZE_BOUNDARY.
1353 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
1355 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
1356 nonlocal function symbols if flag_pic.
1358 2006-10-23 Richard Guenther <rguenther@suse.de>
1362 * builtins.c (fold_binary): Remove checks for flag_wrapv
1363 and flag_trapv where negate_expr_p covers these cases.
1365 2006-10-23 Richard Guenther <rguenther@suse.de>
1368 * fold-const.c (fold_plusminus_mult_expr): Check exact power
1369 of two on the absolute value.
1370 (fold_binary): Fold x * -C to -x * C if x is easily negatable
1371 and negating -C does not overflow.
1373 2006-10-23 Richard Guenther <rguenther@suse.de>
1376 * convert.c (convert_to_real): Fold (float)-x to -(float)x
1377 only if not flag_rounding_math.
1379 2006-10-22 Richard Sandiford <richard@codesourcery.com>
1380 Kaz Kojima <kkojima@gcc.gnu.org>
1383 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
1384 SImode memory reference for the source of a movua.
1385 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
1386 (movua): Use an unspec instead of sign_extract. Expect the source
1387 to have mode BLKmode.
1388 (extv, insv): Use a BLKmode rather than SImode memory reference
1389 for the source of a movua.
1391 2006-10-22 Jeff Law <law@redhat.com>
1392 Richard Guenther <rguenther@suse.de>
1394 PR tree-optimization/15911
1395 * tree-vrp.c (extract_code_and_val_from_cond): New function.
1396 (register_edge_assert_for_1): Likewise.
1397 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
1398 (find_conditional_asserts): Adjust for new function signature.
1399 (find_assert_locations): Likewise.
1401 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
1403 * config/i386/tmmintrin.h: Remove the duplicated content.
1405 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
1407 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
1408 (x86_64-*-*): Likewise.
1410 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
1411 (override_options): Check SSSE3.
1412 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
1413 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
1414 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
1415 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
1416 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
1417 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
1418 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
1419 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
1420 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
1421 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
1422 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
1423 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
1424 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
1425 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
1426 IX86_BUILTIN_PABSD128.
1427 (bdesc_2arg): Add SSSE3.
1428 (bdesc_1arg): Likewise.
1429 (ix86_init_mmx_sse_builtins): Support SSSE3.
1430 (ix86_expand_builtin): Likewise.
1431 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1433 * config/i386/i386.md (UNSPEC_PSHUFB): New.
1434 (UNSPEC_PSIGN): Likewise.
1435 (UNSPEC_PALIGNR): Likewise.
1436 Include mmx.md before sse.md.
1438 * config/i386/i386.opt: Add -mssse3.
1440 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
1441 (ssse3_phaddwv4hi3): Likewise.
1442 (ssse3_phadddv4si3): Likewise.
1443 (ssse3_phadddv2si3): Likewise.
1444 (ssse3_phaddswv8hi3): Likewise.
1445 (ssse3_phaddswv4hi3): Likewise.
1446 (ssse3_phsubwv8hi3): Likewise.
1447 (ssse3_phsubwv4hi3): Likewise.
1448 (ssse3_phsubdv4si3): Likewise.
1449 (ssse3_phsubdv2si3): Likewise.
1450 (ssse3_phsubswv8hi3): Likewise.
1451 (ssse3_phsubswv4hi3): Likewise.
1452 (ssse3_pmaddubswv8hi3): Likewise.
1453 (ssse3_pmaddubswv4hi3): Likewise.
1454 (ssse3_pmulhrswv8hi3): Likewise.
1455 (ssse3_pmulhrswv4hi3): Likewise.
1456 (ssse3_pshufbv16qi3): Likewise.
1457 (ssse3_pshufbv8qi3): Likewise.
1458 (ssse3_psign<mode>3): Likewise.
1459 (ssse3_psign<mode>3): Likewise.
1460 (ssse3_palignrti): Likewise.
1461 (ssse3_palignrdi): Likewise.
1462 (abs<mode>2): Likewise.
1463 (abs<mode>2): Likewise.
1465 * config/i386/tmmintrin.h: New file.
1467 * doc/extend.texi: Document SSSE3 built-in functions.
1469 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
1471 2006-10-22 Ira Rosen <irar@il.ibm.com>
1473 * tree-vect-transform.c (vectorizable_load): Use the type of the
1474 return value of the mask_for_load builtin to create realign_load
1477 2006-10-22 Richard Sandiford <richard@codesourcery.com>
1479 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
1482 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
1484 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
1485 (UNSPEC_LDDQU): This.
1486 * config/i386/sse.md (sse3_lddqu): Updated.
1488 2006-10-21 Richard Guenther <rguenther@suse.de>
1490 * builtins.c (expand_builtin_int_roundingfn_2): New function.
1491 (expand_builtin): Use it to expand lrint instead of
1492 expand_builtin_mathfn.
1494 2006-10-21 Uros Bizjak <uros@kss-loka.si>
1497 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
1498 flag_unsafe_math_optimizations is set.
1500 2006-10-21 Uros Bizjak <uros@kss-loka.si>
1503 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
1504 patterns to use memory input operand in x87->mem->XMM
1505 reload sequences. Skip transformation for TARGET_K8.
1507 2006-10-21 Uros Bizjak <uros@kss-loka.si>
1509 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
1510 force operand1 to register if both operands are memory operands.
1511 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
1512 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
1513 if both operands are memory operands.
1514 (truncdfsf2): Do not force operand1 to register if both operands
1515 are memory operands.
1517 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1519 * Makefile.in (LIBS): Add $(GMPLIBS).
1520 * doc/install.texi: Update GMP and MPFR requirements.
1521 * doc/sourcebuild.texi (need_gmp): Delete.
1523 2006-10-21 Richard Guenther <rguenther@suse.de>
1525 PR tree-optimization/3511
1526 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
1527 got new invariant arguments during PHI translation.
1529 2006-10-21 Richard Guenther <rguenther@suse.de>
1532 * fold-const.c (fold_comparison): Fold signed comparisons
1533 of the form X +- C1 CMP Y +- C2.
1535 2006-10-21 Richard Guenther <rguenther@suse.de>
1538 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
1539 if flag_unsafe_math_optimizations is specified. We have
1540 flag_finite_math_only for that.
1541 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
1542 or flag_unsafe_math_optimizations.
1544 2006-10-21 Richard Guenther <rguenther@suse.de>
1546 * builtins.c (fold_builtin_classify): Fix typo.
1548 2006-10-21 Richard Guenther <rguenther@suse.de>
1551 * simplify-rtx.c (simplify_const_relational_operation):
1552 Do not constant-fold ORDERED and UNORDERED for
1553 flag_unsafe_math_optimizations but only we do not need to
1554 honor NaNs for the given mode.
1556 2006-10-21 Richard Guenther <rguenther@suse.de>
1559 * config/i386/i386.c (classify_argument): Remove redundant
1560 walking of the BINFOs.
1561 (contains_128bit_aligned_vector_p): Likewise.
1563 2006-10-20 Mark Mitchell <mark@codesourcery.com>
1565 * BASE-VER: Set to 4.3.0.
1567 2006-10-20 Daniel Berlin <dberlin@dberlin.org>
1569 * tree.h (DECL_PTA_ARTIFICIAL): Remove.
1570 (tree_decl_with_vis): Remove artificial_pta_var flag.
1571 * tree-flow.h (referenced_var_check_and_insert): Expose.
1572 (nonlocal_all): New prototype.
1573 * tree-ssa-structalias.c (nonlocal_for_type): Remove.
1574 (nonlocal_all): Make global.
1575 (nonlocal_lookup): Remove.
1576 (nonlocal_insert): Ditto.
1577 (create_nonlocal_var): Do not call nonlocal_insert.
1578 (get_nonlocal_id_for_type): Remove.
1579 (find_global_initializers): Mark new vars we find for renaming.
1580 (intra_create_variable_infos): Only create one nonlocal.
1581 (expand_nonlocal_solutions): Remove.
1582 (compute_points_to_sets): Don't call it.
1583 (ipa_pta_execute): Ditto.
1584 (init_alias_heapvars): Don't create nonlocal_for_type.
1585 (delete_alias_heapvars): Don't remove it.
1586 * tree-ssa-operands.c (access_can_touch_variable): Don't prune
1589 2006-10-19 Brooks Moses <bmoses@stanford.edu>
1591 * doc/install.texi (Downloading GCC): Clarify mention of
1592 Fortran in the "full distribution" description.
1594 2006-10-19 Daniel Berlin <dberlin@dberlin.org>
1596 Fix PR tree-optimization/28778
1597 Fix PR tree-optimization/29156
1598 Fix PR tree-optimization/29415
1599 * tree.h (DECL_PTA_ARTIFICIAL): New macro.
1600 (tree_decl_with_vis): Add artificial_pta_var flag.
1601 * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
1602 pushed into callers.
1603 * tree-ssa-structalias.c (nonlocal_for_type): New variable.
1604 (nonlocal_all): Ditto.
1605 (struct variable_info): Add directly_dereferenced member.
1606 (var_escaped_vars): New variable.
1607 (escaped_vars_tree): Ditto.
1608 (escaped_vars_id): Ditto.
1609 (nonlocal_vars_id): Ditto.
1610 (new_var_info): Set directly_dereferenced.
1611 (graph_size): New variable
1612 (build_constraint_graph): Use graph_size.
1613 (solve_graph): Don't process constraints that cannot change the
1614 solution, don't try to propagate an empty solution to our
1616 (process_constraint): Set directly_dereferenced.
1617 (could_have_pointers): New function.
1618 (get_constraint_for_component_ref): Don't process STRING_CST.
1619 (nonlocal_lookup): New function.
1620 (nonlocal_insert): Ditto.
1621 (create_nonlocal_var): Ditto.
1622 (get_nonlocal_id_for_type): Ditto.
1623 (get_constraint_for): Allow results vector to be empty in the case
1624 of string constants.
1625 Handle results of calls properly.
1626 (update_alias_info): Update alias info stats on number and type of
1628 (find_func_aliases): Use could_have_pointers.
1629 (make_constraint_from_escaped): Renamed from
1630 make_constraint_to_anything, and changed to make constraints from
1632 (make_constraint_to_escaped): New function.
1633 (find_global_initializers): Ditto.
1634 (create_variable_info_for): Make constraint from escaped to any
1635 global variable, and from any global variable to the set of
1637 (intra_create_variable_infos): Deal with escaped instead of
1638 pointing to anything.
1639 (set_uids_in_ptset): Do type pruning on directly dereferenced
1641 (find_what_p_points_to): Adjust call to set_uids_with_ptset.
1642 (init_base_vars): Fix comment, and initialize escaped_vars.
1643 (need_to_solve): Removed.
1644 (find_escape_constraints): New function.
1645 (expand_nonlocal_solutions): Ditto.
1646 (compute_points_to_sets): Call find_escape_constraints and
1647 expand_nonlocal_solutions.
1648 (delete_points_to_sets): Don't fall off the end of the graph.
1649 (init_alias_heapvars): Initialize nonlocal_for_type and
1651 (delete_alias_heapvars): Free nonlocal_for_type and null out
1654 2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
1656 * fold-const.c (add_double): Rename to add_double_with_sign.
1657 Add 'unsigned_p' parameter and take it into account for the overflow.
1658 (mul_double): Rename to mul_double_with_sign.
1659 Add 'unsigned_p' parameter and take it into account for the overflow.
1660 (fold_div_compare): Call add_double_with_sign instead of add_double
1661 and mul_double_with_sign instead of mul_double, passing them the
1662 unsignedness of the type.
1663 * tree.h (add_double): Macroize.
1664 (add_double_with_sign): New prototype.
1665 (mul_double): Macroize.
1666 (mul_double_with_sign): New prototype.
1668 2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
1670 * config/score/crti.asm: New file.
1671 * config/score/crtn.asm: New file.
1672 * config/score/elf.h: New file.
1673 * config/score/mac.md: New file.
1674 * config/score/misc.md: New file.
1675 * config/score/mul-div.S: New file.
1676 * config/score/predicates.md: New file.
1677 * config/score/score7.md: New file.
1678 * config/score/score.c: New file.
1679 * config/score/score-conv.h: New file.
1680 * config/score/score.h: New file.
1681 * config/score/score.md: New file.
1682 * config/score/score-mdaux.c: New file.
1683 * config/score/score-mdaux.h: New file.
1684 * config/score/score-modes.def: New file.
1685 * config/score/score.opt: New file.
1686 * config/score/score-protos.h: New file.
1687 * config/score/score-version.h: New file.
1688 * config/score/t-score-elf: New file.
1689 * config.gcc: Add score*-*-* configurations(Update before).
1690 * doc/invoke.texi (Score Options): New section.
1691 * doc/md.texi (Score family): New section to document constraints.
1693 2006-10-19 Nick Clifton <nickc@redhat.com>
1695 * config/arm/arm.c: Fix spelling typo.
1697 2006-10-18 Tom Tromey <tromey@redhat.com>
1699 * doc/install.texi (Prerequisites): Mention automake 1.9.6.
1701 2006-10-18 Jan Hubicka <jh@suse.cz>
1704 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
1707 2006-10-18 Marcin Dalecki <martin@dalecki.de>
1709 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
1710 TSI_SAME_STMT, since that's the desired entity.
1712 2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
1714 * config/s390/contraints.md: New file.
1715 * config/s390/s390-protos.h (s390_mem_constraint,
1716 s390_O_constraint_str, s390_N_constraint_str,
1717 s390_float_const_zero_p): Function prototypes added.
1718 * config/s390/s390.c (s390_extra_constraint_str,
1719 s390_const_double_ok_for_constraint_p,
1720 s390_const_ok_for_constraint_p): Functions removed.
1721 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
1722 s390_float_const_zero_p): New functions.
1723 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
1724 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
1725 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
1726 Macro definitions removed.
1727 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
1728 s390_extra_constraint_str): Functions removed.
1730 2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
1731 Richard Sandiford <richard@codesourcery.com>
1734 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
1735 * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
1737 2006-10-16 Geoffrey Keating <geoffk@apple.com>
1739 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
1740 (DWARF2_FRAME_REG_OUT): Likewise.
1741 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
1742 (DWARF2_FRAME_REG_OUT): Likewise.
1744 2006-10-17 Paul Brook <paul@codesourcery.com>
1746 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
1748 2006-10-16 Brooks Moses <bmoses@stanford.edu>
1750 * doc/contrib.texi, doc/install.texi, doc/standards.texi:
1751 Standardize on "GNU Fortran" as the official name of the Fortran
1754 2006-10-16 Mike Stump <mrs@apple.com>
1756 * doc/invoke.texi (Darwin Options): Document -mkernel.
1757 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
1759 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
1760 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
1761 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
1762 (OS_MISSING_ALTIVEC): Add.
1763 * config/i386/i386.c (override_options): Add
1764 SUBSUBTARGET_OVERRIDE_OPTIONS callout.
1765 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
1766 -mkernel, -static or -mdynamic-no-pic is given.
1767 (C_COMMON_OVERRIDE_OPTIONS): Add.
1768 * config/darwin.opt (fapple-kext): Add.
1770 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
1771 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
1773 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
1774 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
1775 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
1776 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
1777 (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
1778 (flag_mkernel): Add.
1779 (flag_apple_kext): Add.
1780 (TARGET_KEXTABI): Add.
1781 * config/darwin.c (darwin_handle_kext_attribute): Add.
1782 (DARWIN_VTABLE_P): Add.
1783 (darwin_binds_local_p): Add partial support for rebinding vtables
1785 (darwin_kextabi_p): Add.
1786 (darwin_override_options): Add.
1787 * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
1788 (darwin_kextabi_p): Add.
1789 (darwin_override_options): Add.
1790 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
1791 __DYNAMIC__ and __STATIC__ here.
1793 2006-10-16 Brooks Moses <bmoses@stanford.edu>
1795 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
1796 Added mention of "make pdf" target, and Texinfo requirements for
1799 2006-10-16 DJ Delorie <dj@redhat.com>
1801 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
1802 into the GOT in case we need a subreg of the address.
1804 2006-10-16 Richard Guenther <rguenther@suse.de>
1807 * doc/extend.texi (X86 Built-in Functions): Fix typos in
1808 SSE builtin documentation. Document SSE2 builtins.
1810 2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1812 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
1813 symbol in the output file for non-shared links when -nostdlib or
1814 -nodefaultlibs isn't specified.
1816 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
1817 posix thread support.
1819 2006-10-15 Jan Hubicka <jh@suse.cz>
1822 * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
1823 declared always_inline even when not inlining.
1825 2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1826 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1827 Andrew Pinski <pinskia@gmail.com>
1830 * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
1832 2006-10-15 Jan Hubicka <jh@suse.cz>
1833 Richard Guenther <rguenther@suse.de>
1836 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1837 process_function_and_variable_attributes on all variables, including
1838 those discovered during cgraph construction phase.
1840 2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
1842 * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
1844 2006-10-14 Uros Bizjak <uros@kss-loka.si>
1846 * config/i386/athlon.md (athlon_fist): Add fisttp.
1848 2006-10-13 David Edelsohn <edelsohn@gnu.org>
1849 Ian Lance Taylor <ian@airs.com>
1852 * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
1853 CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
1856 2006-10-14 Kazu Hirata <kazu@codesourcery.com>
1858 * config/score/score.c, config/score/score.h: Fix comment
1861 2006-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1864 * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
1867 2006-10-13 Eric Christopher <echristo@apple.com>
1869 * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1871 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1874 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1875 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1876 alignment supported by 32-bit ELF.
1878 2006-10-13 Eric Christopher <echristo@apple.com>
1880 * config/darwin.c (darwin_emit_unwind_label): Strip
1881 name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
1883 2006-10-13 Richard Guenther <rguenther@suse.de>
1885 PR tree-optimization/29446
1886 * tree-vrp.c (fix_equivalence_set): Remove.
1887 (extract_range_from_assert): Do not call fix_equivalence_set.
1888 (debug_value_range): Print a newline.
1889 (compare_name_with_value): For equivalence sets with
1890 inconsistent value ranges conservatively bail out.
1891 (compare_names): Likewise.
1893 2006-10-13 David Edelsohn <edelsohn@gnu.org>
1895 * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
1896 and MPFR for gfortran.
1898 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1900 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1901 alignment supported by 32-bit ELF.
1903 2006-10-13 Paolo Bonzini <bonzini@gnu.org>
1907 * c-typeck.c (digest_init): Always allow initializing vectors
1908 that have static storage duration with compound literals.
1909 * tree.c (build_type_attribute_qual_variant): New, based on
1910 build_type_attribute_variant.
1911 (build_type_attribute_variant): Rewrite using the former.
1912 (make_vector_type): Use build_type_attribute_qual_variant to build
1913 type variants. Use type_hash_canon on the others.
1915 2006-10-13 Daniel Berlin <dberlin@dberlin.org>
1916 Ramana Radhakrishnan <ramana.radhakrishnan@celunite.com>
1918 * tree-flow-inline.h (zero_ssa_operands): Fix comment.
1920 2006-10-12 Jan Hubicka <jh@suse.cz>
1923 * c-decl.c (c_make_fname_decl): Do not segfault in case where
1924 current_function_decl is set but current_function_scope is not.
1926 2006-10-12 Jie Zhang <jie.zhang@analog.com>
1928 * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
1929 emit_insn to emit eh_return_internal instruction.
1930 (eh_return_internal): Explicitly set pc.
1932 2006-10-11 Richard Guenther <rguenther@suse.de>
1934 PR tree-optimization/28230
1935 * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
1936 to the correct place.
1938 2006-10-11 Richard Guenther <rguenther@suse.de>
1941 * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
1944 2006-10-10 Brooks Moses <bmoses@stanford.edu>
1946 * configure.ac: Added pdf to "Make-hooks"
1947 * Makefile.in: Added TEXI2PDF definition, and various pdf-file
1948 targets and *.pdf file patterns in cleanup targets.
1949 * configure: Regenerated.
1951 2006-10-10 Anatoly Sokolov <aesok@post.ru>
1953 * config/avr/predicates.md: New file.
1954 * config/avr/avr.md: Include it.
1955 (REG_SP): New constant.
1956 (peepholes): Use predicates.
1957 (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
1958 difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch,
1959 sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
1961 2006-10-10 Adam Nemet <anemet@caviumnetworks.com>
1963 * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
1966 2006-10-10 Jakub Jelinek <jakub@redhat.com>
1969 * builtins.c (var_decl_component_p): New function.
1970 (fold_builtin_memset, fold_builtin_memory_op): Restrict
1971 single entry optimization to variables and components thereof.
1973 2006-10-10 Richard Guenther <rguenther@suse.de>
1975 PR rtl-optimization/29323
1976 * except.c (set_nothrow_function_flags): For functions
1977 that do not bind local bail out early.
1979 2006-10-10 Ben Elliston <bje@au.ibm.com>
1981 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
1984 2006-10-09 Richard Henderson <rth@redhat.com>
1986 Revert emutls patch.
1988 2006-10-09 Richard Guenther <rguenther@suse.de>
1991 * cgraphunit.c (verify_cgraph_node): Bail out on earlier
1994 2006-10-09 Steve Ellcey <sje@cup.hp.com>
1997 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
1998 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
1999 * configure: Regenerate.
2000 * config.in: Regenerate.
2002 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
2004 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2006 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2008 * config/mips/mips.c (mips_legitimize_tls_address): Implement
2009 all TLS models in the same way as local exec if !TARGET_ABICALLS.
2010 Remove stray newline.
2012 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2014 * config/mips/mips.c (mips_classify_symbol): Do not return
2015 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
2016 (mips_in_small_data_p): Tweak comments.
2018 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2020 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2022 2006-10-07 Kazu Hirata <kazu@codesourcery.com>
2024 * gimplify.c, sched-int.h: Fix comment typos.
2026 * sched-int.h: Fix comment typos.
2028 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2030 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
2032 * sched-ebb.c (begin_schedule_ready): Use them.
2033 * haifa-sched.c (schedule_insn, move_insn, try_ready,
2034 add_to_speculative_block, create_check_block_twin, speculate_insn,
2035 fix_jump_move, move_block_after_check): Ditto.
2036 * sched-rgn.c (new_ready): Ditto.
2038 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2040 PR rtl-optimization/29128
2041 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
2042 * sched-ebb.c (advance_target_bb): Use it to fix condition to
2043 allow interblock movement of speculation checks.
2045 2006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
2048 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
2049 casted to integer type.
2050 (get_address_cost): Decrease cost of [symbol + index] addressing modes
2051 if they are significantly more expensive than [reg + index] ones.
2053 2006-10-06 Jakub Jelinek <jakub@redhat.com>
2055 PR tree-optimization/29330
2056 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
2057 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
2058 on newly allocated ddrs.
2059 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
2060 to VEC (loop_p, heap) pointer.
2061 (compute_data_dependences_for_loop): Adjust caller.
2062 (free_dependence_relations): Free DDR_LOOP_NEST.
2064 * tree-loop-linear.c (linear_transform_loops): Don't forget to
2065 free DEPENDENCE_RELATIONS and DATAREFS.
2068 * builtins.c (expand_builtin_sync_operation,
2069 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
2070 Use convert_to_mode to handle promoted arguments.
2072 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
2074 * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2076 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
2078 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2080 2006-10-05 Uros Bizjak <uros@kss-loka.si>
2082 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
2083 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
2084 Use <modeconstraint> instead of "r" as operand 1 constraint.
2086 2006-10-06 Olivier Hainque <hainque@adacore.com>
2088 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
2089 Don't recurse on the pointed-to type.
2090 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
2091 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
2092 types with components of variable size.
2094 2006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
2096 * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2098 2006-10-06 Jakub Jelinek <jakub@redhat.com>
2100 PR tree-optimization/29290
2101 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
2105 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
2106 * config/i386/predicates.md (local_symbolic_operand): Likewise.
2109 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
2110 the number of vector elements fill the rest with zeros.
2112 2006-10-05 Richard Sandiford <richard@codesourcery.com>
2114 * config/mips/mips.c (mips_pass_by_reference): Do not return false
2115 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
2118 2006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
2120 * config/bfin/bfin.md (subsi3): Lose expander, change previously
2121 unnamed pattern into subsi3. Use correct constraints/predicates.
2122 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
2123 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
2125 2006-10-05 Ira Rosen <irar@il.ibm.com>
2127 * doc/loop.texi: Add data references analysis description.
2129 2006-10-04 Brooks Moses <bmoses@stanford.edu>
2131 * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2133 2006-10-04 Richard Henderson <rth@redhat.com>
2134 Jakub Jelinek <jakub@redhat.com>
2136 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
2137 * builtin-types.def (BT_WORD): Make unsigned.
2138 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
2139 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
2140 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
2141 * c-decl.c (grokdeclarator): Don't error if !have_tls.
2142 * c-parser.c (c_parser_omp_threadprivate): Likewise.
2143 * cgraph.c (decide_is_variable_needed): Look at force_output.
2144 Recurse for emulated tls.
2145 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
2146 checks redundant with decide_is_variable_needed.
2147 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
2148 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
2150 * expr.c (emutls_var_address): New.
2151 (expand_expr_real_1): Expand emulated tls.
2152 (expand_expr_addr_expr_1): Likewise.
2153 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
2154 * output.h (emutls_finish): Declare.
2155 * toplev.c (compile_file): Call it.
2156 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
2157 address before wrapping in CONST.
2158 * varasm.c (emutls_htab, emutls_object_type): New.
2159 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
2160 (get_emutls_object_name, get_emutls_object_type): New.
2161 (get_emutls_init_templ_addr, emutls_decl): New.
2162 (emutls_common_1, emutls_finish): New.
2163 (assemble_variable): When emulating tls, swap decls; generate
2164 constructor for the emutls objects.
2165 (do_assemble_alias): When emulating tls, swap decl and target name.
2166 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
2168 * emutls.c: New file.
2169 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
2170 tls_object for real tls.
2172 2006-10-04 Zack Weinberg <zackw@panix.com>
2174 Fix bug in constraint-check generator, reported by Rask Ingemann
2176 * genpreds.c (add_constraint): Don't remove anything from the
2178 (write_tm_constrs_h): Detect whether "op" argument is used, and
2179 mark it ARG_UNUSED if it isn't.
2180 (write_insn_const_int_ok_for_constraint): Skip the part of the
2181 expression that would test whether "op" (which is not available
2182 here) is a CONST_INT.
2184 2006-10-04 Ryan Mansfield <rmansfield@qnx.com>
2187 * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
2189 2006-10-03 Geoffrey Keating <geoffk@apple.com>
2191 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
2192 current Leopard versions.
2193 * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
2195 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
2197 * doc/install.texi: Fix typos.
2199 2006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2201 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
2202 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
2203 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
2205 2006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
2207 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
2208 arg to be struct mach_header_64* instead.
2210 2006-10-02 Jakub Jelinek <jakub@redhat.com>
2213 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
2214 side effects after the outer expression's post side effects.
2216 2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
2218 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
2219 comments to reflect actual behavior and relationship between
2220 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
2222 * doc/c-tree.texi (Working with declarations): Fix documentation
2223 of FIELD_DECL likewise.
2225 2006-10-01 Ryan Mansfield <rmansfield@qnx.com>
2228 * doc/extend.texi: Add used variable attribute description.
2230 2006-09-30 Joseph S. Myers <joseph@codesourcery.com>
2233 * c.opt (Woverride-init): New.
2234 * c-opts.c (c_common_post_options): Default warn_override_init to
2236 * c-typeck.c (add_pending_init, output_init_element): Warn for
2237 overriding initializers without side effects.
2238 * doc/invoke.texi (-Woverride-init): Document.
2241 2006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
2243 PR rtl-optimization/28096
2244 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
2245 assignment has already been used as a destination earlier in the block.
2247 2006-09-29 Eric Botcazou <ebotcazou@adacore.com>
2249 * builtins.c (expand_builtin_setjmp): Delete.
2250 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
2251 <BUILT_IN_SETJMP_SETUP>: New case.
2252 <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
2253 <BUILT_IN_SETJMP_RECEIVER>: Likewise.
2254 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
2255 (BUILT_IN_SETJMP_DISPATCHER): Likewise.
2256 (BUILT_IN_SETJMP_RECEIVER): Likewise.
2257 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
2258 (lower_function_body): Initialize it to false. If it is set to true
2259 at the end of the processing, emit the setjmp dispatcher.
2260 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
2261 is __builtin_setjmp and set calls_builtin_setjmp to true as well.
2262 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
2263 on the rhs of the assignment.
2264 (lower_builtin_setjmp): New function.
2265 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
2266 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
2267 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
2268 to detect calls that can go to non-local labels. Use specific
2269 helper to create the abnormal edges associated with them.
2270 <MODIFY_EXPR>: Likewise.
2271 (make_abnormal_goto_edges): New function extracted from...
2272 (make_goto_expr_edges): ...here. Call it for computed gotos.
2273 (simple_goto_p): Minor tweak.
2274 (tree_can_make_abnormal_goto): New predicate.
2275 (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
2276 (tree_purge_dead_abnormal_call_edges): New function.
2277 * tree-flow.h (tree_can_make_abnormal_goto): Declare.
2278 (tree_purge_dead_abnormal_call_edges): Likewise.
2279 (make_abnormal_goto_edges): Likewise.
2280 * tree-inline.c (expand_call_inline): Simplify statement frobbing.
2281 Purge all dead abnormal edges if the call was in the last statement.
2282 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
2283 (execute_fixup_cfg): If there are non-local labels in the function,
2284 scan the basic blocks and split them at calls that can go to non-local
2285 labels or add missing abnormal call edges. Write down the CFG in the
2287 (pass_fixup_cfg): Remove TODO_dump_func flag.
2288 * unwind-sjlj.c: Poison setjmp.
2289 * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
2290 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
2291 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
2292 (DONT_USE_BUILTIN_SETJMP): Document it.
2294 2006-09-28 Geoffrey Keating <geoffk@apple.com>
2297 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
2298 to 1 when __ppc64__ is defined.
2299 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
2301 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
2303 2006-09-28 Steve Ellcey <sje@cup.hp.com>
2305 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
2306 * config/ia64/unwind-hpux.c: Delete.
2308 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
2310 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
2311 on the element before gimplifying it, instead of punting if it is of
2314 2006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
2316 * doc/loop.texi: New file.
2317 * doc/gccint.texi: Reference loop.texi.
2318 * Makefile.in (loop.texi): Add.
2320 2006-09-27 Geoffrey Keating <geoffk@apple.com>
2322 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
2324 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2325 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2327 2006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
2329 * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
2331 2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
2333 * doc/install.texi: Document required versions of GMP and MPFR.
2335 2006-09-27 Paul Brook <paul@codesourcery.com>
2338 * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
2340 2006-09-27 Richard Sandiford <richard@codesourcery.com>
2342 * reload1.c (alter_reg): Require the alignment of the stack slot to
2343 be at least reg_max_ref_width bytes.
2344 (scan_paradoxical_subregs): Record the largest width in
2347 2006-09-26 Jakub Jelinek <jakub@redhat.com>
2351 * tree-nested.c (struct nesting_info): Added static_chain_added.
2352 (convert_call_expr): Set static_chain_added when adding static
2353 chain. Handle OMP_PARALLEL and OMP_SECTION.
2355 2006-09-25 Matthias Klose <doko@debian.org>
2357 * doc/invoke.texi: Add missing full stop.
2359 2006-09-25 Richard Henderson <rth@redhat.com>
2361 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
2362 before cgraph_function_flags_ready.
2364 2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
2365 Adam Nemet <anemet@caviumnetworks.com>
2367 * tree-ssa-loop-ivopts.c (aff_combination_convert,
2368 determine_common_wider_type): New functions.
2369 (get_computation_aff): Use them to simplify arithmetic between
2370 UBASE and CBASE if they are shortened from the same type.
2372 2006-09-24 Kazu Hirata <kazu@codesourcery.com>
2375 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
2376 -2147483647 - 1 instead of 0x80000000.
2378 2006-09-23 Revital1 Eres <ERES@il.ibm.com>
2380 * flags.h (HONOR_NANS): Fix typo in comment.
2382 2006-09-23 Uros Bizjak <uros@kss-loka.si>
2384 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
2386 2006-09-23 Jakub Jelinek <jakub@redhat.com>
2390 * tree.c (merge_attributes, attribute_list_contained): If both
2391 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
2393 * c-typeck.c (comptypes_internal): Don't consider aggregates
2394 in different TUs as compatible if there one set of attributes is
2395 not a subset of the other type's attributes.
2396 (composite_type): Try harder not to create a new aggregate type.
2398 2006-09-22 Geoffrey Keating <geoffk@apple.com>
2400 * config/i386/driver-i386.c: Always define host_detect_local_cpu.
2401 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
2402 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
2403 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
2404 than replicating condition above.
2405 * config.host (i[34567]86-*-*): Always use driver-i386.o.
2407 * config/darwin.h (LINK_SYSROOT_SPEC): New.
2408 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
2409 the linker by default.
2411 2006-09-22 Mike Stump <mrs@apple.com>
2413 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
2416 2006-09-22 Richard Guenther <rguenther@suse.de>
2419 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
2420 sort of stack variables stable.
2422 2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
2425 * explow.c (force_reg): Set REG_POINTER flag according to
2428 2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
2430 PR tree-optimization/28888
2431 * tree-if-conv.c (combine_blocks): Rewritten.
2432 * tree-cfg.c (tree_verify_flow_info): Check that edges with
2433 EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
2435 2006-09-22 Jakub Jelinek <jakub@redhat.com>
2437 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
2440 2006-09-21 Richard Sandiford <richard@codesourcery.com>
2442 * varasm.c (copy_constant): Fix reversed gcc_assert check.
2444 2006-09-21 Janis Johnson <janis187@us.ibm.com>
2446 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
2448 2006-09-21 Roger Sayle <roger@eyesopen.com>
2451 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
2452 dw_fde_current_label, to be the start of the function, i.e. the same
2453 value as dw_fde_begin.
2455 2006-09-20 Richard Sandiford <richard@codesourcery.com>
2457 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
2458 * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
2459 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
2460 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
2461 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
2462 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
2463 (abs<mode>2, neg<mode>2): Likewise.
2464 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
2465 (*mips_abs_ps): New define_insn.
2467 2006-09-20 Josh Conner <jconner@apple.com>
2470 * calls.c (expand_call): Allow reuse of structure return stack
2473 2006-09-20 Paul Brook <paul@codesourcery.com>
2475 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
2478 2006-09-20 Janis Johnson <janis187@us.ibm.com>
2480 * doc/extend.texi (Decimal Float): Update for latest draft TR,
2481 clean up terminology.
2483 2006-09-20 Steve Ellcey <sje@cup.hp.com>
2486 * ifcvt.c (dead_or_predicable): Don't predicate then blocks
2487 with tablejumps in them.
2489 2006-09-20 Jakub Jelinek <jakub@redhat.com>
2492 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
2493 wrap it into TARGET_EXPR.
2495 2006-09-20 Eric Christopher <echristo@apple.com>
2497 * config/i386/i386.c (x86_fisttp): Remove.
2498 * config/i386/i386.h (x86_fisttp): Ditto.
2499 (TARGET_FISTTP): Ditto.
2501 2006-09-19 Eric Christopher <echristo@apple.com>
2503 * doc/tm.texi (OBJC_JBLEN): Describe.
2504 * config/i386/darwin.h (OBJC_JBLEN): Define.
2505 * config/rs6000/darwin.h: Ditto.
2507 2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
2509 PR rtl-optimization/21299
2510 * reload1.c (reload): Purge invalid ASMs in the final pass.
2512 2006-09-19 Steve Ellcey <sje@cup.hp.com>
2515 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
2516 pointers as legitimate constants.
2518 2006-09-19 Paul Brook <paul@codesourcery.com>
2521 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
2523 2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
2525 PR tree-optimization/28887
2526 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
2527 component parts from the reference.
2528 (gather_memory_references_ref): Record the reference without the
2529 nonaddressable component parts.
2531 2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
2534 * c-opts.c (c_common_handle_option): Ignore the -std options
2535 if the input language is assembly.
2537 2006-09-17 Ira Rosen <irar@il.ibm.com>
2540 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
2542 (ptr_ptr_may_alias_p): Likewise.
2543 (record_record_differ_p): New function.
2544 (base_object_differ_p): Call record_record_differ_p.
2546 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
2549 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
2550 away for the expr argument.
2552 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
2555 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
2556 before using it for dumping after vectorizing loops.
2558 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
2559 Jack Howarth <howarth@bromo.med.uc.edu>
2562 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
2563 skip on error_mark_node.
2564 (rs6000_darwin64_record_arg_recurse): Likewise.
2566 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
2568 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
2569 * doc/rtl.texi: Remove related documentation.
2571 2006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
2573 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
2576 2006-09-15 Jim Wilson <wilson@specifix.com>
2578 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
2579 Handle symbol offsets same as they are handled in ia64_expand_move
2582 2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
2584 * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
2585 Add forgotten parameter to the fprintf call.
2587 2006-09-15 Steve Ellcey <sje@cup.hp.com>
2589 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
2591 2006-09-15 Uros Bizjak <uros@kss-loka.si>
2593 * doc/contrib.texi: Add my entry.
2595 2006-09-15 Nick Clifton <nickc@redhat.com>
2597 * doc/md.texi (Processor pipeline description): Fix typo in
2598 example of how to use the absence_set directive and reword the
2599 description to make it slightly easier to read.
2601 2006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
2603 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
2604 * loop-doloop.c (doloop_optimize): Use it to limit costs of
2605 expanding the number of iterations.
2606 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
2608 * cfgrtl.c (emit_insn_at_entry): New function.
2609 * rtl.h (emit_insn_at_entry): Declare it.
2610 * integrate.c (emit_initial_value_sets): Use it.
2612 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
2614 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
2616 (struct loop_work and related VEC declarations): Delete.
2617 (bfin_dump_loops): Print out new member bad.
2618 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
2619 (bfin_scan_loop): Don't recurse.
2620 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
2621 loops. No longer need to update outer loops if the current one is
2622 found bad. Move some validitiy checks to bfin_discover_loop.
2623 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
2624 but changed not to check for nesting. Also changed to use the new bad
2626 (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
2627 time. Use bitmap based test to discover loop nesting.
2629 2006-09-15 Kazu Hirata <kazu@codesourcery.com>
2631 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
2634 2006-09-14 Richard Guenther <rguenther@suse.de>
2635 Kazu Hirata <kazu@codesourcery.com>
2637 PR middle-end/28884.
2638 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
2639 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
2640 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
2641 with TARGET_FUNCTION_VALUE.
2643 2006-09-14 Anatoly Sokolov <aesok@post.ru>
2646 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
2648 2006-09-13 Aldy Hernandez <aldyh@redhat.com>
2650 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
2653 2006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
2656 * dwarf2out.c (loc_descriptor_from_tree_1): Handle
2659 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
2661 * basic_block.h (bb_has_eh_pred): Fix comment.
2663 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
2665 * flow.c (calculate_global_regs_live): Invalidate eh registers
2666 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
2667 (propagate_block): Handle eh registers as if they were set at basic
2669 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
2671 * global.c (global_conflicts): Make eh registers to conflict with
2672 pseudos live at basic block begin.
2673 * basic_block.h (bb_has_eh_pred): New function.
2675 2006-09-13 Richard Sandiford <richard@codesourcery.com>
2677 PR rtl-optimization/28982
2678 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
2679 index of a PRE_MODIFY or POST_MODIFY address.
2680 * reload1.c (inc_for_reload): Use find_replacement on the original
2681 base and index registers.
2683 2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
2685 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
2686 for -Os. Update __m128 alignment requirement.
2688 2006-09-13 Jan Hubicka <jh@suse.cz>
2690 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
2692 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2694 PR rtl-optimization/28243
2695 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
2696 the insn to which the note was originally attached.
2698 2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
2699 Roger Sayle <roger@eyesopen.com>
2701 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
2702 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
2703 on platforms that don't use dwarf for debug info.
2705 2006-09-12 Jason Merrill <jason@redhat.com>
2708 * builtins.c (expand_builtin_setjmp_receiver): Clobber
2709 hard_frame_pointer_rtx after using it to update the frame pointer.
2711 2006-09-12 Roger Sayle <roger@eyesopen.com>
2713 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
2714 (TARGET_ASM_CLOSE_PAREN): Likewise.
2715 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
2716 (TARGET_ASM_CLOSE_PAREN): Likewise.
2718 2006-09-12 Roger Sayle <roger@eyesopen.com>
2721 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
2722 frame information for frames larger than 512 Kbytes on Tru64 when
2723 using the native assembler.
2725 2006-09-12 Roger Sayle <roger@eyesopen.com>
2729 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
2730 and symbols. Instead use the implementation from cse.c's hash_rtx.
2732 2006-09-12 Jan Hubicka <jh@suse.cz>
2734 PR rtl-optimization/28071
2735 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
2736 (vect_transform_loop): Likewise.
2737 * tree-vectorizer.c (new_loop_vec_info): Likewise.
2738 (new_loop_vec_info): Likewise.
2739 (destroy_loop_vec_info): Likewise.
2740 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
2741 (create_stmt_ann): Likewise.
2742 (create_tree_ann): Rename to ...
2743 (create_tree_common_ann): ... this one; allocate only the common part
2745 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
2746 (get_value_handle): Likewise.
2747 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
2748 get_tree_common_ann.
2749 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
2750 (vinfo_for_stmt): Use stmt annotations.
2751 * tree-flow.h (tree_ann_common_t): New type.
2752 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
2753 (tree_ann, get_tree_ann, create_tree_ann): New.
2754 * tree-flow-inline.h (get_function_ann): Do more type checking.
2755 (stmt_ann): Likewise.
2756 (tree_ann): Rename to ...
2757 (tree_common_ann): ... this one; return ony common_ann
2758 (get_tree_ann): Rename to ...
2759 (tree_common_ann): This one; return only common_ann.
2760 * tree-vect-patterns.c (vect_pattern_recog_1): Update call
2763 2006-09-11 Geoffrey Keating <geoffk@apple.com>
2765 * config.gcc (i[34567]86-*-darwin*): Set with_arch and
2766 with_cpu by default.
2768 * dwarf2out.c (dwarf_file_data): New.
2769 (enum dw_val_class): Add dw_val_class_file.
2770 (struct dw_val_struct): Add val_file.
2771 (file_table): Change to a hash table.
2772 (file_table_emitted): Delete.
2773 (file_table_last_lookup_index): Delete.
2774 (emitcount): Delete.
2775 (last_emitted_file): New.
2776 (lookup_filename): Change prototype to return a struct dwarf_file_data.
2777 (init_file_table): Delete.
2778 (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
2779 (AT_addr): Add comment.
2783 (print_die): Handle dw_val_class_file.
2784 (print_dwarf_line_table): Update for new file table structure.
2785 (attr_checksum): Do checksum a filename.
2786 (same_dw_val_p, same_attr_p): Do compare a filename.
2787 (size_of_die): Handle dw_val_class_file.
2788 (value_format): Likewise.
2789 (output_die): Likewise. Also, call maybe_emit_file here.
2790 (struct file_info): Constify filenames. Make file_idx a pointer
2791 to a struct dwarf_file_data.
2792 (struct dir_info): Constify directory names. Remove 'used' field.
2793 (struct file_name_acquire_data): New.
2794 (file_name_acquire): New.
2795 (output_file_names): Modify to handle new file data structures.
2796 (add_src_coords_attributes): Use add_AT_file.
2797 (add_call_src_coords_attributes): Likewise.
2798 (dwarf2out_imported_module_or_decl): Likewise.
2799 (gen_subprogram_die): Modify for new file data structures.
2800 (gen_variable_die): Likewise.
2801 (file_table_eq): New.
2802 (file_table_hash): New.
2803 (file_table_last_lookup): New.
2804 (lookup_filename): Rewrite to handle new file data structures.
2805 (maybe_emit_file): Rewrite to handle new file data structures.
2806 (dwarf2out_source_line): Always call lookup_filename and
2808 (dwarf2out_init): Create file_table here.
2809 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
2810 (file_table_relative_p): New.
2811 (dwarf2out_finish): Change detection of relative filenames
2812 to work with new file data structures. Move output_line_info call
2813 after debug_info output.
2815 2006-09-11 H.J. Lu <hongjiu.lu@intel.com>
2820 * config/i386/i386.c (override_options): Always default to 16
2821 byte stack boundary.
2823 2006-09-11 Alexandre Oliva <aoliva@redhat.com>
2826 * var-tracking.c (dump_dataflow_set): Start dumping at
2828 (clobber_variable_part): Kill only the variable part in
2829 registers holding it, leaving other variables alone.
2831 2006-09-11 Josh Triplett <josh@freedesktop.org>
2833 * doc/extend.texi (Other Builtins): Actually use the macro
2834 argument in the documentation example for
2835 __builtin_types_compatible_p.
2837 2006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
2839 PR rtl-optimization/28726
2840 * sched-deps.c (sched_analyze_reg): New function extracted from...
2841 (sched_analyze_1): ...here. Call it to analyze references to
2842 registers. Treat again writes to a stack register as writing to the
2844 (sched_analyze_2): ...and here. Call it to analyze references to
2845 registers. Treat again reads of a stack register as reading the
2848 2006-09-11 Guenter Roeck <guenter@roeck-us.net>
2849 David Edelsohn <edelsohn@gnu.org>
2852 * config/rs6000/spe.md (frob_df_di): Remove %H.
2853 (frob_di_df): Remove %H. Change evmergelo to mr.
2854 (frob_di_df_2): Remove %H. Change evldd to two loads.
2856 2006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
2858 * doc/cpp.texi: Fix names of charset options.
2860 2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
2863 * config/i386/i386.c (override_options): Use 128-bit
2864 stack boundary always for 64bits.
2866 2006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2868 PR rtl-optimization/28636
2869 * combine.c (force_to_mode): Test for side-effects before
2870 substituting by zero.
2871 (simplify_shift_const): Likewise for zero or other constants.
2873 2006-09-10 Steven Bosscher <steven@gcc.gnu.org>
2876 * builtins.c (expand_builtin_setjmp): Force next_lab to be
2879 2006-09-10 Richard Sandiford <richard@codesourcery.com>
2882 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
2883 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
2884 returned by mode_for_size, rather than the mode of src itself,
2885 to choose between 32-bit and 64-bit patterns.
2886 (mips_mem_fits_mode_p): New function.
2887 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
2888 that the size of the source matches the size of the destination.
2889 (mov_<store>l, mov_<store>r): Likewise.
2891 2006-09-10 Eric Christopher <echristo@apple.com>
2893 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
2896 2006-09-09 Eric Christopher <echristo@apple.com>
2899 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
2902 2006-09-09 Roger Sayle <roger@eyesopen.com>
2903 Nicolas Setton <setton@adacore.com>
2905 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
2907 2006-09-10 Andreas Schwab <schwab@suse.de>
2909 * config/m68k/m68k.md (bungt_rev): New pattern.
2911 2006-09-09 Paolo Bonzini <bonzini@gnu.org>
2912 Dale Johannesen <dalej@apple.com>
2915 * regclass.c (struct reg_pref): Update documentation.
2916 (regclass): Set prefclass to NO_REGS if memory is the best option.
2917 (record_reg_classes): Cope with a prefclass set to NO_REGS.
2919 2006-09-08 Eric Christopher <echristo@apple.com>
2921 * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
2922 * config/t-slibgcc-darwin: Support x86_64 multilib.
2923 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
2924 Return 1 for x86_64-darwin.
2925 * config/i386/t-darwin: Add m64 multilib.
2926 (LIB2_SIDITI_CONV_FUNCS): Use.
2927 (LIB2FUNCS_EXTRA): Ditto.
2928 * config/i386/darwin.h: Support x86_64.
2929 * config/i386/i386.c (override_options): Turn on flag_pic
2930 for x86_64-darwin. Disable flag_omit_pointer.
2931 (get_pc_thunk_name): Assert !TARGET_64BIT.
2932 (legitimate_address_p): Disable machopic addressing for
2934 (legitimize_pic_address): Ditto.
2935 (ix86_expand_move): Ditto.
2936 (ix86_expand_call): Ditto.
2937 (machopic_output_stub): Ditto.
2938 * config/darwin.c (machopic_select_section): Support literal16.
2939 (machopic_select_rtx_section): Ditto.
2940 * config/darwin-sections.def: Ditto.
2941 * config/darwin-64.c: New.
2943 2006-09-08 Joseph S. Myers <joseph@codesourcery.com>
2946 * c-tree.h (struct c_arg_info): Add pending_sizes.
2947 * c-parser.c (c_parser_parms_declarator,
2948 c_parser_parms_list_declarator): Initialize pending_sizes.
2949 * c-decl.c (get_parm_info): Initialize pending_sizes.
2950 (get_parm_info): Set pending_sizes.
2951 (grokdeclarator): Call put_pending_sizes for parameters for
2952 function definition only.
2954 2006-09-07 Jason Merrill <jason@redhat.com>
2957 * varasm.c (output_constant): Only strip actual no-op conversions.
2960 * config/i386/i386.c (override_options): Use 128-bit
2961 stack boundary if -msse.
2963 2006-09-07 Eric Christopher <echristo@apple.com>
2965 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
2967 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
2970 2006-09-07 Geoffrey Keating <geoffk@apple.com>
2972 * dwarf2out.c: Remove strange characters from comment above
2973 dwarf2out_frame_debug_expr.
2975 2006-09-07 Eric Christopher <echristo@apple.com>
2977 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
2978 * config/darwin.h: ... to here.
2980 2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
2982 * config/i386/i386.c (x86_partial_flag_reg_stall): New.
2984 * config/i386/i386.h (x86_partial_flag_reg_stall): New.
2985 (TARGET_PARTIAL_FLAG_REG_STALL): New.
2987 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
2988 TARGET_PARTIAL_FLAG_REG_STALL.
2989 (*ashldi3_cconly_rex64): Likewise.
2990 (*ashlsi3_cmp): Likewise.
2991 (*ashlsi3_cconly): Likewise.
2992 (*ashlsi3_cmp_zext): Likewise.
2993 (*ashlhi3_cmp): Likewise.
2994 (*ashlhi3_cconly): Likewise.
2995 (*ashlqi3_cmp): Likewise.
2996 (*ashlqi3_cconly): Likewise.
2997 (*ashrdi3_cmp_rex64): Likewise.
2998 (*ashrdi3_cconly_rex64): Likewise.
2999 (*ashrsi3_cmp): Likewise.
3000 (*ashrsi3_cconly): Likewise.
3001 (*ashrsi3_cmp_zext): Likewise.
3002 (*ashrhi3_cmp): Likewise.
3003 (*ashrhi3_cconly): Likewise.
3004 (*ashrqi3_cmp): Likewise.
3005 (*ashrqi3_cconly): Likewise.
3006 (*lshrdi3_cmp_rex64): Likewise.
3007 (*lshrdi3_cconly_rex64): Likewise.
3008 (*lshrsi3_cmp): Likewise.
3009 (*lshrsi3_cconly): Likewise.
3010 (*lshrsi3_cmp_zext): Likewise.
3011 (*lshrhi3_cmp): Likewise.
3012 (*lshrhi3_cconly): Likewise.
3013 (*lshrqi2_cmp): Likewise.
3014 (*lshrqi2_cconly): Likewise.
3016 2006-09-07 Uros Bizjak <uros@kss-loka.si>
3019 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
3020 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
3021 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
3022 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
3023 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
3024 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
3025 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
3026 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
3027 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
3028 implement only CC setting effects of shift instructions.
3030 2006-09-07 Martin Michlmayr <tbm@cyrius.com>
3032 * doc/contrib.texi: Add myself.
3034 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
3037 * stor-layout.c (relayout_decl): Don't zero the alignment if it
3038 was set by the user.
3040 2006-09-07 Paolo Bonzini <bonzini@gnu.org>
3043 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
3044 (divsi_inv_m1): Use them.
3045 (UNSPEC_DIV_INV_TABLE): New constant.
3047 2006-09-06 James E Wilson <wilson@specifix.com>
3050 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
3051 then call count_or_remove_death_notes.
3053 2006-09-06 Jason Merrill <jason@redhat.com>
3056 * tree-inline.c (copy_result_decl_to_var): New fn.
3057 (declare_return_variable): Use it. Call declare_inline_vars here.
3058 (expand_call_inline): Not here.
3060 2006-09-06 Diego Novillo <dnovillo@redhat.com>
3062 * doc/contrib.texi: Update my entry.
3064 2006-09-06 Nick Clifton <nickc@redhat.com>
3066 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
3068 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
3071 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
3072 (canonicalize_induction_variables): Likewise.
3073 (tree_unroll_loops_completely): Likewise.
3074 (tree_ssa_prefetch_arrays): Likewise.
3075 (remove_empty_loops): Likewise.
3076 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
3077 TODO_cleanup_cfg instead of directly calling
3078 cleanup_tree_cfg_loop.
3079 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
3081 (tree_unroll_loops_completely): Likewise.
3082 (remove_empty_loops): Likewise.
3083 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
3084 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
3085 of tree_ssa_unswitch_loops.
3086 (tree_ssa_loop_ivcanon): Use the return value of
3087 canonicalize_induction_variables.
3088 (tree_ssa_empty_loop): Use the return value of
3090 (tree_complete_unroll): Use the return value of
3091 tree_unroll_loops_completely.
3092 (tree_ssa_loop_prefetch): Use the return value of
3093 tree_ssa_prefetch_arrays.
3094 * passes.c (execute_todo): Before Cleanup CFG, set
3095 updating_used_alone and after cleanup CFG, call
3096 recalculate_used_alone.
3098 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
3101 * tree-vect-transform.c (vectorizable_condition): Move the check
3102 for the type after the check for simple condition.
3104 2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
3105 Kaz Kojima <kkojima@gcc.gnu.org>
3108 * mode-switching.c (optimize_mode_switching): Make the destination
3109 block of an abnormal edge have no anticipatable mode. Don't
3110 insert mode switching code at the end of the source block of
3113 2006-09-05 Paolo Bonzini <bonzini@gnu.org>
3115 PR rtl-optimization/26847
3116 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
3117 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
3118 (simplify_plus_minus): Count n_constants while filling ops. Replace
3119 qsort with insertion sort. Before going through the array to simplify
3120 pairs, sort it. Delay early exit until after the first sort, exiting
3121 only if no swaps occurred. Simplify pairs in reversed order, without
3122 special-casing the first iteration. Pack ops after simplifying pairs.
3124 2006-09-05 Anatoly Sokolov <aesok@post.ru>
3126 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
3127 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3128 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3129 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
3131 2006-09-05 Richard Guenther <rguenther@suse.de>
3133 PR tree-optimization/28900
3134 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
3135 compound conditional before creating COND_EXPR condition.
3137 2006-09-05 Richard Guenther <rguenther@suse.de>
3139 PR tree-optimization/28905
3140 * tree-vrp.c (fix_equivalence_set): Manually implement
3141 !value_ranges_intersect_p to also handle symbolic ranges.
3143 2006-09-05 Richard Guenther <rguenther@suse.de>
3146 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
3149 2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3151 PR rtl-optimization/27616
3152 * cse.c (table_size): New static variable.
3153 (new_basic_block): Initialize it to 0.
3154 (remove_from_table): Decrement it.
3155 (insert): Increment it.
3156 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
3157 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
3158 fold_rtx_mem_1 if under the cap.
3159 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
3160 the lookup of the equivalent expression and test for equality of the
3161 first operand of the equivalent expression before in turn looking up
3162 an equivalent constant for the second operand.
3164 2006-09-02 Geoffrey Keating <geoffk@apple.com>
3167 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
3168 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3169 pointer, instead of assuming it is possible to derive the
3170 correct args size from a call insn.
3172 2006-09-02 Jakub Jelinek <jakub@redhat.com>
3175 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
3176 (fold_builtin_mempcpy): Rename to...
3177 (fold_builtin_memory_op): ... this. Optimize one element copy
3179 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
3181 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
3182 (expand_builtin_memcpy, expand_builtin_mempcpy,
3183 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
3184 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
3185 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
3186 BUILT_IN_MEM{CPY,PCPY,MOVE}.
3188 2006-09-01 DJ Delorie <dj@redhat.com>
3190 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
3191 (stzx_16): Likewise.
3192 ("stzx_24_<mode>"): Likewise.
3193 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
3194 ("cmp<mode>_op"): New.
3195 (cmp<mode>): Change to expander; just save operands.
3197 (b<code>): Change to expander, emit compare here.
3198 (s<code>_op): Change to use split and expander.
3199 (s<code>_24_op): Likewise.
3200 (s<code>_<mode>): New.
3201 (s<code>_<mode>_24): New.
3202 (movqicc_<code>_<mode): New.
3203 (movhicc_<code>_<mode>): New.
3206 * config/m32c/m32c.c (compare_op0, compare_op1): New.
3207 (m32c_pend_compare): New.
3208 (m32c_unpend_compare): New.
3209 (m32c_expand_scc): New.
3210 (m32c_expand_movcc): Emit the compare also.
3211 * config/m32c/predicates.md (mra_nopp_operand): New.
3213 2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
3214 Richard Guenther <rguenther@suse.de>
3215 Adam Nemet <anemet@caviumnetworks.com>
3218 * builtins.c (get_pointer_alignment): Handle more forms
3219 of base addresses that can be used to derive more precise
3220 information about alignment.
3222 2006-09-01 Jason Merrill <jason@redhat.com>
3225 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
3228 * gimplify.c (voidify_wrapper_expr): Handle null type.
3230 2006-09-01 Josh Conner <jconner@apple.com>
3233 * tree-nrv.c (dest_safe_for_nrv_p): New function.
3234 (execute_return_slot_opt): Use it.
3236 2006-08-31 Josh Conner <jconner@apple.com>
3239 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
3240 returning aggregates.
3242 2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
3244 PR tree-optimization/28839
3245 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
3246 blocks in that phi arguments appear.
3248 2006-08-31 Roger Sayle <roger@eyesopen.com>
3251 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
3252 NULL, otherwise use an advance_loc4 to adjust relative to the
3254 (output_cfi) <DW_CFA_set_loc>: Update the current label.
3255 (dwarf2out_switch_text_section): Reset the current label to avoid
3256 using advance_loc4 over section boundaries.
3258 2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
3261 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
3262 r12 + SYMBOLIC_CONST.
3264 2006-08-30 Richard Guenther <rguenther@suse.de>
3266 * Makefile.in (see.o): Add $(EXPR_H) dependency.
3268 2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
3270 PR rtl-optimization/27735
3271 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
3272 Add new argument to keep track of whether an irreducible region
3273 was affected. All callers changed.
3274 (fix_irreducible_loops): Removed.
3275 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
3276 flags were invalidated.
3278 2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
3280 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
3281 instead of SF operands.
3282 (*fop_df_comm_sse): Likewise.
3283 (*fop_df_comm_i387): Likewise.
3284 (*fop_df_1_mixed): Likewise.
3285 (*fop_df_1_sse): Likewise.
3287 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
3288 J"orn Rennecke <joern.rennecke@st.com>
3290 PR tree-optimization/17506
3291 * tree-ssa.c (warn_uninit): If warning about a location outside of
3292 the current function, note where the variable was declared.
3294 2006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
3296 PR tree-optimization/28411
3297 * double-int.c (double_int_div): Use double_int_divmod.
3298 (double_int_divmod, double_int_sdivmod, double_int_udivmod,
3299 double_int_mod, double_int_smod, double_int_umod): New functions.
3300 * double-int.h (double_int_divmod, double_int_sdivmod,
3301 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
3303 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
3305 (get_computation_aff, get_computation_cost_at): Handle double_int
3306 return type of constant_multiple_of.
3308 2006-08-28 Kazu Hirata <kazu@codesourcery.com>
3311 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
3312 an implicit conversion.
3314 2006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
3316 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
3318 2006-08-27 Roger Sayle <roger@eyesopen.com>
3320 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
3323 2006-08-27 Kazu Hirata <kazu@codesourcery.com>
3325 * config/i386/crtfastmath.c: Fix a comment typo.
3327 2006-08-26 Roger Sayle <roger@eyesopen.com>
3329 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
3330 temporary visit flags on CASE_LABEL_EXPRs.
3331 * c-common.c (match_case_to_enum): Add function comment. Avoid
3332 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
3333 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
3334 CASE_HIGH_SEEN for enumerated types. If the switch expression is
3335 a constant, only warn if that constant value isn't handled.
3337 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
3340 * input.h (restore_input_file_stack): Declare.
3341 (INPUT_FILE_STACK_BITS): Define.
3342 * toplev.c (fs_p, input_file_stack_history,
3343 input_file_stack_restored, restore_input_file_stack): New.
3344 (push_srcloc, pop_srcloc): Check for input_file_stack_tick
3345 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
3346 (pop_srcloc): Don't free old state of stack.
3348 2006-08-26 David Edelsohn <edelsohn@gnu.org>
3351 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
3352 (PowerPC Type Attributes): New.
3354 2006-08-26 Bob Wilson <bob.wilson@acm.org>
3356 * config/xtensa/xtensa.c (function_arg_boundary): New.
3357 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
3359 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
3360 function_arg_boundary function that limits alignment to STACK_BOUNDARY.
3362 2006-08-26 Jakub Jelinek <jakub@redhat.com>
3365 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
3368 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3370 * flow.c (verify_wide_reg): Use internal_error for consistency failure.
3371 (verify_local_live_at_start): Likewise.
3373 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
3376 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
3377 omp_add_variable): Treat sizes as variable whenever not
3380 2006-08-26 Richard Guenther <rguenther@suse.de>
3383 * fold-const.c (fold_binary): Fold temporary to correct
3384 type before constructing new comparison.
3386 2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
3389 * c-gimplify.c (gimplify_compound_literal_expr): Don't add
3390 variable again if DECL_SEEN_IN_BIND_EXPR_P.
3392 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
3395 * c-decl.c (start_function): Don't try to process prototype
3396 information from old declaration that isn't a function.
3398 2006-08-25 Jan Hubicka <jh@suse.cz>
3401 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
3403 2006-08-25 Alan Modra <amodra@bigpond.net.au>
3406 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
3409 2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
3411 PR tree-optimization/16876
3412 * c-typeck.c (c_convert_parm_for_inlining): Don't take early
3413 exit if PARM doesn't match VALUE.
3415 2006-08-25 Bob Wilson <bob.wilson@acm.org>
3417 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
3418 literal_prefix directive.
3419 (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
3420 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
3421 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
3423 2006-08-25 David Edelsohn <edelsohn@gnu.org>
3426 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
3427 predicate to general_operand. Add 0->y and I->r alternatives.
3429 2006-08-25 Kazu Hirata <kazu@codesourcery.com>
3431 * doc/tm.texi: Fix a typo.
3432 * predict.c: Fix comment typos.
3434 2006-08-25 Nick Clifton <nickc@redhat.com>
3436 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3437 assertions of "cpu" and "machine".
3439 2006-08-24 Andrew Pinski <pinskia@physics.uc.edu>
3442 * tree-ssa-operands.c (access_can_touch_variable): Don't say
3443 the access through a base which has an alias set of 0 cannot
3446 2006-08-24 Bill Wendling <wendling@apple.com>
3448 * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
3450 2006-08-24 Jan Hubicka <jh@suse.cz>
3452 * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
3454 2006-08-24 Jan Hubicka <jh@suse.cz>
3457 * cgraph.c: Fix comments.
3458 (cgraph_varpool_mark_needed_node): Mark only variables not already
3460 * cgraphunit.c: Update comments; include gt-cgraphunit.h
3461 (cgraph_varpool_assembled_nodes_queue): New static variable.
3462 (cgraph_varpool_assemble_decl): Record output decls for debug out code.