1 2006-11-07 David Ung <davidu@mips.com>
3 * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
4 costs when optimizing for size.
5 (override_options): Use mips_rtx_cost_optimize_size table for cost
8 2006-11-07 Jie Zhang <jie.zhang@analog.com>
10 * gcc.c (process_command): Treat -b as normal switch if its argument
13 2006-11-07 David Ung <davidu@mips.com>
15 * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
18 2006-11-06 Eric Christopher <echristo@apple.com>
20 * config.gcc: Add x86_64-darwin host support.
22 * config/i386/darwin64.h: New file.
23 * config/i386/t-darwin64: Ditto.
25 2006-11-06 Janis Johnson <janis187@us.ibm.com>
27 * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
28 and output-exists-not.
30 2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
33 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
34 checking for overflow.
36 2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
38 * configure.ac: Fixed typo in case statement: :: changed to ;;
40 2006-11-06 Bob Wilson <bob.wilson@acm.org>
42 * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
43 count_leading_zeros, and count_trailing_zeros.
44 * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
45 (TARGET_FOLD_BUILTIN): Define.
46 (TARGET_EXPAND_BUILTIN): Define.
47 (xtensa_init_builtins): New.
48 (xtensa_fold_builtin): New.
49 (xtensa_expand_builtin): New.
50 (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT.
51 * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
52 (CLZ_DEFINED_VALUE_AT_ZERO): Define.
53 (CTZ_DEFINED_VALUE_AT_ZERO): Define.
54 * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
55 (any_extend): New code macro.
56 (u, su): New code attributes.
57 (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
58 (nsau): Remove; replaced by clzsi2.
60 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
61 _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz.
62 * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
63 (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
64 (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
66 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
68 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
70 * config/arm/t-strongarm-elf: Likewise.
71 * config/arm/t-pe: Likewise.
72 * config/arm/t-arm-elf: Likewise.
73 * config/arm/t-xscale-elf: Likewise.
74 * config/arm/t-arm-coff: Likewise.
75 * config/arm/t-xscale-coff: Likewise.
76 * config/arm/t-wince-pe: Likewise.
78 2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
80 * config/sh/lib1funcs-4-300.asm: Guard entire file with
83 2006-11-05 Jakub Jelinek <jakub@redhat.com>
86 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
89 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
92 * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
93 as a valid 80387 constant.
94 (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
95 * config/i386/i386.md (unnamed splitter): Split the load of
96 constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed
99 2006-11-04 Richard Earnshaw <rearnsha@arm.com>
101 * arm.c (thumb_legitimate_addres_p): Allow any constant offset
102 from the soft-frame, argument and virtual registers.
104 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
106 * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
107 patterns for standard 80387 constants.
109 2006-11-03 Paolo Bonzini <bonzini@gnu.org>
110 Steven Bosscher <steven@gcc.gnu.org>
112 * fwprop.c: New file.
113 * Makefile.in: Add fwprop.o.
114 * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
115 * passes.c (init_optimization_passes): Schedule forward propagation.
116 * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
118 * timevar.def (TV_FWPROP): New.
119 * common.opt (-fforward-propagate): New.
120 * opts.c (decode_options): Enable forward propagation at -O2.
121 * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
122 * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
123 canon_for_address, table_size): Remove.
124 (new_basic_block, insert, remove_from_table): Remove references to
126 (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
127 simplification loop more straightforward by not calling fold_rtx
129 (equiv_constant): Move here a small part of fold_rtx_subreg,
130 do not call fold_rtx. Call avoid_constant_pool_reference
132 * recog.h (canonicalize_change_group): New.
134 * doc/invoke.texi (Optimization Options): Document fwprop.
135 * doc/passes.texi (RTL passes): Document fwprop.
137 2006-11-03 Geoffrey Keating <geoffk@apple.com>
139 * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
140 (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
141 (grokdeclarator): Likewise.
143 2006-11-03 Steven Bosscher <steven@gcc.gnu.org>
145 * tree-dump.c (dump_enable_all): Rename local variable
146 ir_type to avoid name conflicts.
147 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
148 instead of using ir_type().
149 * profile.c (tree_register_profile_hooks): Likewise.
150 * value-prof.c (tree_register_value_prof_hooks): Likewise.
151 * basic-block.h (struct edge_def): Likewise.
152 * config/arm/arm.c (legitimize_pic_address): Likewise.
153 * coretypes.h (ir_type): New enum of all intermediate languages
155 * cfghooks.c (ir_type): Rename to...
156 (current_ir_type): ...this. Distinguish between cfgrtl and
157 cfglayout mode when the current IR is RTL. Return enum ir_type.
158 * cfghooks.h (ir_type): Replace with current_ir_type prototype.
160 2006-11-03 Paul Brook <paul@codesourcery.com>
162 * config/arm/arm.c (arm_file_start): New function.
163 (TARGET_ASM_FILE_START): Define.
164 (arm_default_cpu): New variable.
165 (arm_override_options): Set arm_default_cpu.
167 2006-11-03 David Ung <davidu@mips.com>
169 * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
170 PROCESSOR_24KC and PROCESSOR_24KF.
171 * config/mips/mips.c (mips_cpu_info_table): Add processor names
172 and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
173 (mips_rtx_cost_data): Add costs for the 24kc.
174 * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
175 * config/mips/24k.md: Remove references to 24k and replace with
176 uses of 24kc/24kf in the appropriate reservations.
177 * doc/invoke.texi (MIPS Options): Updated.
179 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
181 * config/sh/crt1.asm: Fix #ifdef indent.
183 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
184 Merged from STMicroelectronics sources:
185 2006-10-06 Andrew Stubbs <andrew.stubbs@st.com>
186 * config/sh/crt1.asm (vbr_600): Add missing #if.
187 2006-08-03 J"orn Rennecke <joern.rennecke@st.com>
188 * sh.opt (mfused-madd): New option.
189 * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
190 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
191 * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
192 Remove pointless handler at VBR+0.
193 (vbr_200, vbr_300, vbr_500): Remove pointless handler.
194 (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
195 fr7. Make sure the timer handler is called with the correct FPU
196 precision setting, according to the ABI.
197 2006-06-14 J"orn Rennecke <joern.rennecke@st.com>
198 * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
199 * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
200 (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
201 2006-06-09 J"orn Rennecke <joern.rennecke@st.com>
202 * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept
203 zero as second operand.
204 2006-04-28 J"orn Rennecke <joern.rennecke@st.com>
205 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
206 Fixed some bugs related to negative values, in particular -0
207 and overflow at -0x80000000.
208 * config/sh/divcost-analysis: Added sh4-300 figures.
209 2006-04-27 J"orn Rennecke <joern.rennecke@st.com>
210 * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
211 2006-04-26 J"orn Rennecke <joern.rennecke@st.com>
212 * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
213 ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
214 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
216 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
218 2006-04-24 J"orn Rennecke <joern.rennecke@st.com>
219 SH4-300 scheduling description & fixes to SH4-[12]00 description:
220 * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
221 mac_mem, mem_mac, dfp_mul, fp_cmp.
222 (insn_class, dfp_comp, any_fp_comp): Update.
223 (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
224 (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
225 (muldf3_i): Likewise.
226 (movsi_i): Split rI08 alternative into two separate alternatives.
228 (movsi_ie, movsi_i_lowpart): Likewise.
229 (movqi_i): Split ri alternative into two separate alternatives.
231 * sh1.md (sh1_load_store, sh1_fp): Update.
232 * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
233 (mac_mem, sh4_fpscr_toggle): New insn_reservations.
234 * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
235 (sh4a_fp_double_arith): Likewise.
236 * sh4-300.md: New file.
237 * sh.c (sh_handle_option): Handle m4-300* options.
238 (sh_adjust_cost): Fix latency of auto-increments.
239 Handle SH4-300 differently than other SH4s. Check for new insn types.
240 * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
241 been set by an option.
242 * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
243 (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
244 (mbranch-cost=): Likewise.
245 * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
247 * sh.md (mulsf3): Remove special expansion code.
248 (mulsf3_ie): Now a define_insn_and_split.
249 (macsf3): Allow for TARGET_SH4.
251 * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
252 * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
253 (expand_cbranchdi4): Likewise.
254 (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
255 CONST_DOUBLE if the outer code is COMPARE.
256 * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
257 TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
258 (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
259 (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
260 Remove redundant fp_{zero,one}_operand checks.
261 * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
262 * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
263 (expand_cbranchdi4): Likewise.
264 2006-04-20 J"orn Rennecke <joern.rennecke@st.com>
265 * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
267 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
269 * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
272 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
274 * doc/invoke.texi: Fix mfp-trap-mode typo.
276 2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
278 * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
279 * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
280 file_end_indicate_exec_stack.
281 * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
283 * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
284 for a non-executable stack.
285 * crti.asm: Likewise.
286 * crtn.asm: Likewise.
287 * libunwind.S: Likewise.
289 2006-11-02 Ben Elliston <bje@au.ibm.com>
291 * tree-ssa.c (warn_uninit): Use expand_location variables for
292 locus and declaration locus.
294 2006-11-02 Kaz Kojima <kkojima@gcc.gnu.org>
297 * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
298 (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
299 cmp{eq,gt,gtu}{si,di}_media.
300 (*cmpne0si_media): Remove.
301 (*movsicc_umin): Adjust gen_cmp*_media call.
302 (unordered): Change the mode of unordered and operands[1] to
304 (seq): Adjust gen_cmp*_media calls. Make the mode of
305 a temporary result of compare SImode if needed. If the mode
306 of operands[0] is DImode, extend the temporary result to DImode.
307 (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
308 (sunorderd): Change the mode of match_operand and unorderd to
310 (cmpeq{sf,df}_media): Remove.
311 (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
312 (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
313 and compare operation to SImode.
315 2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
317 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
319 (sparc64-sun-solaris2*): Likewise.
321 2006-11-02 Paul Brook <paul@codesourcery.com>
323 * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
324 from priority argument. Use different section for non-default
326 * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
328 2006-11-02 Eric Botcazou <ebotcazou@adacore.com>
331 * except.c (switch_to_exception_section): Do not cache the section
332 if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
333 and flag_function_sections is set.
335 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
338 * builtins.c (do_mpfr_sincos): New.
339 (fold_builtin_1): Use it to fold builtin sincos.
341 2006-11-01 Roger Sayle <roger@eyesopen.com>
343 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
344 it into -D_REENTRANT.
346 2006-11-01 Roger Sayle <roger@eyesopen.com>
348 * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
349 whether the assembler supports taking the difference of symbols in
350 different sections. On x86/Solaris, GAS does but Solaris as doesn't.
351 * configure: Regenerate.
352 * config.in: Regenerate.
353 * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
354 the assembler doesn't support taking the difference of symbols in
355 different sections, i.e. we're using the native solaris assembler.
357 2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
358 Peter Bergner <bergner@vnet.ibm.com>
360 * doc/invoke.texi: Add cpu_type power6x
361 (RS/6000 and PowerPC Options): Add -mmfpgpr.
362 * config.gcc: Add cpu_type power6x.
363 * configure.ac: Add test for mf{t,f}gpr instructions.
364 (HAVE_AS_MFPGPR): New.
365 * config.in: Regenerate.
366 * configure: Regenerate.
367 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
368 * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
369 shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
370 and mftgpr attributes.
371 (define_attr "cpu"): Add power6.
372 Change instruction sequences to use new attributes.
373 (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
374 (fix_truncdfsi2_mfpgpr): New.
375 (floatsidf_ppc64_mfpgpr): New.
376 (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
377 (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
378 (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
379 (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
380 (fix_truncdfsi2): Use gpc_reg_operand constraint.
381 * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
382 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
383 Add descriptions for insert_dword, shift,trap,var_shift_rotate,
384 cntlz,exts and var_delayed_compare.
385 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
386 _ARCH_PWR6X, if features enabled.
387 * config/rs6000/rs6000.opt (mmfpgpr): New.
388 * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
389 (cached_can_issue_more): New variable.
390 (processor_costs): Add power6_cost.
391 (rs6000_sched_init): New function.
392 (is_dispatch_slot_restricted): Deleted.
393 (set_to_load_agen): New function.
394 (is_load_insn,is_store_insn): New functions.
395 (adjacent_mem_locations): New function.
396 (insn_must_be_first_in_group): New function.
397 (insn_must_be_last_in_group): New function.
398 (rs6000_sched_reorder): New function.
399 (rs6000_sched_reorder2): New function.
400 (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
401 TARGET_SCHED_REORDER2): Define.
402 (processor_target_table): Use PROCESSOR_POWER6 for power6.
403 Add power6x. Add MASK_MFPGPR for power6x.
404 (POWERPC_MASKS): Add MASK_MFPGPR.
405 (rs6000_override_options): Set rs6000_always_hint to false
406 for power6. Set rs6000_align_branch_targets. Replace
407 rs6000_sched_groups check with rs6000_align_branch_targets.
408 Use PROCESSOR_POWER6.
409 (last_scheduled_insn): New variable.
410 (load_store_pendulum): New variable.
411 (rs6000_variable_issue): Set last_scheduled_insn and
412 cached_can_issue_more.
413 (rs6000_adjust_cost): Add power6 cost adjustments.
414 (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
415 with insn_must_be_first_in_group. Add power6 priority adjustments.
416 (rs6000_issue_rate): Add CPU_POWER6.
417 (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
418 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
419 (TARGET_MFPGPR): New.
420 (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
421 (ASM_CPU_SPEC): Add power6x.
422 (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
424 * config/rs6000/power6.md: New file.
426 2006-11-01 Adam Nemet <anemet@caviumnetworks.com>
428 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
429 HOST_WIDE_INT_PRINT to print high and low parts. Use
430 HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When
431 printing a hexadecimal number prefix it with 0x.
433 2006-11-01 Chris Johns <chris@contemporary.net.au>
436 * Makefile.in (install-driver): Use exeext when installing
437 $target-gcc-$version.
439 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
441 * c-common.c (flag_cpp0x): New.
442 * c-common.h (flag_cpp0x): New.
443 * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
444 supported, define __GXX_EXPERIMENTAL_CPP0X__.
445 * c-opts.c (set_std_cxx0x): New.
446 (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
447 * c.opt (std=c++0x): Document.
448 (std=gnu++0x): Ditto.
449 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
450 * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
452 2006-11-01 Richard Guenther <rguenther@suse.de>
454 * config/i386/i386.c (ix86_expand_rint): Fix issues with
456 (ix86_expand_floorceildf_32): Likewise.
457 (ix86_expand_floorceil): Likewise.
458 (ix86_expand_trunc): Likewise.
460 2006-10-31 Andrew Pinski <pinskia@gmail.com>
462 * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
465 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
467 * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
469 * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
471 * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
473 * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
474 * configure.ac (use_cxa_atexit): As a special case, don't test
475 for libc definition of __cxa_atexit on mingw32
476 * configure: Regenerate.
477 * config.gcc (i[34567]86-pc-mingw32): Default to
478 enable__cxa_atexit=yes.
480 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
482 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
484 2006-10-31 Geoffrey Keating <geoffk@apple.com>
487 * c-decl.c (start_struct): Don't create self-containing
489 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
491 * config/rs6000/rs6000-protos.h
492 (darwin_rs6000_special_round_type_align): New.
493 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
494 (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
496 2006-10-31 Geoffrey Keating <geoffk@apple.com>
498 * toplev.c (compile_file): Call final_write_globals
499 even if there have been errors.
501 2006-10-31 Eric Christopher <echristo@apple.com>
502 Falk Hueffner <falk@debian.org>
504 * doc/extend.texi (__builtin_bswap32): Document.
505 (__builtin_bswap64): Ditto.
506 * doc/libgcc.texi (bswapsi2): Document.
508 * doc/rtl.texi (bswap): Document.
509 * optabs.c (expand_unop): Don't widen a bswap.
510 (init_optabs): Init bswap. Set libfuncs explicitly
511 for bswapsi2 and bswapdi2.
512 * optabs.h (OTI_bswap): New.
513 (bswap_optab): Ditto.
514 * genopinit.c (optabs): Handle bswap_optab.
515 * tree.h (tree_index): Add TI_UINT32_TYPE and
517 (uint32_type_node): New.
518 (uint64_type_node): Ditto.
519 * tree.c (build_common_tree_nodes_2): Initialize
520 uint32_type_node and uint64_type_node.
521 * builtins.c (expand_builtin_bswap): New.
522 (expand_builtin): Call.
523 (fold_builtin_bswap): New.
524 (fold_builtin_1): Call.
525 * fold-const.c (tree_expr_nonnegative_p): Return true
527 * builtin-types.def (BT_UINT32): New.
529 (BT_FN_UINT32_UINT32): Ditto.
530 (BT_FN_UINT64_UINT64): Ditto.
531 * builtins.def (BUILT_IN_BSWAP32): New.
532 (BUILT_IN_BSWAP64): Ditto.
533 * rtl.def (BSWAP): New.
534 * genattrtab.c (check_attr_value): New.
535 * libgcc2.c (__bswapSI2): New.
537 * libgcc2.h (__bswapSI2): Declare.
539 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
540 * simplify-rtx.c (simplify_const_unary_operation): Return
542 * libgcc-std.ver (__bwapsi2): Add.
544 * reload1.c (eliminate_regs_1): Add bswap.
545 (elimination_effects): Ditto.
546 * config/i386/i386.h (x86_bswap): New.
548 * config/i386/i386.c (x86_bswap): Set.
550 2006-10-31 Geoffrey Keating <geoffk@apple.com>
552 * coverage.c (coverage_checksum_string): Update comment.
553 * dwarf2out.c (switch_to_eh_frame_section): Update for removal
554 of get_file_function_name.
555 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
556 of get_file_function_name_long.
557 * tree.c (get_file_function_name): Rename from
558 get_file_function_name_long; improve comment; handle 'I' and 'D'
559 specially when the target has ctor/dtor support; remove special
561 (get_file_function_name): Remove.
562 * tree.h (get_file_function_name): Rename from
563 get_file_function_name_long.
564 (get_file_function_name): Remove prototype.
566 2006-10-31 Geoffrey Keating <geoffk@apple.com>
568 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
569 * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
571 * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
572 Call dsymutil when compiling and linking one or more source files
575 2006-10-31 Geoffrey Keating <geoffk@apple.com>
578 * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
580 2006-10-31 Geoffrey Keating <geoffk@apple.com>
582 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
583 inline static functions in c99 mode.
586 * doc/extend.texi (Inline): Update.
587 * c-tree.h (struct language_function): Remove field 'extern_inline'.
588 * c-decl.c (current_extern_inline): Delete.
589 (pop_scope): Adjust test for an undefined nested function.
590 Add warning about undeclared inline function.
591 (diagnose_mismatched_decls): Update comments. Disallow overriding
592 of inline functions in a translation unit in C99. Allow inline
593 declarations in C99 at any time.
594 (merge_decls): Boolize variables. Handle C99 'extern inline'
596 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
597 C99 inline semantics.
598 (start_function): Don't clear current_extern_inline. Don't set
600 (c_push_function_context): Don't push current_extern_inline.
601 (c_pop_function_context): Don't restore current_extern_inline.
604 * c-typeck.c (build_external_ref): Warn about static variables
605 used in extern inline functions.
606 * c-decl.c (start_decl): Warn about static variables declared
607 in extern inline functions.
609 2006-10-31 Roger Sayle <roger@eyesopen.com>
612 * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
613 * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
614 pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
615 or y is an even integer.
617 2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
620 * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
621 * gthr-posix95.h (__gthread_active_p): Likewise.
623 2006-10-31 Richard Guenther <rguenther@suse.de>
625 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
626 acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
627 expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
628 exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
629 ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
630 lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
631 lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
632 btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
635 2006-10-31 Steven Bosscher <steven@gcc.gnu.org>
637 * opts.c (decode_options): Disable CSE skip blocks.
639 2006-10-30 Dirk Mueller <dmueller@suse.de>
641 * c-common.h (strict_aliasing_warning): Fix whitespace.
642 * c-decl (start_function): Move code for main decl warning ..
643 * c-common.c (check_main_parameter_types): .. here.
644 * c-common.h (check_main_parameter_types): Declare.
646 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
649 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
651 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
653 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
654 be a PARALLEL containing sets. Return false when out_pat is not
657 2006-10-30 Richard Sandiford <richard@codesourcery.com>
659 * config/mips/mips.md (mul<mode>3): Split into...
660 (mulsi3, muldi3): ...these separate patterns.
662 2006-10-30 Richard Sandiford <richard@codesourcery.com>
664 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
665 but with each set of options separated by spaces.
667 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
669 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
670 dwarf_reg_size_table has been initialized.
672 2006-10-30 Roger Sayle <roger@eyesopen.com>
674 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
675 * ddg.c (print_ddg_edge): Likewise.
676 * dwarf2out.c (prune_unused_types_walk): Likewise.
677 * ifcvt.c (noce_try_cmove_arith): Likewise.
678 * langhooks.c (add_builtin_function): Likewise.
679 * reg-stack.c (subst_stack_regs_pat): Likewise.
680 * tree.c (expanded_location): Likewise.
681 * tree-dump.c (dequeue_and_dump): Likewise.
683 2006-10-30 David Daney <ddaney@avtrex.com>
685 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
687 2006-10-30 Jakub Jelinek <jakub@redhat.com>
689 PR tree-optimization/29637
690 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
691 of the innertype is the innertype itself.
693 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
695 * dwarf2out.c (file_name_acquire): Correct typo.
697 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
699 * tree.h (tree_value_handle): Remove struct value_set declaration.
700 Change value_set to bitmap_set.
701 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
702 * tree-vn.c (get_value_handle): Made inline and moved to
704 * tree-flow-inline.h: (has_stmt_ann): New function.
705 * tree-ssa-pre.c (expressions): New variable.
706 (next_expression_id): Ditto.
707 (alloc_expression_id): New function.
708 (struct value_set): Remove.
709 (get_expression_id): New function.
710 (get_or_alloc_expression_id): Ditto.
711 (expression_for_id): Ditto.
712 (clear_expression_ids): Ditto.
713 (FOR_EACH_EXPR_ID_IN_SET): New macro.
714 (bb_value_sets): Renamed to bb_bitmap_sets.
715 All value sets replaced with bitmap_sets.
717 (BB_VISITED): New macro.
718 (postorder): New variable.
719 (add_to_value): Removed.
720 (value_exists_in_set_bitmap): Ditto.
721 (value_insert_into_set_bitmap): Ditto.
725 (set_contains_value): Ditto.
726 (insert_into_set): Ditto.
728 (find_leader): Ditto.
729 (bitmap_set_subtract_from_value_set): Ditto.
730 (value_insert_into_set): Ditto.
731 (print_value_set): Ditto.
732 (debug_value_set): Ditto.
733 (constant_expr_p): New function.
734 (bitmap_remove_from_set): Ditto.
735 (bitmap_insert_into_set): Ditto.
736 (bitmap_set_free): Ditto.
738 (sorted_array_from_bitmap_set): Ditto.
739 (bitmap_set_subtract): Ditto.
740 (bitmap_set_equal): Ditto.
741 (debug_bitmap_set): Ditto.
742 (find_leader_in_sets): Ditto.
743 (bitmap_set_replace_value): Modify for bitmapped sets.
744 (phi_translate): Ditto.
745 (phi_translate_set): Ditto.
746 (bitmap_find_leader): Ditto.
747 (valid_in_sets): Ditto.
748 (union_contains_value): Ditto.
750 (compute_antic_aux): Ditto. Mark changed blocks.
751 (compute_antic): Ditto. Iterate in postorder and only over
753 (compute_rvuse_and_antic_safe): Reuse postorder.
754 (create_component_ref_by_pieces): Modify for bitmapped sets.
755 (find_or_generate_expression): Ditto.
756 (create_expression_by_pieces): Ditto.
757 (insert_into_preds_of_block): Ditto.
758 (changed_blocks): New variable.
759 (do_regular_insertion): Broken out from insert_aux.
760 (insert_aux): Modified for bitmapped sets.
761 (find_existing_value_expr): New function.
762 (create_value_expr_from): Use it.
763 (insert_extra_phis): Removed.
764 (print_bitmap_set): Renamed from bitmap_print_value_set.
765 (compute_avail): Handle RETURN_EXPR.
766 (init_pre): Modify for bitmapped sets.
767 * tree-flow.h (has_stmt_ann): New function.
769 2006-10-29 Roger Sayle <roger@eyesopen.com>
771 * builtins.c (fold_builtin_floor): Check for the availability of
772 the C99 trunc function before transforming floor into trunc.
774 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
776 * builtins.c (fold_builtin_hypot): Rearrange recursive
777 transformation before others, and also do ABS_EXPR. When
778 necessary, check flag_unsafe_math_optimizations. When necessary,
781 2006-10-29 Roger Sayle <roger@eyesopen.com>
783 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
784 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
785 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
786 Fold -X eq/ne -Y as X eq/ne Y.
788 2006-10-29 Richard Sandiford <richard@codesourcery.com>
790 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
791 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
792 rather than GENERATE_MULT3_SI in the various define_peephole2s.
793 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
794 Use an inclusive test for "mult" rather than "mul".
795 (rotr<mode>3): Depend on ISA_HAS_ROR.
796 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
798 (GENERATE_MULT3_DI): Delete.
799 (ISA_HAS_64BIT_REGS): Use consistent formatting.
800 (ISA_HAS_MUL3): New macro.
801 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
802 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
803 (ISA_HAS_CLZ_CLO): Likewise.
804 (ISA_HAS_DCLZ_DCLO): Delete.
805 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
806 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
807 the VR4120 and VR4130.
808 (ISA_HAS_MACCHI): Use consistent formatting.
809 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
810 (ISA_HAS_ROR): ...this new macro.
811 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
812 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
813 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
815 2006-10-29 Roger Sayle <roger@eyesopen.com>
817 PR tree-optimization/15458
818 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
821 2006-10-29 Richard Guenther <rguenther@suse.de>
823 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
824 (ix86_expand_truncdf_32): Likewise.
825 * config/i386/i386.c (ix86_expand_trunc): New function expanding
826 trunc inline for SSE math and -fno-trapping-math and if not
828 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
829 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
830 for expanding btrunc inline for SSE math.
832 2006-10-29 Joseph Myers <joseph@codesourcery.com>
834 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
835 Handle tuning for bi-arch i[34567]86-*-linux* like that for
836 i[34567]86-*-solaris2.1[0-9]*.
837 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
838 Define conditionally depending on TARGET_64BIT_DEFAULT.
839 (SPEC_32, SPEC_64): Define.
840 (LINK_SPEC): Use them.
841 * doc/install.texi (--enable-targets=all): Document for x86-linux.
843 2006-10-29 Richard Guenther <rguenther@suse.de>
845 * config/i386/i386-protos.h (ix86_expand_round): Declare.
846 (ix86_expand_rounddf_32): Likewise.
847 * config/i386/i386.c (ix86_expand_round): New function expanding
848 round inline for SSE math and -fno-trapping-math and if not
850 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
851 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
852 round via ix86_expand_round.
854 2006-10-29 Richard Guenther <rguenther@suse.de>
856 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
857 (ix86_expand_floorceildf_32): Likewise.
858 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
859 static helper function.
860 (ix86_expand_floorceil): Expander for floor and ceil to SSE
862 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
863 * config/i386/i386.md (floordf2): Adjust to enable floor
864 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
865 -fno-trapping-math is enabled and if not optimizing for size.
866 (floorsf2, ceildf2, ceilsf2): Likewise.
867 * config/i386/sse.md (sse_maskcmpsf3): New insn.
868 (sse2_maskcmpdf3): Likewise.
870 2006-10-29 Richard Guenther <rguenther@suse.de>
872 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
873 rint in case -fno-trapping-math is enabled.
874 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
875 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
876 (ix86_expand_sse_fabs): Likewise.
877 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
878 * config/i386/i386.md (rintdf2): Enable for SSE math if
879 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
882 2006-10-29 Richard Guenther <rguenther@suse.de>
884 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
885 to conversion optabs.
886 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
888 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
889 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
890 (lfloor_optab, lceil_optab): Adjust defines.
891 * builtins.c (expand_builtin_int_roundingfn): Adjust for
892 lfloor and lceil optabs now being conversion optabs.
893 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
894 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
895 New static helper function.
896 (ix86_expand_lfloorceil): New function to expand lfloor and
898 * config/i386/i386.md (lfloor<mode>2): Split into ...
899 (lfloorxf<mode>2): ... x87 variant
900 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
901 using ix86_expand_lfloorceil.
902 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
904 * doc/md.texi (lfloorMN, lceilMN): Document.
906 2006-10-29 Richard Sandiford <richard@codesourcery.com>
908 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
909 -mno-shared assembler option on mips targets.
910 * configure, config.in: Regenerate.
911 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
912 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
913 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
915 2006-10-29 Richard Sandiford <richard@codesourcery.com>
917 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
918 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
920 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
922 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
923 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
926 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
929 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
930 (fold_builtin_pow): Evaluate constant arguments at compile-time
932 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
933 (do_mpfr_ckconv): New helper function.
934 (do_mpfr_arg1): Use do_mpfr_ckconv.
937 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
940 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
941 (-fdump-rtl-sched): Rename to ..
942 (-fdump-rtl-sched1): here. Also fix file extension number.
944 2006-10-28 Richard Guenther <rguenther@suse.de>
946 * fold-const.c (maybe_canonicalize_comparison): Fix code
949 2006-10-28 Uros Bizjak <uros@kss-loka.si>
951 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
952 (NON_QI_REG_P): Use IN_RANGE.
953 (REX_INT_REGNO_P): Use IN_RANGE.
954 (FP_REGNO_P): Use IN_RANGE.
955 (SSE_REGNO_P): Use IN_RANGE.
956 (REX_SSE_REGNO_P): Use IN_RANGE.
957 (MMX_REGNO_P): Use IN_RANGE.
958 (STACK_REGNO_P): New macro.
959 (STACK_REG_P): Use STACK_REGNO_P.
960 (NON_STACK_REG_P): Use STACK_REGNO_P.
961 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
962 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
963 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
964 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
965 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
967 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
969 * except.h (output_function_exception_table): Add 'const char*' param.
970 * except.c (switch_to_exception_section): Add 'const char*' param.
971 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
972 and flag_function_sections is set, use a function-specific section.
973 (output_function_exception_table): Add 'const char*' param.
974 Adjust call to switch_to_exception_section.
975 * final.c (rest_of_handle_final): Adjust calls to
976 output_function_exception_table.
977 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
978 * config.in: Regenerate.
979 * configure: Likewise.
981 2006-10-28 Richard Guenther <rguenther@suse.de>
984 * fold-const.c (maybe_canonicalize_comparison_1): Helper
985 for maybe_canonicalize_comparison.
986 (maybe_canonicalize_comparison): New function for canonicalizing
988 (fold_comparison): Call it to canonicalize comparisons with
991 2006-10-28 Richard Guenther <rguenther@suse.de>
994 * builtins.c (expand_builtin_int_roundingfn_2): Expand
995 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
996 (expand_builtin): Adjust likewise.
997 * genopinit.c (optabs[]): Add lround optab.
998 * optabs.c (init_optabs): Initialize lround_optab.
999 * optabs.h (enum convert_optab_index): Add COI_lround.
1000 (lround_optab): Define.
1001 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
1002 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
1004 (ix86_expand_lround): New function.
1005 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
1007 * doc/md.texi (lroundMN2): Document.
1009 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1012 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
1013 argument to HOST_WIDE_INT. Update function prototype.
1014 (round_frame_size): Change return type to HOST_WIDE_INT. Change
1015 "size" argument to HOST_WIDE_INT. Update function prototype.
1017 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1019 * config/i386/i386.c (output_387_ffreep): Create output from a
1020 template string for !HAVE_AS_IX86_FFREEP.
1022 2006-10-27 Eric Christopher <echristo@apple.com>
1024 * config/darwin.c: Fix formatting and grammar.
1026 2006-10-27 Jan Hubicka <jh@suse.cz>
1028 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
1029 to be thrown away soon when IGNORE is set.
1030 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
1031 indicating when return value shall not be computed.
1032 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
1034 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
1036 * config/i386/i386.h (TARGET_GEODE):
1037 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
1038 (TARGET_CPU_DEFAULT_geode): New macro.
1039 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
1040 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
1041 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
1042 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
1043 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
1045 (TARGET_CPU_DEFAULT_NAMES): Add geode.
1046 (processor_type): Add PROCESSOR_GEODE.
1048 * config/i386/i386.md: Include geode.md.
1051 * config/i386/i386.c (geode_cost): New initialized global
1053 (m_GEODE, m_K6_GEODE): New macros.
1054 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
1055 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
1056 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
1057 x86_schedule): Use m_K6_GEODE instead of m_K6.
1058 (x86_movx, x86_cmove): Set up m_GEODE.
1059 (x86_integer_DFmode_moves): Clear m_GEODE.
1060 (processor_target_table): Add entry for geode.
1061 (processor_alias_table): Ditto.
1063 * config/i386/geode.md: New file.
1065 * doc/invoke.texi: Add entry about geode processor.
1067 2006-10-27 Mike Stump <mrs@apple.com>
1069 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
1070 __DYNAMIC__ from here back to ...
1071 * config/darwin.h (CPP_SPEC): ... here.
1073 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
1074 Nathan Sidwell <nathan@codesourcery.com>
1076 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
1077 when choosing the minimum heapsize.
1079 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
1081 * gcc/unwind-dw2.h: Move cfa-related variables into
1082 struct frame_state_reg_info to ensure that the CFA is properly
1083 handled when executing DW_CFA_{remember,restore}_state.
1084 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
1085 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
1086 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
1087 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
1088 gcc/config/rs6000/linux-unwind.h,
1089 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
1090 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
1091 Modify to use new cfa_* fields.
1093 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
1095 * config/s390/s390.c (s390_init_frame_layout): Check positive
1098 2006-10-26 Ben Elliston <bje@au.ibm.com>
1100 * gimplify.c (get_name): Remove extraneous break.
1101 (gimplify_omp_for): Initialise ret with GS_OK.
1103 2006-10-25 Steve Ellcey <sje@cup.hp.com>
1105 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
1106 Add unix98.o to link line.
1108 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1111 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
1112 Calculate compile-time constants using MPFR.
1113 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
1114 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
1116 2006-10-25 Bob Wilson <bob.wilson@acm.org>
1118 * config/xtensa/lib2funcs.S: Use C-style comments.
1120 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
1122 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
1123 (file_table_relative_p): Likewise.
1124 (dwarf2out_finish): Likewise.
1125 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
1127 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
1129 * tree-ssa-structalias.c (intra_create_variable_infos):
1130 Don't recreate nonlocal_all if it already exists.
1132 2006-10-25 Richard Guenther <rguenther@suse.de>
1135 * optabs.h (enum optab_index): Remove OTI_lrint.
1136 (enum convert_optab_index): Add COI_lrint.
1137 (lrint_optab): Adjust.
1138 (expand_sfix_optab): Declare.
1139 * optabs.c (expand_sfix_optab): New function.
1140 (init_optabs): Init lrint_optab as conversion optab.
1141 * genopinit.c (lrint_optab): Change to a conversion optab.
1142 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
1143 expansion via conversion optab.
1144 * config/i386/i386.md (*fistdi2_1): Remove
1145 flag_unsafe_math_optimizations guard.
1146 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
1147 fist<mode>2_with_temp): Likewise.
1148 (lrint<mode>2): Split into...
1149 (lrintxf<mode>2): ... x87 part
1150 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
1151 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
1152 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
1153 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
1154 * doc/md.texi (lrintMN2): Document.
1156 2006-10-25 Uros Bizjak <uros@kss-loka.si>
1159 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
1160 Use inc and dec instructions for TARGET_USE_INCDEC.
1161 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
1162 ("sync_double_compare_and_swap<mode>"): Likewise.
1163 ("*sync_double_compare_and_swapdi_pic"): Likewise.
1164 ("*sync_compare_and_swap_cc<mode>"): Likewise.
1165 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
1166 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
1167 ("sync_old_add<mode>"): Likewise.
1168 ("sync_lock_test_and_set<mode>"): Likewise.
1169 ("sync_lock_test_and_set<mode>"): Likewise.
1170 ("sync_add<mode>"): Likewise.
1171 ("sync_sub<mode>"): Likewise.
1172 ("sync_ior<mode>"): Likewise.
1173 ("sync_and<mode>"): Likewise.
1174 ("sync_xor<mode>"): Likewise.
1176 2006-10-25 Uros Bizjak <uros@kss-loka.si>
1178 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
1179 (remainder_optab): Define corresponding macro.
1180 (drem_optab): Remove.
1181 * optabs.c (init_optabs): Initialize remainder_optab. Remove
1182 drem_optab initialization.
1183 * genopinit.c (optabs): Implement remainder_optab using
1184 remainder?f3 patterns. Remove drem_optab.
1185 * builtins.c (expand_builtin_mathfn_2): Handle
1186 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
1187 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
1188 expand_builtin_mathfn_2.
1190 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
1191 depend on flag_unsafe_math_optimizations.
1193 * config/i386/i386.md ("remaindersf3", "remainderdf3")
1194 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
1195 Do not depend on flag_unsafe_math_optimizations. Use
1196 truncxf?f expander instead of truncxf?f_i387_noop.
1198 ("fpremxf4", "fprem1xf4"): Do not depend on
1199 flag_unsafe_math_optimizations.
1200 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
1201 flag_unsafe_math_optimizations. Use truncxf?f expander
1202 instead of truncxf?f_i387_noop.
1204 * doc/md.texi (fmod, remainder): Document standard named pattern.
1206 2006-10-24 Richard Sandiford <richard@codesourcery.com>
1207 David Daney <ddaney@avtrex.com>
1210 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
1212 2006-10-25 Ben Elliston <bje@au.ibm.com>
1214 * doc/extend.texi (Variable Attributes): Typo fix.
1216 2006-10-24 Uros Bizjak <uros@kss-loka.si>
1218 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
1219 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
1220 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
1221 (FRAME_POINTER_REGNUM): Update register number to 21.
1222 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
1223 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
1225 * config/i386/i386.c (regclass_map): Add fpcr entry.
1226 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
1228 (print_reg): Assert REGNO (x) != FPCR_REG.
1230 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
1231 (DIRFLAG_REG): Renumber.
1232 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
1233 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
1234 (sse_prologue_save, *sse_prologue_save_insn): Renumber
1235 hardcoded SSE register numbers.
1237 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
1238 hardcoded MMX register numbers.
1240 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1243 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
1244 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
1246 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
1247 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
1248 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
1249 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
1251 2006-10-24 Richard Guenther <rguenther@suse.de>
1254 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
1255 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
1256 for deciding optimizations in consistency with fold-const.c
1257 (fold_builtin_unordered_cmp): Likewise.
1259 2006-10-24 Richard Guenther <rguenther@suse.de>
1261 * builtins.c (fold_builtin_floor): Fold floor (x) where
1262 x is nonnegative to trunc (x).
1263 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
1264 nonnegative to FIX_TRUNC_EXPR.
1266 2006-10-24 Richard Guenther <rguenther@suse.de>
1268 PR tree-optimization/29567
1269 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
1270 for TRUTH_NOT_EXPR. Clarify comments.
1272 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1275 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
1276 at compile-time using MPFR. Change parameter VALUE to FUNC,
1278 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
1279 for overflow and underflow at all times and avoid folding in
1282 2006-10-24 Ben Elliston <bje@au.ibm.com>
1284 * reload1.c: Formatting fixes.
1286 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
1288 PR tree-optimization/14784
1289 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
1290 * tree-ssa-structalias.c (get_constraint_for,
1291 intra_create_variable_infos): Set is_heapvar.
1292 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
1293 non-heapvar pointer variables specially.
1295 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1298 * builtins.c (fold_builtin_sin, fold_builtin_cos,
1299 fold_builtin_tan): Fold all constant arguments. Take a "type"
1300 argument as necessary.
1301 (do_mpfr_arg1): New.
1302 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
1304 2006-10-23 Bob Wilson <bob.wilson@acm.org>
1306 * config/xtensa/lib1funcs.asm: Use C-style comments.
1308 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
1310 * tree.c (local_define_builtin): Replace calls to
1311 lang_hooks.builtin_function with add_builtin_function.
1312 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
1314 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
1316 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
1317 common code to add_builtin_function.
1318 * langhooks.c (add_builtin_function): New function.
1319 (lhd_builtin_function): New function.
1320 * langhooks.h (struct lang_hooks): Change the signature of
1322 (add_builtin_function): New function.
1323 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
1324 calls to lang_hooks.builtin_function with add_builtin_function.
1325 * c-common.c (decl_builtin_1): Replace calls to
1326 lang_hooks.builtin_function with add_builtin_function.
1327 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
1328 lang_hooks.builtin_function with add_builtin_function.
1329 * config/frv/frv.c (def_builtin): Replace calls to
1330 lang_hooks.builtin_function with add_builtin_function.
1331 * config/s390/s390.c (s390_init_builtins): Replace calls to
1332 lang_hooks.builtin_function with add_builtin_function.
1333 * config/sparc/sparc.c (def_builtin): Replace calls to
1334 lang_hooks.builtin_function with add_builtin_function.
1335 * config/i386/i386.c (def_builtin): Replace calls to
1336 lang_hooks.builtin_function with add_builtin_function.
1337 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
1338 lang_hooks.builtin_function with add_builtin_function.
1339 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
1340 lang_hooks.builtin_function with add_builtin_function.
1341 * config/stormy16/stormy16.c (xstormy16_init_builtins):
1342 Replace calls to lang_hooks.builtin_function with
1343 add_builtin_function.
1344 * config/iq2000/iq2000.c (def_builtin):
1345 Replace calls to lang_hooks.builtin_function with
1346 add_builtin_function.
1347 * config/ia64/ia64.c (def_builtin): Replace calls to
1348 lang_hooks.builtin_function with add_builtin_function.
1349 * config/rs6000/rs6000.c (def_builtin): Replace calls to
1350 lang_hooks.builtin_function with add_builtin_function.
1351 (altivec_init_builtins): Replace calls to
1352 lang_hooks.builtin_function with add_builtin_function.
1353 * config/arm/arm.c (def_mbuiltin): Replace calls to
1354 lang_hooks.builtin_function with add_builtin_function.
1355 (arm_init_tls_builtins): Replace calls to
1356 lang_hooks.builtin_function with add_builtin_function.
1357 * config/mips/mips.c (mips_init_builtins): Replace calls to
1358 lang_hooks.builtin_function with add_builtin_function.
1359 * config/bfin/bfin.c (def_builtin): Replace calls to
1360 lang_hooks.builtin_function with add_builtin_function.
1361 * langhooks-def.h (lhd_builtin_function): New function.
1362 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
1364 2006-10-23 Jakub Jelinek <jakub@redhat.com>
1366 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
1367 BUILT_IN_STRNCAT_CHK.
1369 2006-10-23 Jan Hubicka <jh@suse.cz>
1371 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
1372 don't do conversion from memmove to memcpy here.
1373 (expand_builtin_bcopy, expand_builtin): Update call of
1374 expand_builtin_memmove.
1375 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
1377 2006-10-23 Paul Brook <paul@codesourcery.com>
1379 * stor-layout.c (start_record_layout): maximum_field_alignment
1380 overrides STRUCTURE_SIZE_BOUNDARY.
1382 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
1384 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
1385 nonlocal function symbols if flag_pic.
1387 2006-10-23 Richard Guenther <rguenther@suse.de>
1391 * builtins.c (fold_binary): Remove checks for flag_wrapv
1392 and flag_trapv where negate_expr_p covers these cases.
1394 2006-10-23 Richard Guenther <rguenther@suse.de>
1397 * fold-const.c (fold_plusminus_mult_expr): Check exact power
1398 of two on the absolute value.
1399 (fold_binary): Fold x * -C to -x * C if x is easily negatable
1400 and negating -C does not overflow.
1402 2006-10-23 Richard Guenther <rguenther@suse.de>
1405 * convert.c (convert_to_real): Fold (float)-x to -(float)x
1406 only if not flag_rounding_math.
1408 2006-10-22 Richard Sandiford <richard@codesourcery.com>
1409 Kaz Kojima <kkojima@gcc.gnu.org>
1412 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
1413 SImode memory reference for the source of a movua.
1414 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
1415 (movua): Use an unspec instead of sign_extract. Expect the source
1416 to have mode BLKmode.
1417 (extv, insv): Use a BLKmode rather than SImode memory reference
1418 for the source of a movua.
1420 2006-10-22 Jeff Law <law@redhat.com>
1421 Richard Guenther <rguenther@suse.de>
1423 PR tree-optimization/15911
1424 * tree-vrp.c (extract_code_and_val_from_cond): New function.
1425 (register_edge_assert_for_1): Likewise.
1426 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
1427 (find_conditional_asserts): Adjust for new function signature.
1428 (find_assert_locations): Likewise.
1430 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
1432 * config/i386/tmmintrin.h: Remove the duplicated content.
1434 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
1436 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
1437 (x86_64-*-*): Likewise.
1439 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
1440 (override_options): Check SSSE3.
1441 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
1442 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
1443 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
1444 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
1445 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
1446 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
1447 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
1448 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
1449 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
1450 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
1451 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
1452 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
1453 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
1454 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
1455 IX86_BUILTIN_PABSD128.
1456 (bdesc_2arg): Add SSSE3.
1457 (bdesc_1arg): Likewise.
1458 (ix86_init_mmx_sse_builtins): Support SSSE3.
1459 (ix86_expand_builtin): Likewise.
1460 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1462 * config/i386/i386.md (UNSPEC_PSHUFB): New.
1463 (UNSPEC_PSIGN): Likewise.
1464 (UNSPEC_PALIGNR): Likewise.
1465 Include mmx.md before sse.md.
1467 * config/i386/i386.opt: Add -mssse3.
1469 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
1470 (ssse3_phaddwv4hi3): Likewise.
1471 (ssse3_phadddv4si3): Likewise.
1472 (ssse3_phadddv2si3): Likewise.
1473 (ssse3_phaddswv8hi3): Likewise.
1474 (ssse3_phaddswv4hi3): Likewise.
1475 (ssse3_phsubwv8hi3): Likewise.
1476 (ssse3_phsubwv4hi3): Likewise.
1477 (ssse3_phsubdv4si3): Likewise.
1478 (ssse3_phsubdv2si3): Likewise.
1479 (ssse3_phsubswv8hi3): Likewise.
1480 (ssse3_phsubswv4hi3): Likewise.
1481 (ssse3_pmaddubswv8hi3): Likewise.
1482 (ssse3_pmaddubswv4hi3): Likewise.
1483 (ssse3_pmulhrswv8hi3): Likewise.
1484 (ssse3_pmulhrswv4hi3): Likewise.
1485 (ssse3_pshufbv16qi3): Likewise.
1486 (ssse3_pshufbv8qi3): Likewise.
1487 (ssse3_psign<mode>3): Likewise.
1488 (ssse3_psign<mode>3): Likewise.
1489 (ssse3_palignrti): Likewise.
1490 (ssse3_palignrdi): Likewise.
1491 (abs<mode>2): Likewise.
1492 (abs<mode>2): Likewise.
1494 * config/i386/tmmintrin.h: New file.
1496 * doc/extend.texi: Document SSSE3 built-in functions.
1498 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
1500 2006-10-22 Ira Rosen <irar@il.ibm.com>
1502 * tree-vect-transform.c (vectorizable_load): Use the type of the
1503 return value of the mask_for_load builtin to create realign_load
1506 2006-10-22 Richard Sandiford <richard@codesourcery.com>
1508 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
1511 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
1513 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
1514 (UNSPEC_LDDQU): This.
1515 * config/i386/sse.md (sse3_lddqu): Updated.
1517 2006-10-21 Richard Guenther <rguenther@suse.de>
1519 * builtins.c (expand_builtin_int_roundingfn_2): New function.
1520 (expand_builtin): Use it to expand lrint instead of
1521 expand_builtin_mathfn.
1523 2006-10-21 Uros Bizjak <uros@kss-loka.si>
1526 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
1527 flag_unsafe_math_optimizations is set.
1529 2006-10-21 Uros Bizjak <uros@kss-loka.si>
1532 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
1533 patterns to use memory input operand in x87->mem->XMM
1534 reload sequences. Skip transformation for TARGET_K8.
1536 2006-10-21 Uros Bizjak <uros@kss-loka.si>
1538 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
1539 force operand1 to register if both operands are memory operands.
1540 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
1541 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
1542 if both operands are memory operands.
1543 (truncdfsf2): Do not force operand1 to register if both operands
1544 are memory operands.
1546 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1548 * Makefile.in (LIBS): Add $(GMPLIBS).
1549 * doc/install.texi: Update GMP and MPFR requirements.
1550 * doc/sourcebuild.texi (need_gmp): Delete.
1552 2006-10-21 Richard Guenther <rguenther@suse.de>
1554 PR tree-optimization/3511
1555 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
1556 got new invariant arguments during PHI translation.
1558 2006-10-21 Richard Guenther <rguenther@suse.de>
1561 * fold-const.c (fold_comparison): Fold signed comparisons
1562 of the form X +- C1 CMP Y +- C2.
1564 2006-10-21 Richard Guenther <rguenther@suse.de>
1567 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
1568 if flag_unsafe_math_optimizations is specified. We have
1569 flag_finite_math_only for that.
1570 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
1571 or flag_unsafe_math_optimizations.
1573 2006-10-21 Richard Guenther <rguenther@suse.de>
1575 * builtins.c (fold_builtin_classify): Fix typo.
1577 2006-10-21 Richard Guenther <rguenther@suse.de>
1580 * simplify-rtx.c (simplify_const_relational_operation):
1581 Do not constant-fold ORDERED and UNORDERED for
1582 flag_unsafe_math_optimizations but only we do not need to
1583 honor NaNs for the given mode.
1585 2006-10-21 Richard Guenther <rguenther@suse.de>
1588 * config/i386/i386.c (classify_argument): Remove redundant
1589 walking of the BINFOs.
1590 (contains_128bit_aligned_vector_p): Likewise.
1592 2006-10-20 Mark Mitchell <mark@codesourcery.com>
1594 * BASE-VER: Set to 4.3.0.
1596 2006-10-20 Daniel Berlin <dberlin@dberlin.org>
1598 * tree.h (DECL_PTA_ARTIFICIAL): Remove.
1599 (tree_decl_with_vis): Remove artificial_pta_var flag.
1600 * tree-flow.h (referenced_var_check_and_insert): Expose.
1601 (nonlocal_all): New prototype.
1602 * tree-ssa-structalias.c (nonlocal_for_type): Remove.
1603 (nonlocal_all): Make global.
1604 (nonlocal_lookup): Remove.
1605 (nonlocal_insert): Ditto.
1606 (create_nonlocal_var): Do not call nonlocal_insert.
1607 (get_nonlocal_id_for_type): Remove.
1608 (find_global_initializers): Mark new vars we find for renaming.
1609 (intra_create_variable_infos): Only create one nonlocal.
1610 (expand_nonlocal_solutions): Remove.
1611 (compute_points_to_sets): Don't call it.
1612 (ipa_pta_execute): Ditto.
1613 (init_alias_heapvars): Don't create nonlocal_for_type.
1614 (delete_alias_heapvars): Don't remove it.
1615 * tree-ssa-operands.c (access_can_touch_variable): Don't prune
1618 2006-10-19 Brooks Moses <bmoses@stanford.edu>
1620 * doc/install.texi (Downloading GCC): Clarify mention of
1621 Fortran in the "full distribution" description.
1623 2006-10-19 Daniel Berlin <dberlin@dberlin.org>
1625 Fix PR tree-optimization/28778
1626 Fix PR tree-optimization/29156
1627 Fix PR tree-optimization/29415
1628 * tree.h (DECL_PTA_ARTIFICIAL): New macro.
1629 (tree_decl_with_vis): Add artificial_pta_var flag.
1630 * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
1631 pushed into callers.
1632 * tree-ssa-structalias.c (nonlocal_for_type): New variable.
1633 (nonlocal_all): Ditto.
1634 (struct variable_info): Add directly_dereferenced member.
1635 (var_escaped_vars): New variable.
1636 (escaped_vars_tree): Ditto.
1637 (escaped_vars_id): Ditto.
1638 (nonlocal_vars_id): Ditto.
1639 (new_var_info): Set directly_dereferenced.
1640 (graph_size): New variable
1641 (build_constraint_graph): Use graph_size.
1642 (solve_graph): Don't process constraints that cannot change the
1643 solution, don't try to propagate an empty solution to our
1645 (process_constraint): Set directly_dereferenced.
1646 (could_have_pointers): New function.
1647 (get_constraint_for_component_ref): Don't process STRING_CST.
1648 (nonlocal_lookup): New function.
1649 (nonlocal_insert): Ditto.
1650 (create_nonlocal_var): Ditto.
1651 (get_nonlocal_id_for_type): Ditto.
1652 (get_constraint_for): Allow results vector to be empty in the case
1653 of string constants.
1654 Handle results of calls properly.
1655 (update_alias_info): Update alias info stats on number and type of
1657 (find_func_aliases): Use could_have_pointers.
1658 (make_constraint_from_escaped): Renamed from
1659 make_constraint_to_anything, and changed to make constraints from
1661 (make_constraint_to_escaped): New function.
1662 (find_global_initializers): Ditto.
1663 (create_variable_info_for): Make constraint from escaped to any
1664 global variable, and from any global variable to the set of
1666 (intra_create_variable_infos): Deal with escaped instead of
1667 pointing to anything.
1668 (set_uids_in_ptset): Do type pruning on directly dereferenced
1670 (find_what_p_points_to): Adjust call to set_uids_with_ptset.
1671 (init_base_vars): Fix comment, and initialize escaped_vars.
1672 (need_to_solve): Removed.
1673 (find_escape_constraints): New function.
1674 (expand_nonlocal_solutions): Ditto.
1675 (compute_points_to_sets): Call find_escape_constraints and
1676 expand_nonlocal_solutions.
1677 (delete_points_to_sets): Don't fall off the end of the graph.
1678 (init_alias_heapvars): Initialize nonlocal_for_type and
1680 (delete_alias_heapvars): Free nonlocal_for_type and null out
1683 2006-10-19 Eric Botcazou <ebotcazou@adacore.com>
1685 * fold-const.c (add_double): Rename to add_double_with_sign.
1686 Add 'unsigned_p' parameter and take it into account for the overflow.
1687 (mul_double): Rename to mul_double_with_sign.
1688 Add 'unsigned_p' parameter and take it into account for the overflow.
1689 (fold_div_compare): Call add_double_with_sign instead of add_double
1690 and mul_double_with_sign instead of mul_double, passing them the
1691 unsignedness of the type.
1692 * tree.h (add_double): Macroize.
1693 (add_double_with_sign): New prototype.
1694 (mul_double): Macroize.
1695 (mul_double_with_sign): New prototype.
1697 2006-10-19 Chen Liqin <liqin@sunnorth.com.cn>
1699 * config/score/crti.asm: New file.
1700 * config/score/crtn.asm: New file.
1701 * config/score/elf.h: New file.
1702 * config/score/mac.md: New file.
1703 * config/score/misc.md: New file.
1704 * config/score/mul-div.S: New file.
1705 * config/score/predicates.md: New file.
1706 * config/score/score7.md: New file.
1707 * config/score/score.c: New file.
1708 * config/score/score-conv.h: New file.
1709 * config/score/score.h: New file.
1710 * config/score/score.md: New file.
1711 * config/score/score-mdaux.c: New file.
1712 * config/score/score-mdaux.h: New file.
1713 * config/score/score-modes.def: New file.
1714 * config/score/score.opt: New file.
1715 * config/score/score-protos.h: New file.
1716 * config/score/score-version.h: New file.
1717 * config/score/t-score-elf: New file.
1718 * config.gcc: Add score*-*-* configurations(Update before).
1719 * doc/invoke.texi (Score Options): New section.
1720 * doc/md.texi (Score family): New section to document constraints.
1722 2006-10-19 Nick Clifton <nickc@redhat.com>
1724 * config/arm/arm.c: Fix spelling typo.
1726 2006-10-18 Tom Tromey <tromey@redhat.com>
1728 * doc/install.texi (Prerequisites): Mention automake 1.9.6.
1730 2006-10-18 Jan Hubicka <jh@suse.cz>
1733 * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
1736 2006-10-18 Marcin Dalecki <martin@dalecki.de>
1738 * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
1739 TSI_SAME_STMT, since that's the desired entity.
1741 2006-10-17 Wolfgang Gellerich <gellerich@de.ibm.com>
1743 * config/s390/contraints.md: New file.
1744 * config/s390/s390-protos.h (s390_mem_constraint,
1745 s390_O_constraint_str, s390_N_constraint_str,
1746 s390_float_const_zero_p): Function prototypes added.
1747 * config/s390/s390.c (s390_extra_constraint_str,
1748 s390_const_double_ok_for_constraint_p,
1749 s390_const_ok_for_constraint_p): Functions removed.
1750 (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
1751 s390_float_const_zero_p): New functions.
1752 * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
1753 CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
1754 EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
1755 Macro definitions removed.
1756 (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
1757 s390_extra_constraint_str): Functions removed.
1759 2006-10-17 Andrew Pinsiki <pinskia@gmail.com>
1760 Richard Sandiford <richard@codesourcery.com>
1763 * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
1764 * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
1766 2006-10-16 Geoffrey Keating <geoffk@apple.com>
1768 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
1769 (DWARF2_FRAME_REG_OUT): Likewise.
1770 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
1771 (DWARF2_FRAME_REG_OUT): Likewise.
1773 2006-10-17 Paul Brook <paul@codesourcery.com>
1775 * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
1777 2006-10-16 Brooks Moses <bmoses@stanford.edu>
1779 * doc/contrib.texi, doc/install.texi, doc/standards.texi:
1780 Standardize on "GNU Fortran" as the official name of the Fortran
1783 2006-10-16 Mike Stump <mrs@apple.com>
1785 * doc/invoke.texi (Darwin Options): Document -mkernel.
1786 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
1788 (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add
1789 SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
1790 (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
1791 (OS_MISSING_ALTIVEC): Add.
1792 * config/i386/i386.c (override_options): Add
1793 SUBSUBTARGET_OVERRIDE_OPTIONS callout.
1794 * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
1795 -mkernel, -static or -mdynamic-no-pic is given.
1796 (C_COMMON_OVERRIDE_OPTIONS): Add.
1797 * config/darwin.opt (fapple-kext): Add.
1799 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
1800 -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
1802 (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
1803 (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
1804 (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
1805 (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
1806 (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
1807 (flag_mkernel): Add.
1808 (flag_apple_kext): Add.
1809 (TARGET_KEXTABI): Add.
1810 * config/darwin.c (darwin_handle_kext_attribute): Add.
1811 (DARWIN_VTABLE_P): Add.
1812 (darwin_binds_local_p): Add partial support for rebinding vtables
1814 (darwin_kextabi_p): Add.
1815 (darwin_override_options): Add.
1816 * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
1817 (darwin_kextabi_p): Add.
1818 (darwin_override_options): Add.
1819 * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
1820 __DYNAMIC__ and __STATIC__ here.
1822 2006-10-16 Brooks Moses <bmoses@stanford.edu>
1824 * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
1825 Added mention of "make pdf" target, and Texinfo requirements for
1828 2006-10-16 DJ Delorie <dj@redhat.com>
1830 * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
1831 into the GOT in case we need a subreg of the address.
1833 2006-10-16 Richard Guenther <rguenther@suse.de>
1836 * doc/extend.texi (X86 Built-in Functions): Fix typos in
1837 SSE builtin documentation. Document SSE2 builtins.
1839 2006-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1841 * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
1842 symbol in the output file for non-shared links when -nostdlib or
1843 -nodefaultlibs isn't specified.
1845 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
1846 posix thread support.
1848 2006-10-15 Jan Hubicka <jh@suse.cz>
1851 * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
1852 declared always_inline even when not inlining.
1854 2006-10-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1855 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1856 Andrew Pinski <pinskia@gmail.com>
1859 * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
1861 2006-10-15 Jan Hubicka <jh@suse.cz>
1862 Richard Guenther <rguenther@suse.de>
1865 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1866 process_function_and_variable_attributes on all variables, including
1867 those discovered during cgraph construction phase.
1869 2006-10-15 Bernhard Fischer <aldot@gcc.gnu.org>
1871 * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
1873 2006-10-14 Uros Bizjak <uros@kss-loka.si>
1875 * config/i386/athlon.md (athlon_fist): Add fisttp.
1877 2006-10-13 David Edelsohn <edelsohn@gnu.org>
1878 Ian Lance Taylor <ian@airs.com>
1881 * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
1882 CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
1885 2006-10-14 Kazu Hirata <kazu@codesourcery.com>
1887 * config/score/score.c, config/score/score.h: Fix comment
1890 2006-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1893 * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
1896 2006-10-13 Eric Christopher <echristo@apple.com>
1898 * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1900 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1903 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1904 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1905 alignment supported by 32-bit ELF.
1907 2006-10-13 Eric Christopher <echristo@apple.com>
1909 * config/darwin.c (darwin_emit_unwind_label): Strip
1910 name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
1912 2006-10-13 Richard Guenther <rguenther@suse.de>
1914 PR tree-optimization/29446
1915 * tree-vrp.c (fix_equivalence_set): Remove.
1916 (extract_range_from_assert): Do not call fix_equivalence_set.
1917 (debug_value_range): Print a newline.
1918 (compare_name_with_value): For equivalence sets with
1919 inconsistent value ranges conservatively bail out.
1920 (compare_names): Likewise.
1922 2006-10-13 David Edelsohn <edelsohn@gnu.org>
1924 * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
1925 and MPFR for gfortran.
1927 2006-10-13 Carlos O'Donell <carlos@codesourcery.com>
1929 * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1930 alignment supported by 32-bit ELF.
1932 2006-10-13 Paolo Bonzini <bonzini@gnu.org>
1936 * c-typeck.c (digest_init): Always allow initializing vectors
1937 that have static storage duration with compound literals.
1938 * tree.c (build_type_attribute_qual_variant): New, based on
1939 build_type_attribute_variant.
1940 (build_type_attribute_variant): Rewrite using the former.
1941 (make_vector_type): Use build_type_attribute_qual_variant to build
1942 type variants. Use type_hash_canon on the others.
1944 2006-10-13 Daniel Berlin <dberlin@dberlin.org>
1945 Ramana Radhakrishnan <ramana.radhakrishnan@celunite.com>
1947 * tree-flow-inline.h (zero_ssa_operands): Fix comment.
1949 2006-10-12 Jan Hubicka <jh@suse.cz>
1952 * c-decl.c (c_make_fname_decl): Do not segfault in case where
1953 current_function_decl is set but current_function_scope is not.
1955 2006-10-12 Jie Zhang <jie.zhang@analog.com>
1957 * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
1958 emit_insn to emit eh_return_internal instruction.
1959 (eh_return_internal): Explicitly set pc.
1961 2006-10-11 Richard Guenther <rguenther@suse.de>
1963 PR tree-optimization/28230
1964 * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
1965 to the correct place.
1967 2006-10-11 Richard Guenther <rguenther@suse.de>
1970 * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
1973 2006-10-10 Brooks Moses <bmoses@stanford.edu>
1975 * configure.ac: Added pdf to "Make-hooks"
1976 * Makefile.in: Added TEXI2PDF definition, and various pdf-file
1977 targets and *.pdf file patterns in cleanup targets.
1978 * configure: Regenerated.
1980 2006-10-10 Anatoly Sokolov <aesok@post.ru>
1982 * config/avr/predicates.md: New file.
1983 * config/avr/avr.md: Include it.
1984 (REG_SP): New constant.
1985 (peepholes): Use predicates.
1986 (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
1987 difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch,
1988 sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
1990 2006-10-10 Adam Nemet <anemet@caviumnetworks.com>
1992 * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
1995 2006-10-10 Jakub Jelinek <jakub@redhat.com>
1998 * builtins.c (var_decl_component_p): New function.
1999 (fold_builtin_memset, fold_builtin_memory_op): Restrict
2000 single entry optimization to variables and components thereof.
2002 2006-10-10 Richard Guenther <rguenther@suse.de>
2004 PR rtl-optimization/29323
2005 * except.c (set_nothrow_function_flags): For functions
2006 that do not bind local bail out early.
2008 2006-10-10 Ben Elliston <bje@au.ibm.com>
2010 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
2013 2006-10-09 Richard Henderson <rth@redhat.com>
2015 Revert emutls patch.
2017 2006-10-09 Richard Guenther <rguenther@suse.de>
2020 * cgraphunit.c (verify_cgraph_node): Bail out on earlier
2023 2006-10-09 Steve Ellcey <sje@cup.hp.com>
2026 * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
2027 * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
2028 * configure: Regenerate.
2029 * config.in: Regenerate.
2031 2006-10-09 Aldy Hernandez <aldyh@redhat.com>
2033 * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2035 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2037 * config/mips/mips.c (mips_legitimize_tls_address): Implement
2038 all TLS models in the same way as local exec if !TARGET_ABICALLS.
2039 Remove stray newline.
2041 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2043 * config/mips/mips.c (mips_classify_symbol): Do not return
2044 SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
2045 (mips_in_small_data_p): Tweak comments.
2047 2006-10-08 Richard Sandiford <richard@codesourcery.com>
2049 * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2051 2006-10-07 Kazu Hirata <kazu@codesourcery.com>
2053 * gimplify.c, sched-int.h: Fix comment typos.
2055 * sched-int.h: Fix comment typos.
2057 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2059 * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
2061 * sched-ebb.c (begin_schedule_ready): Use them.
2062 * haifa-sched.c (schedule_insn, move_insn, try_ready,
2063 add_to_speculative_block, create_check_block_twin, speculate_insn,
2064 fix_jump_move, move_block_after_check): Ditto.
2065 * sched-rgn.c (new_ready): Ditto.
2067 2006-10-06 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
2069 PR rtl-optimization/29128
2070 * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
2071 * sched-ebb.c (advance_target_bb): Use it to fix condition to
2072 allow interblock movement of speculation checks.
2074 2006-10-06 Zdenek Dvorak <dvorakz@suse.cz>
2077 * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
2078 casted to integer type.
2079 (get_address_cost): Decrease cost of [symbol + index] addressing modes
2080 if they are significantly more expensive than [reg + index] ones.
2082 2006-10-06 Jakub Jelinek <jakub@redhat.com>
2084 PR tree-optimization/29330
2085 * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
2086 (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
2087 on newly allocated ddrs.
2088 (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
2089 to VEC (loop_p, heap) pointer.
2090 (compute_data_dependences_for_loop): Adjust caller.
2091 (free_dependence_relations): Free DDR_LOOP_NEST.
2093 * tree-loop-linear.c (linear_transform_loops): Don't forget to
2094 free DEPENDENCE_RELATIONS and DATAREFS.
2097 * builtins.c (expand_builtin_sync_operation,
2098 expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
2099 Use convert_to_mode to handle promoted arguments.
2101 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
2103 * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2105 2006-10-06 J"orn Rennecke <joern.rennecke@st.com>
2107 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2109 2006-10-05 Uros Bizjak <uros@kss-loka.si>
2111 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
2112 "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
2113 Use <modeconstraint> instead of "r" as operand 1 constraint.
2115 2006-10-06 Olivier Hainque <hainque@adacore.com>
2117 * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
2118 Don't recurse on the pointed-to type.
2119 * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
2120 DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
2121 types with components of variable size.
2123 2006-10-06 Danny Smith <dannysmith@users.sourceforge.net>
2125 * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2127 2006-10-06 Jakub Jelinek <jakub@redhat.com>
2129 PR tree-optimization/29290
2130 * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
2134 * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
2135 * config/i386/predicates.md (local_symbolic_operand): Likewise.
2138 * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
2139 the number of vector elements fill the rest with zeros.
2141 2006-10-05 Richard Sandiford <richard@codesourcery.com>
2143 * config/mips/mips.c (mips_pass_by_reference): Do not return false
2144 for EABI if type is NULL. Use a size check based on GET_MODE_SIZE
2147 2006-10-05 Bernd Schmidt <bernd.schmidt@analog.com>
2149 * config/bfin/bfin.md (subsi3): Lose expander, change previously
2150 unnamed pattern into subsi3. Use correct constraints/predicates.
2151 * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
2152 * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
2154 2006-10-05 Ira Rosen <irar@il.ibm.com>
2156 * doc/loop.texi: Add data references analysis description.
2158 2006-10-04 Brooks Moses <bmoses@stanford.edu>
2160 * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2162 2006-10-04 Richard Henderson <rth@redhat.com>
2163 Jakub Jelinek <jakub@redhat.com>
2165 * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
2166 * builtin-types.def (BT_WORD): Make unsigned.
2167 (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
2168 * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
2169 (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
2170 * c-decl.c (grokdeclarator): Don't error if !have_tls.
2171 * c-parser.c (c_parser_omp_threadprivate): Likewise.
2172 * cgraph.c (decide_is_variable_needed): Look at force_output.
2173 Recurse for emulated tls.
2174 * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
2175 checks redundant with decide_is_variable_needed.
2176 (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
2177 * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
2179 * expr.c (emutls_var_address): New.
2180 (expand_expr_real_1): Expand emulated tls.
2181 (expand_expr_addr_expr_1): Likewise.
2182 * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
2183 * output.h (emutls_finish): Declare.
2184 * toplev.c (compile_file): Call it.
2185 * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
2186 address before wrapping in CONST.
2187 * varasm.c (emutls_htab, emutls_object_type): New.
2188 (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
2189 (get_emutls_object_name, get_emutls_object_type): New.
2190 (get_emutls_init_templ_addr, emutls_decl): New.
2191 (emutls_common_1, emutls_finish): New.
2192 (assemble_variable): When emulating tls, swap decls; generate
2193 constructor for the emutls objects.
2194 (do_assemble_alias): When emulating tls, swap decl and target name.
2195 (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
2197 * emutls.c: New file.
2198 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
2199 tls_object for real tls.
2201 2006-10-04 Zack Weinberg <zackw@panix.com>
2203 Fix bug in constraint-check generator, reported by Rask Ingemann
2205 * genpreds.c (add_constraint): Don't remove anything from the
2207 (write_tm_constrs_h): Detect whether "op" argument is used, and
2208 mark it ARG_UNUSED if it isn't.
2209 (write_insn_const_int_ok_for_constraint): Skip the part of the
2210 expression that would test whether "op" (which is not available
2211 here) is a CONST_INT.
2213 2006-10-04 Ryan Mansfield <rmansfield@qnx.com>
2216 * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
2218 2006-10-03 Geoffrey Keating <geoffk@apple.com>
2220 * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
2221 current Leopard versions.
2222 * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
2224 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
2226 * doc/install.texi: Fix typos.
2228 2006-10-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2230 * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
2231 * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
2232 * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
2234 2006-10-02 Jack Howarth <howarth@bromo.med.uc.edu>
2236 * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
2237 arg to be struct mach_header_64* instead.
2239 2006-10-02 Jakub Jelinek <jakub@redhat.com>
2242 * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
2243 side effects after the outer expression's post side effects.
2245 2006-10-01 Sandra Loosemore <sandra@codesourcery.com>
2247 * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix
2248 comments to reflect actual behavior and relationship between
2249 DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
2251 * doc/c-tree.texi (Working with declarations): Fix documentation
2252 of FIELD_DECL likewise.
2254 2006-10-01 Ryan Mansfield <rmansfield@qnx.com>
2257 * doc/extend.texi: Add used variable attribute description.
2259 2006-09-30 Joseph S. Myers <joseph@codesourcery.com>
2262 * c.opt (Woverride-init): New.
2263 * c-opts.c (c_common_post_options): Default warn_override_init to
2265 * c-typeck.c (add_pending_init, output_init_element): Warn for
2266 overriding initializers without side effects.
2267 * doc/invoke.texi (-Woverride-init): Document.
2270 2006-09-30 Eric Botcazou <ebotcazou@libertysurf.fr>
2272 PR rtl-optimization/28096
2273 * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
2274 assignment has already been used as a destination earlier in the block.
2276 2006-09-29 Eric Botcazou <ebotcazou@adacore.com>
2278 * builtins.c (expand_builtin_setjmp): Delete.
2279 (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
2280 <BUILT_IN_SETJMP_SETUP>: New case.
2281 <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
2282 <BUILT_IN_SETJMP_RECEIVER>: Likewise.
2283 * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
2284 (BUILT_IN_SETJMP_DISPATCHER): Likewise.
2285 (BUILT_IN_SETJMP_RECEIVER): Likewise.
2286 * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
2287 (lower_function_body): Initialize it to false. If it is set to true
2288 at the end of the processing, emit the setjmp dispatcher.
2289 (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
2290 is __builtin_setjmp and set calls_builtin_setjmp to true as well.
2291 <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
2292 on the rhs of the assignment.
2293 (lower_builtin_setjmp): New function.
2294 * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
2295 BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
2296 * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
2297 to detect calls that can go to non-local labels. Use specific
2298 helper to create the abnormal edges associated with them.
2299 <MODIFY_EXPR>: Likewise.
2300 (make_abnormal_goto_edges): New function extracted from...
2301 (make_goto_expr_edges): ...here. Call it for computed gotos.
2302 (simple_goto_p): Minor tweak.
2303 (tree_can_make_abnormal_goto): New predicate.
2304 (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
2305 (tree_purge_dead_abnormal_call_edges): New function.
2306 * tree-flow.h (tree_can_make_abnormal_goto): Declare.
2307 (tree_purge_dead_abnormal_call_edges): Likewise.
2308 (make_abnormal_goto_edges): Likewise.
2309 * tree-inline.c (expand_call_inline): Simplify statement frobbing.
2310 Purge all dead abnormal edges if the call was in the last statement.
2311 * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
2312 (execute_fixup_cfg): If there are non-local labels in the function,
2313 scan the basic blocks and split them at calls that can go to non-local
2314 labels or add missing abnormal call edges. Write down the CFG in the
2316 (pass_fixup_cfg): Remove TODO_dump_func flag.
2317 * unwind-sjlj.c: Poison setjmp.
2318 * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
2319 * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
2320 (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
2321 (DONT_USE_BUILTIN_SETJMP): Document it.
2323 2006-09-28 Geoffrey Keating <geoffk@apple.com>
2326 * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
2327 to 1 when __ppc64__ is defined.
2328 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
2330 * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
2332 2006-09-28 Steve Ellcey <sje@cup.hp.com>
2334 * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
2335 * config/ia64/unwind-hpux.c: Delete.
2337 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
2339 * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
2340 on the element before gimplifying it, instead of punting if it is of
2343 2006-09-28 Zdenek Dvorak <dvorakz@suse.cz>
2345 * doc/loop.texi: New file.
2346 * doc/gccint.texi: Reference loop.texi.
2347 * Makefile.in (loop.texi): Add.
2349 2006-09-27 Geoffrey Keating <geoffk@apple.com>
2351 * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
2353 * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2354 * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2356 2006-09-28 Kaz Kojima <kkojima@gcc.gnu.org>
2358 * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
2360 2006-09-27 Steven G. Kargl <kargl@gcc.gnu.org>
2362 * doc/install.texi: Document required versions of GMP and MPFR.
2364 2006-09-27 Paul Brook <paul@codesourcery.com>
2367 * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
2369 2006-09-27 Richard Sandiford <richard@codesourcery.com>
2371 * reload1.c (alter_reg): Require the alignment of the stack slot to
2372 be at least reg_max_ref_width bytes.
2373 (scan_paradoxical_subregs): Record the largest width in
2376 2006-09-26 Jakub Jelinek <jakub@redhat.com>
2380 * tree-nested.c (struct nesting_info): Added static_chain_added.
2381 (convert_call_expr): Set static_chain_added when adding static
2382 chain. Handle OMP_PARALLEL and OMP_SECTION.
2384 2006-09-25 Matthias Klose <doko@debian.org>
2386 * doc/invoke.texi: Add missing full stop.
2388 2006-09-25 Richard Henderson <rth@redhat.com>
2390 * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
2391 before cgraph_function_flags_ready.
2393 2006-09-24 Zdenek Dvorak <dvorakz@suse.cz>
2394 Adam Nemet <anemet@caviumnetworks.com>
2396 * tree-ssa-loop-ivopts.c (aff_combination_convert,
2397 determine_common_wider_type): New functions.
2398 (get_computation_aff): Use them to simplify arithmetic between
2399 UBASE and CBASE if they are shortened from the same type.
2401 2006-09-24 Kazu Hirata <kazu@codesourcery.com>
2404 * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
2405 -2147483647 - 1 instead of 0x80000000.
2407 2006-09-23 Revital1 Eres <ERES@il.ibm.com>
2409 * flags.h (HONOR_NANS): Fix typo in comment.
2411 2006-09-23 Uros Bizjak <uros@kss-loka.si>
2413 * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
2415 2006-09-23 Jakub Jelinek <jakub@redhat.com>
2419 * tree.c (merge_attributes, attribute_list_contained): If both
2420 TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
2422 * c-typeck.c (comptypes_internal): Don't consider aggregates
2423 in different TUs as compatible if there one set of attributes is
2424 not a subset of the other type's attributes.
2425 (composite_type): Try harder not to create a new aggregate type.
2427 2006-09-22 Geoffrey Keating <geoffk@apple.com>
2429 * config/i386/driver-i386.c: Always define host_detect_local_cpu.
2430 * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
2431 or x86_64 host. Define HAVE_LOCAL_CPU_DETECT.
2432 (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
2433 than replicating condition above.
2434 * config.host (i[34567]86-*-*): Always use driver-i386.o.
2436 * config/darwin.h (LINK_SYSROOT_SPEC): New.
2437 (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
2438 the linker by default.
2440 2006-09-22 Mike Stump <mrs@apple.com>
2442 * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
2445 2006-09-22 Richard Guenther <rguenther@suse.de>
2448 * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
2449 sort of stack variables stable.
2451 2006-09-22 Peter Bergner <bergner@vnet.ibm.com>
2454 * explow.c (force_reg): Set REG_POINTER flag according to
2457 2006-09-22 Zdenek Dvorak <dvorakz@suse.cz>
2459 PR tree-optimization/28888
2460 * tree-if-conv.c (combine_blocks): Rewritten.
2461 * tree-cfg.c (tree_verify_flow_info): Check that edges with
2462 EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
2464 2006-09-22 Jakub Jelinek <jakub@redhat.com>
2466 * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
2469 2006-09-21 Richard Sandiford <richard@codesourcery.com>
2471 * varasm.c (copy_constant): Fix reversed gcc_assert check.
2473 2006-09-21 Janis Johnson <janis187@us.ibm.com>
2475 * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
2477 2006-09-21 Roger Sayle <roger@eyesopen.com>
2480 * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
2481 dw_fde_current_label, to be the start of the function, i.e. the same
2482 value as dw_fde_begin.
2484 2006-09-20 Richard Sandiford <richard@codesourcery.com>
2486 * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
2487 * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
2488 (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
2489 (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
2490 (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
2491 (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
2492 (abs<mode>2, neg<mode>2): Likewise.
2493 * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
2494 (*mips_abs_ps): New define_insn.
2496 2006-09-20 Josh Conner <jconner@apple.com>
2499 * calls.c (expand_call): Allow reuse of structure return stack
2502 2006-09-20 Paul Brook <paul@codesourcery.com>
2504 * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
2507 2006-09-20 Janis Johnson <janis187@us.ibm.com>
2509 * doc/extend.texi (Decimal Float): Update for latest draft TR,
2510 clean up terminology.
2512 2006-09-20 Steve Ellcey <sje@cup.hp.com>
2515 * ifcvt.c (dead_or_predicable): Don't predicate then blocks
2516 with tablejumps in them.
2518 2006-09-20 Jakub Jelinek <jakub@redhat.com>
2521 * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
2522 wrap it into TARGET_EXPR.
2524 2006-09-20 Eric Christopher <echristo@apple.com>
2526 * config/i386/i386.c (x86_fisttp): Remove.
2527 * config/i386/i386.h (x86_fisttp): Ditto.
2528 (TARGET_FISTTP): Ditto.
2530 2006-09-19 Eric Christopher <echristo@apple.com>
2532 * doc/tm.texi (OBJC_JBLEN): Describe.
2533 * config/i386/darwin.h (OBJC_JBLEN): Define.
2534 * config/rs6000/darwin.h: Ditto.
2536 2006-09-19 Steven Bosscher <steven@gcc.gnu.org>
2538 PR rtl-optimization/21299
2539 * reload1.c (reload): Purge invalid ASMs in the final pass.
2541 2006-09-19 Steve Ellcey <sje@cup.hp.com>
2544 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
2545 pointers as legitimate constants.
2547 2006-09-19 Paul Brook <paul@codesourcery.com>
2550 * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
2552 2006-09-17 Zdenek Dvorak <dvorakz@suse.cz>
2554 PR tree-optimization/28887
2555 * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
2556 component parts from the reference.
2557 (gather_memory_references_ref): Record the reference without the
2558 nonaddressable component parts.
2560 2006-09-17 Steven Bosscher <steven@gcc.gnu.org>
2563 * c-opts.c (c_common_handle_option): Ignore the -std options
2564 if the input language is assembly.
2566 2006-09-17 Ira Rosen <irar@il.ibm.com>
2569 * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
2571 (ptr_ptr_may_alias_p): Likewise.
2572 (record_record_differ_p): New function.
2573 (base_object_differ_p): Call record_record_differ_p.
2575 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
2578 * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
2579 away for the expr argument.
2581 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
2584 * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
2585 before using it for dumping after vectorizing loops.
2587 2006-09-16 Andrew Pinski <pinskia@physics.uc.edu>
2588 Jack Howarth <howarth@bromo.med.uc.edu>
2591 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
2592 skip on error_mark_node.
2593 (rs6000_darwin64_record_arg_recurse): Likewise.
2595 2006-09-16 Steven Bosscher <steven@gcc.gnu.org>
2597 * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
2598 * doc/rtl.texi: Remove related documentation.
2600 2006-09-16 Bernd Schmidt <bernd.schmidt@analog.com>
2602 * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
2605 2006-09-15 Jim Wilson <wilson@specifix.com>
2607 * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
2608 Handle symbol offsets same as they are handled in ia64_expand_move
2611 2006-09-16 Andreas Tobler <a.tobler@schweiz.org>
2613 * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
2614 Add forgotten parameter to the fprintf call.
2616 2006-09-15 Steve Ellcey <sje@cup.hp.com>
2618 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
2620 2006-09-15 Uros Bizjak <uros@kss-loka.si>
2622 * doc/contrib.texi: Add my entry.
2624 2006-09-15 Nick Clifton <nickc@redhat.com>
2626 * doc/md.texi (Processor pipeline description): Fix typo in
2627 example of how to use the absence_set directive and reword the
2628 description to make it slightly easier to read.
2630 2006-09-15 Bernd Schmidt <bernd.schmidt@analog.com>
2632 * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
2633 * loop-doloop.c (doloop_optimize): Use it to limit costs of
2634 expanding the number of iterations.
2635 * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
2637 * cfgrtl.c (emit_insn_at_entry): New function.
2638 * rtl.h (emit_insn_at_entry): Declare it.
2639 * integrate.c (emit_initial_value_sets): Use it.
2641 * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
2643 * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
2645 (struct loop_work and related VEC declarations): Delete.
2646 (bfin_dump_loops): Print out new member bad.
2647 (bfin_bb_in_loop): Use plain bitmap test. Don't recurse.
2648 (bfin_scan_loop): Don't recurse.
2649 (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
2650 loops. No longer need to update outer loops if the current one is
2651 found bad. Move some validitiy checks to bfin_discover_loop.
2652 (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
2653 but changed not to check for nesting. Also changed to use the new bad
2655 (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
2656 time. Use bitmap based test to discover loop nesting.
2658 2006-09-15 Kazu Hirata <kazu@codesourcery.com>
2660 * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
2663 2006-09-14 Richard Guenther <rguenther@suse.de>
2664 Kazu Hirata <kazu@codesourcery.com>
2666 PR middle-end/28884.
2667 * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
2668 (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
2669 Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
2670 with TARGET_FUNCTION_VALUE.
2672 2006-09-14 Anatoly Sokolov <aesok@post.ru>
2675 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
2677 2006-09-13 Aldy Hernandez <aldyh@redhat.com>
2679 * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
2682 2006-09-13 Andrew Pinski <pinskia@physics.uc.edu>
2685 * dwarf2out.c (loc_descriptor_from_tree_1): Handle
2688 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
2690 * basic_block.h (bb_has_eh_pred): Fix comment.
2692 2006-09-13 Andreas Krebbel <krebbel1@de.ibm.com>
2694 * flow.c (calculate_global_regs_live): Invalidate eh registers
2695 on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
2696 (propagate_block): Handle eh registers as if they were set at basic
2698 * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
2700 * global.c (global_conflicts): Make eh registers to conflict with
2701 pseudos live at basic block begin.
2702 * basic_block.h (bb_has_eh_pred): New function.
2704 2006-09-13 Richard Sandiford <richard@codesourcery.com>
2706 PR rtl-optimization/28982
2707 * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
2708 index of a PRE_MODIFY or POST_MODIFY address.
2709 * reload1.c (inc_for_reload): Use find_replacement on the original
2710 base and index registers.
2712 2006-09-12 H.J. Lu <hongjiu.lu@intel.com>
2714 * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
2715 for -Os. Update __m128 alignment requirement.
2717 2006-09-13 Jan Hubicka <jh@suse.cz>
2719 * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
2721 2006-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2723 PR rtl-optimization/28243
2724 * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
2725 the insn to which the note was originally attached.
2727 2006-09-12 Andrew Pinski <pinskia@physics.uc.edu>
2728 Roger Sayle <roger@eyesopen.com>
2730 * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
2731 outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
2732 on platforms that don't use dwarf for debug info.
2734 2006-09-12 Jason Merrill <jason@redhat.com>
2737 * builtins.c (expand_builtin_setjmp_receiver): Clobber
2738 hard_frame_pointer_rtx after using it to update the frame pointer.
2740 2006-09-12 Roger Sayle <roger@eyesopen.com>
2742 * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
2743 (TARGET_ASM_CLOSE_PAREN): Likewise.
2744 * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
2745 (TARGET_ASM_CLOSE_PAREN): Likewise.
2747 2006-09-12 Roger Sayle <roger@eyesopen.com>
2750 * config/alpha/alpha.c (alpha_start_function): Don't emit stack
2751 frame information for frames larger than 512 Kbytes on Tru64 when
2752 using the native assembler.
2754 2006-09-12 Roger Sayle <roger@eyesopen.com>
2758 * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
2759 and symbols. Instead use the implementation from cse.c's hash_rtx.
2761 2006-09-12 Jan Hubicka <jh@suse.cz>
2763 PR rtl-optimization/28071
2764 * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
2765 (vect_transform_loop): Likewise.
2766 * tree-vectorizer.c (new_loop_vec_info): Likewise.
2767 (new_loop_vec_info): Likewise.
2768 (destroy_loop_vec_info): Likewise.
2769 * tree-dfa.c (create_var_ann): Use GCC_CNEW.
2770 (create_stmt_ann): Likewise.
2771 (create_tree_ann): Rename to ...
2772 (create_tree_common_ann): ... this one; allocate only the common part
2774 * tree-vn.c (set_value_handle): Use get_tree_common_ann.
2775 (get_value_handle): Likewise.
2776 * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
2777 get_tree_common_ann.
2778 * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
2779 (vinfo_for_stmt): Use stmt annotations.
2780 * tree-flow.h (tree_ann_common_t): New type.
2781 (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
2782 (tree_ann, get_tree_ann, create_tree_ann): New.
2783 * tree-flow-inline.h (get_function_ann): Do more type checking.
2784 (stmt_ann): Likewise.
2785 (tree_ann): Rename to ...
2786 (tree_common_ann): ... this one; return ony common_ann
2787 (get_tree_ann): Rename to ...
2788 (tree_common_ann): This one; return only common_ann.
2789 * tree-vect-patterns.c (vect_pattern_recog_1): Update call
2792 2006-09-11 Geoffrey Keating <geoffk@apple.com>
2794 * config.gcc (i[34567]86-*-darwin*): Set with_arch and
2795 with_cpu by default.
2797 * dwarf2out.c (dwarf_file_data): New.
2798 (enum dw_val_class): Add dw_val_class_file.
2799 (struct dw_val_struct): Add val_file.
2800 (file_table): Change to a hash table.
2801 (file_table_emitted): Delete.
2802 (file_table_last_lookup_index): Delete.
2803 (emitcount): Delete.
2804 (last_emitted_file): New.
2805 (lookup_filename): Change prototype to return a struct dwarf_file_data.
2806 (init_file_table): Delete.
2807 (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
2808 (AT_addr): Add comment.
2812 (print_die): Handle dw_val_class_file.
2813 (print_dwarf_line_table): Update for new file table structure.
2814 (attr_checksum): Do checksum a filename.
2815 (same_dw_val_p, same_attr_p): Do compare a filename.
2816 (size_of_die): Handle dw_val_class_file.
2817 (value_format): Likewise.
2818 (output_die): Likewise. Also, call maybe_emit_file here.
2819 (struct file_info): Constify filenames. Make file_idx a pointer
2820 to a struct dwarf_file_data.
2821 (struct dir_info): Constify directory names. Remove 'used' field.
2822 (struct file_name_acquire_data): New.
2823 (file_name_acquire): New.
2824 (output_file_names): Modify to handle new file data structures.
2825 (add_src_coords_attributes): Use add_AT_file.
2826 (add_call_src_coords_attributes): Likewise.
2827 (dwarf2out_imported_module_or_decl): Likewise.
2828 (gen_subprogram_die): Modify for new file data structures.
2829 (gen_variable_die): Likewise.
2830 (file_table_eq): New.
2831 (file_table_hash): New.
2832 (file_table_last_lookup): New.
2833 (lookup_filename): Rewrite to handle new file data structures.
2834 (maybe_emit_file): Rewrite to handle new file data structures.
2835 (dwarf2out_source_line): Always call lookup_filename and
2837 (dwarf2out_init): Create file_table here.
2838 (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
2839 (file_table_relative_p): New.
2840 (dwarf2out_finish): Change detection of relative filenames
2841 to work with new file data structures. Move output_line_info call
2842 after debug_info output.
2844 2006-09-11 H.J. Lu <hongjiu.lu@intel.com>
2849 * config/i386/i386.c (override_options): Always default to 16
2850 byte stack boundary.
2852 2006-09-11 Alexandre Oliva <aoliva@redhat.com>
2855 * var-tracking.c (dump_dataflow_set): Start dumping at
2857 (clobber_variable_part): Kill only the variable part in
2858 registers holding it, leaving other variables alone.
2860 2006-09-11 Josh Triplett <josh@freedesktop.org>
2862 * doc/extend.texi (Other Builtins): Actually use the macro
2863 argument in the documentation example for
2864 __builtin_types_compatible_p.
2866 2006-09-11 Eric Botcazou <ebotcazou@libertysurf.fr>
2868 PR rtl-optimization/28726
2869 * sched-deps.c (sched_analyze_reg): New function extracted from...
2870 (sched_analyze_1): ...here. Call it to analyze references to
2871 registers. Treat again writes to a stack register as writing to the
2873 (sched_analyze_2): ...and here. Call it to analyze references to
2874 registers. Treat again reads of a stack register as reading the
2877 2006-09-11 Guenter Roeck <guenter@roeck-us.net>
2878 David Edelsohn <edelsohn@gnu.org>
2881 * config/rs6000/spe.md (frob_df_di): Remove %H.
2882 (frob_di_df): Remove %H. Change evmergelo to mr.
2883 (frob_di_df_2): Remove %H. Change evldd to two loads.
2885 2006-09-11 Hideki Iwamoto <h-iwamoto@kit.hi-ho.ne.jp>
2887 * doc/cpp.texi: Fix names of charset options.
2889 2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
2892 * config/i386/i386.c (override_options): Use 128-bit
2893 stack boundary always for 64bits.
2895 2006-09-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2897 PR rtl-optimization/28636
2898 * combine.c (force_to_mode): Test for side-effects before
2899 substituting by zero.
2900 (simplify_shift_const): Likewise for zero or other constants.
2902 2006-09-10 Steven Bosscher <steven@gcc.gnu.org>
2905 * builtins.c (expand_builtin_setjmp): Force next_lab to be
2908 2006-09-10 Richard Sandiford <richard@codesourcery.com>
2911 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
2912 * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
2913 returned by mode_for_size, rather than the mode of src itself,
2914 to choose between 32-bit and 64-bit patterns.
2915 (mips_mem_fits_mode_p): New function.
2916 * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
2917 that the size of the source matches the size of the destination.
2918 (mov_<store>l, mov_<store>r): Likewise.
2920 2006-09-10 Eric Christopher <echristo@apple.com>
2922 * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
2925 2006-09-09 Eric Christopher <echristo@apple.com>
2928 * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
2931 2006-09-09 Roger Sayle <roger@eyesopen.com>
2932 Nicolas Setton <setton@adacore.com>
2934 * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
2936 2006-09-10 Andreas Schwab <schwab@suse.de>
2938 * config/m68k/m68k.md (bungt_rev): New pattern.
2940 2006-09-09 Paolo Bonzini <bonzini@gnu.org>
2941 Dale Johannesen <dalej@apple.com>
2944 * regclass.c (struct reg_pref): Update documentation.
2945 (regclass): Set prefclass to NO_REGS if memory is the best option.
2946 (record_reg_classes): Cope with a prefclass set to NO_REGS.
2948 2006-09-08 Eric Christopher <echristo@apple.com>
2950 * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
2951 * config/t-slibgcc-darwin: Support x86_64 multilib.
2952 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
2953 Return 1 for x86_64-darwin.
2954 * config/i386/t-darwin: Add m64 multilib.
2955 (LIB2_SIDITI_CONV_FUNCS): Use.
2956 (LIB2FUNCS_EXTRA): Ditto.
2957 * config/i386/darwin.h: Support x86_64.
2958 * config/i386/i386.c (override_options): Turn on flag_pic
2959 for x86_64-darwin. Disable flag_omit_pointer.
2960 (get_pc_thunk_name): Assert !TARGET_64BIT.
2961 (legitimate_address_p): Disable machopic addressing for
2963 (legitimize_pic_address): Ditto.
2964 (ix86_expand_move): Ditto.
2965 (ix86_expand_call): Ditto.
2966 (machopic_output_stub): Ditto.
2967 * config/darwin.c (machopic_select_section): Support literal16.
2968 (machopic_select_rtx_section): Ditto.
2969 * config/darwin-sections.def: Ditto.
2970 * config/darwin-64.c: New.
2972 2006-09-08 Joseph S. Myers <joseph@codesourcery.com>
2975 * c-tree.h (struct c_arg_info): Add pending_sizes.
2976 * c-parser.c (c_parser_parms_declarator,
2977 c_parser_parms_list_declarator): Initialize pending_sizes.
2978 * c-decl.c (get_parm_info): Initialize pending_sizes.
2979 (get_parm_info): Set pending_sizes.
2980 (grokdeclarator): Call put_pending_sizes for parameters for
2981 function definition only.
2983 2006-09-07 Jason Merrill <jason@redhat.com>
2986 * varasm.c (output_constant): Only strip actual no-op conversions.
2989 * config/i386/i386.c (override_options): Use 128-bit
2990 stack boundary if -msse.
2992 2006-09-07 Eric Christopher <echristo@apple.com>
2994 * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
2996 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
2999 2006-09-07 Geoffrey Keating <geoffk@apple.com>
3001 * dwarf2out.c: Remove strange characters from comment above
3002 dwarf2out_frame_debug_expr.
3004 2006-09-07 Eric Christopher <echristo@apple.com>
3006 * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
3007 * config/darwin.h: ... to here.
3009 2006-09-07 H.J. Lu <hongjiu.lu@intel.com>
3011 * config/i386/i386.c (x86_partial_flag_reg_stall): New.
3013 * config/i386/i386.h (x86_partial_flag_reg_stall): New.
3014 (TARGET_PARTIAL_FLAG_REG_STALL): New.
3016 * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
3017 TARGET_PARTIAL_FLAG_REG_STALL.
3018 (*ashldi3_cconly_rex64): Likewise.
3019 (*ashlsi3_cmp): Likewise.
3020 (*ashlsi3_cconly): Likewise.
3021 (*ashlsi3_cmp_zext): Likewise.
3022 (*ashlhi3_cmp): Likewise.
3023 (*ashlhi3_cconly): Likewise.
3024 (*ashlqi3_cmp): Likewise.
3025 (*ashlqi3_cconly): Likewise.
3026 (*ashrdi3_cmp_rex64): Likewise.
3027 (*ashrdi3_cconly_rex64): Likewise.
3028 (*ashrsi3_cmp): Likewise.
3029 (*ashrsi3_cconly): Likewise.
3030 (*ashrsi3_cmp_zext): Likewise.
3031 (*ashrhi3_cmp): Likewise.
3032 (*ashrhi3_cconly): Likewise.
3033 (*ashrqi3_cmp): Likewise.
3034 (*ashrqi3_cconly): Likewise.
3035 (*lshrdi3_cmp_rex64): Likewise.
3036 (*lshrdi3_cconly_rex64): Likewise.
3037 (*lshrsi3_cmp): Likewise.
3038 (*lshrsi3_cconly): Likewise.
3039 (*lshrsi3_cmp_zext): Likewise.
3040 (*lshrhi3_cmp): Likewise.
3041 (*lshrhi3_cconly): Likewise.
3042 (*lshrqi2_cmp): Likewise.
3043 (*lshrqi2_cconly): Likewise.
3045 2006-09-07 Uros Bizjak <uros@kss-loka.si>
3048 * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
3049 "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
3050 "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
3051 "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
3052 "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
3053 "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
3054 "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
3055 "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
3056 "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
3057 implement only CC setting effects of shift instructions.
3059 2006-09-07 Martin Michlmayr <tbm@cyrius.com>
3061 * doc/contrib.texi: Add myself.
3063 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
3066 * stor-layout.c (relayout_decl): Don't zero the alignment if it
3067 was set by the user.
3069 2006-09-07 Paolo Bonzini <bonzini@gnu.org>
3072 * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
3073 (divsi_inv_m1): Use them.
3074 (UNSPEC_DIV_INV_TABLE): New constant.
3076 2006-09-06 James E Wilson <wilson@specifix.com>
3079 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
3080 then call count_or_remove_death_notes.
3082 2006-09-06 Jason Merrill <jason@redhat.com>
3085 * tree-inline.c (copy_result_decl_to_var): New fn.
3086 (declare_return_variable): Use it. Call declare_inline_vars here.
3087 (expand_call_inline): Not here.
3089 2006-09-06 Diego Novillo <dnovillo@redhat.com>
3091 * doc/contrib.texi: Update my entry.
3093 2006-09-06 Nick Clifton <nickc@redhat.com>
3095 * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
3097 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
3100 * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
3101 (canonicalize_induction_variables): Likewise.
3102 (tree_unroll_loops_completely): Likewise.
3103 (tree_ssa_prefetch_arrays): Likewise.
3104 (remove_empty_loops): Likewise.
3105 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
3106 TODO_cleanup_cfg instead of directly calling
3107 cleanup_tree_cfg_loop.
3108 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
3110 (tree_unroll_loops_completely): Likewise.
3111 (remove_empty_loops): Likewise.
3112 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
3113 * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
3114 of tree_ssa_unswitch_loops.
3115 (tree_ssa_loop_ivcanon): Use the return value of
3116 canonicalize_induction_variables.
3117 (tree_ssa_empty_loop): Use the return value of
3119 (tree_complete_unroll): Use the return value of
3120 tree_unroll_loops_completely.
3121 (tree_ssa_loop_prefetch): Use the return value of
3122 tree_ssa_prefetch_arrays.
3123 * passes.c (execute_todo): Before Cleanup CFG, set
3124 updating_used_alone and after cleanup CFG, call
3125 recalculate_used_alone.
3127 2006-09-05 Andrew Pinski <pinskia@physics.uc.edu>
3130 * tree-vect-transform.c (vectorizable_condition): Move the check
3131 for the type after the check for simple condition.
3133 2006-09-05 J"orn Rennecke <joern.rennecke@st.com>
3134 Kaz Kojima <kkojima@gcc.gnu.org>
3137 * mode-switching.c (optimize_mode_switching): Make the destination
3138 block of an abnormal edge have no anticipatable mode. Don't
3139 insert mode switching code at the end of the source block of
3142 2006-09-05 Paolo Bonzini <bonzini@gnu.org>
3144 PR rtl-optimization/26847
3145 * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
3146 (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
3147 (simplify_plus_minus): Count n_constants while filling ops. Replace
3148 qsort with insertion sort. Before going through the array to simplify
3149 pairs, sort it. Delay early exit until after the first sort, exiting
3150 only if no swaps occurred. Simplify pairs in reversed order, without
3151 special-casing the first iteration. Pack ops after simplifying pairs.
3153 2006-09-05 Anatoly Sokolov <aesok@post.ru>
3155 * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
3156 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3157 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3158 (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
3160 2006-09-05 Richard Guenther <rguenther@suse.de>
3162 PR tree-optimization/28900
3163 * tree-if-conv.c (find_phi_replacement_condition): Gimplify
3164 compound conditional before creating COND_EXPR condition.
3166 2006-09-05 Richard Guenther <rguenther@suse.de>
3168 PR tree-optimization/28905
3169 * tree-vrp.c (fix_equivalence_set): Manually implement
3170 !value_ranges_intersect_p to also handle symbolic ranges.
3172 2006-09-05 Richard Guenther <rguenther@suse.de>
3175 * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
3178 2006-09-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3180 PR rtl-optimization/27616
3181 * cse.c (table_size): New static variable.
3182 (new_basic_block): Initialize it to 0.
3183 (remove_from_table): Decrement it.
3184 (insert): Increment it.
3185 (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
3186 (fold_rtx_mem): Enforce a cap on the recursion depth. Call
3187 fold_rtx_mem_1 if under the cap.
3188 (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
3189 the lookup of the equivalent expression and test for equality of the
3190 first operand of the equivalent expression before in turn looking up
3191 an equivalent constant for the second operand.
3193 2006-09-02 Geoffrey Keating <geoffk@apple.com>
3196 2006-03-17 Alexandre Oliva <aoliva@redhat.com>
3197 * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3198 pointer, instead of assuming it is possible to derive the
3199 correct args size from a call insn.
3201 2006-09-02 Jakub Jelinek <jakub@redhat.com>
3204 * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
3205 (fold_builtin_mempcpy): Rename to...
3206 (fold_builtin_memory_op): ... this. Optimize one element copy
3208 (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
3210 (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
3211 (expand_builtin_memcpy, expand_builtin_mempcpy,
3212 expand_builtin_memmove): Likewise. Use fold_builtin_memory_op.
3213 (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
3214 BUILT_IN_BCOPY. Use fold_builtin_memory_op for
3215 BUILT_IN_MEM{CPY,PCPY,MOVE}.
3217 2006-09-01 DJ Delorie <dj@redhat.com>
3219 * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
3220 (stzx_16): Likewise.
3221 ("stzx_24_<mode>"): Likewise.
3222 ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
3223 ("cmp<mode>_op"): New.
3224 (cmp<mode>): Change to expander; just save operands.
3226 (b<code>): Change to expander, emit compare here.
3227 (s<code>_op): Change to use split and expander.
3228 (s<code>_24_op): Likewise.
3229 (s<code>_<mode>): New.
3230 (s<code>_<mode>_24): New.
3231 (movqicc_<code>_<mode): New.
3232 (movhicc_<code>_<mode>): New.
3235 * config/m32c/m32c.c (compare_op0, compare_op1): New.
3236 (m32c_pend_compare): New.
3237 (m32c_unpend_compare): New.
3238 (m32c_expand_scc): New.
3239 (m32c_expand_movcc): Emit the compare also.
3240 * config/m32c/predicates.md (mra_nopp_operand): New.
3242 2006-09-01 J"orn Rennecke <joern.rennecke@st.com>
3243 Richard Guenther <rguenther@suse.de>
3244 Adam Nemet <anemet@caviumnetworks.com>
3247 * builtins.c (get_pointer_alignment): Handle more forms
3248 of base addresses that can be used to derive more precise
3249 information about alignment.
3251 2006-09-01 Jason Merrill <jason@redhat.com>
3254 * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
3257 * gimplify.c (voidify_wrapper_expr): Handle null type.
3259 2006-09-01 Josh Conner <jconner@apple.com>
3262 * tree-nrv.c (dest_safe_for_nrv_p): New function.
3263 (execute_return_slot_opt): Use it.
3265 2006-08-31 Josh Conner <jconner@apple.com>
3268 * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
3269 returning aggregates.
3271 2006-08-31 Zdenek Dvorak <dvorakz@suse.cz>
3273 PR tree-optimization/28839
3274 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
3275 blocks in that phi arguments appear.
3277 2006-08-31 Roger Sayle <roger@eyesopen.com>
3280 * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
3281 NULL, otherwise use an advance_loc4 to adjust relative to the
3283 (output_cfi) <DW_CFA_set_loc>: Update the current label.
3284 (dwarf2out_switch_text_section): Reset the current label to avoid
3285 using advance_loc4 over section boundaries.
3287 2006-08-31 Andreas Krebbel <krebbel1@de.ibm.com>
3290 * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
3291 r12 + SYMBOLIC_CONST.
3293 2006-08-30 Richard Guenther <rguenther@suse.de>
3295 * Makefile.in (see.o): Add $(EXPR_H) dependency.
3297 2006-08-30 Zdenek Dvorak <dvorakz@suse.cz>
3299 PR rtl-optimization/27735
3300 * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
3301 Add new argument to keep track of whether an irreducible region
3302 was affected. All callers changed.
3303 (fix_irreducible_loops): Removed.
3304 (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
3305 flags were invalidated.
3307 2006-08-29 H.J. Lu <hongjiu.lu@intel.com>
3309 * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
3310 instead of SF operands.
3311 (*fop_df_comm_sse): Likewise.
3312 (*fop_df_comm_i387): Likewise.
3313 (*fop_df_1_mixed): Likewise.
3314 (*fop_df_1_sse): Likewise.
3316 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
3317 J"orn Rennecke <joern.rennecke@st.com>
3319 PR tree-optimization/17506
3320 * tree-ssa.c (warn_uninit): If warning about a location outside of
3321 the current function, note where the variable was declared.
3323 2006-08-28 Zdenek Dvorak <dvorakz@suse.cz>
3325 PR tree-optimization/28411
3326 * double-int.c (double_int_div): Use double_int_divmod.
3327 (double_int_divmod, double_int_sdivmod, double_int_udivmod,
3328 double_int_mod, double_int_smod, double_int_umod): New functions.
3329 * double-int.h (double_int_divmod, double_int_sdivmod,
3330 double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
3332 * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
3334 (get_computation_aff, get_computation_cost_at): Handle double_int
3335 return type of constant_multiple_of.
3337 2006-08-28 Kazu Hirata <kazu@codesourcery.com>
3340 * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
3341 an implicit conversion.
3343 2006-08-28 Prafulla Thakare <prafullat@kpitcummins.com>
3345 * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
3347 2006-08-27 Roger Sayle <roger@eyesopen.com>
3349 * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
3352 2006-08-27 Kazu Hirata <kazu@codesourcery.com>
3354 * config/i386/crtfastmath.c: Fix a comment typo.
3356 2006-08-26 Roger Sayle <roger@eyesopen.com>
3358 * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
3359 temporary visit flags on CASE_LABEL_EXPRs.
3360 * c-common.c (match_case_to_enum): Add function comment. Avoid
3361 O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
3362 (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and
3363 CASE_HIGH_SEEN for enumerated types. If the switch expression is
3364 a constant, only warn if that constant value isn't handled.
3366 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
3369 * input.h (restore_input_file_stack): Declare.
3370 (INPUT_FILE_STACK_BITS): Define.
3371 * toplev.c (fs_p, input_file_stack_history,
3372 input_file_stack_restored, restore_input_file_stack): New.
3373 (push_srcloc, pop_srcloc): Check for input_file_stack_tick
3374 overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack.
3375 (pop_srcloc): Don't free old state of stack.
3377 2006-08-26 David Edelsohn <edelsohn@gnu.org>
3380 * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
3381 (PowerPC Type Attributes): New.
3383 2006-08-26 Bob Wilson <bob.wilson@acm.org>
3385 * config/xtensa/xtensa.c (function_arg_boundary): New.
3386 (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
3388 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
3389 function_arg_boundary function that limits alignment to STACK_BOUNDARY.
3391 2006-08-26 Jakub Jelinek <jakub@redhat.com>
3394 * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
3397 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3399 * flow.c (verify_wide_reg): Use internal_error for consistency failure.
3400 (verify_local_live_at_start): Likewise.
3402 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
3405 * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
3406 omp_add_variable): Treat sizes as variable whenever not
3409 2006-08-26 Richard Guenther <rguenther@suse.de>
3412 * fold-const.c (fold_binary): Fold temporary to correct
3413 type before constructing new comparison.
3415 2006-08-25 Fariborz Jahanian <fjahanian@apple.com>
3418 * c-gimplify.c (gimplify_compound_literal_expr): Don't add
3419 variable again if DECL_SEEN_IN_BIND_EXPR_P.
3421 2006-08-25 Joseph S. Myers <joseph@codesourcery.com>
3424 * c-decl.c (start_function): Don't try to process prototype
3425 information from old declaration that isn't a function.
3427 2006-08-25 Jan Hubicka <jh@suse.cz>
3430 * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
3432 2006-08-25 Alan Modra <amodra@bigpond.net.au>
3435 * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
3438 2006-08-25 J"orn Rennecke <joern.rennecke@st.com>
3440 PR tree-optimization/16876
3441 * c-typeck.c (c_convert_parm_for_inlining): Don't take early
3442 exit if PARM doesn't match VALUE.
3444 2006-08-25 Bob Wilson <bob.wilson@acm.org>
3446 * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
3447 literal_prefix directive.
3448 (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
3449 * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
3450 * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
3452 2006-08-25 David Edelsohn <edelsohn@gnu.org>
3455 * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
3456 predicate to general_operand. Add 0->y and I->r alternatives.
3458 2006-08-25 Kazu Hirata <kazu@codesourcery.com>
3460 * doc/tm.texi: Fix a typo.
3461 * predict.c: Fix comment typos.
3463 2006-08-25 Nick Clifton <nickc@redhat.com>