OSDN Git Service

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