OSDN Git Service

adee11f3ab8bc359770853e32c52f2371e4df21f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-11-07  Jie Zhang  <jie.zhang@analog.com>
2
3         * gcc.c (process_command): Treat -b as normal switch if its argument
4         has no dash.
5
6 2006-11-07  David Ung  <davidu@mips.com>
7         
8         * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
9         list.
10
11 2006-11-06  Eric Christopher  <echristo@apple.com>
12
13         * config.gcc: Add x86_64-darwin host support.
14         * config.host: Ditto.
15         * config/i386/darwin64.h: New file.
16         * config/i386/t-darwin64: Ditto.
17
18 2006-11-06  Janis Johnson  <janis187@us.ibm.com>
19
20         * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
21         and output-exists-not.
22
23 2006-11-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
24
25         PR tree-opt/29439
26         * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
27         checking for overflow.
28
29 2006-11-06  Jan van Dijk  <jan@etpmod.phys.tue.nl>
30
31         * configure.ac: Fixed typo in case statement: :: changed to ;;
32
33 2006-11-06  Bob Wilson  <bob.wilson@acm.org>
34
35         * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
36         count_leading_zeros, and count_trailing_zeros.
37         * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
38         (TARGET_FOLD_BUILTIN): Define.
39         (TARGET_EXPAND_BUILTIN): Define.
40         (xtensa_init_builtins): New.
41         (xtensa_fold_builtin): New.
42         (xtensa_expand_builtin): New.
43         (xtensa_rtx_costs): Add CTZ and CLZ.  Adjust costs for MULT.
44         * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
45         (CLZ_DEFINED_VALUE_AT_ZERO): Define.
46         (CTZ_DEFINED_VALUE_AT_ZERO): Define.
47         * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
48         (any_extend): New code macro.
49         (u, su): New code attributes.
50         (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
51         (nsau): Remove; replaced by clzsi2.
52         (ffssi2): Use clzsi2.
53         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
54         _clzsi2, _ctzsi2, and _ffssi2.  Rename _nsau to _clz.
55         * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
56         (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
57         (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
58
59 2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>
60
61         * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
62         set inhibit_libc.
63         * config/arm/t-strongarm-elf: Likewise.
64         * config/arm/t-pe: Likewise.
65         * config/arm/t-arm-elf: Likewise.
66         * config/arm/t-xscale-elf: Likewise.
67         * config/arm/t-arm-coff: Likewise.
68         * config/arm/t-xscale-coff: Likewise.
69         * config/arm/t-wince-pe: Likewise.
70
71 2006-11-05  Kaz Kojima  <kkojima@gcc.gnu.org>
72
73         * config/sh/lib1funcs-4-300.asm: Guard entire file with
74         #if !__SHMEDIA__ .
75
76 2006-11-05  Jakub Jelinek  <jakub@redhat.com>
77
78         PR middle-end/29695
79         * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
80         simplification.
81
82 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
83
84         PR target/26915
85         * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
86         as a valid 80387 constant.
87         (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
88         * config/i386/i386.md (unnamed splitter): Split the load of
89         constant -0.0 or -1.0  into the load of 0.0 or 1.0, followed
90         by negation.
91
92 2006-11-04  Richard Earnshaw  <rearnsha@arm.com>
93
94         * arm.c (thumb_legitimate_addres_p): Allow any constant offset
95         from the soft-frame, argument and virtual registers.
96
97 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
98
99         * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
100         patterns for standard 80387 constants.
101
102 2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
103             Steven Bosscher  <steven@gcc.gnu.org>
104
105         * fwprop.c: New file.
106         * Makefile.in: Add fwprop.o.
107         * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
108         * passes.c (init_optimization_passes): Schedule forward propagation.
109         * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
110         parameter.
111         * timevar.def (TV_FWPROP): New.
112         * common.opt (-fforward-propagate): New.
113         * opts.c (decode_options): Enable forward propagation at -O2.
114         * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
115         * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
116         canon_for_address, table_size): Remove.
117         (new_basic_block, insert, remove_from_table): Remove references to
118         table_size.
119         (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
120         simplification loop more straightforward by not calling fold_rtx
121         recursively.
122         (equiv_constant): Move here a small part of fold_rtx_subreg,
123         do not call fold_rtx.  Call avoid_constant_pool_reference
124         to process MEMs.
125         * recog.h (canonicalize_change_group): New.
126
127         * doc/invoke.texi (Optimization Options): Document fwprop.
128         * doc/passes.texi (RTL passes): Document fwprop.
129
130 2006-11-03  Geoffrey Keating  <geoffk@apple.com>
131
132         * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
133         (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
134         (grokdeclarator): Likewise.
135
136 2006-11-03  Steven Bosscher  <steven@gcc.gnu.org>
137
138         * tree-dump.c (dump_enable_all): Rename local variable
139         ir_type to avoid name conflicts.
140         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
141         instead of using ir_type().
142         * profile.c (tree_register_profile_hooks): Likewise.
143         * value-prof.c (tree_register_value_prof_hooks): Likewise.
144         * basic-block.h (struct edge_def): Likewise.
145         * config/arm/arm.c (legitimize_pic_address): Likewise.
146         * coretypes.h (ir_type): New enum of all intermediate languages
147         used in GCC.
148         * cfghooks.c (ir_type): Rename to...
149         (current_ir_type): ...this.  Distinguish between cfgrtl and
150         cfglayout mode when the current IR is RTL.  Return enum ir_type.
151         * cfghooks.h (ir_type): Replace with current_ir_type prototype.
152
153 2006-11-03  Paul Brook  <paul@codesourcery.com>
154
155         * config/arm/arm.c (arm_file_start): New function.
156         (TARGET_ASM_FILE_START): Define.
157         (arm_default_cpu): New variable.
158         (arm_override_options): Set arm_default_cpu.
159
160 2006-11-03  David Ung  <davidu@mips.com>
161
162         * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
163         PROCESSOR_24KC and PROCESSOR_24KF.
164         * config/mips/mips.c (mips_cpu_info_table): Add processor names
165         and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
166         (mips_rtx_cost_data): Add costs for the 24kc.
167         * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
168         * config/mips/24k.md: Remove references to 24k and replace with
169         uses of 24kc/24kf in the appropriate reservations.
170         * doc/invoke.texi (MIPS Options): Updated.
171
172 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
173
174         * config/sh/crt1.asm: Fix #ifdef indent.
175
176 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
177         Merged from STMicroelectronics sources:
178         2006-10-06  Andrew Stubbs  <andrew.stubbs@st.com>
179           * config/sh/crt1.asm (vbr_600): Add missing #if.
180         2006-08-03  J"orn Rennecke  <joern.rennecke@st.com>
181           * sh.opt (mfused-madd): New option.
182           * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
183         2006-07-04  Andrew Stubbs  <andrew.stubbs@st.com>
184           * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
185           Remove pointless handler at VBR+0.
186           (vbr_200, vbr_300, vbr_500): Remove pointless handler.
187           (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
188           fr7. Make sure the timer handler is called with the correct FPU
189           precision setting, according to the ABI.
190         2006-06-14  J"orn Rennecke <joern.rennecke@st.com>
191           * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
192           * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
193           (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
194         2006-06-09  J"orn Rennecke <joern.rennecke@st.com>
195           * sh.md (cmpgeusi_t): Change into define_insn_and_split.  Accept
196           zero as second operand.
197         2006-04-28  J"orn Rennecke <joern.rennecke@st.com>
198           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
199           Fixed some bugs related to negative values, in particular -0
200           and overflow at -0x80000000.
201           * config/sh/divcost-analysis: Added sh4-300 figures.
202         2006-04-27  J"orn Rennecke <joern.rennecke@st.com>
203           * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
204         2006-04-26  J"orn Rennecke <joern.rennecke@st.com>
205           * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
206           ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
207           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
208         New files.
209           * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
210           -m4-340.
211         2006-04-24  J"orn Rennecke <joern.rennecke@st.com>
212           SH4-300 scheduling description & fixes to SH4-[12]00 description:
213           * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
214           mac_mem, mem_mac, dfp_mul, fp_cmp.
215           (insn_class, dfp_comp, any_fp_comp): Update.
216           (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
217           (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
218           (muldf3_i): Likewise.
219           (movsi_i): Split rI08 alternative into two separate alternatives.
220           Update type.
221           (movsi_ie, movsi_i_lowpart): Likewise.
222           (movqi_i): Split ri alternative into two separate alternatives.
223           Update type.
224           * sh1.md (sh1_load_store, sh1_fp): Update.
225           * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
226           (mac_mem, sh4_fpscr_toggle): New insn_reservations.
227           * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
228           (sh4a_fp_double_arith): Likewise.
229           * sh4-300.md: New file.
230           * sh.c (sh_handle_option): Handle m4-300* options.
231           (sh_adjust_cost): Fix latency of auto-increments.
232           Handle SH4-300 differently than other SH4s.  Check for new insn types.
233           * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
234           been set by an option.
235           * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
236           (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
237           (mbranch-cost=): Likewise.
238           * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
239
240           * sh.md (mulsf3): Remove special expansion code.
241           (mulsf3_ie): Now a define_insn_and_split.
242           (macsf3): Allow for TARGET_SH4.
243
244           * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
245           * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
246           (expand_cbranchdi4): Likewise.
247           (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
248           CONST_DOUBLE if the outer code is COMPARE.
249           * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
250           TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
251           (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
252           (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
253           Remove redundant fp_{zero,one}_operand checks.
254           * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
255           * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
256           (expand_cbranchdi4): Likewise.
257         2006-04-20  J"orn Rennecke <joern.rennecke@st.com>
258           * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
259
260 2006-11-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
261
262         * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
263         constraints.
264
265 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
266
267         * doc/invoke.texi: Fix mfp-trap-mode typo.
268
269 2006-11-02  Carlos O'Donell  <carlos@codesourcery.com>
270
271         * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
272         * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
273         file_end_indicate_exec_stack.
274         * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
275         Define as 0.
276         * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
277         for a non-executable stack.
278         * crti.asm: Likewise.
279         * crtn.asm: Likewise.
280         * libunwind.S: Likewise.
281
282 2006-11-02  Ben Elliston  <bje@au.ibm.com>
283
284         * tree-ssa.c (warn_uninit): Use expand_location variables for
285         locus and declaration locus.
286
287 2006-11-02  Kaz Kojima  <kkojima@gcc.gnu.org>
288
289         PR target/27405
290         * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
291         (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
292         cmp{eq,gt,gtu}{si,di}_media.
293         (*cmpne0si_media): Remove.
294         (*movsicc_umin): Adjust gen_cmp*_media call.
295         (unordered): Change the mode of unordered and operands[1] to
296         SImode.
297         (seq): Adjust gen_cmp*_media calls.  Make the mode of
298         a temporary result of compare SImode if needed.  If the mode
299         of operands[0] is DImode, extend the temporary result to DImode.
300         (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
301         (sunorderd): Change the mode of match_operand and unorderd to
302         SImode.
303         (cmpeq{sf,df}_media): Remove.
304         (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
305         (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
306         and compare operation to SImode.
307
308 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
309
310         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
311         instructions.
312         (sparc64-sun-solaris2*): Likewise.
313
314 2006-11-02  Paul Brook  <paul@codesourcery.com>
315
316         * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
317         from priority argument.  Use different section for non-default
318         priority.
319         * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
320
321 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
322
323         PR other/29639
324         * except.c (switch_to_exception_section): Do not cache the section
325         if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
326         and flag_function_sections is set.
327
328 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
329
330         PR middle-end/29335
331         * builtins.c (do_mpfr_sincos): New.
332         (fold_builtin_1): Use it to fold builtin sincos.
333
334 2006-11-01  Roger Sayle  <roger@eyesopen.com>
335
336         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
337         it into -D_REENTRANT.
338
339 2006-11-01  Roger Sayle  <roger@eyesopen.com>
340
341         * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
342         whether the assembler supports taking the difference of symbols in
343         different sections.  On x86/Solaris, GAS does but Solaris as doesn't.
344         * configure: Regenerate.
345         * config.in: Regenerate.
346         * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
347         the assembler doesn't support taking the difference of symbols in
348         different sections, i.e. we're using the native solaris assembler.
349
350 2006-11-01  Pete Steinmetz  <steinmtz@us.ibm.com>
351             Peter Bergner  <bergner@vnet.ibm.com>
352
353         * doc/invoke.texi: Add cpu_type power6x
354         (RS/6000 and PowerPC Options): Add -mmfpgpr.
355         * config.gcc: Add cpu_type power6x.
356         * configure.ac: Add test for mf{t,f}gpr instructions.
357         (HAVE_AS_MFPGPR): New.
358         * config.in: Regenerate.
359         * configure: Regenerate.
360         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
361         * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
362         shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
363         and mftgpr attributes.
364         (define_attr "cpu"): Add power6.
365         Change instruction sequences to use new attributes.
366         (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
367         (fix_truncdfsi2_mfpgpr): New.
368         (floatsidf_ppc64_mfpgpr): New.
369         (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
370         (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
371         (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
372         (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
373         (fix_truncdfsi2): Use gpc_reg_operand constraint.
374         * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
375         7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
376         Add descriptions for insert_dword, shift,trap,var_shift_rotate,
377         cntlz,exts and var_delayed_compare.
378         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
379         _ARCH_PWR6X, if features enabled.
380         * config/rs6000/rs6000.opt (mmfpgpr): New.
381         * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
382         (cached_can_issue_more): New variable.
383         (processor_costs): Add power6_cost.
384         (rs6000_sched_init): New function.
385         (is_dispatch_slot_restricted): Deleted.
386         (set_to_load_agen): New function.
387         (is_load_insn,is_store_insn): New functions.
388         (adjacent_mem_locations): New function.
389         (insn_must_be_first_in_group): New function.
390         (insn_must_be_last_in_group): New function.
391         (rs6000_sched_reorder): New function.
392         (rs6000_sched_reorder2): New function.
393         (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
394         TARGET_SCHED_REORDER2): Define.
395         (processor_target_table): Use PROCESSOR_POWER6 for power6.
396         Add power6x. Add MASK_MFPGPR for power6x.
397         (POWERPC_MASKS): Add MASK_MFPGPR.
398         (rs6000_override_options): Set rs6000_always_hint to false
399         for power6.  Set rs6000_align_branch_targets. Replace
400         rs6000_sched_groups check with rs6000_align_branch_targets.
401         Use PROCESSOR_POWER6.
402         (last_scheduled_insn): New variable.
403         (load_store_pendulum): New variable.
404         (rs6000_variable_issue): Set last_scheduled_insn and
405         cached_can_issue_more.
406         (rs6000_adjust_cost): Add power6 cost adjustments.
407         (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
408         with insn_must_be_first_in_group. Add power6 priority adjustments.
409         (rs6000_issue_rate): Add CPU_POWER6.
410         (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
411         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
412         (TARGET_MFPGPR): New.
413         (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
414         (ASM_CPU_SPEC): Add power6x.
415         (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
416         conditions.
417         * config/rs6000/power6.md: New file.
418
419 2006-11-01  Adam Nemet  <anemet@caviumnetworks.com>
420
421         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
422         HOST_WIDE_INT_PRINT to print high and low parts.  Use
423         HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT.  When
424         printing a hexadecimal number prefix it with 0x.
425
426 2006-11-01  Chris Johns <chris@contemporary.net.au>
427
428         PR bootstrap/28400
429         * Makefile.in (install-driver): Use exeext when installing
430         $target-gcc-$version.
431
432 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
433
434         * c-common.c (flag_cpp0x): New.
435         * c-common.h (flag_cpp0x): New.
436         * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
437         supported, define __GXX_EXPERIMENTAL_CPP0X__.
438         * c-opts.c (set_std_cxx0x): New.
439         (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
440         * c.opt (std=c++0x): Document.
441         (std=gnu++0x): Ditto.
442         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
443         * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
444
445 2006-11-01  Richard Guenther  <rguenther@suse.de>
446
447         * config/i386/i386.c (ix86_expand_rint): Fix issues with
448         signed zeros.
449         (ix86_expand_floorceildf_32): Likewise.
450         (ix86_expand_floorceil): Likewise.
451         (ix86_expand_trunc): Likewise.
452
453 2006-10-31  Andrew Pinski  <pinskia@gmail.com>
454
455         * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
456         to "GNU C89".
457
458 2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
459
460         * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
461         hook.
462         * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
463         default.
464         * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
465         Override default.
466         * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
467         * configure.ac (use_cxa_atexit): As a special case, don't test
468         for libc definition of __cxa_atexit on mingw32
469         * configure: Regenerate.
470         * config.gcc (i[34567]86-pc-mingw32): Default to
471         enable__cxa_atexit=yes.
472
473 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
474
475         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
476
477 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
478
479         PR 23067
480         * c-decl.c (start_struct): Don't create self-containing
481         structures.
482         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
483         New.
484         * config/rs6000/rs6000-protos.h
485         (darwin_rs6000_special_round_type_align): New.
486         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
487         (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
488
489 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
490
491         * toplev.c (compile_file): Call final_write_globals
492         even if there have been errors.
493
494 2006-10-31  Eric Christopher  <echristo@apple.com>
495             Falk Hueffner  <falk@debian.org>
496
497         * doc/extend.texi (__builtin_bswap32): Document.
498         (__builtin_bswap64): Ditto.
499         * doc/libgcc.texi (bswapsi2): Document.
500         (bswapdi2): Ditto.
501         * doc/rtl.texi (bswap): Document.
502         * optabs.c (expand_unop): Don't widen a bswap.
503         (init_optabs): Init bswap. Set libfuncs explicitly
504         for bswapsi2 and bswapdi2.
505         * optabs.h (OTI_bswap): New.
506         (bswap_optab): Ditto.
507         * genopinit.c (optabs): Handle bswap_optab.
508         * tree.h (tree_index): Add TI_UINT32_TYPE and
509         TI_UINT64_TYPE.
510         (uint32_type_node): New.
511         (uint64_type_node): Ditto.
512         * tree.c (build_common_tree_nodes_2): Initialize
513         uint32_type_node and uint64_type_node.
514         * builtins.c (expand_builtin_bswap): New.
515         (expand_builtin): Call.
516         (fold_builtin_bswap): New.
517         (fold_builtin_1): Call.
518         * fold-const.c (tree_expr_nonnegative_p): Return true
519         for bswap.
520         * builtin-types.def (BT_UINT32): New.
521         (BT_UINT64): Ditto.
522         (BT_FN_UINT32_UINT32): Ditto.
523         (BT_FN_UINT64_UINT64): Ditto.
524         * builtins.def (BUILT_IN_BSWAP32): New.
525         (BUILT_IN_BSWAP64): Ditto.
526         * rtl.def (BSWAP): New.
527         * genattrtab.c (check_attr_value): New.
528         * libgcc2.c (__bswapSI2): New.
529         (__bswapDI2): Ditto.
530         * libgcc2.h (__bswapSI2): Declare.
531         (__bswapDI2): Ditto.
532         * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
533         * simplify-rtx.c (simplify_const_unary_operation): Return
534         0 for BSWAP.
535         * libgcc-std.ver (__bwapsi2): Add.
536         (__bswapdi2): Ditto.
537         * reload1.c (eliminate_regs_1): Add bswap.
538         (elimination_effects): Ditto.
539         * config/i386/i386.h (x86_bswap): New.
540         (TARGET_BSWAP): Use.
541         * config/i386/i386.c (x86_bswap): Set.
542
543 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
544
545         * coverage.c (coverage_checksum_string): Update comment.
546         * dwarf2out.c (switch_to_eh_frame_section): Update for removal
547         of get_file_function_name.
548         * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
549         of get_file_function_name_long.
550         * tree.c (get_file_function_name): Rename from
551         get_file_function_name_long; improve comment; handle 'I' and 'D'
552         specially when the target has ctor/dtor support; remove special
553         handling for 'F'.
554         (get_file_function_name): Remove.
555         * tree.h (get_file_function_name): Rename from
556         get_file_function_name_long.
557         (get_file_function_name): Remove prototype.
558
559 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
560
561         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
562         * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
563
564         * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
565         Call dsymutil when compiling and linking one or more source files
566         in one step.
567
568 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
569
570         PR 15834
571         * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
572
573 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
574
575         * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
576         inline static functions in c99 mode.
577
578         PR 16622
579         * doc/extend.texi (Inline): Update.
580         * c-tree.h (struct language_function): Remove field 'extern_inline'.
581         * c-decl.c (current_extern_inline): Delete.
582         (pop_scope): Adjust test for an undefined nested function.
583         Add warning about undeclared inline function.
584         (diagnose_mismatched_decls): Update comments.  Disallow overriding
585         of inline functions in a translation unit in C99.  Allow inline
586         declarations in C99 at any time.
587         (merge_decls): Boolize variables.  Handle C99 'extern inline'
588         semantics.
589         (grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
590         C99 inline semantics.
591         (start_function): Don't clear current_extern_inline.  Don't set
592         DECL_EXTERNAL.
593         (c_push_function_context): Don't push current_extern_inline.
594         (c_pop_function_context): Don't restore current_extern_inline.
595
596         PR 11377
597         * c-typeck.c (build_external_ref): Warn about static variables
598         used in extern inline functions.
599         * c-decl.c (start_decl): Warn about static variables declared
600         in extern inline functions.
601
602 2006-10-31  Roger Sayle  <roger@eyesopen.com>
603
604         PR middle-end/23470
605         * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
606         * fold-const.c (tree_expr_nonnegative_p): Likewise.  Consider
607         pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
608         or y is an even integer.
609
610 2006-10-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
611
612         PR target/24071
613         * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
614         * gthr-posix95.h (__gthread_active_p): Likewise.
615
616 2006-10-31  Richard Guenther  <rguenther@suse.de>
617
618         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
619         acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
620         expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
621         exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
622         ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
623         lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
624         lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
625         btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
626         !optimize_size.
627
628 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
629
630         * opts.c (decode_options): Disable CSE skip blocks.
631
632 2006-10-30  Dirk Mueller  <dmueller@suse.de>
633
634         * c-common.h (strict_aliasing_warning): Fix whitespace.
635         * c-decl (start_function): Move code for main decl warning ..
636         * c-common.c (check_main_parameter_types): .. here.
637         * c-common.h (check_main_parameter_types): Declare.
638
639 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
640
641         PR middle-end/29335
642         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
643
644 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
645
646         * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
647         be a PARALLEL containing sets.  Return false when out_pat is not
648         a PARALLEL insn.
649
650 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
651
652         * config/mips/mips.md (mul<mode>3): Split into...
653         (mulsi3, muldi3): ...these separate patterns.
654
655 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
656
657         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
658         but with each set of options separated by spaces.
659
660 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
661
662         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
663         dwarf_reg_size_table has been initialized.
664
665 2006-10-30  Roger Sayle  <roger@eyesopen.com>
666
667         * builtins.c (expand_builtin_mathfn_3): Correct coding style.
668         * ddg.c (print_ddg_edge): Likewise.
669         * dwarf2out.c (prune_unused_types_walk): Likewise.
670         * ifcvt.c (noce_try_cmove_arith): Likewise.
671         * langhooks.c (add_builtin_function): Likewise.
672         * reg-stack.c (subst_stack_regs_pat): Likewise.
673         * tree.c (expanded_location): Likewise.
674         * tree-dump.c (dequeue_and_dump): Likewise.
675
676 2006-10-30  David Daney  <ddaney@avtrex.com>
677
678         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
679
680 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
681
682         PR tree-optimization/29637
683         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
684         of the innertype is the innertype itself.
685
686 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
687
688         * dwarf2out.c (file_name_acquire): Correct typo.
689
690 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
691
692         * tree.h (tree_value_handle): Remove struct value_set declaration.
693         Change value_set to bitmap_set.
694         * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
695         * tree-vn.c (get_value_handle): Made inline and moved to
696         tree-flow-inline.h.
697         * tree-flow-inline.h: (has_stmt_ann): New function.
698         * tree-ssa-pre.c (expressions): New variable.
699         (next_expression_id): Ditto.
700         (alloc_expression_id): New function.
701         (struct value_set): Remove.
702         (get_expression_id): New function.
703         (get_or_alloc_expression_id): Ditto.
704         (expression_for_id): Ditto.
705         (clear_expression_ids): Ditto.
706         (FOR_EACH_EXPR_ID_IN_SET): New macro.
707         (bb_value_sets): Renamed to bb_bitmap_sets.
708         All value sets replaced with bitmap_sets.
709         Add visited member.
710         (BB_VISITED): New macro.
711         (postorder): New variable.
712         (add_to_value): Removed.
713         (value_exists_in_set_bitmap): Ditto.
714         (value_insert_into_set_bitmap): Ditto.
715         (set_new): Ditto.
716         (set_copy): Ditto.
717         (set_remove): Ditto.
718         (set_contains_value): Ditto.
719         (insert_into_set): Ditto.
720         (set_equal): Ditto.
721         (find_leader): Ditto.
722         (bitmap_set_subtract_from_value_set): Ditto.
723         (value_insert_into_set): Ditto.
724         (print_value_set): Ditto.
725         (debug_value_set): Ditto.
726         (constant_expr_p): New function.
727         (bitmap_remove_from_set): Ditto.
728         (bitmap_insert_into_set): Ditto.
729         (bitmap_set_free): Ditto.
730         (vh_compare): Ditto.
731         (sorted_array_from_bitmap_set): Ditto.
732         (bitmap_set_subtract): Ditto.
733         (bitmap_set_equal): Ditto.
734         (debug_bitmap_set): Ditto.
735         (find_leader_in_sets): Ditto.
736         (bitmap_set_replace_value): Modify for bitmapped sets.
737         (phi_translate): Ditto.
738         (phi_translate_set): Ditto.
739         (bitmap_find_leader): Ditto.
740         (valid_in_sets): Ditto.
741         (union_contains_value): Ditto.
742         (clean): Ditto.
743         (compute_antic_aux): Ditto.  Mark changed blocks.
744         (compute_antic): Ditto. Iterate in postorder and only over
745         changing blocks.
746         (compute_rvuse_and_antic_safe): Reuse postorder.
747         (create_component_ref_by_pieces): Modify for bitmapped sets.
748         (find_or_generate_expression): Ditto.
749         (create_expression_by_pieces): Ditto.
750         (insert_into_preds_of_block): Ditto.
751         (changed_blocks): New variable.
752         (do_regular_insertion): Broken out from insert_aux.
753         (insert_aux): Modified for bitmapped sets.
754         (find_existing_value_expr): New function.
755         (create_value_expr_from): Use it.
756         (insert_extra_phis): Removed.
757         (print_bitmap_set): Renamed from bitmap_print_value_set.
758         (compute_avail): Handle RETURN_EXPR.
759         (init_pre): Modify for bitmapped sets.
760         * tree-flow.h (has_stmt_ann): New function.
761
762 2006-10-29  Roger Sayle  <roger@eyesopen.com>
763
764         * builtins.c (fold_builtin_floor): Check for the availability of
765         the C99 trunc function before transforming floor into trunc.
766
767 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
768
769         * builtins.c (fold_builtin_hypot): Rearrange recursive
770         transformation before others, and also do ABS_EXPR.  When
771         necessary, check flag_unsafe_math_optimizations.  When necessary,
772         add fabs.
773
774 2006-10-29  Roger Sayle  <roger@eyesopen.com>
775
776         * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
777         Fold ~X op C as X op' ~C, where op' is the swapped comparison.
778         (fold_binary): ~X eq/ne C is now handled in fold_comparison.
779         Fold -X eq/ne -Y as X eq/ne Y.
780
781 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
782
783         * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
784         GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
785         rather than GENERATE_MULT3_SI in the various define_peephole2s.
786         (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
787         Use an inclusive test for "mult" rather than "mul".
788         (rotr<mode>3): Depend on ISA_HAS_ROR.
789         * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
790         ISA_HAS_MUL3.
791         (GENERATE_MULT3_DI): Delete.
792         (ISA_HAS_64BIT_REGS): Use consistent formatting.
793         (ISA_HAS_MUL3): New macro.
794         (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
795         (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
796         (ISA_HAS_CLZ_CLO): Likewise.
797         (ISA_HAS_DCLZ_DCLO): Delete.
798         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
799         (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
800         the VR4120 and VR4130.
801         (ISA_HAS_MACCHI): Use consistent formatting.
802         (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
803         (ISA_HAS_ROR): ...this new macro.
804         (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
805         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
806         (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
807
808 2006-10-29  Roger Sayle  <roger@eyesopen.com>
809
810         PR tree-optimization/15458
811         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
812         is a constant.
813
814 2006-10-29  Richard Guenther  <rguenther@suse.de>
815
816         * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
817         (ix86_expand_truncdf_32): Likewise.
818         * config/i386/i386.c (ix86_expand_trunc): New function expanding
819         trunc inline for SSE math and -fno-trapping-math and if not
820         optimizing for size.
821         (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
822         * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
823         for expanding btrunc inline for SSE math.
824
825 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
826
827         * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
828         Handle tuning for bi-arch i[34567]86-*-linux* like that for
829         i[34567]86-*-solaris2.1[0-9]*.
830         * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
831         Define conditionally depending on TARGET_64BIT_DEFAULT.
832         (SPEC_32, SPEC_64): Define.
833         (LINK_SPEC): Use them.
834         * doc/install.texi (--enable-targets=all): Document for x86-linux.
835
836 2006-10-29  Richard Guenther  <rguenther@suse.de>
837
838         * config/i386/i386-protos.h (ix86_expand_round): Declare.
839         (ix86_expand_rounddf_32): Likewise.
840         * config/i386/i386.c (ix86_expand_round): New function expanding
841         round inline for SSE math and -fno-trapping-math and if not
842         optimizing for size.
843         (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
844         * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
845         round via ix86_expand_round.
846
847 2006-10-29  Richard Guenther  <rguenther@suse.de>
848
849         * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
850         (ix86_expand_floorceildf_32): Likewise.
851         * config/i386/i386.c (ix86_expand_sse_compare_mask): New
852         static helper function.
853         (ix86_expand_floorceil): Expander for floor and ceil to SSE
854         math.
855         (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
856         * config/i386/i386.md (floordf2): Adjust to enable floor
857         expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
858         -fno-trapping-math is enabled and if not optimizing for size.
859         (floorsf2, ceildf2, ceilsf2): Likewise.
860         * config/i386/sse.md (sse_maskcmpsf3): New insn.
861         (sse2_maskcmpdf3): Likewise.
862
863 2006-10-29  Richard Guenther  <rguenther@suse.de>
864
865         * builtins.c (expand_builtin_mathfn): Expand nearbyint as
866         rint in case -fno-trapping-math is enabled.
867         * config/i386/i386-protos.h (ix86_expand_rint): Declare.
868         * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
869         (ix86_expand_sse_fabs): Likewise.
870         (ix86_expand_rint): New function expanding rint to x87 or SSE math.
871         * config/i386/i386.md (rintdf2): Enable for SSE math if
872         -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
873         (rintsf2): Likewise.
874
875 2006-10-29  Richard Guenther  <rguenther@suse.de>
876
877         * genopinit.c (optabs): Change lfloor_optab and lceil_optab
878         to conversion optabs.
879         * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
880         as conversion optab.
881         * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
882         (enum convert_optab_index): Add COI_lfloor and COI_lceil.
883         (lfloor_optab, lceil_optab): Adjust defines.
884         * builtins.c (expand_builtin_int_roundingfn): Adjust for
885         lfloor and lceil optabs now being conversion optabs.
886         * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
887         * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
888         New static helper function.
889         (ix86_expand_lfloorceil): New function to expand lfloor and
890         lceil inline.
891         * config/i386/i386.md (lfloor<mode>2): Split into ...
892         (lfloorxf<mode>2): ... x87 variant
893         (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
894         using ix86_expand_lfloorceil.
895         (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
896         Likewise.
897         * doc/md.texi (lfloorMN, lceilMN): Document.
898
899 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
900
901         * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.  Test for the
902         -mno-shared assembler option on mips targets.
903         * configure, config.in: Regenerate.
904         * config/mips/linux.h (NO_SHARED_SPECS): New macro.
905         (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
906         * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
907
908 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
909
910         * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
911         as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
912
913 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
914
915         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
916         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
917         comment typos.
918
919 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
920
921         PR middle-end/29335
922         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
923         (fold_builtin_pow): Evaluate constant arguments at compile-time
924         using MPFR.
925         (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
926         (do_mpfr_ckconv): New helper function.
927         (do_mpfr_arg1): Use do_mpfr_ckconv.
928         (do_mpfr_arg2): New.
929
930 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
931
932         PR tree-opt/29271
933         * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
934         (-fdump-rtl-sched): Rename to ..
935         (-fdump-rtl-sched1): here.  Also fix file extension number.
936
937 2006-10-28  Richard Guenther  <rguenther@suse.de>
938
939         * fold-const.c (maybe_canonicalize_comparison): Fix code
940         to match comment.
941
942 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
943
944         * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
945         (NON_QI_REG_P): Use IN_RANGE.
946         (REX_INT_REGNO_P): Use IN_RANGE.
947         (FP_REGNO_P): Use IN_RANGE.
948         (SSE_REGNO_P): Use IN_RANGE.
949         (REX_SSE_REGNO_P): Use IN_RANGE.
950         (MMX_REGNO_P): Use IN_RANGE.
951         (STACK_REGNO_P): New macro.
952         (STACK_REG_P): Use STACK_REGNO_P.
953         (NON_STACK_REG_P): Use STACK_REGNO_P.
954         (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
955         (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
956         (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
957         (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
958         (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
959
960 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
961
962         * except.h (output_function_exception_table): Add 'const char*' param.
963         * except.c (switch_to_exception_section): Add 'const char*' param.
964         If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
965         and flag_function_sections is set, use a function-specific section.
966         (output_function_exception_table): Add 'const char*' param.
967         Adjust call to switch_to_exception_section.
968         * final.c (rest_of_handle_final): Adjust calls to
969         output_function_exception_table.
970         * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
971         * config.in: Regenerate.
972         * configure: Likewise.
973
974 2006-10-28  Richard Guenther  <rguenther@suse.de>
975
976         PR middle-end/26899
977         * fold-const.c (maybe_canonicalize_comparison_1): Helper
978         for maybe_canonicalize_comparison.
979         (maybe_canonicalize_comparison): New function for canonicalizing
980         comparison trees.
981         (fold_comparison): Call it to canonicalize comparisons with
982         constants involved.
983
984 2006-10-28  Richard Guenther  <rguenther@suse.de>
985
986         PR target/28806
987         * builtins.c (expand_builtin_int_roundingfn_2): Expand
988         BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
989         (expand_builtin): Adjust likewise.
990         * genopinit.c (optabs[]): Add lround optab.
991         * optabs.c (init_optabs): Initialize lround_optab.
992         * optabs.h (enum convert_optab_index): Add COI_lround.
993         (lround_optab): Define.
994         * config/i386/i386-protos.h (ix86_expand_lround): Declare.
995         * config/i386/i386.c (ix86_sse_copysign_to_positive): New
996         static function.
997         (ix86_expand_lround): New function.
998         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
999         New expanders.
1000         * doc/md.texi (lroundMN2): Document.
1001
1002 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1003
1004         PR target/29377
1005         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
1006         argument to HOST_WIDE_INT.  Update function prototype.
1007         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
1008         "size" argument to HOST_WIDE_INT.  Update function prototype.
1009
1010 2006-10-28 Uros Bizjak <uros@kss-loka.si>
1011
1012         * config/i386/i386.c (output_387_ffreep): Create output from a
1013         template string for !HAVE_AS_IX86_FFREEP.
1014
1015 2006-10-27  Eric Christopher  <echristo@apple.com>
1016
1017         * config/darwin.c: Fix formatting and grammar.
1018
1019 2006-10-27  Jan Hubicka  <jh@suse.cz>
1020
1021         * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
1022         to be thrown away soon when IGNORE is set.
1023         * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
1024         indicating when return value shall not be computed.
1025         * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
1026
1027 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
1028
1029         * config/i386/i386.h (TARGET_GEODE):
1030         (TARGET_CPU_CPP_BUILTINS): Add code for geode.
1031         (TARGET_CPU_DEFAULT_geode): New macro.
1032         (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
1033         TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
1034         TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
1035         TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
1036         TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
1037         the macro values.
1038         (TARGET_CPU_DEFAULT_NAMES): Add geode.
1039         (processor_type): Add PROCESSOR_GEODE.
1040
1041         * config/i386/i386.md: Include geode.md.
1042         (cpu): Add geode.
1043
1044         * config/i386/i386.c (geode_cost): New initialized global
1045         variable.
1046         (m_GEODE, m_K6_GEODE): New macros.
1047         (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
1048         x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
1049         x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
1050         x86_schedule): Use m_K6_GEODE instead of m_K6.
1051         (x86_movx, x86_cmove): Set up m_GEODE.
1052         (x86_integer_DFmode_moves): Clear m_GEODE.
1053         (processor_target_table): Add entry for geode.
1054         (processor_alias_table): Ditto.
1055
1056         * config/i386/geode.md: New file.
1057
1058         * doc/invoke.texi: Add entry about geode processor.
1059
1060 2006-10-27  Mike Stump  <mrs@apple.com>
1061
1062         * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
1063         __DYNAMIC__ from here back to ...
1064         * config/darwin.h (CPP_SPEC): ... here.
1065
1066 2006-10-26  Nathan Froyd  <froydnj@codesourcery.com>
1067             Nathan Sidwell  <nathan@codesourcery.com>
1068
1069         * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
1070         when choosing the minimum heapsize.
1071
1072 2006-10-26  Nathan Froyd <froydnj@codesourcery.com>
1073
1074         * gcc/unwind-dw2.h: Move cfa-related variables into
1075         struct frame_state_reg_info to ensure that the CFA is properly
1076         handled when executing DW_CFA_{remember,restore}_state.
1077         * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
1078         gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
1079         gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
1080         gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
1081         gcc/config/rs6000/linux-unwind.h,
1082         gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
1083         gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
1084         Modify to use new cfa_* fields.
1085
1086 2006-10-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1087
1088         * config/s390/s390.c (s390_init_frame_layout): Check positive
1089         frame_size.
1090
1091 2006-10-26  Ben Elliston  <bje@au.ibm.com>
1092
1093         * gimplify.c (get_name): Remove extraneous break.
1094         (gimplify_omp_for): Initialise ret with GS_OK.
1095
1096 2006-10-25  Steve Ellcey  <sje@cup.hp.com>
1097
1098         * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
1099         Add unix98.o to link line.
1100
1101 2006-10-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1102
1103         PR middle-end/29335
1104         * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
1105         Calculate compile-time constants using MPFR.
1106         (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
1107         BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
1108
1109 2006-10-25  Bob Wilson  <bob.wilson@acm.org>
1110
1111         * config/xtensa/lib2funcs.S: Use C-style comments.
1112
1113 2006-10-24  Nathan Froyd  <froydnj@codesourcery.com>
1114
1115         * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
1116         (file_table_relative_p): Likewise.
1117         (dwarf2out_finish): Likewise.
1118         (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
1119
1120 2006-10-25  Daniel Berlin  <dberlin@dberlin.org>
1121
1122         * tree-ssa-structalias.c (intra_create_variable_infos):
1123           Don't recreate nonlocal_all if it already exists.
1124
1125 2006-10-25  Richard Guenther  <rguenther@suse.de>
1126
1127         PR target/28803
1128         * optabs.h (enum optab_index): Remove OTI_lrint.
1129         (enum convert_optab_index): Add COI_lrint.
1130         (lrint_optab): Adjust.
1131         (expand_sfix_optab): Declare.
1132         * optabs.c (expand_sfix_optab): New function.
1133         (init_optabs): Init lrint_optab as conversion optab.
1134         * genopinit.c (lrint_optab): Change to a conversion optab.
1135         * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
1136         expansion via conversion optab.
1137         * config/i386/i386.md (*fistdi2_1): Remove
1138         flag_unsafe_math_optimizations guard.
1139         (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
1140         fist<mode>2_with_temp): Likewise.
1141         (lrint<mode>2): Split into...
1142         (lrintxf<mode>2): ... x87 part
1143         (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
1144         * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
1145         sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
1146         UNSPEC_FIX_NOTRUNC matching non-vector float modes.
1147         * doc/md.texi (lrintMN2): Document.
1148
1149 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
1150
1151         PR target/28909
1152         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
1153         Use inc and dec instructions for TARGET_USE_INCDEC.
1154         ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
1155         ("sync_double_compare_and_swap<mode>"): Likewise.
1156         ("*sync_double_compare_and_swapdi_pic"): Likewise.
1157         ("*sync_compare_and_swap_cc<mode>"): Likewise.
1158         ("sync_double_compare_and_swap_cc<mode>"): Likewise.
1159         ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
1160         ("sync_old_add<mode>"): Likewise.
1161         ("sync_lock_test_and_set<mode>"): Likewise.
1162         ("sync_lock_test_and_set<mode>"): Likewise.
1163         ("sync_add<mode>"): Likewise.
1164         ("sync_sub<mode>"): Likewise.
1165         ("sync_ior<mode>"): Likewise.
1166         ("sync_and<mode>"): Likewise.
1167         ("sync_xor<mode>"): Likewise.
1168
1169 2006-10-25  Uros Bizjak  <uros@kss-loka.si>
1170
1171         * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
1172         (remainder_optab): Define corresponding macro.
1173         (drem_optab): Remove.
1174         * optabs.c (init_optabs): Initialize remainder_optab.  Remove
1175         drem_optab initialization.
1176         * genopinit.c (optabs): Implement remainder_optab using
1177         remainder?f3 patterns.  Remove drem_optab.
1178         * builtins.c (expand_builtin_mathfn_2): Handle
1179         BUILT_IN_REMAINDER{,F,L} using remainder_optab.
1180         (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
1181         expand_builtin_mathfn_2.
1182
1183         (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
1184         depend on flag_unsafe_math_optimizations.
1185
1186         * config/i386/i386.md ("remaindersf3", "remainderdf3")
1187         ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
1188         Do not depend on flag_unsafe_math_optimizations.  Use
1189         truncxf?f expander instead of truncxf?f_i387_noop.
1190
1191         ("fpremxf4", "fprem1xf4"): Do not depend on
1192         flag_unsafe_math_optimizations.
1193         ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
1194         flag_unsafe_math_optimizations.  Use truncxf?f expander
1195         instead of truncxf?f_i387_noop.
1196
1197         * doc/md.texi (fmod, remainder): Document standard named pattern.
1198
1199 2006-10-24  Richard Sandiford  <richard@codesourcery.com>
1200             David Daney  <ddaney@avtrex.com>
1201
1202         PR middle-end/29519
1203         * rtlanal.c (nonzero_address_p):  Remove check for values wrapping.
1204
1205 2006-10-25  Ben Elliston  <bje@au.ibm.com>
1206
1207         * doc/extend.texi (Variable Attributes): Typo fix.
1208
1209 2006-10-24  Uros Bizjak  <uros@kss-loka.si>
1210
1211         * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
1212         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
1213         (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
1214         (FRAME_POINTER_REGNUM): Update register number to 21.
1215         (REG_CLASS_CONTENTS): Update contents for added fpcr register.
1216         (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
1217
1218         * config/i386/i386.c (regclass_map): Add fpcr entry.
1219         (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
1220         Add fpcr entry.
1221         (print_reg): Assert REGNO (x) != FPCR_REG.
1222
1223         * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
1224         (DIRFLAG_REG): Renumber.
1225         (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
1226         (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
1227         (sse_prologue_save, *sse_prologue_save_insn): Renumber
1228         hardcoded SSE register numbers.
1229
1230         * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
1231         hardcoded MMX register numbers.
1232
1233 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1234
1235         PR middle-end/29335
1236         * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
1237         (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
1238         Update all callers.
1239         (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
1240         (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
1241         BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
1242         BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
1243
1244 2006-10-24  Richard Guenther  <rguenther@suse.de>
1245
1246         PR middle-end/28796
1247         * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
1248         and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
1249         for deciding optimizations in consistency with fold-const.c
1250         (fold_builtin_unordered_cmp): Likewise.
1251
1252 2006-10-24  Richard Guenther  <rguenther@suse.de>
1253
1254         * builtins.c (fold_builtin_floor): Fold floor (x) where
1255         x is nonnegative to trunc (x).
1256         (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
1257         nonnegative to FIX_TRUNC_EXPR.
1258
1259 2006-10-24  Richard Guenther  <rguenther@suse.de>
1260
1261         PR tree-optimization/29567
1262         * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
1263         for TRUTH_NOT_EXPR.  Clarify comments.
1264
1265 2006-10-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1266
1267         PR middle-end/29335
1268         * builtins.c (fold_builtin_exponent): Evaluate constant arguments
1269         at compile-time using MPFR.  Change parameter VALUE to FUNC,
1270         update all callers.
1271         (do_mpfr_arg1): Rename `exact' to `inexact'.  Carefully check
1272         for overflow and underflow at all times and avoid folding in
1273         those cases.
1274
1275 2006-10-24  Ben Elliston  <bje@au.ibm.com>
1276
1277         * reload1.c: Formatting fixes.
1278
1279 2006-10-23  Zdenek Dvorak <dvorakz@suse.cz>
1280
1281         PR tree-optimization/14784
1282         * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
1283         * tree-ssa-structalias.c (get_constraint_for,
1284         intra_create_variable_infos): Set is_heapvar.
1285         * tree-ssa-operands.c (access_can_touch_variable): Do not handle
1286         non-heapvar pointer variables specially.
1287
1288 2006-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1289
1290         PR middle-end/29335
1291         * builtins.c (fold_builtin_sin, fold_builtin_cos,
1292         fold_builtin_tan): Fold all constant arguments.  Take a "type"
1293         argument as necessary.
1294         (do_mpfr_arg1): New.
1295         * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
1296
1297 2006-10-23  Bob Wilson  <bob.wilson@acm.org>
1298
1299         * config/xtensa/lib1funcs.asm: Use C-style comments.
1300
1301 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
1302
1303         * tree.c (local_define_builtin): Replace calls to
1304         lang_hooks.builtin_function with add_builtin_function.
1305         * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
1306         c_builtin_function.
1307         * c-tree.h (builtin_function): Rename to c_builtin_function. Change
1308         the signature.
1309         * c-decl.c (builtin_function): Rename to c_builtin_function. Move
1310         common code to add_builtin_function.
1311         * langhooks.c (add_builtin_function): New function.
1312         (lhd_builtin_function): New function.
1313         * langhooks.h (struct lang_hooks): Change the signature of
1314         builtin_function.
1315         (add_builtin_function): New function.
1316         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
1317         calls to lang_hooks.builtin_function with add_builtin_function.
1318         * c-common.c (decl_builtin_1): Replace calls to
1319         lang_hooks.builtin_function with add_builtin_function.
1320         * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
1321         lang_hooks.builtin_function with add_builtin_function.
1322         * config/frv/frv.c (def_builtin): Replace calls to
1323         lang_hooks.builtin_function with add_builtin_function.
1324         * config/s390/s390.c (s390_init_builtins): Replace calls to
1325         lang_hooks.builtin_function with add_builtin_function.
1326         * config/sparc/sparc.c (def_builtin): Replace calls to
1327         lang_hooks.builtin_function with add_builtin_function.
1328         * config/i386/i386.c (def_builtin): Replace calls to
1329         lang_hooks.builtin_function with add_builtin_function.
1330         * config/sh/sh.c (sh_media_init_builtins): Replace calls to
1331         lang_hooks.builtin_function with add_builtin_function.
1332         * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
1333         lang_hooks.builtin_function with add_builtin_function.
1334         * config/stormy16/stormy16.c (xstormy16_init_builtins):
1335         Replace calls to lang_hooks.builtin_function with
1336         add_builtin_function.
1337         * config/iq2000/iq2000.c (def_builtin):
1338         Replace calls to lang_hooks.builtin_function with
1339         add_builtin_function.
1340         * config/ia64/ia64.c (def_builtin): Replace calls to
1341         lang_hooks.builtin_function with add_builtin_function.
1342         * config/rs6000/rs6000.c (def_builtin): Replace calls to
1343         lang_hooks.builtin_function with add_builtin_function.
1344         (altivec_init_builtins): Replace calls to
1345         lang_hooks.builtin_function with add_builtin_function.
1346         * config/arm/arm.c (def_mbuiltin): Replace calls to
1347         lang_hooks.builtin_function with add_builtin_function.
1348         (arm_init_tls_builtins): Replace calls to
1349         lang_hooks.builtin_function with add_builtin_function.
1350         * config/mips/mips.c (mips_init_builtins): Replace calls to
1351         lang_hooks.builtin_function with add_builtin_function.
1352         * config/bfin/bfin.c (def_builtin): Replace calls to
1353         lang_hooks.builtin_function with add_builtin_function.
1354         * langhooks-def.h (lhd_builtin_function): New function.
1355         (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
1356
1357 2006-10-23  Jakub Jelinek  <jakub@redhat.com>
1358
1359         * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
1360         BUILT_IN_STRNCAT_CHK.
1361
1362 2006-10-23  Jan Hubicka  <jh@suse.cz>
1363
1364         * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
1365         don't do conversion from memmove to memcpy here.
1366         (expand_builtin_bcopy, expand_builtin): Update call of
1367         expand_builtin_memmove.
1368         (fold_builtin_memory_op): Do folding of memmove to memcpy here.
1369
1370 2006-10-23  Paul Brook  <paul@codesourcery.com>
1371
1372         * stor-layout.c (start_record_layout): maximum_field_alignment
1373         overrides STRUCTURE_SIZE_BOUNDARY.
1374
1375 2006-10-23  Ulrich Weigand  <uweigand@de.ibm.com>
1376
1377         * config/s390/predicates.md ("bras_sym_operand"): Do not accept
1378         nonlocal function symbols if flag_pic.
1379
1380 2006-10-23  Richard Guenther  <rguenther@suse.de>
1381
1382         PR middle-end/27132
1383         PR middle-end/23295
1384         * builtins.c (fold_binary): Remove checks for flag_wrapv
1385         and flag_trapv where negate_expr_p covers these cases.
1386
1387 2006-10-23  Richard Guenther  <rguenther@suse.de>
1388
1389         PR middle-end/29548
1390         * fold-const.c (fold_plusminus_mult_expr): Check exact power
1391         of two on the absolute value.
1392         (fold_binary): Fold x * -C to -x * C if x is easily negatable
1393         and negating -C does not overflow.
1394
1395 2006-10-23  Richard Guenther  <rguenther@suse.de>
1396
1397         PR middle-end/21032
1398         * convert.c (convert_to_real): Fold (float)-x to -(float)x
1399         only if not flag_rounding_math.
1400
1401 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
1402             Kaz Kojima  <kkojima@gcc.gnu.org>
1403
1404         PR target/28232
1405         * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
1406         SImode memory reference for the source of a movua.
1407         * config/sh/sh.md (UNSPEC_MOVUA): New macro.
1408         (movua): Use an unspec instead of sign_extract.  Expect the source
1409         to have mode BLKmode.
1410         (extv, insv): Use a BLKmode rather than SImode memory reference
1411         for the source of a movua.
1412
1413 2006-10-22  Jeff Law  <law@redhat.com>
1414         Richard Guenther  <rguenther@suse.de>
1415
1416         PR tree-optimization/15911
1417         * tree-vrp.c (extract_code_and_val_from_cond): New function.
1418         (register_edge_assert_for_1): Likewise.
1419         (register_edge_assert_for): Handle &&/&/||/| in conditionals.
1420         (find_conditional_asserts): Adjust for new function signature.
1421         (find_assert_locations): Likewise.
1422
1423 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
1424
1425         * config/i386/tmmintrin.h: Remove the duplicated content.
1426
1427 2006-10-22  H.J. Lu  <hongjiu.lu@intel.com>
1428
1429         * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
1430         (x86_64-*-*): Likewise.
1431
1432         * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
1433         (override_options): Check SSSE3.
1434         (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
1435         IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
1436         IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
1437         IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
1438         IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
1439         IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
1440         IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
1441         IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
1442         IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
1443         IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
1444         IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
1445         IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
1446         IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
1447         IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
1448         IX86_BUILTIN_PABSD128.
1449         (bdesc_2arg): Add SSSE3.
1450         (bdesc_1arg): Likewise.
1451         (ix86_init_mmx_sse_builtins): Support SSSE3.
1452         (ix86_expand_builtin): Likewise.
1453         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
1454
1455         * config/i386/i386.md (UNSPEC_PSHUFB): New.
1456         (UNSPEC_PSIGN): Likewise.
1457         (UNSPEC_PALIGNR): Likewise.
1458         Include mmx.md before sse.md.
1459
1460         * config/i386/i386.opt: Add -mssse3.
1461
1462         * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
1463         (ssse3_phaddwv4hi3): Likewise.
1464         (ssse3_phadddv4si3): Likewise.
1465         (ssse3_phadddv2si3): Likewise.
1466         (ssse3_phaddswv8hi3): Likewise.
1467         (ssse3_phaddswv4hi3): Likewise.
1468         (ssse3_phsubwv8hi3): Likewise.
1469         (ssse3_phsubwv4hi3): Likewise.
1470         (ssse3_phsubdv4si3): Likewise.
1471         (ssse3_phsubdv2si3): Likewise.
1472         (ssse3_phsubswv8hi3): Likewise.
1473         (ssse3_phsubswv4hi3): Likewise.
1474         (ssse3_pmaddubswv8hi3): Likewise.
1475         (ssse3_pmaddubswv4hi3): Likewise.
1476         (ssse3_pmulhrswv8hi3): Likewise.
1477         (ssse3_pmulhrswv4hi3): Likewise.
1478         (ssse3_pshufbv16qi3): Likewise.
1479         (ssse3_pshufbv8qi3): Likewise.
1480         (ssse3_psign<mode>3): Likewise.
1481         (ssse3_psign<mode>3): Likewise.
1482         (ssse3_palignrti): Likewise.
1483         (ssse3_palignrdi): Likewise.
1484         (abs<mode>2): Likewise.
1485         (abs<mode>2): Likewise.
1486
1487         * config/i386/tmmintrin.h: New file.
1488
1489         * doc/extend.texi: Document SSSE3 built-in functions.
1490
1491         * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
1492
1493 2006-10-22  Ira Rosen  <irar@il.ibm.com>
1494
1495         * tree-vect-transform.c (vectorizable_load): Use the type of the
1496         return value of the mask_for_load builtin to create realign_load
1497         stmt.
1498
1499 2006-10-22  Richard Sandiford  <richard@codesourcery.com>
1500
1501         * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
1502         expressions.
1503
1504 2006-10-21  H.J. Lu  <hongjiu.lu@intel.com>
1505
1506         * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
1507         (UNSPEC_LDDQU): This.
1508         * config/i386/sse.md (sse3_lddqu): Updated.
1509
1510 2006-10-21  Richard Guenther  <rguenther@suse.de>
1511
1512         * builtins.c (expand_builtin_int_roundingfn_2): New function.
1513         (expand_builtin): Use it to expand lrint instead of
1514         expand_builtin_mathfn.
1515
1516 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
1517
1518         PR middle-end/28252
1519         * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
1520         flag_unsafe_math_optimizations is set.
1521
1522 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
1523
1524         PR target/19398
1525         * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
1526         patterns to use memory input operand in x87->mem->XMM
1527         reload sequences.  Skip transformation for TARGET_K8.
1528
1529 2006-10-21  Uros Bizjak  <uros@kss-loka.si>
1530
1531         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
1532         force operand1 to register if both operands are memory operands.
1533         (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
1534         (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
1535         if both operands are memory operands.
1536         (truncdfsf2): Do not force operand1 to register if both operands
1537         are memory operands.
1538
1539 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1540
1541         * Makefile.in (LIBS): Add $(GMPLIBS).
1542         * doc/install.texi: Update GMP and MPFR requirements.
1543         * doc/sourcebuild.texi (need_gmp): Delete.
1544
1545 2006-10-21  Richard Guenther  <rguenther@suse.de>
1546
1547         PR tree-optimization/3511
1548         * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
1549         got new invariant arguments during PHI translation.
1550
1551 2006-10-21  Richard Guenther  <rguenther@suse.de>
1552
1553         PR middle-end/26898
1554         * fold-const.c (fold_comparison): Fold signed comparisons
1555         of the form X +- C1 CMP Y +- C2.
1556
1557 2006-10-21  Richard Guenther  <rguenther@suse.de>
1558
1559         PR target/19116
1560         * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
1561         if flag_unsafe_math_optimizations is specified.  We have
1562         flag_finite_math_only for that.
1563         * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
1564         or flag_unsafe_math_optimizations.
1565
1566 2006-10-21  Richard Guenther  <rguenther@suse.de>
1567
1568         * builtins.c (fold_builtin_classify): Fix typo.
1569
1570 2006-10-21  Richard Guenther  <rguenther@suse.de>
1571
1572         PR middle-end/28796
1573         * simplify-rtx.c (simplify_const_relational_operation):
1574         Do not constant-fold ORDERED and UNORDERED for
1575         flag_unsafe_math_optimizations but only we do not need to
1576         honor NaNs for the given mode.
1577
1578 2006-10-21  Richard Guenther  <rguenther@suse.de>
1579
1580         PR target/29512
1581         * config/i386/i386.c (classify_argument): Remove redundant
1582         walking of the BINFOs.
1583         (contains_128bit_aligned_vector_p): Likewise.
1584
1585 2006-10-20  Mark Mitchell  <mark@codesourcery.com>
1586
1587         * BASE-VER: Set to 4.3.0.
1588
1589 2006-10-20  Daniel Berlin  <dberlin@dberlin.org>
1590
1591         * tree.h (DECL_PTA_ARTIFICIAL): Remove.
1592         (tree_decl_with_vis): Remove artificial_pta_var flag.
1593         * tree-flow.h (referenced_var_check_and_insert): Expose.
1594         (nonlocal_all): New prototype.
1595         * tree-ssa-structalias.c (nonlocal_for_type): Remove.
1596         (nonlocal_all): Make global.
1597         (nonlocal_lookup): Remove.
1598         (nonlocal_insert): Ditto.
1599         (create_nonlocal_var): Do not call nonlocal_insert.
1600         (get_nonlocal_id_for_type): Remove.
1601         (find_global_initializers): Mark new vars we find for renaming.
1602         (intra_create_variable_infos): Only create one nonlocal.
1603         (expand_nonlocal_solutions): Remove.
1604         (compute_points_to_sets): Don't call it.
1605         (ipa_pta_execute): Ditto.
1606         (init_alias_heapvars): Don't create nonlocal_for_type.
1607         (delete_alias_heapvars): Don't remove it.
1608         * tree-ssa-operands.c (access_can_touch_variable): Don't prune
1609         nonlocal_all.
1610
1611 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
1612
1613         * doc/install.texi (Downloading GCC): Clarify mention of
1614         Fortran in the "full distribution" description.
1615
1616 2006-10-19  Daniel Berlin  <dberlin@dberlin.org>
1617
1618         Fix PR tree-optimization/28778
1619         Fix PR tree-optimization/29156
1620         Fix PR tree-optimization/29415
1621         * tree.h (DECL_PTA_ARTIFICIAL): New macro.
1622         (tree_decl_with_vis): Add artificial_pta_var flag.
1623         * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
1624         pushed into callers.
1625         * tree-ssa-structalias.c (nonlocal_for_type): New variable.
1626         (nonlocal_all): Ditto.
1627         (struct variable_info): Add directly_dereferenced member.
1628         (var_escaped_vars): New variable.
1629         (escaped_vars_tree): Ditto.
1630         (escaped_vars_id): Ditto.
1631         (nonlocal_vars_id): Ditto.
1632         (new_var_info): Set directly_dereferenced.
1633         (graph_size): New variable
1634         (build_constraint_graph): Use graph_size.
1635         (solve_graph): Don't process constraints that cannot change the
1636         solution, don't try to propagate an empty solution to our
1637         successors.
1638         (process_constraint): Set directly_dereferenced.
1639         (could_have_pointers): New function.
1640         (get_constraint_for_component_ref): Don't process STRING_CST.
1641         (nonlocal_lookup): New function.
1642         (nonlocal_insert): Ditto.
1643         (create_nonlocal_var): Ditto.
1644         (get_nonlocal_id_for_type): Ditto.
1645         (get_constraint_for): Allow results vector to be empty in the case
1646         of string constants.
1647         Handle results of calls properly.
1648         (update_alias_info): Update alias info stats on number and type of
1649         calls.
1650         (find_func_aliases): Use could_have_pointers.
1651         (make_constraint_from_escaped): Renamed from
1652         make_constraint_to_anything, and changed to make constraints from
1653         escape variable.
1654         (make_constraint_to_escaped): New function.
1655         (find_global_initializers): Ditto.
1656         (create_variable_info_for): Make constraint from escaped to any
1657         global variable, and from any global variable to the set of
1658         escaped vars.
1659         (intra_create_variable_infos): Deal with escaped instead of
1660         pointing to anything.
1661         (set_uids_in_ptset): Do type pruning on directly dereferenced
1662         variables.
1663         (find_what_p_points_to): Adjust call to set_uids_with_ptset.
1664         (init_base_vars): Fix comment, and initialize escaped_vars.
1665         (need_to_solve): Removed.
1666         (find_escape_constraints): New function.
1667         (expand_nonlocal_solutions): Ditto.
1668         (compute_points_to_sets): Call find_escape_constraints and
1669         expand_nonlocal_solutions.
1670         (delete_points_to_sets): Don't fall off the end of the graph.
1671         (init_alias_heapvars): Initialize nonlocal_for_type and
1672         nonlocal_all.
1673         (delete_alias_heapvars): Free nonlocal_for_type and null out
1674         nonlocal_all.
1675
1676 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
1677
1678         * fold-const.c (add_double): Rename to add_double_with_sign.
1679         Add 'unsigned_p' parameter and take it into account for the overflow.
1680         (mul_double): Rename to mul_double_with_sign.
1681         Add 'unsigned_p' parameter and take it into account for the overflow.
1682         (fold_div_compare): Call add_double_with_sign instead of add_double
1683         and mul_double_with_sign instead of mul_double, passing them the
1684         unsignedness of the type.
1685         * tree.h (add_double): Macroize.
1686         (add_double_with_sign): New prototype.
1687         (mul_double): Macroize.
1688         (mul_double_with_sign): New prototype.
1689
1690 2006-10-19  Chen Liqin  <liqin@sunnorth.com.cn>
1691
1692         * config/score/crti.asm: New file.
1693         * config/score/crtn.asm: New file.
1694         * config/score/elf.h: New file.
1695         * config/score/mac.md: New file.
1696         * config/score/misc.md: New file.
1697         * config/score/mul-div.S: New file.
1698         * config/score/predicates.md: New file.
1699         * config/score/score7.md: New file.
1700         * config/score/score.c: New file.
1701         * config/score/score-conv.h: New file.
1702         * config/score/score.h: New file.
1703         * config/score/score.md: New file.
1704         * config/score/score-mdaux.c: New file.
1705         * config/score/score-mdaux.h: New file.
1706         * config/score/score-modes.def: New file.
1707         * config/score/score.opt: New file.
1708         * config/score/score-protos.h: New file.
1709         * config/score/score-version.h: New file.
1710         * config/score/t-score-elf: New file.
1711         * config.gcc: Add score*-*-* configurations(Update before).
1712         * doc/invoke.texi (Score Options): New section.
1713         * doc/md.texi (Score family): New section to document constraints.
1714
1715 2006-10-19  Nick Clifton  <nickc@redhat.com>
1716
1717         * config/arm/arm.c: Fix spelling typo.
1718
1719 2006-10-18  Tom Tromey  <tromey@redhat.com>
1720
1721         * doc/install.texi (Prerequisites): Mention automake 1.9.6.
1722
1723 2006-10-18  Jan Hubicka  <jh@suse.cz>
1724
1725         PR middle-end/29299
1726         * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user
1727         are used.
1728
1729 2006-10-18  Marcin Dalecki  <martin@dalecki.de>
1730
1731         * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of
1732         TSI_SAME_STMT, since that's the desired entity.
1733
1734 2006-10-17  Wolfgang Gellerich  <gellerich@de.ibm.com>
1735
1736         * config/s390/contraints.md: New file.
1737         * config/s390/s390-protos.h (s390_mem_constraint,
1738         s390_O_constraint_str, s390_N_constraint_str,
1739         s390_float_const_zero_p): Function prototypes added.
1740         * config/s390/s390.c (s390_extra_constraint_str,
1741         s390_const_double_ok_for_constraint_p,
1742         s390_const_ok_for_constraint_p): Functions removed.
1743         (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str,
1744         s390_float_const_zero_p): New functions.
1745         * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P,
1746         CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR,
1747         EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN):
1748         Macro definitions removed.
1749         (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p,
1750         s390_extra_constraint_str): Functions removed.
1751
1752 2006-10-17  Andrew Pinsiki  <pinskia@gmail.com>
1753             Richard Sandiford  <richard@codesourcery.com>
1754
1755         PR target/29413
1756         * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override.
1757         * config/mips/mips.h (CC1_SPEC): Override any earlier definition.
1758
1759 2006-10-16  Geoffrey Keating  <geoffk@apple.com>
1760
1761         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h.
1762         (DWARF2_FRAME_REG_OUT): Likewise.
1763         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h.
1764         (DWARF2_FRAME_REG_OUT): Likewise.
1765
1766 2006-10-17  Paul Brook  <paul@codesourcery.com>
1767
1768         * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate.
1769
1770 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
1771
1772         * doc/contrib.texi, doc/install.texi, doc/standards.texi:
1773         Standardize on "GNU Fortran" as the official name of the Fortran
1774         compiler.
1775
1776 2006-10-16  Mike Stump  <mrs@apple.com>
1777
1778         * doc/invoke.texi (Darwin Options): Document -mkernel.
1779         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add
1780         -mkernel support.
1781         (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support.  Add
1782         SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout.
1783         (CC1_SPEC): Don't turn on -fPIC when -mkernel is given.
1784         (OS_MISSING_ALTIVEC): Add.
1785         * config/i386/i386.c (override_options): Add
1786         SUBSUBTARGET_OVERRIDE_OPTIONS callout.
1787         * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when
1788         -mkernel, -static or -mdynamic-no-pic is given.
1789         (C_COMMON_OVERRIDE_OPTIONS): Add.
1790         * config/darwin.opt (fapple-kext): Add.
1791         (mkernel): Add.
1792         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add
1793         -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and
1794         -mkernel support.
1795         (SUBSUBTARGET_OVERRIDE_OPTIONS): Add.
1796         (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add.
1797         (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here...
1798         (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility.
1799         (TARGET_CXX_CDTOR_RETURNS_THIS): Add.
1800         (flag_mkernel): Add.
1801         (flag_apple_kext): Add.
1802         (TARGET_KEXTABI): Add.
1803         * config/darwin.c (darwin_handle_kext_attribute): Add.
1804         (DARWIN_VTABLE_P): Add.
1805         (darwin_binds_local_p): Add partial support for rebinding vtables
1806         in kexts.
1807         (darwin_kextabi_p): Add.
1808         (darwin_override_options): Add.
1809         * config/darwin-protos.h (darwin_handle_kext_attribute): Add.
1810         (darwin_kextabi_p): Add.
1811         (darwin_override_options): Add.
1812         * config/darwin-c.c (darwin_cpp_builtins): ... move defines for
1813         __DYNAMIC__ and __STATIC__ here.
1814
1815 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
1816
1817         * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi:
1818         Added mention of "make pdf" target, and Texinfo requirements for
1819         same.
1820
1821 2006-10-16  DJ Delorie  <dj@redhat.com>
1822
1823         * config/s390/s390.c (s390_decompose_address): Allow symbol+offset
1824         into the GOT in case we need a subreg of the address.
1825
1826 2006-10-16  Richard Guenther  <rguenther@suse.de>
1827
1828         PR target/25519
1829         * doc/extend.texi (X86 Built-in Functions): Fix typos in
1830         SSE builtin documentation.  Document SSE2 builtins.
1831
1832 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1833
1834         * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined
1835         symbol in the output file for non-shared links when -nostdlib or
1836         -nodefaultlibs isn't specified.
1837
1838         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
1839         posix thread support.
1840
1841 2006-10-15  Jan Hubicka  <jh@suse.cz>
1842
1843         PR middle-end/29241
1844         * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions
1845         declared always_inline even when not inlining.
1846
1847 2006-10-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1848             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1849             Andrew Pinski  <pinskia@gmail.com>
1850
1851         PR middle-end/29111
1852         * builtins.c (get_pointer_alignment): Return 0 if TER is not run.
1853
1854 2006-10-15  Jan Hubicka  <jh@suse.cz>
1855             Richard Guenther  <rguenther@suse.de>
1856
1857         PR middle-end/29299
1858         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
1859         process_function_and_variable_attributes on all variables, including
1860         those discovered during cgraph construction phase.
1861
1862 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
1863
1864         * final.c: Update Copyright year. Commentary typo fix. Fix whitespace
1865
1866 2006-10-14  Uros Bizjak  <uros@kss-loka.si>
1867
1868         * config/i386/athlon.md (athlon_fist): Add fisttp.
1869
1870 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
1871             Ian Lance Taylor  <ian@airs.com>
1872
1873         PR middle-end/29250
1874         * expr.c (expand_expr_real_1) <NON_LVALUE_EXPR, NOP_EXPR,
1875         CONVERT_EXPR>: Change EXPAND_SUM modifier to EXPAND_NORMAL when
1876         recursing.
1877
1878 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
1879
1880         * config/score/score.c, config/score/score.h: Fix comment
1881         typos.
1882
1883 2006-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1884
1885         PR bootstrap/29402
1886         * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of
1887         shell pipeline.
1888
1889 2006-10-13  Eric Christopher  <echristo@apple.com>
1890
1891         * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1892
1893 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1894
1895         Revert this change:
1896         2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1897         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1898         alignment supported by 32-bit ELF.
1899
1900 2006-10-13  Eric Christopher  <echristo@apple.com>
1901
1902         * config/darwin.c (darwin_emit_unwind_label): Strip
1903         name encoding. Use DECL_ASSEMBLER_NAME_SET_P.
1904
1905 2006-10-13  Richard Guenther  <rguenther@suse.de>
1906
1907         PR tree-optimization/29446
1908         * tree-vrp.c (fix_equivalence_set): Remove.
1909         (extract_range_from_assert): Do not call fix_equivalence_set.
1910         (debug_value_range): Print a newline.
1911         (compare_name_with_value): For equivalence sets with
1912         inconsistent value ranges conservatively bail out.
1913         (compare_names): Likewise.
1914
1915 2006-10-13  David Edelsohn  <edelsohn@gnu.org>
1916
1917         * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP
1918         and MPFR for gfortran.
1919
1920 2006-10-13  Carlos O'Donell  <carlos@codesourcery.com>
1921
1922         * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest
1923         alignment supported by 32-bit ELF.
1924
1925 2006-10-13  Paolo Bonzini  <bonzini@gnu.org>
1926
1927         PR c/29092
1928
1929         * c-typeck.c (digest_init): Always allow initializing vectors
1930         that have static storage duration with compound literals.
1931         * tree.c (build_type_attribute_qual_variant): New, based on
1932         build_type_attribute_variant.
1933         (build_type_attribute_variant): Rewrite using the former.
1934         (make_vector_type): Use build_type_attribute_qual_variant to build
1935         type variants.  Use type_hash_canon on the others.
1936
1937 2006-10-13  Daniel Berlin <dberlin@dberlin.org>
1938             Ramana Radhakrishnan  <ramana.radhakrishnan@celunite.com>
1939
1940         * tree-flow-inline.h (zero_ssa_operands): Fix comment.
1941
1942 2006-10-12  Jan Hubicka  <jh@suse.cz>
1943
1944         PR c/28419
1945         * c-decl.c (c_make_fname_decl): Do not segfault in case where
1946         current_function_decl is set but current_function_scope is not.
1947
1948 2006-10-12  Jie Zhang  <jie.zhang@analog.com>
1949
1950         * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of
1951         emit_insn to emit eh_return_internal instruction.
1952         (eh_return_internal): Explicitly set pc.
1953
1954 2006-10-11  Richard Guenther  <rguenther@suse.de>
1955
1956         PR tree-optimization/28230
1957         * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling
1958         to the correct place.
1959
1960 2006-10-11  Richard Guenther  <rguenther@suse.de>
1961
1962         PR inline-asm/29119
1963         * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue
1964         addressable.
1965
1966 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
1967
1968         * configure.ac: Added pdf to "Make-hooks"
1969         * Makefile.in: Added TEXI2PDF definition, and various pdf-file
1970         targets and *.pdf file patterns in cleanup targets.
1971         * configure: Regenerated.
1972
1973 2006-10-10  Anatoly Sokolov <aesok@post.ru>
1974
1975         * config/avr/predicates.md: New file.
1976         * config/avr/avr.md: Include it.
1977         (REG_SP): New constant.
1978         (peepholes): Use predicates.
1979         (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch,
1980         difficult_branch,  difficult_rvbranch, cbi, sbi, sbix_branch,
1981         sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto.
1982
1983 2006-10-10  Adam Nemet  <anemet@caviumnetworks.com>
1984
1985         * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to
1986         avoid alias set 0.
1987
1988 2006-10-10  Jakub Jelinek  <jakub@redhat.com>
1989
1990         PR middle-end/29272
1991         * builtins.c (var_decl_component_p): New function.
1992         (fold_builtin_memset, fold_builtin_memory_op): Restrict
1993         single entry optimization to variables and components thereof.
1994
1995 2006-10-10  Richard Guenther  <rguenther@suse.de>
1996
1997         PR rtl-optimization/29323
1998         * except.c (set_nothrow_function_flags): For functions
1999         that do not bind local bail out early.
2000
2001 2006-10-10  Ben Elliston  <bje@au.ibm.com>
2002
2003         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the
2004         -mdlmzb option.
2005
2006 2006-10-09  Richard Henderson  <rth@redhat.com>
2007
2008         Revert emutls patch.
2009
2010 2006-10-09  Richard Guenther  <rguenther@suse.de>
2011
2012         PR middle-end/29254
2013         * cgraphunit.c (verify_cgraph_node): Bail out on earlier
2014         errors.
2015
2016 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
2017
2018         PR target/27880
2019         * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo.
2020         * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo.
2021         * configure: Regenerate.
2022         * config.in: Regenerate.
2023
2024 2006-10-09  Aldy Hernandez  <aldyh@redhat.com>
2025
2026         * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE.
2027
2028 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2029
2030         * config/mips/mips.c (mips_legitimize_tls_address): Implement
2031         all TLS models in the same way as local exec if !TARGET_ABICALLS.
2032         Remove stray newline.
2033
2034 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2035
2036         * config/mips/mips.c (mips_classify_symbol): Do not return
2037         SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK.
2038         (mips_in_small_data_p): Tweak comments.
2039
2040 2006-10-08  Richard Sandiford  <richard@codesourcery.com>
2041
2042         * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define.
2043
2044 2006-10-07  Kazu Hirata  <kazu@codesourcery.com>
2045
2046         * gimplify.c, sched-int.h: Fix comment typos.
2047
2048         * sched-int.h: Fix comment typos.
2049
2050 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2051
2052         * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P):
2053         New macros.
2054         * sched-ebb.c (begin_schedule_ready): Use them.
2055         * haifa-sched.c (schedule_insn, move_insn, try_ready,
2056         add_to_speculative_block, create_check_block_twin, speculate_insn,
2057         fix_jump_move, move_block_after_check): Ditto.
2058         * sched-rgn.c (new_ready): Ditto.
2059
2060 2006-10-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2061
2062         PR rtl-optimization/29128
2063         * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro.
2064         * sched-ebb.c (advance_target_bb): Use it to fix condition to
2065         allow interblock movement of speculation checks.
2066
2067 2006-10-06  Zdenek Dvorak <dvorakz@suse.cz>
2068
2069         PR middle-end/29256
2070         * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers
2071         casted to integer type.
2072         (get_address_cost): Decrease cost of [symbol + index] addressing modes
2073         if they are significantly more expensive than [reg + index] ones.
2074
2075 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
2076
2077         PR tree-optimization/29330
2078         * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro.
2079         (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer
2080         on newly allocated ddrs.
2081         (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer
2082         to VEC (loop_p, heap) pointer.
2083         (compute_data_dependences_for_loop): Adjust caller.
2084         (free_dependence_relations): Free DDR_LOOP_NEST.
2085
2086         * tree-loop-linear.c (linear_transform_loops): Don't forget to
2087         free DEPENDENCE_RELATIONS and DATAREFS.
2088
2089         PR target/28924
2090         * builtins.c (expand_builtin_sync_operation,
2091         expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set):
2092         Use convert_to_mode to handle promoted arguments.
2093
2094 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
2095
2096         * print-tree.c (print_node_brief, print_node): Print sign of Inf.
2097
2098 2006-10-06  J"orn Rennecke  <joern.rennecke@st.com>
2099
2100         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define.
2101
2102 2006-10-05  Uros Bizjak  <uros@kss-loka.si>
2103
2104         * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>",
2105         "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"):
2106         Use <modeconstraint> instead of "r" as operand 1 constraint.
2107
2108 2006-10-06  Olivier Hainque  <hainque@adacore.com>
2109
2110         * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
2111         Don't recurse on the pointed-to type.
2112         * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or
2113         DECL context, attach an artificial TYPE_DECL to anonymous pointed-to
2114         types with components of variable size.
2115
2116 2006-10-06  Danny Smith  <dannysmith@users.sourceforge.net>
2117
2118         * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp.
2119
2120 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
2121
2122         PR tree-optimization/29290
2123         * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has
2124         multiple exits.
2125
2126         PR target/29198
2127         * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols.
2128         * config/i386/predicates.md (local_symbolic_operand): Likewise.
2129
2130         PR c/29091
2131         * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than
2132         the number of vector elements fill the rest with zeros.
2133
2134 2006-10-05  Richard Sandiford  <richard@codesourcery.com>
2135
2136         * config/mips/mips.c (mips_pass_by_reference): Do not return false
2137         for EABI if type is NULL.  Use a size check based on GET_MODE_SIZE
2138         instead.
2139
2140 2006-10-05  Bernd Schmidt  <bernd.schmidt@analog.com>
2141
2142         * config/bfin/bfin.md (subsi3): Lose expander, change previously
2143         unnamed pattern into subsi3.  Use correct constraints/predicates.
2144         * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7".
2145         * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New.
2146
2147 2006-10-05  Ira Rosen  <irar@il.ibm.com>
2148
2149         * doc/loop.texi: Add data references analysis description.
2150
2151 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
2152
2153         * doc/gcov.texi: Add formatting to "Invoking gcov" section head.
2154
2155 2006-10-04  Richard Henderson  <rth@redhat.com>
2156             Jakub Jelinek  <jakub@redhat.com>
2157
2158         * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
2159         * builtin-types.def (BT_WORD): Make unsigned.
2160         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
2161         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
2162         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
2163         * c-decl.c (grokdeclarator): Don't error if !have_tls.
2164         * c-parser.c (c_parser_omp_threadprivate): Likewise.
2165         * cgraph.c (decide_is_variable_needed): Look at force_output.
2166         Recurse for emulated tls.
2167         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
2168         checks redundant with decide_is_variable_needed.
2169         (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
2170         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
2171         emulated tls.
2172         * expr.c (emutls_var_address): New.
2173         (expand_expr_real_1): Expand emulated tls.
2174         (expand_expr_addr_expr_1): Likewise.
2175         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
2176         * output.h (emutls_finish): Declare.
2177         * toplev.c (compile_file): Call it.
2178         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
2179         address before wrapping in CONST.
2180         * varasm.c (emutls_htab, emutls_object_type): New.
2181         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
2182         (get_emutls_object_name, get_emutls_object_type): New.
2183         (get_emutls_init_templ_addr, emutls_decl): New.
2184         (emutls_common_1, emutls_finish): New.
2185         (assemble_variable): When emulating tls, swap decls; generate
2186         constructor for the emutls objects.
2187         (do_assemble_alias): When emulating tls, swap decl and target name.
2188         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
2189         for emulated tls.
2190         * emutls.c: New file.
2191         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
2192         tls_object for real tls.
2193
2194 2006-10-04  Zack Weinberg  <zackw@panix.com>
2195
2196         Fix bug in constraint-check generator, reported by Rask Ingemann
2197         Lambertsen:
2198         * genpreds.c (add_constraint): Don't remove anything from the
2199         expression here.
2200         (write_tm_constrs_h): Detect whether "op" argument is used, and
2201         mark it ARG_UNUSED if it isn't.
2202         (write_insn_const_int_ok_for_constraint): Skip the part of the
2203         expression that would test whether "op" (which is not available
2204         here) is a CONST_INT.
2205
2206 2006-10-04  Ryan Mansfield  <rmansfield@qnx.com>
2207
2208         PR c++/28448
2209         * doc/invoke.texi (fdiagnostics-show-option): Fix typos.
2210
2211 2006-10-03  Geoffrey Keating  <geoffk@apple.com>
2212
2213         * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for
2214         current Leopard versions.
2215         * config/rs6000/darwin-libgcc.10.5.ver: Likewise.
2216
2217 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2218
2219         * doc/install.texi: Fix typos.
2220
2221 2006-10-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2222
2223         * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX.
2224         * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX.
2225         * config/sparc/sparc.h (FRAME_ADDR_RTX): Define.
2226
2227 2006-10-02  Jack Howarth  <howarth@bromo.med.uc.edu>
2228
2229         * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first
2230         arg to be struct mach_header_64* instead.
2231
2232 2006-10-02  Jakub Jelinek  <jakub@redhat.com>
2233
2234         PR c/29154
2235         * gimplify.c (gimplify_self_mod_expr): Run inner expression's post
2236         side effects after the outer expression's post side effects.
2237
2238 2006-10-01  Sandra Loosemore  <sandra@codesourcery.com>
2239
2240         * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET):  Fix
2241         comments to reflect actual behavior and relationship between
2242         DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN.
2243
2244         * doc/c-tree.texi (Working with declarations): Fix documentation
2245         of FIELD_DECL likewise.
2246
2247 2006-10-01  Ryan Mansfield  <rmansfield@qnx.com>
2248
2249         PR c/20533
2250         * doc/extend.texi: Add used variable attribute description.
2251
2252 2006-09-30  Joseph S. Myers  <joseph@codesourcery.com>
2253
2254         PR c/24010
2255         * c.opt (Woverride-init): New.
2256         * c-opts.c (c_common_post_options): Default warn_override_init to
2257         extra_warnings.
2258         * c-typeck.c (add_pending_init, output_init_element): Warn for
2259         overriding initializers without side effects.
2260         * doc/invoke.texi (-Woverride-init): Document.
2261         (-Wextra): Update.
2262
2263 2006-09-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
2264
2265         PR rtl-optimization/28096
2266         * ifcvt.c (check_cond_move_block): Return FALSE if the source of an
2267         assignment has already been used as a destination earlier in the block.
2268
2269 2006-09-29  Eric Botcazou  <ebotcazou@adacore.com>
2270
2271         * builtins.c (expand_builtin_setjmp): Delete.
2272         (expand_builtin) <BUILT_IN_SETJMP>: Mark as unreachable.
2273         <BUILT_IN_SETJMP_SETUP>: New case.
2274         <BUILT_IN_SETJMP_DISPATCHER>: Likewise.
2275         <BUILT_IN_SETJMP_RECEIVER>: Likewise.
2276         * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub.
2277         (BUILT_IN_SETJMP_DISPATCHER): Likewise.
2278         (BUILT_IN_SETJMP_RECEIVER): Likewise.
2279         * gimple-low.c (struct lower_data): New field calls_builtin_setjmp.
2280         (lower_function_body): Initialize it to false.  If it is set to true
2281         at the end of the processing, emit the setjmp dispatcher.
2282         (lower_stmt) <CALL_EXPR>: Invoke lower_builtin_setjmp if the callee
2283         is __builtin_setjmp and set calls_builtin_setjmp to true as well.
2284         <MODIFY_EXPR>: Fall through to above case if there is a CALL_EXPR
2285         on the rhs of the assignment.
2286         (lower_builtin_setjmp): New function.
2287         * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP,
2288         BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes.
2289         * tree-cfg.c (make_exit_edges) <CALL_EXPR>: Use specific predicate
2290         to detect calls that can go to non-local labels.  Use specific
2291         helper to create the abnormal edges associated with them.
2292         <MODIFY_EXPR>: Likewise.
2293         (make_abnormal_goto_edges): New function extracted from...
2294         (make_goto_expr_edges): ...here.  Call it for computed gotos.
2295         (simple_goto_p): Minor tweak.
2296         (tree_can_make_abnormal_goto): New predicate.
2297         (tree_redirect_edge_and_branch): Return zero on all abnormal edges.
2298         (tree_purge_dead_abnormal_call_edges): New function.
2299         * tree-flow.h (tree_can_make_abnormal_goto): Declare.
2300         (tree_purge_dead_abnormal_call_edges): Likewise.
2301         (make_abnormal_goto_edges): Likewise.
2302         * tree-inline.c (expand_call_inline): Simplify statement frobbing.
2303         Purge all dead abnormal edges if the call was in the last statement.
2304         * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate.
2305         (execute_fixup_cfg): If there are non-local labels in the function,
2306         scan the basic blocks and split them at calls that can go to non-local
2307         labels or add missing abnormal call edges.  Write down the CFG in the
2308         dump file.
2309         (pass_fixup_cfg): Remove TODO_dump_func flag.
2310         * unwind-sjlj.c: Poison setjmp.
2311         * doc/install.texi (enable-sjlj-exceptions): Use more general wording.
2312         * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise.
2313         (TARGET_UNWIND_TABLES_DEFAULT): Fix typo.
2314         (DONT_USE_BUILTIN_SETJMP): Document it.
2315
2316 2006-09-28  Geoffrey Keating  <geoffk@apple.com>
2317
2318         PR target/28617
2319         * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define
2320         to 1 when __ppc64__ is defined.
2321         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and
2322         darwin-64.c.
2323         * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined.
2324
2325 2006-09-28  Steve Ellcey  <sje@cup.hp.com>
2326
2327         * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c.
2328         * config/ia64/unwind-hpux.c: Delete.
2329
2330 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2331
2332         * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr
2333         on the element before gimplifying it, instead of punting if it is of
2334         variable size.
2335
2336 2006-09-28  Zdenek Dvorak <dvorakz@suse.cz>
2337
2338         * doc/loop.texi: New file.
2339         * doc/gccint.texi: Reference loop.texi.
2340         * Makefile.in (loop.texi): Add.
2341
2342 2006-09-27  Geoffrey Keating  <geoffk@apple.com>
2343
2344         * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not
2345         __sysctl.
2346         * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2347         * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove.
2348
2349 2006-09-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2350
2351         * config/sh/sh.md (divsi_inv_m0): Remove unused variable.
2352
2353 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
2354
2355         * doc/install.texi: Document required versions of GMP and MPFR.
2356
2357 2006-09-27  Paul Brook  <paul@codesourcery.com>
2358
2359         PR target/29230
2360         * config/arm/arm.md (arith_adjacentmem): Handle large offsets.
2361
2362 2006-09-27  Richard Sandiford  <richard@codesourcery.com>
2363
2364         * reload1.c (alter_reg): Require the alignment of the stack slot to
2365         be at least reg_max_ref_width bytes.
2366         (scan_paradoxical_subregs): Record the largest width in
2367         reg_max_ref_width.
2368
2369 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
2370
2371         PR middle-end/25261
2372         PR middle-end/28790
2373         * tree-nested.c (struct nesting_info): Added static_chain_added.
2374         (convert_call_expr): Set static_chain_added when adding static
2375         chain.  Handle OMP_PARALLEL and OMP_SECTION.
2376
2377 2006-09-25  Matthias Klose  <doko@debian.org>
2378
2379         * doc/invoke.texi: Add missing full stop.
2380
2381 2006-09-25  Richard Henderson  <rth@redhat.com>
2382
2383         * cgraph.c (dump_cgraph_varpool_node): Don't crash if called
2384         before cgraph_function_flags_ready.
2385
2386 2006-09-24  Zdenek Dvorak <dvorakz@suse.cz>
2387             Adam Nemet  <anemet@caviumnetworks.com>
2388
2389         * tree-ssa-loop-ivopts.c (aff_combination_convert,
2390         determine_common_wider_type): New functions.
2391         (get_computation_aff): Use them to simplify arithmetic between
2392         UBASE and CBASE if they are shortened from the same type.
2393
2394 2006-09-24  Kazu Hirata  <kazu@codesourcery.com>
2395
2396         PR target/28911
2397         * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use
2398         -2147483647 - 1 instead of 0x80000000.
2399
2400 2006-09-23  Revital1 Eres  <ERES@il.ibm.com>
2401
2402         * flags.h (HONOR_NANS): Fix typo in comment.
2403
2404 2006-09-23  Uros Bizjak <uros@kss-loka.si>
2405
2406         * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype.
2407
2408 2006-09-23  Jakub Jelinek  <jakub@redhat.com>
2409
2410         PR c/28706
2411         PR c/28712
2412         * tree.c (merge_attributes, attribute_list_contained): If both
2413         TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of
2414         simple_cst_equal.
2415         * c-typeck.c (comptypes_internal): Don't consider aggregates
2416         in different TUs as compatible if there one set of attributes is
2417         not a subset of the other type's attributes.
2418         (composite_type): Try harder not to create a new aggregate type.
2419
2420 2006-09-22  Geoffrey Keating  <geoffk@apple.com>
2421
2422         * config/i386/driver-i386.c: Always define host_detect_local_cpu.
2423         * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386
2424         or x86_64 host.  Define HAVE_LOCAL_CPU_DETECT.
2425         (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather
2426         than replicating condition above.
2427         * config.host (i[34567]86-*-*): Always use driver-i386.o.
2428
2429         * config/darwin.h (LINK_SYSROOT_SPEC): New.
2430         (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to
2431         the linker by default.
2432
2433 2006-09-22  Mike Stump  <mrs@apple.com>
2434
2435         * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with
2436         code.
2437
2438 2006-09-22  Richard Guenther  <rguenther@suse.de>
2439
2440         PR middle-end/28964
2441         * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make
2442         sort of stack variables stable.
2443
2444 2006-09-22  Peter Bergner <bergner@vnet.ibm.com>
2445
2446         PR middle-end/28690
2447         * explow.c (force_reg): Set REG_POINTER flag according to
2448         MEM_POINTER flag.
2449
2450 2006-09-22  Zdenek Dvorak <dvorakz@suse.cz>
2451
2452         PR tree-optimization/28888
2453         * tree-if-conv.c (combine_blocks): Rewritten.
2454         * tree-cfg.c (tree_verify_flow_info): Check that edges with
2455         EDGE_TRUE/FALSE_VALUE follow COND_EXPR.
2456
2457 2006-09-22  Jakub Jelinek  <jakub@redhat.com>
2458
2459         * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if
2460         needed.
2461
2462 2006-09-21  Richard Sandiford  <richard@codesourcery.com>
2463
2464         * varasm.c (copy_constant): Fix reversed gcc_assert check.
2465
2466 2006-09-21  Janis Johnson  <janis187@us.ibm.com>
2467
2468         * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins.
2469
2470 2006-09-21  Roger Sayle  <roger@eyesopen.com>
2471
2472         PR debug/29132
2473         * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label,
2474         dw_fde_current_label, to be the start of the function, i.e. the same
2475         value as dw_fde_begin.
2476
2477 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
2478
2479         * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete.
2480         * config/mips/mips.md (UNSPEC_ABS_PS): New constant.
2481         (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2)
2482         (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1.
2483         (*nmadd<mode>, *nmadd<mode>_fastmath): Require !HONOR_NANS.
2484         (*nmsub<mode>, *nmsub<mode>_fastmath): Likewise.
2485         (abs<mode>2, neg<mode>2): Likewise.
2486         * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand.
2487         (*mips_abs_ps): New define_insn.
2488
2489 2006-09-20  Josh Conner  <jconner@apple.com>
2490
2491         PR middle-end/25505
2492         * calls.c (expand_call): Allow reuse of structure return stack
2493         temp.
2494
2495 2006-09-20  Paul Brook  <paul@codesourcery.com>
2496
2497         * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for
2498         positive offsets.
2499
2500 2006-09-20  Janis Johnson  <janis187@us.ibm.com>
2501
2502         * doc/extend.texi (Decimal Float): Update for latest draft TR,
2503         clean up terminology.
2504
2505 2006-09-20  Steve Ellcey  <sje@cup.hp.com>
2506
2507         PR target/28574
2508         * ifcvt.c (dead_or_predicable): Don't predicate then blocks
2509         with tablejumps in them.
2510
2511 2006-09-20  Jakub Jelinek  <jakub@redhat.com>
2512
2513         PR middle-end/28046
2514         * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough,
2515         wrap it into TARGET_EXPR.
2516
2517 2006-09-20  Eric Christopher  <echristo@apple.com>
2518
2519         * config/i386/i386.c (x86_fisttp): Remove.
2520         * config/i386/i386.h (x86_fisttp): Ditto.
2521         (TARGET_FISTTP): Ditto.
2522
2523 2006-09-19  Eric Christopher  <echristo@apple.com>
2524
2525         * doc/tm.texi (OBJC_JBLEN): Describe.
2526         * config/i386/darwin.h (OBJC_JBLEN): Define.
2527         * config/rs6000/darwin.h: Ditto.
2528
2529 2006-09-19  Steven Bosscher  <steven@gcc.gnu.org>
2530
2531         PR rtl-optimization/21299
2532         * reload1.c (reload): Purge invalid ASMs in the final pass.
2533
2534 2006-09-19  Steve Ellcey  <sje@cup.hp.com>
2535
2536         PR  28490
2537         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
2538         pointers as legitimate constants.
2539
2540 2006-09-19  Paul Brook  <paul@codesourcery.com>
2541
2542         PR target/28516
2543         * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const.
2544
2545 2006-09-17  Zdenek Dvorak <dvorakz@suse.cz>
2546
2547         PR tree-optimization/28887
2548         * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable
2549         component parts from the reference.
2550         (gather_memory_references_ref): Record the reference without the
2551         nonaddressable component parts.
2552
2553 2006-09-17  Steven Bosscher  <steven@gcc.gnu.org>
2554
2555         PR c/25993
2556         * c-opts.c (c_common_handle_option): Ignore the -std options
2557         if the input language is assembly.
2558
2559 2006-09-17  Ira Rosen  <irar@il.ibm.com>
2560
2561         PR tree-opt/21591
2562         * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory
2563         tag first.
2564         (ptr_ptr_may_alias_p): Likewise.
2565         (record_record_differ_p): New function.
2566         (base_object_differ_p): Call record_record_differ_p.
2567
2568 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
2569
2570         PR tree-opt/29059
2571         * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right
2572         away for the expr argument.
2573
2574 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
2575
2576         PR tree-opt/27742
2577         * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location
2578         before using it for dumping after vectorizing loops.
2579
2580 2006-09-16  Andrew Pinski  <pinskia@physics.uc.edu>
2581             Jack Howarth  <howarth@bromo.med.uc.edu>
2582
2583         PR target/29030
2584         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse)
2585         skip on error_mark_node.
2586         (rs6000_darwin64_record_arg_recurse): Likewise.
2587
2588 2006-09-16  Steven Bosscher  <steven@gcc.gnu.org>
2589
2590         * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove.
2591         * doc/rtl.texi: Remove related documentation.
2592
2593 2006-09-16  Bernd Schmidt  <bernd.schmidt@analog.com>
2594
2595         * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging
2596         printf.
2597
2598 2006-09-15  Jim Wilson  <wilson@specifix.com>
2599
2600         * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST):
2601         Handle symbol offsets same as they are handled in ia64_expand_move
2602         and move_operand.
2603
2604 2006-09-16  Andreas Tobler  <a.tobler@schweiz.org>
2605
2606         * loop-doloop.c (doloop_optimize): Change type of max_cost to int.
2607         Add forgotten parameter to the fprintf call.
2608
2609 2006-09-15  Steve Ellcey  <sje@cup.hp.com>
2610
2611         * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define.
2612
2613 2006-09-15  Uros Bizjak <uros@kss-loka.si>
2614
2615         * doc/contrib.texi: Add my entry.
2616
2617 2006-09-15  Nick Clifton  <nickc@redhat.com>
2618
2619         * doc/md.texi (Processor pipeline description): Fix typo in
2620         example of how to use the absence_set directive and reword the
2621         description to make it slightly easier to read.
2622
2623 2006-09-15  Bernd Schmidt  <bernd.schmidt@analog.com>
2624
2625         * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New.
2626         * loop-doloop.c (doloop_optimize): Use it to limit costs of
2627         expanding the number of iterations.
2628         * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD.
2629
2630         * cfgrtl.c (emit_insn_at_entry): New function.
2631         * rtl.h (emit_insn_at_entry): Declare it.
2632         * integrate.c (emit_initial_value_sets): Use it.
2633
2634         * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort.
2635
2636         * config/bfin/bfin.c (struct loop_info): New members block_bitmap and
2637         bad.
2638         (struct loop_work and related VEC declarations): Delete.
2639         (bfin_dump_loops): Print out new member bad.
2640         (bfin_bb_in_loop): Use plain bitmap test.  Don't recurse.
2641         (bfin_scan_loop): Don't recurse.
2642         (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad
2643         loops.  No longer need to update outer loops if the current one is
2644         found bad.  Move some validitiy checks to bfin_discover_loop.
2645         (bfin_discover_loop): New function, mostly split from bfin_reorg_loops,
2646         but changed not to check for nesting.  Also changed to use the new bad
2647         flag.
2648         (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a
2649         time.  Use bitmap based test to discover loop nesting.
2650
2651 2006-09-15  Kazu Hirata  <kazu@codesourcery.com>
2652
2653         * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in
2654         one line.
2655
2656 2006-09-14  Richard Guenther  <rguenther@suse.de>
2657             Kazu Hirata  <kazu@codesourcery.com>
2658
2659         PR middle-end/28884.
2660         * doc/tm.texi (TARGET_FUNCTION_VALUE): Document.
2661         (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate.
2662         Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE
2663         with TARGET_FUNCTION_VALUE.
2664
2665 2006-09-14  Anatoly Sokolov <aesok@post.ru>
2666
2667         PR target/26504
2668         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define.
2669
2670 2006-09-13  Aldy Hernandez  <aldyh@redhat.com>
2671
2672         * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand
2673         of a RETURN_EXPR
2674
2675 2006-09-13  Andrew Pinski  <pinskia@physics.uc.edu>
2676
2677         PR debug/28980
2678         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
2679         FUNCTION_DECL.
2680
2681 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2682
2683         * basic_block.h (bb_has_eh_pred): Fix comment.
2684
2685 2006-09-13  Andreas Krebbel  <krebbel1@de.ibm.com>
2686
2687         * flow.c (calculate_global_regs_live): Invalidate eh registers
2688         on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge.
2689         (propagate_block): Handle eh registers as if they were set at basic
2690         block start.
2691         * except.c (dw2_build_landing_pads): Don't emit clobbers for eh
2692         registers.
2693         * global.c (global_conflicts): Make eh registers to conflict with
2694         pseudos live at basic block begin.
2695         * basic_block.h (bb_has_eh_pred): New function.
2696
2697 2006-09-13  Richard Sandiford  <richard@codesourcery.com>
2698
2699         PR rtl-optimization/28982
2700         * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the
2701         index of a PRE_MODIFY or POST_MODIFY address.
2702         * reload1.c (inc_for_reload): Use find_replacement on the original
2703         base and index registers.
2704
2705 2006-09-12  H.J. Lu  <hongjiu.lu@intel.com>
2706
2707         * doc/invoke.texi (mpreferred-stack-boundary): Remove exception
2708         for -Os. Update __m128 alignment requirement.
2709
2710 2006-09-13  Jan Hubicka  <jh@suse.cz>
2711
2712         * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic.
2713
2714 2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2715
2716         PR rtl-optimization/28243
2717         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
2718         the insn to which the note was originally attached.
2719
2720 2006-09-12  Andrew Pinski  <pinskia@physics.uc.edu>
2721             Roger Sayle  <roger@eyesopen.com>
2722
2723         * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration
2724         outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure
2725         on platforms that don't use dwarf for debug info.
2726
2727 2006-09-12  Jason Merrill  <jason@redhat.com>
2728
2729         PR middle-end/28493
2730         * builtins.c (expand_builtin_setjmp_receiver): Clobber
2731         hard_frame_pointer_rtx after using it to update the frame pointer.
2732
2733 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2734
2735         * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef.
2736         (TARGET_ASM_CLOSE_PAREN): Likewise.
2737         * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define.
2738         (TARGET_ASM_CLOSE_PAREN): Likewise.
2739
2740 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2741
2742         PR target/22223
2743         * config/alpha/alpha.c (alpha_start_function): Don't emit stack
2744         frame information for frames larger than 512 Kbytes on Tru64 when
2745         using the native assembler.
2746
2747 2006-09-12  Roger Sayle  <roger@eyesopen.com>
2748
2749         PR middle-end/4520
2750         PR bootstrap/28784
2751         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
2752         and symbols.  Instead use the implementation from cse.c's hash_rtx.
2753
2754 2006-09-12  Jan Hubicka  <jh@suse.cz>
2755
2756         PR rtl-optimization/28071
2757         * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast.
2758         (vect_transform_loop): Likewise.
2759         * tree-vectorizer.c (new_loop_vec_info): Likewise.
2760         (new_loop_vec_info): Likewise.
2761         (destroy_loop_vec_info): Likewise.
2762         * tree-dfa.c (create_var_ann): Use GCC_CNEW.
2763         (create_stmt_ann): Likewise.
2764         (create_tree_ann): Rename to ...
2765         (create_tree_common_ann): ... this one; allocate only the common part
2766         of annotations.
2767         * tree-vn.c (set_value_handle): Use get_tree_common_ann.
2768         (get_value_handle): Likewise.
2769         * tree-ssa-pre.c (phi_translate): Delay annotation allocation for
2770         get_tree_common_ann.
2771         * tree-vectorizer.h (set_stmt_info): Take stmt annotation.
2772         (vinfo_for_stmt): Use stmt annotations.
2773         * tree-flow.h (tree_ann_common_t): New type.
2774         (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New.
2775         (tree_ann, get_tree_ann, create_tree_ann): New.
2776         * tree-flow-inline.h (get_function_ann): Do more type checking.
2777         (stmt_ann): Likewise.
2778         (tree_ann): Rename to ...
2779         (tree_common_ann): ... this one; return ony common_ann
2780         (get_tree_ann): Rename to ...
2781         (tree_common_ann): This one; return only common_ann.
2782         * tree-vect-patterns.c (vect_pattern_recog_1): Update call
2783         of set_stmt_info.
2784
2785 2006-09-11  Geoffrey Keating  <geoffk@apple.com>
2786
2787         * config.gcc (i[34567]86-*-darwin*): Set with_arch and
2788         with_cpu by default.
2789
2790         * dwarf2out.c (dwarf_file_data): New.
2791         (enum dw_val_class): Add dw_val_class_file.
2792         (struct dw_val_struct): Add val_file.
2793         (file_table): Change to a hash table.
2794         (file_table_emitted): Delete.
2795         (file_table_last_lookup_index): Delete.
2796         (emitcount): Delete.
2797         (last_emitted_file): New.
2798         (lookup_filename): Change prototype to return a struct dwarf_file_data.
2799         (init_file_table): Delete.
2800         (maybe_emit_file): Change prototype to take a struct dwarf_file_data.
2801         (AT_addr): Add comment.
2802         (add_AT_file): New.
2803         (AT_file): New.
2804         (get_AT_file): New.
2805         (print_die): Handle dw_val_class_file.
2806         (print_dwarf_line_table): Update for new file table structure.
2807         (attr_checksum): Do checksum a filename.
2808         (same_dw_val_p, same_attr_p): Do compare a filename.
2809         (size_of_die): Handle dw_val_class_file.
2810         (value_format): Likewise.
2811         (output_die): Likewise.  Also, call maybe_emit_file here.
2812         (struct file_info): Constify filenames.  Make file_idx a pointer
2813         to a struct dwarf_file_data.
2814         (struct dir_info): Constify directory names.  Remove 'used' field.
2815         (struct file_name_acquire_data): New.
2816         (file_name_acquire): New.
2817         (output_file_names): Modify to handle new file data structures.
2818         (add_src_coords_attributes): Use add_AT_file.
2819         (add_call_src_coords_attributes): Likewise.
2820         (dwarf2out_imported_module_or_decl): Likewise.
2821         (gen_subprogram_die): Modify for new file data structures.
2822         (gen_variable_die): Likewise.
2823         (file_table_eq): New.
2824         (file_table_hash): New.
2825         (file_table_last_lookup): New.
2826         (lookup_filename): Rewrite to handle new file data structures.
2827         (maybe_emit_file): Rewrite to handle new file data structures.
2828         (dwarf2out_source_line): Always call lookup_filename and
2829         maybe_emit_file.
2830         (dwarf2out_init): Create file_table here.
2831         (prune_unused_types_walk_attribs): Don't call maybe_emit_file here.
2832         (file_table_relative_p): New.
2833         (dwarf2out_finish): Change detection of relative filenames
2834         to work with new file data structures.  Move output_line_info call
2835         after debug_info output.
2836
2837 2006-09-11  H.J. Lu  <hongjiu.lu@intel.com>
2838
2839         PR target/13685
2840         PR target/27537
2841         PR target/28621
2842         * config/i386/i386.c (override_options): Always default to 16
2843         byte stack boundary.
2844
2845 2006-09-11  Alexandre Oliva  <aoliva@redhat.com>
2846
2847         PR target/28672
2848         * var-tracking.c (dump_dataflow_set): Start dumping at
2849         register zero.
2850         (clobber_variable_part): Kill only the variable part in
2851         registers holding it, leaving other variables alone.
2852
2853 2006-09-11  Josh Triplett  <josh@freedesktop.org>
2854
2855         * doc/extend.texi (Other Builtins): Actually use the macro
2856         argument in the documentation example for
2857         __builtin_types_compatible_p.
2858
2859 2006-09-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2860
2861         PR rtl-optimization/28726
2862         * sched-deps.c (sched_analyze_reg): New function extracted from...
2863         (sched_analyze_1): ...here.  Call it to analyze references to
2864         registers.  Treat again writes to a stack register as writing to the
2865         register.
2866         (sched_analyze_2): ...and here.  Call it to analyze references to
2867         registers.  Treat again reads of a stack register as reading the
2868         register.
2869
2870 2006-09-11  Guenter Roeck  <guenter@roeck-us.net>
2871             David Edelsohn  <edelsohn@gnu.org>
2872
2873         PR target/27287
2874         * config/rs6000/spe.md (frob_df_di): Remove %H.
2875         (frob_di_df): Remove %H.  Change evmergelo to mr.
2876         (frob_di_df_2): Remove %H.  Change evldd to two loads.
2877
2878 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
2879
2880         * doc/cpp.texi: Fix names of charset options.
2881
2882 2006-09-10  Andrew Pinski  <pinskia@physics.uc.edu>
2883
2884         PR target/29009
2885         * config/i386/i386.c (override_options): Use 128-bit
2886         stack boundary always for 64bits.
2887
2888 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2889
2890         PR rtl-optimization/28636
2891         * combine.c (force_to_mode): Test for side-effects before
2892         substituting by zero.
2893         (simplify_shift_const): Likewise for zero or other constants.
2894
2895 2006-09-10  Steven Bosscher  <steven@gcc.gnu.org>
2896
2897         PR middle-end/26983
2898         * builtins.c (expand_builtin_setjmp): Force next_lab to be
2899         preserved.
2900
2901 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
2902
2903         PR target/29006
2904         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
2905         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
2906         returned by mode_for_size, rather than the mode of src itself,
2907         to choose between 32-bit and 64-bit patterns.
2908         (mips_mem_fits_mode_p): New function.
2909         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
2910         that the size of the source matches the size of the destination.
2911         (mov_<store>l, mov_<store>r): Likewise.
2912
2913 2006-09-10  Eric Christopher  <echristo@apple.com>
2914
2915         * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR
2916         for literal16.
2917
2918 2006-09-09  Eric Christopher  <echristo@apple.com>
2919
2920         PR target/28995
2921         * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT
2922         for literal16.
2923
2924 2006-09-09  Roger Sayle  <roger@eyesopen.com>
2925             Nicolas Setton <setton@adacore.com>
2926
2927         * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc.
2928
2929 2006-09-10  Andreas Schwab  <schwab@suse.de>
2930
2931         * config/m68k/m68k.md (bungt_rev): New pattern.
2932
2933 2006-09-09  Paolo Bonzini  <bonzini@gnu.org>
2934             Dale Johannesen  <dalej@apple.com>
2935
2936         PR target/26778
2937         * regclass.c (struct reg_pref): Update documentation.
2938         (regclass): Set prefclass to NO_REGS if memory is the best option.
2939         (record_reg_classes): Cope with a prefclass set to NO_REGS.
2940
2941 2006-09-08  Eric Christopher  <echristo@apple.com>
2942
2943         * config.gcc (i?86-*-darwin): Add 64-bit HWI support.
2944         * config/t-slibgcc-darwin: Support x86_64 multilib.
2945         * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION):
2946         Return 1 for x86_64-darwin.
2947         * config/i386/t-darwin: Add m64 multilib.
2948         (LIB2_SIDITI_CONV_FUNCS): Use.
2949         (LIB2FUNCS_EXTRA): Ditto.
2950         * config/i386/darwin.h: Support x86_64.
2951         * config/i386/i386.c (override_options): Turn on flag_pic
2952         for x86_64-darwin. Disable flag_omit_pointer.
2953         (get_pc_thunk_name): Assert !TARGET_64BIT.
2954         (legitimate_address_p): Disable machopic addressing for
2955         x86_64.
2956         (legitimize_pic_address): Ditto.
2957         (ix86_expand_move): Ditto.
2958         (ix86_expand_call): Ditto.
2959         (machopic_output_stub): Ditto.
2960         * config/darwin.c (machopic_select_section): Support literal16.
2961         (machopic_select_rtx_section): Ditto.
2962         * config/darwin-sections.def: Ditto.
2963         * config/darwin-64.c: New.
2964
2965 2006-09-08  Joseph S. Myers  <joseph@codesourcery.com>
2966
2967         PR c/28504
2968         * c-tree.h (struct c_arg_info): Add pending_sizes.
2969         * c-parser.c (c_parser_parms_declarator,
2970         c_parser_parms_list_declarator): Initialize pending_sizes.
2971         * c-decl.c (get_parm_info): Initialize pending_sizes.
2972         (get_parm_info): Set pending_sizes.
2973         (grokdeclarator): Call put_pending_sizes for parameters for
2974         function definition only.
2975
2976 2006-09-07  Jason Merrill  <jason@redhat.com>
2977
2978         PR middle-end/27724
2979         * varasm.c (output_constant): Only strip actual no-op conversions.
2980
2981         PR target/13685
2982         * config/i386/i386.c (override_options): Use 128-bit
2983         stack boundary if -msse.
2984
2985 2006-09-07  Eric Christopher  <echristo@apple.com>
2986
2987         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
2988         comment.
2989         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
2990         Redefine.
2991
2992 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
2993
2994         * dwarf2out.c: Remove strange characters from comment above
2995         dwarf2out_frame_debug_expr.
2996
2997 2006-09-07  Eric Christopher  <echristo@apple.com>
2998
2999         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
3000         * config/darwin.h: ... to here.
3001
3002 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
3003
3004         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
3005
3006         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
3007         (TARGET_PARTIAL_FLAG_REG_STALL): New.
3008
3009         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
3010         TARGET_PARTIAL_FLAG_REG_STALL.
3011         (*ashldi3_cconly_rex64): Likewise.
3012         (*ashlsi3_cmp): Likewise.
3013         (*ashlsi3_cconly): Likewise.
3014         (*ashlsi3_cmp_zext): Likewise.
3015         (*ashlhi3_cmp): Likewise.
3016         (*ashlhi3_cconly): Likewise.
3017         (*ashlqi3_cmp): Likewise.
3018         (*ashlqi3_cconly): Likewise.
3019         (*ashrdi3_cmp_rex64): Likewise.
3020         (*ashrdi3_cconly_rex64): Likewise.
3021         (*ashrsi3_cmp): Likewise.
3022         (*ashrsi3_cconly): Likewise.
3023         (*ashrsi3_cmp_zext): Likewise.
3024         (*ashrhi3_cmp): Likewise.
3025         (*ashrhi3_cconly): Likewise.
3026         (*ashrqi3_cmp): Likewise.
3027         (*ashrqi3_cconly): Likewise.
3028         (*lshrdi3_cmp_rex64): Likewise.
3029         (*lshrdi3_cconly_rex64): Likewise.
3030         (*lshrsi3_cmp): Likewise.
3031         (*lshrsi3_cconly): Likewise.
3032         (*lshrsi3_cmp_zext): Likewise.
3033         (*lshrhi3_cmp): Likewise.
3034         (*lshrhi3_cconly): Likewise.
3035         (*lshrqi2_cmp): Likewise.
3036         (*lshrqi2_cconly): Likewise.
3037
3038 2006-09-07 Uros Bizjak <uros@kss-loka.si>
3039
3040         PR target/28946
3041         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
3042         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
3043         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
3044         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
3045         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
3046         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
3047         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
3048         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
3049         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
3050         implement only CC setting effects of shift instructions.
3051
3052 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
3053
3054         * doc/contrib.texi: Add myself.
3055
3056 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
3057
3058         PR middle-end/28862
3059         * stor-layout.c (relayout_decl): Don't zero the alignment if it
3060         was set by the user.
3061
3062 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
3063
3064         PR target/27117
3065         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
3066         (divsi_inv_m1): Use them.
3067         (UNSPEC_DIV_INV_TABLE): New constant.
3068
3069 2006-09-06  James E Wilson  <wilson@specifix.com>
3070
3071         PR rtl-opt/27883
3072         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
3073         then call count_or_remove_death_notes.
3074
3075 2006-09-06  Jason Merrill  <jason@redhat.com>
3076
3077         PR c++/27371
3078         * tree-inline.c (copy_result_decl_to_var): New fn.
3079         (declare_return_variable): Use it.  Call declare_inline_vars here.
3080         (expand_call_inline): Not here.
3081
3082 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
3083
3084         * doc/contrib.texi: Update my entry.
3085
3086 2006-09-06  Nick Clifton  <nickc@redhat.com>
3087
3088         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
3089
3090 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
3091
3092         PR tree-opt/28937
3093         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
3094         (canonicalize_induction_variables): Likewise.
3095         (tree_unroll_loops_completely): Likewise.
3096         (tree_ssa_prefetch_arrays): Likewise.
3097         (remove_empty_loops): Likewise.
3098         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
3099         TODO_cleanup_cfg instead of directly calling
3100         cleanup_tree_cfg_loop.
3101         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
3102         Likewise.
3103         (tree_unroll_loops_completely): Likewise.
3104         (remove_empty_loops): Likewise.
3105         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
3106         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
3107         of tree_ssa_unswitch_loops.
3108         (tree_ssa_loop_ivcanon): Use the return value of
3109         canonicalize_induction_variables.
3110         (tree_ssa_empty_loop): Use the return value of
3111         remove_empty_loops.
3112         (tree_complete_unroll): Use the return value of
3113         tree_unroll_loops_completely.
3114         (tree_ssa_loop_prefetch): Use the return value of
3115         tree_ssa_prefetch_arrays.
3116         * passes.c (execute_todo): Before Cleanup CFG, set
3117         updating_used_alone and after cleanup CFG, call
3118         recalculate_used_alone.
3119
3120 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
3121
3122         PR tree-opt/28952
3123         * tree-vect-transform.c (vectorizable_condition): Move the check
3124         for the type after the check for simple condition.
3125
3126 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
3127             Kaz Kojima  <kkojima@gcc.gnu.org>
3128
3129         PR target/28764
3130         * mode-switching.c (optimize_mode_switching): Make the destination
3131         block of an abnormal edge have no anticipatable mode.  Don't
3132         insert mode switching code at the end of the source block of
3133         an abnormal edge.
3134
3135 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
3136
3137         PR rtl-optimization/26847
3138         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
3139         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
3140         (simplify_plus_minus): Count n_constants while filling ops.  Replace
3141         qsort with insertion sort.  Before going through the array to simplify
3142         pairs, sort it.  Delay early exit until after the first sort, exiting
3143         only if no swaps occurred.  Simplify pairs in reversed order, without
3144         special-casing the first iteration.  Pack ops after simplifying pairs.
3145
3146 2006-09-05  Anatoly Sokolov <aesok@post.ru>
3147
3148         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
3149         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3150         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3151         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
3152
3153 2006-09-05  Richard Guenther  <rguenther@suse.de>
3154
3155         PR tree-optimization/28900
3156         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
3157         compound conditional before creating COND_EXPR condition.
3158
3159 2006-09-05  Richard Guenther  <rguenther@suse.de>
3160
3161         PR tree-optimization/28905
3162         * tree-vrp.c (fix_equivalence_set): Manually implement
3163         !value_ranges_intersect_p to also handle symbolic ranges.
3164
3165 2006-09-05  Richard Guenther  <rguenther@suse.de>
3166
3167         PR middle-end/28935
3168         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
3169         of a COND_EXPR.
3170
3171 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3172
3173         PR rtl-optimization/27616
3174         * cse.c (table_size): New static variable.
3175         (new_basic_block): Initialize it to 0.
3176         (remove_from_table): Decrement it.
3177         (insert): Increment it.
3178         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
3179         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
3180         fold_rtx_mem_1 if under the cap.
3181         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
3182         the lookup of the equivalent expression and test for equality of the
3183         first operand of the equivalent expression before in turn looking up
3184         an equivalent constant for the second operand.
3185
3186 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
3187
3188         Revert this change:
3189         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
3190         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
3191         pointer, instead of assuming it is possible to derive the
3192         correct args size from a call insn.
3193
3194 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
3195
3196         PR middle-end/27567
3197         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
3198         (fold_builtin_mempcpy): Rename to...
3199         (fold_builtin_memory_op): ... this.  Optimize one element copy
3200         into an assignment.
3201         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
3202         functions.
3203         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
3204         (expand_builtin_memcpy, expand_builtin_mempcpy,
3205         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
3206         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
3207         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
3208         BUILT_IN_MEM{CPY,PCPY,MOVE}.
3209
3210 2006-09-01  DJ Delorie  <dj@redhat.com>
3211
3212         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
3213         (stzx_16): Likewise.
3214         ("stzx_24_<mode>"): Likewise.
3215         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
3216         ("cmp<mode>_op"): New.
3217         (cmp<mode>): Change to expander; just save operands.
3218         (b<code>_op): New.
3219         (b<code>): Change to expander, emit compare here.
3220         (s<code>_op): Change to use split and expander.
3221         (s<code>_24_op): Likewise.
3222         (s<code>_<mode>): New.
3223         (s<code>_<mode>_24): New.
3224         (movqicc_<code>_<mode): New.
3225         (movhicc_<code>_<mode>): New.
3226         (s<code>): New.
3227         (s<code>_24): New.
3228         * config/m32c/m32c.c (compare_op0, compare_op1): New.
3229         (m32c_pend_compare): New.
3230         (m32c_unpend_compare): New.
3231         (m32c_expand_scc): New.
3232         (m32c_expand_movcc): Emit the compare also.
3233         * config/m32c/predicates.md (mra_nopp_operand): New.
3234
3235 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
3236         Richard Guenther  <rguenther@suse.de>
3237         Adam Nemet  <anemet@caviumnetworks.com>
3238
3239         PR middle-end/27226
3240         * builtins.c (get_pointer_alignment): Handle more forms
3241         of base addresses that can be used to derive more precise
3242         information about alignment.
3243
3244 2006-09-01  Jason Merrill  <jason@redhat.com>
3245
3246         PR c++/28899
3247         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
3248         want_value.
3249
3250         * gimplify.c (voidify_wrapper_expr): Handle null type.
3251
3252 2006-09-01  Josh Conner  <jconner@apple.com>
3253
3254         PR c++/25505
3255         * tree-nrv.c (dest_safe_for_nrv_p): New function.
3256         (execute_return_slot_opt): Use it.
3257
3258 2006-08-31  Josh Conner  <jconner@apple.com>
3259
3260         PR c++/25505
3261         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
3262         returning aggregates.
3263
3264 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
3265
3266         PR tree-optimization/28839
3267         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
3268         blocks in that phi arguments appear.
3269
3270 2006-08-31  Roger Sayle  <roger@eyesopen.com>
3271
3272         PR other/22313
3273         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
3274         NULL, otherwise use an advance_loc4 to adjust relative to the
3275         current label.
3276         (output_cfi) <DW_CFA_set_loc>: Update the current label.
3277         (dwarf2out_switch_text_section): Reset the current label to avoid
3278         using advance_loc4 over section boundaries.
3279
3280 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
3281
3282         PR target/24367
3283         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
3284         r12 + SYMBOLIC_CONST.
3285
3286 2006-08-30  Richard Guenther  <rguenther@suse.de>
3287
3288         * Makefile.in (see.o): Add $(EXPR_H) dependency.
3289
3290 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
3291
3292         PR rtl-optimization/27735
3293         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
3294         Add new argument to keep track of whether an irreducible region
3295         was affected.  All callers changed.
3296         (fix_irreducible_loops): Removed.
3297         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
3298         flags were invalidated.
3299
3300 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
3301
3302         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
3303         instead of SF operands.
3304         (*fop_df_comm_sse): Likewise.
3305         (*fop_df_comm_i387): Likewise.
3306         (*fop_df_1_mixed): Likewise.
3307         (*fop_df_1_sse): Likewise.
3308
3309 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
3310             J"orn Rennecke  <joern.rennecke@st.com>
3311
3312         PR tree-optimization/17506
3313         * tree-ssa.c (warn_uninit): If warning about a location outside of
3314         the current function, note where the variable was declared.
3315
3316 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
3317
3318         PR tree-optimization/28411
3319         * double-int.c (double_int_div): Use double_int_divmod.
3320         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
3321         double_int_mod, double_int_smod, double_int_umod): New functions.
3322         * double-int.h (double_int_divmod, double_int_sdivmod,
3323         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
3324         Declare.
3325         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
3326         in double_int.
3327         (get_computation_aff, get_computation_cost_at): Handle double_int
3328         return type of constant_multiple_of.
3329
3330 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
3331
3332         PR middle-end/26632
3333         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
3334         an implicit conversion.
3335
3336 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
3337
3338         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
3339
3340 2006-08-27  Roger Sayle  <roger@eyesopen.com>
3341
3342         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
3343         x87 instructions.
3344
3345 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
3346
3347         * config/i386/crtfastmath.c: Fix a comment typo.
3348
3349 2006-08-26  Roger Sayle  <roger@eyesopen.com>
3350
3351         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
3352         temporary visit flags on CASE_LABEL_EXPRs.
3353         * c-common.c (match_case_to_enum): Add function comment.  Avoid
3354         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
3355         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
3356         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
3357         a constant, only warn if that constant value isn't handled.
3358
3359 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
3360
3361         PR c++/24009
3362         * input.h (restore_input_file_stack): Declare.
3363         (INPUT_FILE_STACK_BITS): Define.
3364         * toplev.c (fs_p, input_file_stack_history,
3365         input_file_stack_restored, restore_input_file_stack): New.
3366         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
3367         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
3368         (pop_srcloc): Don't free old state of stack.
3369
3370 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
3371
3372         PR target/27544
3373         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
3374         (PowerPC Type Attributes): New.
3375
3376 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
3377
3378         * config/xtensa/xtensa.c (function_arg_boundary): New.
3379         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
3380         STACK_BOUNDARY.
3381         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
3382         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
3383
3384 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
3385
3386         PR middle-end/28683
3387         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
3388         3 following insns.
3389
3390 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3391
3392         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
3393         (verify_local_live_at_start): Likewise.
3394
3395 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
3396
3397         PR c/27893
3398         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
3399         omp_add_variable): Treat sizes as variable whenever not
3400         INTEGER_CST.
3401
3402 2006-08-26  Richard Guenther  <rguenther@suse.de>
3403
3404         PR middle-end/28814
3405         * fold-const.c (fold_binary): Fold temporary to correct
3406         type before constructing new comparison.
3407
3408 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
3409
3410         PR c/28418
3411         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
3412         variable again if DECL_SEEN_IN_BIND_EXPR_P.
3413
3414 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
3415
3416         PR c/28299
3417         * c-decl.c (start_function): Don't try to process prototype
3418         information from old declaration that isn't a function.
3419
3420 2006-08-25  Jan Hubicka  <jh@suse.cz>
3421
3422         PR target/28621
3423         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
3424
3425 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
3426
3427         PR target/27075
3428         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
3429         for 8 byte objects.
3430
3431 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
3432
3433         PR tree-optimization/16876
3434         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
3435         exit if PARM doesn't match VALUE.
3436
3437 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
3438
3439         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
3440         literal_prefix directive.
3441         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
3442         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
3443         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
3444
3445 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
3446
3447         PR target/28753
3448         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
3449         predicate to general_operand.  Add 0->y and I->r alternatives.
3450
3451 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
3452
3453         * doc/tm.texi: Fix a typo.
3454         * predict.c: Fix comment typos.
3455
3456 2006-08-25  Nick Clifton  <nickc@redhat.com>
3457
3458         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
3459         assertions of "cpu" and "machine".
3460
3461 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
3462
3463         PR tree-opt/28807
3464         * tree-ssa-operands.c (access_can_touch_variable): Don't say
3465         the access through a base which has an alias set of 0 cannot
3466         touch the variable.
3467
3468 2006-08-24  Bill Wendling  <wendling@apple.com>
3469
3470         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
3471
3472 2006-08-24  Jan Hubicka  <jh@suse.cz>
3473
3474         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
3475
3476 2006-08-24  Jan Hubicka  <jh@suse.cz>
3477
3478         PR debug/26881
3479         * cgraph.c: Fix comments.
3480         (cgraph_varpool_mark_needed_node): Mark only variables not already
3481         output to file.
3482         * cgraphunit.c: Update comments; include gt-cgraphunit.h
3483         (cgraph_varpool_assembled_nodes_queue): New static variable.
3484         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
3485         (cgraph_varpool_output_debug_info): New function.
3486         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
3487         * Makefile.in: Add gt-cgraphunit.h
3488
3489 2006-08-24  Jan Hubicka  <jh@suse.cz>
3490
3491         * predict.c (probability_reliable_p): New predicate.
3492         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
3493         (predict_loops): Do not predict loop exit with less than 2%
3494         probability.
3495         * basic-block.h (edge_probability_reliable_p,
3496         br_prob_note_reliable_p): Declare.
3497         * ia64.h (ia64_print_operand): Do not disable on-chip branch
3498         prediction when static predictor is not reliable.
3499         * rs6000.c (output_cbranch): Likewise.
3500
3501 2006-08-23  Stuart Hastings  <stuart@apple.com>
3502
3503         PR 28825
3504         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
3505         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
3506
3507 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
3508
3509         PR debug/28692
3510         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
3511         complex values, nor for generic vector values.
3512
3513 2006-08-22  Richard Guenther  <rguenther@suse.de>
3514
3515         PR middle-end/28776
3516         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
3517         parameter.  Convert arguments to arithmetic expression to the
3518         chrecs type.
3519         (analyze_scalar_evolution_1): Adjust caller.
3520
3521 2006-08-22  Jan Hubicka  <jh@suse.cz>
3522
3523         Patch by Paolo Bonzini
3524         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
3525         my previous patch.
3526
3527 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
3528
3529         PR tree-optimization/28003
3530         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
3531         before grouping aliases.
3532
3533 2006-08-22  Roger Sayle  <roger@eyesopen.com>
3534
3535         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
3536         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
3537
3538 2006-08-21  Jason Merrill  <jason@redhat.com>
3539
3540         PR c++/27115
3541         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
3542         wrapper.  Loop to handle nested wrappers.
3543         (gimplify_bind_expr): Remove temp parameter.
3544         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
3545         and STATEMENT_LIST on the rhs.
3546         (gimplify_statement_list): Voidify the STATEMENT_LIST.
3547         (gimplify_expr): Pass pre_p to gimplify_statement_list.
3548         (gimplify_target_expr): Remove special BIND_EXPR handling.
3549
3550 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
3551
3552         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
3553         #if !__SHMEDIA__ .
3554
3555 2006-08-21  Olivier Hainque  <hainque@adacore.com>
3556
3557         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
3558         Arrange for the temporary captures of components overlapping the lhs
3559         to happen before the lhs is possibly cleared.
3560
3561 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
3562
3563         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
3564         necessary places to pass the correct "number of registers" values
3565         to _Unwind_VRS_Pop.
3566
3567 2006-08-20  Jan Hubicka  <jh@suse.cz>
3568
3569         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
3570         (create_name_tags): Instead of quadratic checking use hashtable.
3571         * bitmap.h: Include hashtab.h.
3572         (bitmap_hash): Declare.
3573         * bitmap.c (bitmap_hash): New function.
3574
3575 2006-08-20  Jan Hubicka  <jh@suse.cz>
3576
3577         PR rtl-optimization/28071
3578         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
3579         twice.
3580         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
3581         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
3582         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
3583         cgraph_decide_inlining_incrementally): Update use of
3584         cgraph_check_inline_limits.
3585         * cgraph.c (edge_hash, edge_eq): New function.
3586         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
3587         cgraph_edge_remove_caller, cgraph_node_remove_callees,
3588         cgraph_remove_node): Maintain call site hash.
3589         * cgraph.h (struct cgraph_node): Add call_site_hash.
3590         (cgraph_set_call_stmt): New function.
3591
3592 2006-08-20  Jan Hubicka  <jh@suse.cz>
3593
3594         PR rtl-optimization/28071
3595         * reload1.c (reg_has_output_reload): Turn into regset.
3596         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
3597         choose_reload_regs, emit_reload_insns): Update to new
3598         reg_has_output_reload.
3599
3600 2006-08-20  Jan Hubicka  <jh@suse.cz>
3601
3602         PR middle-end/28779
3603         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
3604         function body sizes.
3605         * cgraphunit.c (cgraph_analyze_function): Don't do so.
3606
3607 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
3608
3609         PR target/28648 c:
3610         * tree.c (handle_dll_attribute): Return early if not a
3611         var or function decl.
3612
3613 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
3614
3615         PR target/27565
3616         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
3617         alignment of SPE vector types.
3618
3619 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
3620
3621         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
3622
3623 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
3624
3625         PR c/28744
3626         * cgraph.h (struct cgraph_node): Remove externally_visible
3627         bitfield.
3628         * cgraphunit.c (process_function_and_variable_attributes): Set
3629         local.externally_visible rather than externally_visible.
3630
3631         PR c/28744
3632         * c-common.c (handle_externally_visible_attribute): First look
3633         at TREE_CODE and only if it is function or var decl, check for
3634         non-public objects.  Don't warn for DECL_EXTERNAL.
3635         * cgraphunit.c (process_function_and_variable_attributes): Warn
3636         if externally_visible attribute is used on non-public object.
3637
3638 2006-08-17  Jan Hubicka  <jh@suse.cz>
3639
3640         PR tree-optimization/27865
3641         * reload1.c (forget_marked_reloads): New function.
3642         (forget_old_reloads_1): When data are passed, just mark the registers
3643         for later removal.
3644         (reload_as_needed): Use the new mechanizm.
3645
3646 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
3647
3648         PR target/28146
3649         * reload.h (reg_equiv_alt_mem_list): New declaration.
3650         * reload1.c (reg_equiv_alt_mem_list): New definition.
3651         (reload): Initialize it and release it.
3652         (delete_output_reload): Use it.
3653         * reload.c (push_reg_equiv_alt_mem): New function.
3654         (find_reloads_toplev): Call it.
3655         (find_reloads_address, find_reloads_address_1): Likewise.
3656         (find_reloads_subreg_address): Likewise.
3657
3658 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
3659
3660         PR rtl-optimization/28489
3661         * sched-ebb.c (begin_schedule_ready): Create basic block
3662         at the right place.
3663         (advance_target_bb): Skip empty blocks.
3664         * haifa-sched.c (bb_note): Make global.
3665         * sched-int.h (bb_note): Add prototype.
3666
3667 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3668
3669         PR tree-optimization/27865
3670         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
3671         for pointer types.
3672         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
3673         fold_used_pointer, pointer_used_p): New functions.
3674         (analyze_scalar_evolution_1): Use fold_used_pointer.
3675         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
3676         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
3677         for pointers.
3678
3679 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
3680
3681         PR c++/28573
3682         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
3683         or the INTEGER_CST.  Fail on a CALL_EXPR.
3684         (fold_offsetof): Pass new argument to fold_offsetof_1.
3685         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
3686         operand into an INDIRECT_REF.
3687         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
3688
3689 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3690
3691         PR gcov/profile/26570
3692         * value-prof.c (static_values): Removed.
3693         (tree_find_values_to_profile): Do not set static_values.
3694         (find_values_to_profile): Do not free static_values.
3695         * profile.c (instrument_values): Do not free the values.
3696         (branch_prob): Free the values.
3697
3698 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
3699
3700         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
3701
3702 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
3703
3704         PR c/27697
3705         * c-typeck.c (build_component_ref): Combine qualifiers of
3706         structure or union and field.
3707
3708 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3709
3710         PR rtl-optimization/28071
3711         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
3712         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
3713         * tree-into-ssa.c (struct dom_dfsnum): New.
3714         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
3715         functions.
3716         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
3717         compute_global_livein.
3718         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
3719         in phi nodes in the correct blocks.
3720
3721 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
3722
3723         PR tree-optimization/28364
3724         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
3725         correctly.
3726         (fold_affine_expr): New function.
3727         (may_eliminate_iv): Use fold_affine_expr.
3728
3729 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3730
3731         PR c/27489
3732         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
3733         Clean up.
3734
3735 2006-08-16  Mike Stump  <mrs@apple.com>
3736
3737         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
3738         * doc/cppopts.texi (-MD): Likewise.
3739
3740 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
3741
3742         PR c/28287
3743         * c-common.c (handle_weak_attribute): Ignore and warn if
3744         not a FUNCTION_ or VAR_DECL.
3745
3746 2006-07-15  Mike Stump  <mrs@apple.com>
3747
3748         PR c/28280
3749         * c-parser.c (c_parser_typeof_specifier): Don't use
3750         c_finish_expr_stmt, open code desired semantics instead.
3751
3752 2006-08-15  Nick Clifton  <nickc@redhat.com>
3753
3754         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
3755         fragment to tmake_file only if threads are enabled.
3756         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
3757         * config/i386/t-gthr-win32: New file. ... here.
3758
3759 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3760
3761         PR c/28649
3762         * c-parser.c (c_parser_compound_statement_nostart): Reset
3763         parser->error after each statement.
3764
3765 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
3766
3767         PR middle-end/28713
3768         * omp-low.c (lower_omp_parallel): Convert t to
3769         receiver_decl's type.
3770         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
3771         source before comparison.
3772
3773         PR middle-end/28724
3774         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
3775         to itype in assignment to oldival2.
3776
3777 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
3778
3779         PR c/27490
3780         PR c/27489
3781         * c-typeck.c (build_compound_expr): If the second expression
3782         is an error mark, then just return an error mark instead of
3783         creating a COMPOUND_EXPR.
3784
3785 2006-07-14  Mike Stump  <mrs@apple.com>
3786
3787         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
3788
3789 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
3790
3791         * c-decl.c, var-tracking.c: Fix comment typos.
3792
3793 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
3794
3795         PR rtl-optimization/28634
3796         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
3797         for floating-point modes unless flag_unsafe_math_optimizations.
3798
3799 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
3800             Andrew Pinski  <pinskia@physics.uc.edu>
3801
3802         PR c/27184
3803         * tree.c (build_array_type): Unify array types with
3804         unspecified index_type.
3805         * c-decl.c (grokdeclarator): Make sure we do not modify a
3806         unified incomplete array type.
3807         * c-typeck.c (store_init_value): Create distinct type before
3808         filling in the index type in an initializer from a compound
3809         literal.
3810
3811         * c-decl.c (grokdeclarator): Remove code where we copy the
3812         array type over.
3813
3814 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
3815
3816         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
3817         into account for TODO_dump_cgraph.
3818         (TODO_update_ssa_no_phi): Likewise.
3819         (TODO_update_ssa_full_phi): Likewise.
3820         (TODO_update_ssa_only_virtuals): Likewise.
3821         (TODO_remove_unused_locals): Likewise.
3822         (TODO_set_props): Likewise.
3823         (TODO_update_stmt_usage): Likewise.
3824
3825 2006-08-13  Dirk Mueller  <dmueller@suse.de>
3826
3827         * c-common.c (strict_aliasing_warning): Fix formatting.
3828
3829 2006-08-13  Matthias Klose  <doko@debian.org>
3830
3831         * doc/invoke.texi: Fix spelling errors.
3832
3833 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3834
3835         PR rtl-optimization/23454
3836         * reorg.c (relax_delay_slots): Update comment.
3837
3838 2006-08-11  Richard Guenther  <rguenther@suse.de>
3839
3840         PR middle-end/28651
3841         * simplify-rtx.c (simplify_const_relational_operation):
3842         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
3843         codes.
3844
3845 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
3846
3847         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
3848         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
3849
3850 2006-08-10  Paul Brook  <paul@codesourcery.com>
3851
3852         * final.c (final_scan_insn): Clear current_insn_predicate before
3853         outputting inline asm.
3854
3855 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
3856
3857         PR tree-optimization/26197
3858         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
3859         get_ref_base_and_extent and overlap_subvar to add only relevant
3860         subvars as may-aliases.
3861         (add_may_alias_for_new_tag): New function, factored out of
3862         new_type_alias.
3863         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
3864         with additional argument.
3865         * tree-flow.h (new_type_alias): Takes additional argument.
3866
3867 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
3868
3869         * gcov.c (no_data_file): New flag.
3870         (read_count_file): Set it if data file not present.  Assume counts
3871         zero if not found.
3872         (output_lines): Don't name the data file, if there wasn't one.
3873
3874 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
3875
3876         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
3877         (rs6000_generate_compare): Tweak comments.
3878         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
3879
3880 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
3881
3882         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
3883         (var_debug_decl): New function.
3884         (var_reg_set): Follow debug decl link.  Add location even if
3885         reg is already known to hold some other variable.
3886         (var_mem_set): Follow debug decl link.
3887         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
3888         decl link.  Delete other known locations of the variable part
3889         if requested.
3890         (var_reg_delete, var_mem_delete): Delete other known locations
3891         of the variable part if requested.
3892         (same_variable_part_p): New function.
3893         (add_stores): Select MO_COPY when appropriate.
3894         (vt_initialize): Handle it.
3895         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
3896         known locations for MO_SET and MO_CLOBBER.
3897         (find_variable_location_part): New function.
3898         (set_variable_part, delete_variable_part): Use it.
3899         (clobber_variable_part): New function.
3900         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
3901         decl link.
3902
3903 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
3904
3905         PR tree-optimization/26969
3906         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
3907         with an empty list of PHIs.
3908
3909 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
3910
3911         PR target/27827
3912
3913         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
3914         instructions.
3915
3916 2006-08-06  Andreas Schwab  <schwab@suse.de>
3917
3918         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
3919         string.  Whitespace and comment fixup.
3920
3921 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3922
3923         PR c/28502
3924         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
3925         argument.
3926
3927         PR c/27721
3928         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
3929
3930         PR c/28136
3931         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
3932
3933 2006-08-04  Jan Hubicka  <jh@suse.cz>
3934
3935         PR target/26655
3936         PR target/28270
3937         * reload.c (push_reload): Patch out the mismatching instruction;
3938         return early.
3939         (find_reload): Bail out if the instruction was patched out.
3940
3941 2006-08-04  Jan Hubicka  <jh@suse.cz>
3942
3943         PR tree-optimization/24888
3944         * tree-inline.c (expand_call_inline): Do not re-record variables.
3945         (declare_inline_vars): Add variable to unexpanded_var_list.
3946
3947 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3948             Roger Sayle  <roger@eyesopen.com>
3949
3950         PR rtl-optimization/26244
3951         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
3952         inner_const are negative or greater than or equal to the bitsize of
3953         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
3954         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
3955         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
3956         CONST0_RTX (mode) when the new shift count is greater than or equal to
3957         to the bitsize of the object being shifted and XEXP (y, 0) has no side
3958         effects.
3959
3960 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
3961
3962         * tree-cfg.c: Fix a comment typo.
3963
3964 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
3965
3966         PR c++/28148
3967         * varasm.c (output_constant): Give the front end another chance to
3968         expand constants, after stripping NOPs.
3969
3970 2006-08-03  Jan Hubicka  <jh@suse.cz>
3971
3972         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
3973         implementation.
3974
3975 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
3976
3977         PR tree-optimization/27770
3978         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
3979         declaration removed (moved to tree-flow.h).
3980         (vect_can_force_dr_alignment_p): Likewise.
3981         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
3982         (moved from tree-vectorizer.h).
3983         (vect_can_force_dr_alignment_p): Likewise.
3984         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
3985         from outside the vectorizer - in particular from cgraph stage.
3986         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
3987         the alignment of global arrays when -fsection-anchors is enabled.
3988         * cgraphunit.c (cgraph_increase_alignment): New function.
3989         (cgraph_optimize): Call cgraph_increase_alignment.
3990
3991 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
3992
3993         PR target/27566
3994         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
3995         not reload a SPE symbol_ref into a lo_sum address.
3996
3997 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
3998
3999         PR debug/28063
4000         * dwarf2out.c (prune_unused_types_prune): Move call to
4001         prune_unused_types_update_strings to cover the parent DIE also.
4002
4003 2006-08-02  Jan Hubicka  <jh@suse.cz>
4004
4005         PR gcov/profile/28480
4006         * tree-cfg.c (change_bb_for_stmt): New function.
4007         (tree_merge_blocks, tree_split_blocks): Use it.
4008
4009 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4010
4011         PR c++/28250
4012         PR c++/28257
4013         PR c++/28259
4014         PR c++/28267
4015         * toplev.c (compile_file): Return early on errorcount or sorrycount.
4016         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
4017         (cgraph_optimize): Likewise.
4018
4019 2006-08-01  Stuart Hastings  <stuart@apple.com>
4020
4021         * rtl.h (UINTVAL) New.
4022         * config/rs6000/rs6000.c (SMALL_INT) Use it.
4023         * testsuite/gcc.dg/20060801-1.c: New.
4024
4025 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
4026
4027         PR debug/23336
4028         * c-typeck.c (build_external_type): Mark used enum types.
4029         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
4030         cfun also.
4031         (gen_subprogram_die): Whitespace fix.
4032
4033 2006-08-01  Jan Hubicka  <jh@suse.cz>
4034
4035         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
4036         bitmap when not needed.
4037         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
4038         bitmaps.
4039
4040 2006-08-01  Dirk Mueller  <dmueller@suse.de>
4041
4042         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
4043
4044 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4045
4046         * Makefile.in: Revert part of previous patch:
4047         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
4048         and REGS_H.
4049
4050 2006-07-30  Eric Christopher  <echristo@apple.com>
4051
4052         PR target/27543
4053         * doc/extend.texi (i386 Variable Attributes): Add anchor.
4054         (PowerPC Variable Attributes): New section.
4055
4056 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
4057
4058         PR target/28126 (partial fix)
4059         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
4060
4061 2006-07-28  Jan Hubicka  <jh@suse.cz>
4062
4063         PR rtl-optimization/28071
4064         * cfgrtl.c (rtl_delete_block): Free regsets.
4065         * flow.c (allocate_bb_life_data): Re-use regsets if available.
4066
4067 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4068
4069         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
4070         and variables used in dependencies.
4071
4072 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
4073
4074         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
4075         %fs for -mcmodel=kernel.
4076         (stack_tls_protect_test_di): Likewise.