OSDN Git Service

* config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-11-07  David Ung  <davidu@mips.com>
2
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
6         calculations.
7
8 2006-11-07  Jie Zhang  <jie.zhang@analog.com>
9
10         * gcc.c (process_command): Treat -b as normal switch if its argument
11         has no dash.
12         
13 2006-11-07  David Ung  <davidu@mips.com>
14         
15         * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
16         list.
17
18 2006-11-06  Eric Christopher  <echristo@apple.com>
19
20         * config.gcc: Add x86_64-darwin host support.
21         * config.host: Ditto.
22         * config/i386/darwin64.h: New file.
23         * config/i386/t-darwin64: Ditto.
24
25 2006-11-06  Janis Johnson  <janis187@us.ibm.com>
26
27         * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
28         and output-exists-not.
29
30 2006-11-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
31
32         PR tree-opt/29439
33         * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
34         checking for overflow.
35
36 2006-11-06  Jan van Dijk  <jan@etpmod.phys.tue.nl>
37
38         * configure.ac: Fixed typo in case statement: :: changed to ;;
39
40 2006-11-06  Bob Wilson  <bob.wilson@acm.org>
41
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.
59         (ffssi2): Use 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.
65
66 2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>
67
68         * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
69         set inhibit_libc.
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.
77
78 2006-11-05  Kaz Kojima  <kkojima@gcc.gnu.org>
79
80         * config/sh/lib1funcs-4-300.asm: Guard entire file with
81         #if !__SHMEDIA__ .
82
83 2006-11-05  Jakub Jelinek  <jakub@redhat.com>
84
85         PR middle-end/29695
86         * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
87         simplification.
88
89 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
90
91         PR target/26915
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
97         by negation.
98
99 2006-11-04  Richard Earnshaw  <rearnsha@arm.com>
100
101         * arm.c (thumb_legitimate_addres_p): Allow any constant offset
102         from the soft-frame, argument and virtual registers.
103
104 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
105
106         * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
107         patterns for standard 80387 constants.
108
109 2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
110             Steven Bosscher  <steven@gcc.gnu.org>
111
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
117         parameter.
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
125         table_size.
126         (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
127         simplification loop more straightforward by not calling fold_rtx
128         recursively.
129         (equiv_constant): Move here a small part of fold_rtx_subreg,
130         do not call fold_rtx.  Call avoid_constant_pool_reference
131         to process MEMs.
132         * recog.h (canonicalize_change_group): New.
133
134         * doc/invoke.texi (Optimization Options): Document fwprop.
135         * doc/passes.texi (RTL passes): Document fwprop.
136
137 2006-11-03  Geoffrey Keating  <geoffk@apple.com>
138
139         * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
140         (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
141         (grokdeclarator): Likewise.
142
143 2006-11-03  Steven Bosscher  <steven@gcc.gnu.org>
144
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
154         used in GCC.
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.
159
160 2006-11-03  Paul Brook  <paul@codesourcery.com>
161
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.
166
167 2006-11-03  David Ung  <davidu@mips.com>
168
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.
178
179 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
180
181         * config/sh/crt1.asm: Fix #ifdef indent.
182
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:
215         New files.
216           * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
217           -m4-340.
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.
227           Update type.
228           (movsi_ie, movsi_i_lowpart): Likewise.
229           (movqi_i): Split ri alternative into two separate alternatives.
230           Update type.
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.
246
247           * sh.md (mulsf3): Remove special expansion code.
248           (mulsf3_ie): Now a define_insn_and_split.
249           (macsf3): Allow for TARGET_SH4.
250
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.
266
267 2006-11-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
268
269         * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
270         constraints.
271
272 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
273
274         * doc/invoke.texi: Fix mfp-trap-mode typo.
275
276 2006-11-02  Carlos O'Donell  <carlos@codesourcery.com>
277
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):
282         Define as 0.
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.
288
289 2006-11-02  Ben Elliston  <bje@au.ibm.com>
290
291         * tree-ssa.c (warn_uninit): Use expand_location variables for
292         locus and declaration locus.
293
294 2006-11-02  Kaz Kojima  <kkojima@gcc.gnu.org>
295
296         PR target/27405
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
303         SImode.
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
309         SImode.
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.
314
315 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
316
317         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
318         instructions.
319         (sparc64-sun-solaris2*): Likewise.
320
321 2006-11-02  Paul Brook  <paul@codesourcery.com>
322
323         * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
324         from priority argument.  Use different section for non-default
325         priority.
326         * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
327
328 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
329
330         PR other/29639
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.
334
335 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
336
337         PR middle-end/29335
338         * builtins.c (do_mpfr_sincos): New.
339         (fold_builtin_1): Use it to fold builtin sincos.
340
341 2006-11-01  Roger Sayle  <roger@eyesopen.com>
342
343         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
344         it into -D_REENTRANT.
345
346 2006-11-01  Roger Sayle  <roger@eyesopen.com>
347
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.
356
357 2006-11-01  Pete Steinmetz  <steinmtz@us.ibm.com>
358             Peter Bergner  <bergner@vnet.ibm.com>
359
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
423         conditions.
424         * config/rs6000/power6.md: New file.
425
426 2006-11-01  Adam Nemet  <anemet@caviumnetworks.com>
427
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.
432
433 2006-11-01  Chris Johns <chris@contemporary.net.au>
434
435         PR bootstrap/28400
436         * Makefile.in (install-driver): Use exeext when installing
437         $target-gcc-$version.
438
439 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
440
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.
451
452 2006-11-01  Richard Guenther  <rguenther@suse.de>
453
454         * config/i386/i386.c (ix86_expand_rint): Fix issues with
455         signed zeros.
456         (ix86_expand_floorceildf_32): Likewise.
457         (ix86_expand_floorceil): Likewise.
458         (ix86_expand_trunc): Likewise.
459
460 2006-10-31  Andrew Pinski  <pinskia@gmail.com>
461
462         * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
463         to "GNU C89".
464
465 2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
466
467         * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
468         hook.
469         * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
470         default.
471         * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
472         Override default.
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.
479
480 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
481
482         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
483
484 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
485
486         PR 23067
487         * c-decl.c (start_struct): Don't create self-containing
488         structures.
489         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
490         New.
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.
495
496 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
497
498         * toplev.c (compile_file): Call final_write_globals
499         even if there have been errors.
500
501 2006-10-31  Eric Christopher  <echristo@apple.com>
502             Falk Hueffner  <falk@debian.org>
503
504         * doc/extend.texi (__builtin_bswap32): Document.
505         (__builtin_bswap64): Ditto.
506         * doc/libgcc.texi (bswapsi2): Document.
507         (bswapdi2): Ditto.
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
516         TI_UINT64_TYPE.
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
526         for bswap.
527         * builtin-types.def (BT_UINT32): New.
528         (BT_UINT64): Ditto.
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.
536         (__bswapDI2): Ditto.
537         * libgcc2.h (__bswapSI2): Declare.
538         (__bswapDI2): Ditto.
539         * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
540         * simplify-rtx.c (simplify_const_unary_operation): Return
541         0 for BSWAP.
542         * libgcc-std.ver (__bwapsi2): Add.
543         (__bswapdi2): Ditto.
544         * reload1.c (eliminate_regs_1): Add bswap.
545         (elimination_effects): Ditto.
546         * config/i386/i386.h (x86_bswap): New.
547         (TARGET_BSWAP): Use.
548         * config/i386/i386.c (x86_bswap): Set.
549
550 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
551
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
560         handling for 'F'.
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.
565
566 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
567
568         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
569         * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
570
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
573         in one step.
574
575 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
576
577         PR 15834
578         * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
579
580 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
581
582         * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
583         inline static functions in c99 mode.
584
585         PR 16622
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'
595         semantics.
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
599         DECL_EXTERNAL.
600         (c_push_function_context): Don't push current_extern_inline.
601         (c_pop_function_context): Don't restore current_extern_inline.
602
603         PR 11377
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.
608
609 2006-10-31  Roger Sayle  <roger@eyesopen.com>
610
611         PR middle-end/23470
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.
616
617 2006-10-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
618
619         PR target/24071
620         * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
621         * gthr-posix95.h (__gthread_active_p): Likewise.
622
623 2006-10-31  Richard Guenther  <rguenther@suse.de>
624
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
633         !optimize_size.
634
635 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
636
637         * opts.c (decode_options): Disable CSE skip blocks.
638
639 2006-10-30  Dirk Mueller  <dmueller@suse.de>
640
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.
645
646 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
647
648         PR middle-end/29335
649         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
650
651 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
652
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
655         a PARALLEL insn.
656
657 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
658
659         * config/mips/mips.md (mul<mode>3): Split into...
660         (mulsi3, muldi3): ...these separate patterns.
661
662 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
663
664         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
665         but with each set of options separated by spaces.
666
667 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
668
669         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
670         dwarf_reg_size_table has been initialized.
671
672 2006-10-30  Roger Sayle  <roger@eyesopen.com>
673
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.
682
683 2006-10-30  David Daney  <ddaney@avtrex.com>
684
685         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
686
687 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
688
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.
692
693 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
694
695         * dwarf2out.c (file_name_acquire): Correct typo.
696
697 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
698
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
703         tree-flow-inline.h.
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.
716         Add visited member.
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.
722         (set_new): Ditto.
723         (set_copy): Ditto.
724         (set_remove): Ditto.
725         (set_contains_value): Ditto.
726         (insert_into_set): Ditto.
727         (set_equal): 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.
737         (vh_compare): 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.
749         (clean): Ditto.
750         (compute_antic_aux): Ditto.  Mark changed blocks.
751         (compute_antic): Ditto. Iterate in postorder and only over
752         changing blocks.
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.
768
769 2006-10-29  Roger Sayle  <roger@eyesopen.com>
770
771         * builtins.c (fold_builtin_floor): Check for the availability of
772         the C99 trunc function before transforming floor into trunc.
773
774 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
775
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,
779         add fabs.
780
781 2006-10-29  Roger Sayle  <roger@eyesopen.com>
782
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.
787
788 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
789
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
797         ISA_HAS_MUL3.
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.
814
815 2006-10-29  Roger Sayle  <roger@eyesopen.com>
816
817         PR tree-optimization/15458
818         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
819         is a constant.
820
821 2006-10-29  Richard Guenther  <rguenther@suse.de>
822
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
827         optimizing for size.
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.
831
832 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
833
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.
842
843 2006-10-29  Richard Guenther  <rguenther@suse.de>
844
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
849         optimizing for size.
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.
853
854 2006-10-29  Richard Guenther  <rguenther@suse.de>
855
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
861         math.
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.
869
870 2006-10-29  Richard Guenther  <rguenther@suse.de>
871
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.
880         (rintsf2): Likewise.
881
882 2006-10-29  Richard Guenther  <rguenther@suse.de>
883
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
887         as conversion 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
897         lceil inline.
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):
903         Likewise.
904         * doc/md.texi (lfloorMN, lceilMN): Document.
905
906 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
907
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.
914
915 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
916
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.
919
920 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
921
922         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
923         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
924         comment typos.
925
926 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
927
928         PR middle-end/29335
929         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
930         (fold_builtin_pow): Evaluate constant arguments at compile-time
931         using MPFR.
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.
935         (do_mpfr_arg2): New.
936
937 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
938
939         PR tree-opt/29271
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.
943
944 2006-10-28  Richard Guenther  <rguenther@suse.de>
945
946         * fold-const.c (maybe_canonicalize_comparison): Fix code
947         to match comment.
948
949 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
950
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.
966
967 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
968
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.
980
981 2006-10-28  Richard Guenther  <rguenther@suse.de>
982
983         PR middle-end/26899
984         * fold-const.c (maybe_canonicalize_comparison_1): Helper
985         for maybe_canonicalize_comparison.
986         (maybe_canonicalize_comparison): New function for canonicalizing
987         comparison trees.
988         (fold_comparison): Call it to canonicalize comparisons with
989         constants involved.
990
991 2006-10-28  Richard Guenther  <rguenther@suse.de>
992
993         PR target/28806
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
1003         static function.
1004         (ix86_expand_lround): New function.
1005         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
1006         New expanders.
1007         * doc/md.texi (lroundMN2): Document.
1008
1009 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1010
1011         PR target/29377
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.
1016
1017 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1018
1019         * config/i386/i386.c (output_387_ffreep): Create output from a
1020         template string for !HAVE_AS_IX86_FFREEP.
1021
1022 2006-10-27  Eric Christopher  <echristo@apple.com>
1023
1024         * config/darwin.c: Fix formatting and grammar.
1025
1026 2006-10-27  Jan Hubicka  <jh@suse.cz>
1027
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.
1033
1034 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
1035
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
1044         the macro values.
1045         (TARGET_CPU_DEFAULT_NAMES): Add geode.
1046         (processor_type): Add PROCESSOR_GEODE.
1047
1048         * config/i386/i386.md: Include geode.md.
1049         (cpu): Add geode.
1050
1051         * config/i386/i386.c (geode_cost): New initialized global
1052         variable.
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.
1062
1063         * config/i386/geode.md: New file.
1064
1065         * doc/invoke.texi: Add entry about geode processor.
1066
1067 2006-10-27  Mike Stump  <mrs@apple.com>
1068
1069         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
1070         __DYNAMIC__ from here back to ...
1071         * config/darwin.h (CPP_SPEC): ... here.
1072
1073 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
1074             Nathan Sidwell  <nathan@codesourcery.com>
1075
1076         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
1077         when choosing the minimum heapsize.
1078
1079 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
1080
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.
1092
1093 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1094
1095         * config/s390/s390.c (s390_init_frame_layout): Check positive
1096         frame_size.
1097
1098 2006-10-26  Ben Elliston  <bje@au.ibm.com>
1099
1100         * gimplify.c (get_name): Remove extraneous break.
1101         (gimplify_omp_for): Initialise ret with GS_OK.
1102
1103 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
1104
1105         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
1106         Add unix98.o to link line.
1107
1108 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1109
1110         PR middle-end/29335
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.
1115
1116 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
1117
1118         * config/xtensa/lib2funcs.S: Use C-style comments.
1119
1120 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
1121
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.
1126
1127 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
1128
1129         * tree-ssa-structalias.c (intra_create_variable_infos):
1130           Don't recreate nonlocal_all if it already exists.
1131
1132 2006-10-25  Richard Guenther  <rguenther@suse.de>
1133
1134         PR target/28803
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.
1155
1156 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
1157
1158         PR target/28909
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.
1175
1176 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
1177
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.
1189
1190         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
1191         depend on flag_unsafe_math_optimizations.
1192
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.
1197
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.
1203
1204         * doc/md.texi (fmod, remainder): Document standard named pattern.
1205
1206 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
1207             David Daney  <ddaney@avtrex.com>
1208
1209         PR middle-end/29519
1210         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
1211
1212 2006-10-25  Ben Elliston  <bje@au.ibm.com>
1213
1214         * doc/extend.texi (Variable Attributes): Typo fix.
1215
1216 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
1217
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.
1224
1225         * config/i386/i386.c (regclass_map): Add fpcr entry.
1226         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
1227         Add fpcr entry.
1228         (print_reg): Assert REGNO (x) != FPCR_REG.
1229
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.
1236
1237         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
1238         hardcoded MMX register numbers.
1239
1240 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1241
1242         PR middle-end/29335
1243         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
1244         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
1245         Update all callers.
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.
1250
1251 2006-10-24  Richard Guenther  <rguenther@suse.de>
1252
1253         PR middle-end/28796
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.
1258
1259 2006-10-24  Richard Guenther  <rguenther@suse.de>
1260
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.
1265
1266 2006-10-24  Richard Guenther  <rguenther@suse.de>
1267
1268         PR tree-optimization/29567
1269         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
1270         for TRUTH_NOT_EXPR.  Clarify comments.
1271
1272 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1273
1274         PR middle-end/29335
1275         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
1276         at compile-time using MPFR.  Change parameter VALUE to FUNC,
1277         update all callers.
1278         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
1279         for overflow and underflow at all times and avoid folding in
1280         those cases.
1281
1282 2006-10-24  Ben Elliston  <bje@au.ibm.com>
1283
1284         * reload1.c: Formatting fixes.
1285
1286 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
1287
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.
1294
1295 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1296
1297         PR middle-end/29335
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.
1303
1304 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
1305
1306         * config/xtensa/lib1funcs.asm: Use C-style comments.
1307
1308 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
1309
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
1313         c_builtin_function.
1314         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
1315         the signature.
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
1321         builtin_function.
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.
1363
1364 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
1365
1366         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
1367         BUILT_IN_STRNCAT_CHK.
1368
1369 2006-10-23  Jan Hubicka  <jh@suse.cz>
1370
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.
1376
1377 2006-10-23  Paul Brook  <paul@codesourcery.com>
1378
1379         * stor-layout.c (start_record_layout): maximum_field_alignment
1380         overrides STRUCTURE_SIZE_BOUNDARY.
1381
1382 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
1383
1384         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
1385         nonlocal function symbols if flag_pic.
1386
1387 2006-10-23  Richard Guenther  <rguenther@suse.de>
1388
1389         PR middle-end/27132
1390         PR middle-end/23295
1391         * builtins.c (fold_binary): Remove checks for flag_wrapv
1392         and flag_trapv where negate_expr_p covers these cases.
1393
1394 2006-10-23  Richard Guenther  <rguenther@suse.de>
1395
1396         PR middle-end/29548
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.
1401
1402 2006-10-23  Richard Guenther  <rguenther@suse.de>
1403
1404         PR middle-end/21032
1405         * convert.c (convert_to_real): Fold (float)-x to -(float)x
1406         only if not flag_rounding_math.
1407
1408 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
1409             Kaz Kojima  <kkojima@gcc.gnu.org>
1410
1411         PR target/28232
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.
1419
1420 2006-10-22  Jeff Law  <law@redhat.com>
1421         Richard Guenther  <rguenther@suse.de>
1422
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.
1429
1430 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
1431
1432         * config/i386/tmmintrin.h: Remove the duplicated content.
1433
1434 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
1435
1436         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
1437         (x86_64-*-*): Likewise.
1438
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.
1461
1462         * config/i386/i386.md (UNSPEC_PSHUFB): New.
1463         (UNSPEC_PSIGN): Likewise.
1464         (UNSPEC_PALIGNR): Likewise.
1465         Include mmx.md before sse.md.
1466
1467         * config/i386/i386.opt: Add -mssse3.
1468
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.
1493
1494         * config/i386/tmmintrin.h: New file.
1495
1496         * doc/extend.texi: Document SSSE3 built-in functions.
1497
1498         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
1499
1500 2006-10-22  Ira Rosen  <irar@il.ibm.com>
1501
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
1504         stmt.
1505
1506 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
1507
1508         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
1509         expressions.
1510
1511 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
1512
1513         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
1514         (UNSPEC_LDDQU): This.
1515         * config/i386/sse.md (sse3_lddqu): Updated.
1516
1517 2006-10-21  Richard Guenther  <rguenther@suse.de>
1518
1519         * builtins.c (expand_builtin_int_roundingfn_2): New function.
1520         (expand_builtin): Use it to expand lrint instead of
1521         expand_builtin_mathfn.
1522
1523 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
1524
1525         PR middle-end/28252
1526         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
1527         flag_unsafe_math_optimizations is set.
1528
1529 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
1530
1531         PR target/19398
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.
1535
1536 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
1537
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.
1545
1546 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1547
1548         * Makefile.in (LIBS): Add $(GMPLIBS).
1549         * doc/install.texi: Update GMP and MPFR requirements.
1550         * doc/sourcebuild.texi (need_gmp): Delete.
1551
1552 2006-10-21  Richard Guenther  <rguenther@suse.de>
1553
1554         PR tree-optimization/3511
1555         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
1556         got new invariant arguments during PHI translation.
1557
1558 2006-10-21  Richard Guenther  <rguenther@suse.de>
1559
1560         PR middle-end/26898
1561         * fold-const.c (fold_comparison): Fold signed comparisons
1562         of the form X +- C1 CMP Y +- C2.
1563
1564 2006-10-21  Richard Guenther  <rguenther@suse.de>
1565
1566         PR target/19116
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.
1572
1573 2006-10-21  Richard Guenther  <rguenther@suse.de>
1574
1575         * builtins.c (fold_builtin_classify): Fix typo.
1576
1577 2006-10-21  Richard Guenther  <rguenther@suse.de>
1578
1579         PR middle-end/28796
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.
1584
1585 2006-10-21  Richard Guenther  <rguenther@suse.de>
1586
1587         PR target/29512
1588         * config/i386/i386.c (classify_argument): Remove redundant
1589         walking of the BINFOs.
1590         (contains_128bit_aligned_vector_p): Likewise.
1591
1592 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
1593
1594         * BASE-VER: Set to 4.3.0.
1595
1596 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
1597
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
1616         nonlocal_all.
1617
1618 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
1619
1620         * doc/install.texi (Downloading GCC): Clarify mention of
1621         Fortran in the "full distribution" description.
1622
1623 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
1624
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
1644         successors.
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
1656         calls.
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
1660         escape variable.
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
1665         escaped vars.
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
1669         variables.
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
1679         nonlocal_all.
1680         (delete_alias_heapvars): Free nonlocal_for_type and null out
1681         nonlocal_all.
1682
1683 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
1684
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.
1696
1697 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
1698
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.
1721
1722 2006-10-19  Nick Clifton  <nickc@redhat.com>
1723
1724         * config/arm/arm.c: Fix spelling typo.
1725
1726 2006-10-18  Tom Tromey  <tromey@redhat.com>
1727
1728         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
1729
1730 2006-10-18  Jan Hubicka  <jh@suse.cz>
1731
1732         PR middle-end/29299
1733         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
1734         are used.
1735
1736 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
1737
1738         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
1739         TSI_SAME_STMT, since that's the desired entity.
1740
1741 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
1742
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.
1758
1759 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
1760             Richard Sandiford  <richard@codesourcery.com>
1761
1762         PR target/29413
1763         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
1764         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
1765
1766 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
1767
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.
1772
1773 2006-10-17  Paul Brook  <paul@codesourcery.com>
1774
1775         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
1776
1777 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
1778
1779         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
1780         Standardize on "GNU Fortran" as the official name of the Fortran
1781         compiler.
1782
1783 2006-10-16  Mike Stump  <mrs@apple.com>
1784
1785         * doc/invoke.texi (Darwin Options): Document -mkernel.
1786         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
1787         -mkernel support.
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.
1798         (mkernel): Add.
1799         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
1800         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
1801         -mkernel support.
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
1813         in kexts.
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.
1821
1822 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
1823
1824         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
1825         Added mention of "make pdf" target, and Texinfo requirements for
1826         same.
1827
1828 2006-10-16  DJ Delorie  <dj@redhat.com>
1829
1830         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
1831         into the GOT in case we need a subreg of the address.
1832
1833 2006-10-16  Richard Guenther  <rguenther@suse.de>
1834
1835         PR target/25519
1836         * doc/extend.texi (X86 Built-in Functions): Fix typos in
1837         SSE builtin documentation.  Document SSE2 builtins.
1838
1839 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1840
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.
1844
1845         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
1846         posix thread support.
1847
1848 2006-10-15  Jan Hubicka  <jh@suse.cz>
1849
1850         PR middle-end/29241
1851         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
1852         declared always_inline even when not inlining.
1853
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>
1857
1858         PR middle-end/29111
1859         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
1860
1861 2006-10-15  Jan Hubicka  <jh@suse.cz>
1862             Richard Guenther  <rguenther@suse.de>
1863
1864         PR middle-end/29299
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.
1868
1869 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
1870
1871         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
1872
1873 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
1874
1875         * config/i386/athlon.md (athlon_fist): Add fisttp.
1876
1877 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
1878             Ian Lance Taylor  <ian@airs.com>
1879
1880         PR middle-end/29250
1881         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
1882         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
1883         recursing.
1884
1885 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
1886
1887         * config/score/score.c, config/score/score.h: Fix comment
1888         typos.
1889
1890 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1891
1892         PR bootstrap/29402
1893         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
1894         shell pipeline.
1895
1896 2006-10-13  Eric Christopher  <echristo@apple.com>
1897
1898         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1899
1900 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1901
1902         Revert this change:
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.
1906
1907 2006-10-13  Eric Christopher  <echristo@apple.com>
1908
1909         * config/darwin.c (darwin_emit_unwind_label): Strip
1910         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
1911
1912 2006-10-13  Richard Guenther  <rguenther@suse.de>
1913
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.
1921
1922 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
1923
1924         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
1925         and MPFR for gfortran.
1926
1927 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1928
1929         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1930         alignment supported by 32-bit ELF.
1931
1932 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
1933
1934         PR c/29092
1935
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.
1943
1944 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
1945             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
1946
1947         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
1948
1949 2006-10-12  Jan Hubicka  <jh@suse.cz>
1950
1951         PR c/28419
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.
1954
1955 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
1956
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.
1960
1961 2006-10-11  Richard Guenther  <rguenther@suse.de>
1962
1963         PR tree-optimization/28230
1964         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
1965         to the correct place.
1966
1967 2006-10-11  Richard Guenther  <rguenther@suse.de>
1968
1969         PR inline-asm/29119
1970         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
1971         addressable.
1972
1973 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
1974
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.
1979
1980 2006-10-10  Anatoly Sokolov <aesok@post.ru>
1981
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.
1989
1990 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
1991
1992         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
1993         avoid alias set 0.
1994
1995 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
1996
1997         PR middle-end/29272
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.
2001
2002 2006-10-10  Richard Guenther  <rguenther@suse.de>
2003
2004         PR rtl-optimization/29323
2005         * except.c (set_nothrow_function_flags): For functions
2006         that do not bind local bail out early.
2007
2008 2006-10-10  Ben Elliston  <bje@au.ibm.com>
2009
2010         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
2011         -mdlmzb option.
2012
2013 2006-10-09  Richard Henderson  <rth@redhat.com>
2014
2015         Revert emutls patch.
2016
2017 2006-10-09  Richard Guenther  <rguenther@suse.de>
2018
2019         PR middle-end/29254
2020         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
2021         errors.
2022
2023 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
2024
2025         PR target/27880
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.
2030
2031 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
2032
2033         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2034
2035 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2036
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.
2040
2041 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2042
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.
2046
2047 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2048
2049         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2050
2051 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
2052
2053         * gimplify.c, sched-int.h: Fix comment typos.
2054
2055         * sched-int.h: Fix comment typos.
2056
2057 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2058
2059         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
2060         New macros.
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.
2066
2067 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2068
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.
2073
2074 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
2075
2076         PR middle-end/29256
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.
2081
2082 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
2083
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.
2092
2093         * tree-loop-linear.c (linear_transform_loops): Don't forget to
2094         free DEPENDENCE_RELATIONS and DATAREFS.
2095
2096         PR target/28924
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.
2100
2101 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
2102
2103         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2104
2105 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
2106
2107         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2108
2109 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
2110
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.
2114
2115 2006-10-06  Olivier Hainque  <hainque@adacore.com>
2116
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.
2122
2123 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
2124
2125         * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2126
2127 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
2128
2129         PR tree-optimization/29290
2130         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
2131         multiple exits.
2132
2133         PR target/29198
2134         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
2135         * config/i386/predicates.md (local_symbolic_operand): Likewise.
2136
2137         PR c/29091
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.
2140
2141 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
2142
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
2145         instead.
2146
2147 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2148
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.
2153
2154 2006-10-05  Ira Rosen  <irar@il.ibm.com>
2155
2156         * doc/loop.texi: Add data references analysis description.
2157
2158 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
2159
2160         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2161
2162 2006-10-04  Richard Henderson  <rth@redhat.com>
2163             Jakub Jelinek  <jakub@redhat.com>
2164
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
2178         emulated tls.
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
2196         for emulated tls.
2197         * emutls.c: New file.
2198         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
2199         tls_object for real tls.
2200
2201 2006-10-04  Zack Weinberg  <zackw@panix.com>
2202
2203         Fix bug in constraint-check generator, reported by Rask Ingemann
2204         Lambertsen:
2205         * genpreds.c (add_constraint): Don't remove anything from the
2206         expression here.
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.
2212
2213 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
2214
2215         PR c++/28448
2216         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
2217
2218 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
2219
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.
2223
2224 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2225
2226         * doc/install.texi: Fix typos.
2227
2228 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2229
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.
2233
2234 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
2235
2236         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
2237         arg to be struct mach_header_64* instead.
2238
2239 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
2240
2241         PR c/29154
2242         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
2243         side effects after the outer expression's post side effects.
2244
2245 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
2246
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.
2250
2251         * doc/c-tree.texi (Working with declarations): Fix documentation
2252         of FIELD_DECL likewise.
2253
2254 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
2255
2256         PR c/20533
2257         * doc/extend.texi: Add used variable attribute description.
2258
2259 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
2260
2261         PR c/24010
2262         * c.opt (Woverride-init): New.
2263         * c-opts.c (c_common_post_options): Default warn_override_init to
2264         extra_warnings.
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.
2268         (-Wextra): Update.
2269
2270 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
2271
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.
2275
2276 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2277
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
2315         dump file.
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.
2322
2323 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
2324
2325         PR target/28617
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
2329         darwin-64.c.
2330         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
2331
2332 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
2333
2334         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
2335         * config/ia64/unwind-hpux.c: Delete.
2336
2337 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2338
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
2341         variable size.
2342
2343 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
2344
2345         * doc/loop.texi: New file.
2346         * doc/gccint.texi: Reference loop.texi.
2347         * Makefile.in (loop.texi): Add.
2348
2349 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
2350
2351         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
2352         __sysctl.
2353         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2354         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2355
2356 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2357
2358         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
2359
2360 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
2361
2362         * doc/install.texi: Document required versions of GMP and MPFR.
2363
2364 2006-09-27  Paul Brook  <paul@codesourcery.com>
2365
2366         PR target/29230
2367         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
2368
2369 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
2370
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
2374         reg_max_ref_width.
2375
2376 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
2377
2378         PR middle-end/25261
2379         PR middle-end/28790
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.
2383
2384 2006-09-25  Matthias Klose  <doko@debian.org>
2385
2386         * doc/invoke.texi: Add missing full stop.
2387
2388 2006-09-25  Richard Henderson  <rth@redhat.com>
2389
2390         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
2391         before cgraph_function_flags_ready.
2392
2393 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
2394             Adam Nemet  <anemet@caviumnetworks.com>
2395
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.
2400
2401 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
2402
2403         PR target/28911
2404         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
2405         -2147483647 - 1 instead of 0x80000000.
2406
2407 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
2408
2409         * flags.h (HONOR_NANS): Fix typo in comment.
2410
2411 2006-09-23  Uros Bizjak <uros@kss-loka.si>
2412
2413         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
2414
2415 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
2416
2417         PR c/28706
2418         PR c/28712
2419         * tree.c (merge_attributes, attribute_list_contained): If both
2420         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
2421         simple_cst_equal.
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.
2426
2427 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
2428
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.
2435
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.
2439
2440 2006-09-22  Mike Stump  <mrs@apple.com>
2441
2442         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
2443         code.
2444
2445 2006-09-22  Richard Guenther  <rguenther@suse.de>
2446
2447         PR middle-end/28964
2448         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
2449         sort of stack variables stable.
2450
2451 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
2452
2453         PR middle-end/28690
2454         * explow.c (force_reg): Set REG_POINTER flag according to
2455         MEM_POINTER flag.
2456
2457 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
2458
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.
2463
2464 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
2465
2466         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
2467         needed.
2468
2469 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
2470
2471         * varasm.c (copy_constant): Fix reversed gcc_assert check.
2472
2473 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
2474
2475         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
2476
2477 2006-09-21  Roger Sayle  <roger@eyesopen.com>
2478
2479         PR debug/29132
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.
2483
2484 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
2485
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.
2495
2496 2006-09-20  Josh Conner  <jconner@apple.com>
2497
2498         PR middle-end/25505
2499         * calls.c (expand_call): Allow reuse of structure return stack
2500         temp.
2501
2502 2006-09-20  Paul Brook  <paul@codesourcery.com>
2503
2504         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
2505         positive offsets.
2506
2507 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
2508
2509         * doc/extend.texi (Decimal Float): Update for latest draft TR,
2510         clean up terminology.
2511
2512 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
2513
2514         PR target/28574
2515         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
2516         with tablejumps in them.
2517
2518 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
2519
2520         PR middle-end/28046
2521         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
2522         wrap it into TARGET_EXPR.
2523
2524 2006-09-20  Eric Christopher  <echristo@apple.com>
2525
2526         * config/i386/i386.c (x86_fisttp): Remove.
2527         * config/i386/i386.h (x86_fisttp): Ditto.
2528         (TARGET_FISTTP): Ditto.
2529
2530 2006-09-19  Eric Christopher  <echristo@apple.com>
2531
2532         * doc/tm.texi (OBJC_JBLEN): Describe.
2533         * config/i386/darwin.h (OBJC_JBLEN): Define.
2534         * config/rs6000/darwin.h: Ditto.
2535
2536 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
2537
2538         PR rtl-optimization/21299
2539         * reload1.c (reload): Purge invalid ASMs in the final pass.
2540
2541 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
2542
2543         PR  28490
2544         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
2545         pointers as legitimate constants.
2546
2547 2006-09-19  Paul Brook  <paul@codesourcery.com>
2548
2549         PR target/28516
2550         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
2551
2552 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
2553
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.
2559
2560 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
2561
2562         PR c/25993
2563         * c-opts.c (c_common_handle_option): Ignore the -std options
2564         if the input language is assembly.
2565
2566 2006-09-17  Ira Rosen  <irar@il.ibm.com>
2567
2568         PR tree-opt/21591
2569         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
2570         tag first.
2571         (ptr_ptr_may_alias_p): Likewise.
2572         (record_record_differ_p): New function.
2573         (base_object_differ_p): Call record_record_differ_p.
2574
2575 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
2576
2577         PR tree-opt/29059
2578         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
2579         away for the expr argument.
2580
2581 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
2582
2583         PR tree-opt/27742
2584         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
2585         before using it for dumping after vectorizing loops.
2586
2587 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
2588             Jack Howarth  <howarth@bromo.med.uc.edu>
2589
2590         PR target/29030
2591         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
2592         skip on error_mark_node.
2593         (rs6000_darwin64_record_arg_recurse): Likewise.
2594
2595 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
2596
2597         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
2598         * doc/rtl.texi: Remove related documentation.
2599
2600 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2601
2602         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
2603         printf.
2604
2605 2006-09-15  Jim Wilson  <wilson@specifix.com>
2606
2607         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
2608         Handle symbol offsets same as they are handled in ia64_expand_move
2609         and move_operand.
2610
2611 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
2612
2613         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
2614         Add forgotten parameter to the fprintf call.
2615
2616 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
2617
2618         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
2619
2620 2006-09-15  Uros Bizjak <uros@kss-loka.si>
2621
2622         * doc/contrib.texi: Add my entry.
2623
2624 2006-09-15  Nick Clifton  <nickc@redhat.com>
2625
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.
2629
2630 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2631
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.
2636
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.
2640
2641         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
2642
2643         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
2644         bad.
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
2654         flag.
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.
2657
2658 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
2659
2660         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
2661         one line.
2662
2663 2006-09-14  Richard Guenther  <rguenther@suse.de>
2664             Kazu Hirata  <kazu@codesourcery.com>
2665
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.
2671
2672 2006-09-14  Anatoly Sokolov <aesok@post.ru>
2673
2674         PR target/26504
2675         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
2676
2677 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
2678
2679         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
2680         of a RETURN_EXPR
2681
2682 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
2683
2684         PR debug/28980
2685         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
2686         FUNCTION_DECL.
2687
2688 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2689
2690         * basic_block.h (bb_has_eh_pred): Fix comment.
2691
2692 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2693
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
2697         block start.
2698         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
2699         registers.
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.
2703
2704 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
2705
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.
2711
2712 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
2713
2714         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
2715         for -Os. Update __m128 alignment requirement.
2716
2717 2006-09-13  Jan Hubicka  <jh@suse.cz>
2718
2719         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
2720
2721 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2722
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.
2726
2727 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
2728             Roger Sayle  <roger@eyesopen.com>
2729
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.
2733
2734 2006-09-12  Jason Merrill  <jason@redhat.com>
2735
2736         PR middle-end/28493
2737         * builtins.c (expand_builtin_setjmp_receiver): Clobber
2738         hard_frame_pointer_rtx after using it to update the frame pointer.
2739
2740 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2741
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.
2746
2747 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2748
2749         PR target/22223
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.
2753
2754 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2755
2756         PR middle-end/4520
2757         PR bootstrap/28784
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.
2760
2761 2006-09-12  Jan Hubicka  <jh@suse.cz>
2762
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
2773         of annotations.
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
2790         of set_stmt_info.
2791
2792 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
2793
2794         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
2795         with_cpu by default.
2796
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.
2809         (add_AT_file): New.
2810         (AT_file): New.
2811         (get_AT_file): New.
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
2836         maybe_emit_file.
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.
2843
2844 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2845
2846         PR target/13685
2847         PR target/27537
2848         PR target/28621
2849         * config/i386/i386.c (override_options): Always default to 16
2850         byte stack boundary.
2851
2852 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
2853
2854         PR target/28672
2855         * var-tracking.c (dump_dataflow_set): Start dumping at
2856         register zero.
2857         (clobber_variable_part): Kill only the variable part in
2858         registers holding it, leaving other variables alone.
2859
2860 2006-09-11  Josh Triplett  <josh@freedesktop.org>
2861
2862         * doc/extend.texi (Other Builtins): Actually use the macro
2863         argument in the documentation example for
2864         __builtin_types_compatible_p.
2865
2866 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2867
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
2872         register.
2873         (sched_analyze_2): ...and here.  Call it to analyze references to
2874         registers.  Treat again reads of a stack register as reading the
2875         register.
2876
2877 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
2878             David Edelsohn  <edelsohn@gnu.org>
2879
2880         PR target/27287
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.
2884
2885 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
2886
2887         * doc/cpp.texi: Fix names of charset options.
2888
2889 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
2890
2891         PR target/29009
2892         * config/i386/i386.c (override_options): Use 128-bit
2893         stack boundary always for 64bits.
2894
2895 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2896
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.
2901
2902 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
2903
2904         PR middle-end/26983
2905         * builtins.c (expand_builtin_setjmp): Force next_lab to be
2906         preserved.
2907
2908 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
2909
2910         PR target/29006
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.
2919
2920 2006-09-10  Eric Christopher  <echristo@apple.com>
2921
2922         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
2923         for literal16.
2924
2925 2006-09-09  Eric Christopher  <echristo@apple.com>
2926
2927         PR target/28995
2928         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
2929         for literal16.
2930
2931 2006-09-09  Roger Sayle  <roger@eyesopen.com>
2932             Nicolas Setton <setton@adacore.com>
2933
2934         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
2935
2936 2006-09-10  Andreas Schwab  <schwab@suse.de>
2937
2938         * config/m68k/m68k.md (bungt_rev): New pattern.
2939
2940 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
2941             Dale Johannesen  <dalej@apple.com>
2942
2943         PR target/26778
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.
2947
2948 2006-09-08  Eric Christopher  <echristo@apple.com>
2949
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
2962         x86_64.
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.
2971
2972 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
2973
2974         PR c/28504
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.
2982
2983 2006-09-07  Jason Merrill  <jason@redhat.com>
2984
2985         PR middle-end/27724
2986         * varasm.c (output_constant): Only strip actual no-op conversions.
2987
2988         PR target/13685
2989         * config/i386/i386.c (override_options): Use 128-bit
2990         stack boundary if -msse.
2991
2992 2006-09-07  Eric Christopher  <echristo@apple.com>
2993
2994         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
2995         comment.
2996         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
2997         Redefine.
2998
2999 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
3000
3001         * dwarf2out.c: Remove strange characters from comment above
3002         dwarf2out_frame_debug_expr.
3003
3004 2006-09-07  Eric Christopher  <echristo@apple.com>
3005
3006         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
3007         * config/darwin.h: ... to here.
3008
3009 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3010
3011         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
3012
3013         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
3014         (TARGET_PARTIAL_FLAG_REG_STALL): New.
3015
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.
3044
3045 2006-09-07 Uros Bizjak <uros@kss-loka.si>
3046
3047         PR target/28946
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.
3058
3059 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
3060
3061         * doc/contrib.texi: Add myself.
3062
3063 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
3064
3065         PR middle-end/28862
3066         * stor-layout.c (relayout_decl): Don't zero the alignment if it
3067         was set by the user.
3068
3069 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
3070
3071         PR target/27117
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.
3075
3076 2006-09-06  James E Wilson  <wilson@specifix.com>
3077
3078         PR rtl-opt/27883
3079         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
3080         then call count_or_remove_death_notes.
3081
3082 2006-09-06  Jason Merrill  <jason@redhat.com>
3083
3084         PR c++/27371
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.
3088
3089 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
3090
3091         * doc/contrib.texi: Update my entry.
3092
3093 2006-09-06  Nick Clifton  <nickc@redhat.com>
3094
3095         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
3096
3097 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
3098
3099         PR tree-opt/28937
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):
3109         Likewise.
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
3118         remove_empty_loops.
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.
3126
3127 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
3128
3129         PR tree-opt/28952
3130         * tree-vect-transform.c (vectorizable_condition): Move the check
3131         for the type after the check for simple condition.
3132
3133 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
3134             Kaz Kojima  <kkojima@gcc.gnu.org>
3135
3136         PR target/28764
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
3140         an abnormal edge.
3141
3142 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
3143
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.
3152
3153 2006-09-05  Anatoly Sokolov <aesok@post.ru>
3154
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.
3159
3160 2006-09-05  Richard Guenther  <rguenther@suse.de>
3161
3162         PR tree-optimization/28900
3163         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
3164         compound conditional before creating COND_EXPR condition.
3165
3166 2006-09-05  Richard Guenther  <rguenther@suse.de>
3167
3168         PR tree-optimization/28905
3169         * tree-vrp.c (fix_equivalence_set): Manually implement
3170         !value_ranges_intersect_p to also handle symbolic ranges.
3171
3172 2006-09-05  Richard Guenther  <rguenther@suse.de>
3173
3174         PR middle-end/28935
3175         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
3176         of a COND_EXPR.
3177
3178 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3179
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.
3192
3193 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
3194
3195         Revert this change:
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.
3200
3201 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
3202
3203         PR middle-end/27567
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
3207         into an assignment.
3208         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
3209         functions.
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}.
3216
3217 2006-09-01  DJ Delorie  <dj@redhat.com>
3218
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.
3225         (b<code>_op): New.
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.
3233         (s<code>): New.
3234         (s<code>_24): 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.
3241
3242 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
3243         Richard Guenther  <rguenther@suse.de>
3244         Adam Nemet  <anemet@caviumnetworks.com>
3245
3246         PR middle-end/27226
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.
3250
3251 2006-09-01  Jason Merrill  <jason@redhat.com>
3252
3253         PR c++/28899
3254         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
3255         want_value.
3256
3257         * gimplify.c (voidify_wrapper_expr): Handle null type.
3258
3259 2006-09-01  Josh Conner  <jconner@apple.com>
3260
3261         PR c++/25505
3262         * tree-nrv.c (dest_safe_for_nrv_p): New function.
3263         (execute_return_slot_opt): Use it.
3264
3265 2006-08-31  Josh Conner  <jconner@apple.com>
3266
3267         PR c++/25505
3268         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
3269         returning aggregates.
3270
3271 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
3272
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.
3276
3277 2006-08-31  Roger Sayle  <roger@eyesopen.com>
3278
3279         PR other/22313
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
3282         current label.
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.
3286
3287 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
3288
3289         PR target/24367
3290         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
3291         r12 + SYMBOLIC_CONST.
3292
3293 2006-08-30  Richard Guenther  <rguenther@suse.de>
3294
3295         * Makefile.in (see.o): Add $(EXPR_H) dependency.
3296
3297 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
3298
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.
3306
3307 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
3308
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.
3315
3316 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
3317             J"orn Rennecke  <joern.rennecke@st.com>
3318
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.
3322
3323 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
3324
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):
3331         Declare.
3332         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
3333         in double_int.
3334         (get_computation_aff, get_computation_cost_at): Handle double_int
3335         return type of constant_multiple_of.
3336
3337 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
3338
3339         PR middle-end/26632
3340         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
3341         an implicit conversion.
3342
3343 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
3344
3345         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
3346
3347 2006-08-27  Roger Sayle  <roger@eyesopen.com>
3348
3349         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
3350         x87 instructions.
3351
3352 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
3353
3354         * config/i386/crtfastmath.c: Fix a comment typo.
3355
3356 2006-08-26  Roger Sayle  <roger@eyesopen.com>
3357
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.
3365
3366 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
3367
3368         PR c++/24009
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.
3376
3377 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
3378
3379         PR target/27544
3380         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
3381         (PowerPC Type Attributes): New.
3382
3383 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
3384
3385         * config/xtensa/xtensa.c (function_arg_boundary): New.
3386         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
3387         STACK_BOUNDARY.
3388         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
3389         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
3390
3391 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
3392
3393         PR middle-end/28683
3394         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
3395         3 following insns.
3396
3397 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3398
3399         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
3400         (verify_local_live_at_start): Likewise.
3401
3402 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
3403
3404         PR c/27893
3405         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
3406         omp_add_variable): Treat sizes as variable whenever not
3407         INTEGER_CST.
3408
3409 2006-08-26  Richard Guenther  <rguenther@suse.de>
3410
3411         PR middle-end/28814
3412         * fold-const.c (fold_binary): Fold temporary to correct
3413         type before constructing new comparison.
3414
3415 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
3416
3417         PR c/28418
3418         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
3419         variable again if DECL_SEEN_IN_BIND_EXPR_P.
3420
3421 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
3422
3423         PR c/28299
3424         * c-decl.c (start_function): Don't try to process prototype
3425         information from old declaration that isn't a function.
3426
3427 2006-08-25  Jan Hubicka  <jh@suse.cz>
3428
3429         PR target/28621
3430         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
3431
3432 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
3433
3434         PR target/27075
3435         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
3436         for 8 byte objects.
3437
3438 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
3439
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.
3443
3444 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
3445
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.
3451
3452 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
3453
3454         PR target/28753
3455         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
3456         predicate to general_operand.  Add 0->y and I->r alternatives.
3457
3458 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
3459
3460         * doc/tm.texi: Fix a typo.
3461         * predict.c: Fix comment typos.
3462
3463 2006-08-25  Nick Clifton  <nickc@redhat.com>
3464