OSDN Git Service

* config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
2
3         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
4         library paths.
5         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
6
7 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
8
9         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
10         the same as a minus without a shift.
11
12 2009-04-14  Nick Clifton  <nickc@redhat.com>
13
14         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
15         comparisons with small integers will always produce a short
16         branch.
17
18 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
19
20         Merge:
21
22         2008-12-19  Diego Novillo  <dnovillo@google.com>
23
24                 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
25
26 2000-04-14  Richard Guenther  <rguenther@suse.de>
27
28         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
29         verification.
30         (verify_gimple_assign_binary): Likewise.  Handle shifts and
31         rotates correctly.
32         (verify_gimple_phi): Print the mismatched argument position.
33         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
34         Fix types.
35         (vect_update_init_of_dr): Likewise.
36         * matrix-reorg.c (transform_access_sites): Do what the
37         comment suggests.
38         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
39
40 2009-04-13  Michael Eager <eager@eagercon.com>
41
42         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
43         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
44         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
45         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 
46         remove duplicate config
47
48 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
49
50         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
51         file_name:line_number type locator of the call site.
52         
53 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
54
55         * genautomata.c: Put blank after comma.
56         (automaton_decls): New.
57         (struct unit_usage): Add comments to member next.
58         (store_alt_unit_usage): Keep the list ordered.
59         (unit_present_on_list_p, equal_alternatives_p): New.
60         (check_regexp_units_distribution): Check units distribution
61         correctness correctly.
62         (main): Don't write automata if error is found.  Return correct
63         exit code.
64         
65         * config/m68k/cf.md (cfv4_ds): Remove.
66         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
67         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
68
69         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
70         power4-load-ext, power4-store, power4-store-update,
71         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
72         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
73         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
74         power4-sqrt, power4-isync): Modify reservation to make correct
75         unit distribution to automata.
76
77         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
78         power5-store-update, power5-two, power5-three, power5-lmul,
79         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
80         
81 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
82
83         * except.c (pass_set_nothrow_function_flags): Set name and add
84         TODO_dump_func.
85         (set_nothrow_function_flags): Mention in the dump file when
86         changing a function to nothrow.
87
88 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
89
90         PR/39066
91         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
92         instead of unsigned long.
93
94 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
95
96         * config/arm/arm.c (return_used_this_function): Remove.
97         (arm_output_function_prologue): Remove use of
98         return_used_this_function.
99         (output_return_instruction): Replace use of
100         return_used_this_function
101         by cfun->machine->return_used_this_function.
102         (arm_output_epilogue): Likewise.
103         (arm_output_function_epilogue): Likewise.
104         (thumb_unexpanded_epilogue): Likewise.
105         * config/arm/arm.h (struct machine_function):
106         New member return_used_this_function.
107
108 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
109
110         * doc/install.texi: Correct description of default directory for
111         --with-gxx-include-dir.
112
113 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
114
115         * fold-const.c (build_range_check): Properly deal with enumeral and
116         boolean base types.
117
118 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
119
120         * doc/invoke.texi (max_gcse_passes): Remove documentation.
121         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
122         * params.h (MAX_GCSE_PASSES): Remove.
123         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
124         in sequence.  Remove ability to run multiple passes.
125         (bypass_jumps): Report run as third CPROP pass.
126
127 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
128
129         PR middle-end/39651
130         * except.c (can_throw_external): Look at each insn in a SEQUENCE
131         when deciding whether the whole SEQUENCE can throw.
132
133 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
134
135         PR target/39740
136         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
137         offseted label references.
138
139 2009-04-11  Jan Hubicka  <jh@suse.cz>
140
141         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
142
143 2009-04-11  Richard Guenther  <rguenther@suse.de>
144
145         PR middle-end/39732
146         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
147         return variables as TREE_ADDRESSABLE.
148
149 2009-04-11  Richard Guenther  <rguenther@suse.de>
150
151         PR tree-optimization/39713
152         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
153         reference trees have SSA_NAME operands.
154
155 2009-04-11  Richard Guenther  <rguenther@suse.de>
156
157         PR c/39712
158         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
159         address expressions.
160
161 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
162
163         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
164         match changes in Cygwin 1.7
165         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
166         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
167
168 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
169
170         PR tree-optimization/39701
171         * doc/invoke.texi (Optimization Options): Document change in
172         meaning and initialization of -fdelete-null-pointer-checks.
173
174 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
175
176         PR middle-end/39701
177         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
178
179         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
180         here.
181
182         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
183
184 2009-04-10  Chao-ying Fu  <fu@mips.com>
185
186         * doc/tm.texi (Instruction Output): Document
187         TARGET_ASM_FINAL_POSTSCAN_INSN.
188         * target.h (final_postscan_insn): New field in asm_out.
189         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
190         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
191         * final.c (final_scan_insn): Call
192         targetm.asm_out.final_postscan_insn after outputting
193         an asm macro and a normal instruction.
194
195         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
196         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
197         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
198         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
199         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
200
201 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
202
203         PR middle-end/39701
204         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
205         variables as non-NULL even with -fdelete-null-pointer-checks.
206
207 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
208
209         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
210
211 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
212
213         PR target/39678
214         * config/i386/i386.c (classify_argument): Handle SCmode with
215         (bit_offset % 64) != 0.
216
217 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
218
219         * doc/invoke.texi (Optimize Options): Add cross-reference to
220         -Q --help=optimizers examples.
221
222 2009-04-10  Ben Elliston  <bje@au.ibm.com>
223
224         PR target/36800
225         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
226         regalign for the reg == fpr and TDmode case.
227
228 2009-04-09  David Ayers  <ayers@fsfe.org>
229
230         PR objc/29200
231         * objc/objc-act.c (warn_with_method): Remove helper function.
232         (check_duplicates): Call warning and inform directly.
233         (really_start_method): Likewise.
234
235 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
236
237         * expmed.c (expand_divmod): Always use a comparison for a division
238         by a large unsigned integer.
239
240         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
241         for things others than variables or functions as nonzero.
242
243 2009-04-09  Nick Clifton  <nickc@redhat.com>
244
245         * unwind-compat.c: Change copyright header to refer to version
246         3 of the GNU General Public License with version 3.1 of the
247         GCC Runtime Library Exception and to point readers at the
248         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
249         * config/alpha/crtfastmath.c: Likewise.
250         * config/alpha/linux-unwind.h: Likewise.
251         * config/alpha/qrnnd.asm: Likewise.
252         * config/alpha/vms-crt0-64.c: Likewise.
253         * config/alpha/vms-crt0.c: Likewise.
254         * config/alpha/vms-dwarf2.asm: Likewise.
255         * config/alpha/vms-dwarf2eh.asm: Likewise.
256         * config/alpha/vms-psxcrt0-64.c: Likewise.
257         * config/alpha/vms-psxcrt0.c: Likewise.
258         * config/alpha/vms_tramp.asm: Likewise.
259         * config/arc/initfini.c: Likewise.
260         * config/arc/lib1funcs.asm: Likewise.
261         * config/arm/bpabi-v6m.S: Likewise.
262         * config/arm/bpabi.S: Likewise.
263         * config/arm/bpabi.c: Likewise.
264         * config/arm/crti.asm: Likewise.
265         * config/arm/crtn.asm: Likewise.
266         * config/arm/ieee754-df.S: Likewise.
267         * config/arm/ieee754-sf.S: Likewise.
268         * config/arm/lib1funcs.asm: Likewise.
269         * config/arm/libunwind.S: Likewise.
270         * config/arm/linux-atomic.c: Likewise.
271         * config/arm/mmintrin.h: Likewise.
272         * config/arm/pr-support.c: Likewise.
273         * config/arm/unaligned-funcs.c: Likewise.
274         * config/arm/unwind-arm.c: Likewise.
275         * config/arm/unwind-arm.h: Likewise.
276         * config/avr/libgcc.S: Likewise.
277         * config/bfin/crti.s: Likewise.
278         * config/bfin/crtlibid.s: Likewise.
279         * config/bfin/crtn.s: Likewise.
280         * config/bfin/lib1funcs.asm: Likewise.
281         * config/bfin/linux-unwind.h: Likewise.
282         * config/cris/arit.c: Likewise.
283         * config/cris/cris_abi_symbol.c: Likewise.
284         * config/darwin-64.c: Likewise.
285         * config/darwin-crt2.c: Likewise.
286         * config/darwin-crt3.c: Likewise.
287         * config/darwin.h: Likewise.
288         * config/dbxelf.h: Likewise.
289         * config/dfp-bit.c: Likewise.
290         * config/dfp-bit.h: Likewise.
291         * config/elfos.h: Likewise.
292         * config/fixed-bit.c: Likewise.
293         * config/fixed-bit.h: Likewise.
294         * config/fp-bit.c: Likewise.
295         * config/fp-bit.h: Likewise.
296         * config/fr30/crti.asm: Likewise.
297         * config/fr30/crtn.asm: Likewise.
298         * config/fr30/lib1funcs.asm: Likewise.
299         * config/freebsd-spec.h: Likewise.
300         * config/frv/cmovd.c: Likewise.
301         * config/frv/cmovh.c: Likewise.
302         * config/frv/cmovw.c: Likewise.
303         * config/frv/frvbegin.c: Likewise.
304         * config/frv/frvend.c: Likewise.
305         * config/frv/lib1funcs.asm: Likewise.
306         * config/glibc-stdint.h: Likewise.
307         * config/h8300/clzhi2.c: Likewise.
308         * config/h8300/crti.asm: Likewise.
309         * config/h8300/crtn.asm: Likewise.
310         * config/h8300/ctzhi2.c: Likewise.
311         * config/h8300/fixunssfsi.c: Likewise.
312         * config/h8300/lib1funcs.asm: Likewise.
313         * config/h8300/parityhi2.c: Likewise.
314         * config/h8300/popcounthi2.c: Likewise.
315         * config/i386/ammintrin.h: Likewise.
316         * config/i386/att.h: Likewise.
317         * config/i386/avxintrin.h: Likewise.
318         * config/i386/biarch64.h: Likewise.
319         * config/i386/bmmintrin.h: Likewise.
320         * config/i386/cpuid.h: Likewise.
321         * config/i386/cross-stdarg.h: Likewise.
322         * config/i386/crtfastmath.c: Likewise.
323         * config/i386/crtprec.c: Likewise.
324         * config/i386/cygming-crtbegin.c: Likewise.
325         * config/i386/cygming-crtend.c: Likewise.
326         * config/i386/cygwin.asm: Likewise.
327         * config/i386/emmintrin.h: Likewise.
328         * config/i386/gmm_malloc.h: Likewise.
329         * config/i386/gthr-win32.c: Likewise.
330         * config/i386/i386.h: Likewise.
331         * config/i386/immintrin.h: Likewise.
332         * config/i386/linux-unwind.h: Likewise.
333         * config/i386/linux64.h: Likewise.
334         * config/i386/mm3dnow.h: Likewise.
335         * config/i386/mmintrin-common.h: Likewise.
336         * config/i386/mmintrin.h: Likewise.
337         * config/i386/nmmintrin.h: Likewise.
338         * config/i386/pmm_malloc.h: Likewise.
339         * config/i386/pmmintrin.h: Likewise.
340         * config/i386/smmintrin.h: Likewise.
341         * config/i386/sol2-c1.asm: Likewise.
342         * config/i386/sol2-ci.asm: Likewise.
343         * config/i386/sol2-cn.asm: Likewise.
344         * config/i386/sol2-gc1.asm: Likewise.
345         * config/i386/tmmintrin.h: Likewise.
346         * config/i386/unix.h: Likewise.
347         * config/i386/w32-unwind.h: Likewise.
348         * config/i386/wmmintrin.h: Likewise.
349         * config/i386/x86-64.h: Likewise.
350         * config/i386/x86intrin.h: Likewise.
351         * config/i386/xmmintrin.h: Likewise.
352         * config/ia64/crtbegin.asm: Likewise.
353         * config/ia64/crtend.asm: Likewise.
354         * config/ia64/crtfastmath.c: Likewise.
355         * config/ia64/crti.asm: Likewise.
356         * config/ia64/crtn.asm: Likewise.
357         * config/ia64/fde-glibc.c: Likewise.
358         * config/ia64/lib1funcs.asm: Likewise.
359         * config/ia64/linux-unwind.h: Likewise.
360         * config/ia64/quadlib.c: Likewise.
361         * config/ia64/unwind-ia64.c: Likewise.
362         * config/linux.h: Likewise.
363         * config/m32c/m32c-lib1.S: Likewise.
364         * config/m32c/m32c-lib2-trapv.c: Likewise.
365         * config/m32c/m32c-lib2.c: Likewise.
366         * config/m32r/initfini.c: Likewise.
367         * config/m68hc11/larith.asm: Likewise.
368         * config/m68hc11/m68hc11-crt0.S: Likewise.
369         * config/m68k/cf.md: Likewise.
370         * config/m68k/crti.s: Likewise.
371         * config/m68k/crtn.s: Likewise.
372         * config/m68k/lb1sf68.asm: Likewise.
373         * config/m68k/linux-unwind.h: Likewise.
374         * config/mcore/crti.asm: Likewise.
375         * config/mcore/crtn.asm: Likewise.
376         * config/mcore/lib1.asm: Likewise.
377         * config/mips/linux-unwind.h: Likewise.
378         * config/mips/loongson.h: Likewise.
379         * config/mips/mips16.S: Likewise.
380         * config/mmix/crti.asm: Likewise.
381         * config/mmix/crtn.asm: Likewise.
382         * config/pa/fptr.c: Likewise.
383         * config/pa/hpux-unwind.h: Likewise.
384         * config/pa/lib2funcs.asm: Likewise.
385         * config/pa/linux-atomic.c: Likewise.
386         * config/pa/linux-unwind.h: Likewise.
387         * config/pa/milli64.S: Likewise.
388         * config/pa/quadlib.c: Likewise.
389         * config/pa/stublib.c: Likewise.
390         * config/picochip/libgccExtras/adddi3.asm: Likewise.
391         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
392         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
393         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
394         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
395         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
396         * config/picochip/libgccExtras/divmod15.asm: Likewise.
397         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
398         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
399         * config/picochip/libgccExtras/longjmp.asm: Likewise.
400         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
401         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
402         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
403         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
404         * config/picochip/libgccExtras/setjmp.asm: Likewise.
405         * config/picochip/libgccExtras/subdi3.asm: Likewise.
406         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
407         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
408         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
409         * config/rs6000/750cl.h: Likewise.
410         * config/rs6000/altivec.h: Likewise.
411         * config/rs6000/biarch64.h: Likewise.
412         * config/rs6000/crtresfpr.asm: Likewise.
413         * config/rs6000/crtresgpr.asm: Likewise.
414         * config/rs6000/crtresxfpr.asm: Likewise.
415         * config/rs6000/crtresxgpr.asm: Likewise.
416         * config/rs6000/crtsavfpr.asm: Likewise.
417         * config/rs6000/crtsavgpr.asm: Likewise.
418         * config/rs6000/darwin-asm.h: Likewise.
419         * config/rs6000/darwin-fallback.c: Likewise.
420         * config/rs6000/darwin-fpsave.asm: Likewise.
421         * config/rs6000/darwin-ldouble.c: Likewise.
422         * config/rs6000/darwin-tramp.asm: Likewise.
423         * config/rs6000/darwin-unwind.h: Likewise.
424         * config/rs6000/darwin-vecsave.asm: Likewise.
425         * config/rs6000/darwin-world.asm: Likewise.
426         * config/rs6000/e500crtres32gpr.asm: Likewise.
427         * config/rs6000/e500crtres64gpr.asm: Likewise.
428         * config/rs6000/e500crtres64gprctr.asm: Likewise.
429         * config/rs6000/e500crtrest32gpr.asm: Likewise.
430         * config/rs6000/e500crtrest64gpr.asm: Likewise.
431         * config/rs6000/e500crtresx32gpr.asm: Likewise.
432         * config/rs6000/e500crtresx64gpr.asm: Likewise.
433         * config/rs6000/e500crtsav32gpr.asm: Likewise.
434         * config/rs6000/e500crtsav64gpr.asm: Likewise.
435         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
436         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
437         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
438         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
439         * config/rs6000/eabi-ci.asm: Likewise.
440         * config/rs6000/eabi-cn.asm: Likewise.
441         * config/rs6000/eabi.asm: Likewise.
442         * config/rs6000/linux-unwind.h: Likewise.
443         * config/rs6000/linux64.h: Likewise.
444         * config/rs6000/paired.h: Likewise.
445         * config/rs6000/paired.md: Likewise.
446         * config/rs6000/ppc64-fp.c: Likewise.
447         * config/rs6000/ppu_intrinsics.h: Likewise.
448         * config/rs6000/rs6000.h: Likewise.
449         * config/rs6000/si2vmx.h: Likewise.
450         * config/rs6000/sol-ci.asm: Likewise.
451         * config/rs6000/sol-cn.asm: Likewise.
452         * config/rs6000/spe.h: Likewise.
453         * config/rs6000/spu2vmx.h: Likewise.
454         * config/rs6000/sysv4.h: Likewise.
455         * config/rs6000/tramp.asm: Likewise.
456         * config/rs6000/vec_types.h: Likewise.
457         * config/s390/linux-unwind.h: Likewise.
458         * config/s390/tpf-unwind.h: Likewise.
459         * config/score/crti.asm: Likewise.
460         * config/score/crtn.asm: Likewise.
461         * config/sh/crt1.asm: Likewise.
462         * config/sh/crti.asm: Likewise.
463         * config/sh/crtn.asm: Likewise.
464         * config/sh/divtab-sh4-300.c: Likewise.
465         * config/sh/divtab-sh4.c: Likewise.
466         * config/sh/divtab.c: Likewise.
467         * config/sh/lib1funcs-4-300.asm: Likewise.
468         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
469         * config/sh/lib1funcs.asm: Likewise.
470         * config/sh/lib1funcs.h: Likewise.
471         * config/sh/linux-atomic.asm: Likewise.
472         * config/sh/linux-unwind.h: Likewise.
473         * config/sh/shmedia.h: Likewise.
474         * config/sh/sshmedia.h: Likewise.
475         * config/sh/ushmedia.h: Likewise.
476         * config/sparc/crtfastmath.c: Likewise.
477         * config/sparc/linux-unwind.h: Likewise.
478         * config/sparc/sol2-c1.asm: Likewise.
479         * config/sparc/sol2-ci.asm: Likewise.
480         * config/sparc/sol2-cn.asm: Likewise.
481         * config/spu/divmodti4.c: Likewise.
482         * config/spu/divv2df3.c: Likewise.
483         * config/spu/float_disf.c: Likewise.
484         * config/spu/float_unsdidf.c: Likewise.
485         * config/spu/float_unsdisf.c: Likewise.
486         * config/spu/float_unssidf.c: Likewise.
487         * config/spu/mfc_multi_tag_release.c: Likewise.
488         * config/spu/mfc_multi_tag_reserve.c: Likewise.
489         * config/spu/mfc_tag_release.c: Likewise.
490         * config/spu/mfc_tag_reserve.c: Likewise.
491         * config/spu/mfc_tag_table.c: Likewise.
492         * config/spu/multi3.c: Likewise.
493         * config/spu/spu_internals.h: Likewise.
494         * config/spu/spu_intrinsics.h: Likewise.
495         * config/spu/spu_mfcio.h: Likewise.
496         * config/spu/vec_types.h: Likewise.
497         * config/spu/vmx2spu.h: Likewise.
498         * config/stormy16/stormy16-lib2.c: Likewise.
499         * config/svr4.h: Likewise.
500         * config/sync.c: Likewise.
501         * config/v850/lib1funcs.asm: Likewise.
502         * config/vxlib-tls.c: Likewise.
503         * config/vxlib.c: Likewise.
504         * config/vxworks-dummy.h: Likewise.
505         * config/xtensa/crti.asm: Likewise.
506         * config/xtensa/crtn.asm: Likewise.
507         * config/xtensa/ieee754-df.S: Likewise.
508         * config/xtensa/ieee754-sf.S: Likewise.
509         * config/xtensa/lib1funcs.asm: Likewise.
510         * config/xtensa/lib2funcs.S: Likewise.
511         * config/xtensa/linux-unwind.h: Likewise.
512         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
513         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
514         * coretypes.h: Likewise.
515         * crtstuff.c: Likewise.
516         * defaults.h: Likewise.
517         * dwarf2.h: Likewise.
518         * emutls.c: Likewise.
519         * gbl-ctors.h: Likewise.
520         * gcov-io.h: Likewise.
521         * ginclude/float.h: Likewise.
522         * ginclude/iso646.h: Likewise.
523         * ginclude/stdarg.h: Likewise.
524         * ginclude/stdbool.h: Likewise.
525         * ginclude/stddef.h: Likewise.
526         * ginclude/stdfix.h: Likewise.
527         * ginclude/stdint-gcc.h: Likewise.
528         * ginclude/tgmath.h: Likewise.
529         * gthr-aix.h: Likewise.
530         * gthr-dce.h: Likewise.
531         * gthr-gnat.c: Likewise.
532         * gthr-gnat.h: Likewise.
533         * gthr-lynx.h: Likewise.
534         * gthr-mipssde.h: Likewise.
535         * gthr-nks.h: Likewise.
536         * gthr-posix.c: Likewise.
537         * gthr-posix.h: Likewise.
538         * gthr-posix95.h: Likewise.
539         * gthr-rtems.h: Likewise.
540         * gthr-single.h: Likewise.
541         * gthr-solaris.h: Likewise.
542         * gthr-tpf.h: Likewise.
543         * gthr-vxworks.h: Likewise.
544         * gthr-win32.h: Likewise.
545         * gthr.h: Likewise.
546         * libgcc2.c: Likewise.
547         * libgcc2.h: Likewise.
548         * libgcov.c: Likewise.
549         * tsystem.h: Likewise.
550         * typeclass.h: Likewise.
551         * unwind-c.c: Likewise.
552         * unwind-compat.h: Likewise.
553         * unwind-dw2-fde-compat.c: Likewise.
554         * unwind-dw2-fde-darwin.c: Likewise.
555         * unwind-dw2-fde-glibc.c: Likewise.
556         * unwind-dw2-fde.c: Likewise.
557         * unwind-dw2-fde.h: Likewise.
558         * unwind-dw2.c: Likewise.
559         * unwind-dw2.h: Likewise.
560         * unwind-generic.h: Likewise.
561         * unwind-pe.h: Likewise.
562         * unwind-sjlj.c: Likewise.
563         * unwind.inc: Likewise.
564         * config/arm/neon-gen.ml: Change generated copyright header to
565         refer to version 3 of the GNU General Public License with
566         version 3.1 of the GCC Runtime Library Exception and to point
567         readers at the COPYING3 and COPYING3.RUNTIME files and the
568         FSF's license web page.
569         * config/arm/arm_neon.h: Regenerate.
570
571 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
572
573         * config/cris/cris.md: Change copyright header to refer to version
574         3 of the GNU General Public License.
575         * doc/install.texi2html: Change copyright header to refer to version
576         3 of the GNU General Public License and to point readers at the
577         COPYING3 file and the FSF's license web page.
578         * config/vax/linux.h: Likewise.
579
580 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
581
582         * config/i386/i386.md (cmpcc): New.
583         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
584         (sync_compare_and_swap_cc*): Delete.
585
586         * config/s390/s390.c (s390_compare_emitted): Remove.
587         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
588         s390_compare_emitted used to be handled.  Assert that modes match.
589         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
590         refer to sync_compare_and_swap_ccsi.
591         * config/s390/s390.h (s390_compare_emitted): Remove.
592         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
593         instead of s390_compare_emitted.
594         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
595         instead of s390_compare_emitted.
596         * config/s390/s390.md (cmpcc): New.
597         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
598         CC_REGNUM, do not pretend it's set.
599         (sync_compare_and_swap_cc*): Delete.
600         * config/s390/predicates.md (cc_reg_operand): New.
601
602         * expr.c (sync_compare_and_swap_cc): Delete.
603         * optabs.h (sync_compare_and_swap_cc): Delete.
604         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
605         is being used with can_compare_p.
606         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
607         (find_cc_set): New.
608         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
609         look for a MODE_CC set instead.  Use emit_store_flag.
610         (expand_compare_and_swap_loop): Likewise, with some additional
611         complication to avoid a force_reg when useless.  Use
612         emit_cmp_and_jump_insns.
613         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
614         * doc/md.texi (sync_compare_and_swap_cc): Merge with
615         sync_compare_and_swap documentation.
616
617 2009-04-09  Jan Hubicka  <jh@suse.cz>
618
619         * except.c (find_prev_try): Break out from ....
620         (duplicate_eh_regions): ... here; properly update prev_try pointers
621         when duplication part of tree.
622         (dump_eh_tree): Improve dumping.
623         (verify_eh_region): New.
624         (verify_eh_tree): Use it.
625
626 2009-04-06  Richard Guenther  <rguenther@suse.de>
627
628         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
629         &ARRAY addresses by adjusting their types and prepending
630         a conversion.
631         * tree-cfg.c (verify_gimple_assign_single): Verify that
632         addresses are correct.
633
634 2009-04-09  Richard Guenther  <rguenther@suse.de>
635
636         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
637         indices into an array reference if possible.
638         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
639         Fold POINTER_PLUS_EXPR statements with invariant address.
640
641 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
642
643         PR target/39634
644         * config.gcc (powerpc64-*-linux*): Always build biarch.
645
646 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
647
648         PR c/39613
649         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
650         it and pedwarn if this results in an INTEGER_CST.
651
652 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
653
654         * doc/install.texi: Update minimum GMP version.  Remove obsolete
655         text in MPFR section.
656
657 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
658
659         * dwarf2out.c (class_scope_p): New static inline.
660         (class_or_namespace_scope_p): Use it.
661         (gen_variable_die): Use DW_TAG_member tag for static data member
662         declarations instead of DW_TAG_variable.
663
664         PR middle-end/39573
665         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
666         variables.
667
668 2009-04-08  Richard Guenther  <rguenther@suse.de>
669
670         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
671         valueize random data.
672
673 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
674
675         * config.gcc (aix tm_file):  Add aix-stdint.h.
676         (aix tm clause use_gcc_stdint):  Set to wrap.
677         * config/rs6000/aix-stdint.h:  New file.
678         
679 2009-04-08  Richard Guenther  <rguenther@suse.de>
680
681         PR middle-end/36291
682         * tree-dfa.c (add_referenced_var): Do not recurse into
683         global initializers.
684         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
685         exposed variables.
686         (fold_const_aggregate_ref): Likewise.
687
688 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
689
690         * recog.c (ordered_comparison_operator): New.
691         * gensupport.c (std_preds): Add it.
692         * doc/md.texi (Machine-Independent Predicates): Document it.
693
694 2009-04-08  Jan Hubicka  <jh@suse.cz>
695
696         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
697         * function.h (rtl_eh): Remove exception_handler_label_map.
698         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
699         remove_exception_handler_label, for_each_eh_label_1): Remove.
700         (rtl_remove_unreachable_regions): Remove.
701         (convert_from_eh_region_ranges): Do not remove unreachable regions.
702         (find_exception_handler_labels): Don't build the hashtable.
703         (maybe_remove_eh_handler): Remove.
704         (for_each_eh_label): Rewrite to walk the tree.
705         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
706         * except.h (maybe_remove_eh_handler): Remove.
707         * passes.c (init_optimization_passes): Schedule second EH cleanup
708         before out-of-ssa.
709         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
710         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
711
712 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
713
714         * genoutput.c (validate_optab_operands): New.
715         (gen_insn, gen_expand): Call it.
716
717         * genflags.c (gen_insn): Detect misused iterators.
718         (main): Pass line_no to gen_insn, exit with status 1 on error.
719
720         * genextract.c (line_no): Make global.
721         (VEC_safe_set_locstr): Change assertion to error message.
722         (main): Exit with status 1 on error.
723
724 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
725
726         PR c/39614
727         PR c/39673
728         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
729         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
730         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
731         * c-convert.c (convert): Do not call fold on results of conversion
732         functions when the result is a C_MAYBE_CONST_EXPR.
733         * c-parser.c (c_parser_postfix_expression): Do not fold condition
734         of __builtin_choose_expr.
735         * c-typeck.c (remove_c_maybe_const_expr): New.
736         (build_unary_op, build_conditional_expr, build_compound_expr,
737         build_binary_op, c_objc_common_truthvalue_conversion): Call
738         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
739         integer operands.
740
741 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
742
743         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
744         CODE to produce a new one. Add a prototype to use fold_convert_const
745
746 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
747
748         PR bootstrap/39660
749         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
750         mix declarations and code.
751
752 2009-04-08  Ben Elliston  <bje@au.ibm.com>
753
754         * gcc.c: Replace `CC' with `GCC' throughout.
755
756 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
757
758         * doc/invoke.texi: Document Atom support.
759
760 2009-04-07  Jason Merrill  <jason@redhat.com>
761
762         PR c++/25185
763         * c-common.h, c-common.c: Add flag_pretty_templates.
764         * c-opts.c (c_common_handle_option): Set it.
765         * c.opt: Add -fno-pretty-templates.
766         * doc/invoke.texi (C++ Dialect Options): Likewise.
767
768 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
769
770         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
771         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
772         (ia64_expand_builtin): Likewise.
773
774 2009-04-07  Martin Jambor  <mjambor@suse.cz>
775
776         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
777         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
778         ADDR_EXPRS are include too.
779
780 2009-04-07  Richard Guenther  <rguenther@suse.de>
781
782         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
783         decls are only used if passes as parameters or if they are
784         local statics and the call is not to a builtin.
785         (call_may_clobber_ref_p_1): Likewise.
786
787 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
788
789         * expr.c (do_store_flag): Remove last argument.  Simplify code
790         to avoid duplication of tests already done by can_compare_p.
791         (expand_expr_real_1): Adjust caller.
792
793 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
794
795         * optabs.c (can_compare_p): Test the predicate of a
796         cbranch and cstore pattern.
797
798 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
799
800         * expr.c (convert_move): Use emit_store_flag instead of
801         "emulating" it.
802
803 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
804
805         * config/i386/i386.c (ix86_compare_emitted): Remove.
806         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
807         ix86_compare_op0 like ix86_compare_emitted used to be handled.
808         * config/i386/i386.h (ix86_compare_emitted): Remove.
809         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
810         instead of ix86_compare_emitted.
811         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
812
813 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
814
815         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
816         Add t-sysroot-suffix to tmake_file.
817         * config/print-sysroot-suffix.sh: New file.
818         * config/t-sysroot-suffix: New file.
819
820 2009-04-07  Ben Elliston  <bje@au.ibm.com>
821
822         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
823         as the latter produces a warning when the target does not support
824         infinity.
825
826 2009-04-07  Ben Elliston  <bje@au.ibm.com>
827
828         * dfp.c: Replace type punning assignments with memcpy throughout.
829         * Makefile.in (dfp.o-warn): Remove.
830         
831 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
832
833         PR target/39634
834         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
835         Include soft-fp/t-softfp after rs6000/t-linux64.
836
837 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
838
839         * stor-layout.c (set_sizetype): Use the full precision of their
840         machine mode for bitsize types.
841
842 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
843
844         * config/i386/i386.md: Revert 2 accidental checkins.
845
846 2009-04-06  Joey Ye  <joey.ye@intel.com>
847             Xuepeng Guo <xuepeng.guo@intel.com>
848             H.J. Lu  <hongjiu.lu@intel.com>
849
850         Atom pipeline model, tuning and insn selection.
851         * config.gcc (atom): Add atom config options and target.
852
853         * config/i386/atom.md: New.
854
855         * config/i386/i386.c (atom_cost): New cost.
856         (m_ATOM): New macro flag.
857         (initial_ix86_tune_features): Set m_ATOM.
858         (x86_accumulate_outgoing_args): Likewise.
859         (x86_arch_always_fancy_math_387): Likewise.
860         (processor_target): Add Atom cost.
861         (cpu_names): Add Atom cpu name.
862         (override_options): Set Atom ISA.
863         (ix86_issue_rate): New case PROCESSOR_ATOM.
864         (ix86_adjust_cost): Likewise.
865
866         * config/i386/i386.h (TARGET_ATOM): New target macro.
867         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
868         (TARGET_OPT_AGU): New target option.
869         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
870         (processor_type): Add PROCESSOR_ATOM.
871
872         * config/i386/i386.md (cpu): Add new value "atom".
873         (use_carry, movu): New attr.
874         (atom.md): Include atom.md.
875         (adddi3_carry_rex64): Set attr "use_carry".
876         (addqi3_carry): Likewise.
877         (addhi3_carry): Likewise.
878         (addsi3_carry): Likewise.
879         (*addsi3_carry_zext): Likewise.
880         (subdi3_carry_rex64): Likewise.
881         (subqi3_carry): Likewise.
882         (subhi3_carry): Likewise.
883         (subsi3_carry): Likewise.
884         (x86_movdicc_0_m1_rex64): Likewise.
885         (*x86_movdicc_0_m1_se): Likewise.
886         (x86_movsicc_0_m1): Likewise.
887         (*x86_movsicc_0_m1_se): Likewise.
888         (*adddi_1_rex64): Emit add insn as much as possible.
889         (*addsi_1): Likewise.
890         (return_internal): Set atom_unit.
891         (return_internal_long): Likewise.
892         (return_pop_internal): Likewise.
893         (*rcpsf2_sse): Set atom_sse_attr attr.
894         (*qrt<mode>2_sse): Likewise.
895         (*prefetch_sse): Likewise.
896
897         * config/i386/i386-c.c (ix86_target_macros_internal): New case
898         PROCESSOR_ATOM.
899         (ix86_target_macros_internal): Likewise.
900
901         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
902         (*prefetch_sse_rex): Likewise.
903         (sse_rcpv4sf2): Likewise.
904         (sse_vmrcpv4sf2): Likewise.
905         (sse_sqrtv4sf2): Likewise.
906         (<sse>_vmsqrt<mode>2): Likewise.
907         (sse_ldmxcsr): Likewise.
908         (sse_stmxcsr): Likewise.
909         (*sse_sfence): Likewise.
910         (sse2_clflush): Likewise.
911         (*sse2_mfence): Likewise.
912         (*sse2_lfence): Likewise.
913         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
914         (<sse>_movup<ssemodesuffixf2c>): Likewise.
915         (avx_movdqu<avxmodesuffix>): Likewise.
916         (avx_lddqu<avxmodesuffix>): Likewise.
917         (sse2_movntv2di): Change attr "type" to "ssemov".
918         (sse2_movntsi): Likewise.
919         (rsqrtv8sf2): Change attr "type" to "sseadd".
920         (sse3_addsubv2df3): Set attr "atom_unit".
921         (sse3_h<plusminus_insn>v4sf3): Likewise.
922         (*sse2_pmaddwd): Likewise.
923         (*vec_extractv2di_1_rex64): Likewise.
924         (*vec_extractv2di_1_avx): Likewise.
925         (sse2_psadbw): Likewise.
926         (ssse3_phaddwv8hi3): Likewise.
927         (ssse3_phaddwv4hi3): Likewise.
928         (ssse3_phadddv4si3): Likewise.
929         (ssse3_phadddv2si3): Likewise.
930         (ssse3_phaddswv8hi3): Likewise.
931         (ssse3_phaddswv4hi3): Likewise.
932         (ssse3_phsubwv8hi3): Likewise.
933         (ssse3_phsubwv4hi3): Likewise.
934         (ssse3_phsubdv4si3): Likewise.
935         (ssse3_phsubdv2si3): Likewise.
936         (ssse3_phsubswv8hi3): Likewise.
937         (ssse3_phsubswv4hi3): Likewise.
938         (ssse3_pmaddubsw128): Likewise.
939         (sse3_pmaddubsw: Likewise.
940         (ssse3_palignrti): Likewise.
941         (ssse3_palignrdi): Likewise.
942
943 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
944
945         * doc/install.texi (Specific): Fix two cross-references to MinGW.
946
947 2009-04-06  Richard Guenther  <rguenther@suse.de>
948
949         PR tree-optimization/28868
950         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
951         of which PHI results we inserted.
952         (insert_into_preds_of_block): Record inserted PHIs.
953         (eliminate): Eliminate redundant PHI nodes.
954         (init_pre): Init inserted_phi_names.
955
956 2009-04-06  Richard Guenther  <rguenther@suse.de>
957
958         PR tree-optimization/39643
959         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
960         IMAGPART_EXPRs of complex constants.
961         (execute_fold_all_builtins): If we folded a call queue
962         TODO_update_address_taken.
963
964 2009-04-06  Jan Hubicka  <jh@suse.cz>
965
966         PR middle-end/39659
967         * except.c (remove_unreachable_regions): Propagate may_contain_throw
968         flag.
969
970 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
971
972         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
973         delay slot.
974         (ic_invalidate_array): Likewise.
975
976 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
977
978         * calls.c (emit_library_call_value_1): Fix a problem with parameter
979         alignment for library calls.
980
981 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
982
983         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
984         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
985         * config/i386/mingw-stdint.h:  New file.
986
987 2009-04-05  Richard Guenther  <rguenther@suse.de>
988
989         PR tree-optimization/39648
990         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
991         our &A vs. &A[0] IL deficiencies.
992
993 2009-04-04  Jan Hubicka  <jh@suse.cz>
994
995         * except.c (sjlj_find_directly_reachable_regions): Be ready for
996         removed toplevel regions.
997         (sjlj_mark_call_sites): Likewise.
998
999 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
1000
1001         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
1002         (cygwin tm clause use_gcc_stdint):  Set to wrap.
1003         * config/i386/cygwin-stdint.h:  New file.
1004
1005 2009-04-04  Richard Guenther  <rguenther@suse.de>
1006
1007         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
1008         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
1009         single-argument PHIs if we are in loop-closed SSA form.
1010         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
1011         for the pre-condition.
1012         (slpeel_tree_peel_loop_to_edge): Likewise.
1013         (vect_build_loop_niters): Take an optional sequence to append stmts.
1014         (vect_generate_tmps_on_preheader): Likewise.
1015         (vect_do_peeling_for_loop_bound): Take extra guards for the
1016         pre-condition.
1017         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
1018         the cost model check.
1019         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
1020         guards if we are going to peel.  Do not apply versioning in that case.
1021         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
1022         (vect_do_peeling_for_loop_bound): Likewise.
1023         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
1024         loop bound only record extra pre-conditions, do not apply loop
1025         versioning.
1026
1027 2009-04-04  Richard Guenther  <rguenther@suse.de>
1028
1029         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
1030         renaming code.
1031
1032 2009-04-04  Jan Hubicka  <jh@suse.cz>
1033
1034         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
1035         last_basic_block for size of bb->index indexed array.
1036         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
1037         compute_out, link_btr_uses, build_btr_def_use_webs,
1038         build_btr_def_use_webs, migrate_btr_defs): Likewise.
1039
1040 2009-04-04  Jan Hubicka  <jh@suse.cz>
1041
1042         * except.c (remove_eh_handler_and_replace): Break out from ...
1043         (remove_eh_handler): ... here.
1044         (bring_to_root): New function.
1045         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
1046         handled ones, bring others to root of tree.
1047
1048 2009-04-04  Jan Hubicka  <jh@suse.cz>
1049
1050         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
1051         (all_phis_safe_to_merge): New function.
1052         (update_info): New structure.
1053         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
1054         (cleanup_empty_eh): Update SSA if possible.
1055
1056 2009-04-04  Richard Guenther  <rguenther@suse.de>
1057
1058         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
1059         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
1060         (append_vuse): Likewise.
1061
1062 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
1063
1064         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
1065         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
1066         instead of REG_UNSAVED for DW_CFA_undefined.
1067         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
1068         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
1069         outermost frame.
1070
1071 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
1072
1073         PR target/39501
1074         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
1075         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
1076         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
1077
1078 2009-04-04  Richard Guenther  <rguenther@suse.de>
1079
1080         PR tree-optimization/8781
1081         PR tree-optimization/37892
1082         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
1083         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
1084         (valueize_refs): Call it for *& valueizations.
1085         (shared_reference_ops_from_ref): Rename to ...
1086         (valueize_shared_reference_ops_from_ref): ... this and valueize.
1087         (shared_reference_ops_from_call): Rename to ...
1088         (valueize_shared_reference_ops_from_call): ... this and valueize.
1089         (vn_reference_lookup): Update.
1090         (visit_reference_op_call): Likewise.
1091         * tree-ssa-pre.c (phi_translate_1): Fold *&.
1092         (eliminate): Value-replace the call address in call statements.
1093
1094 2009-04-04  Richard Guenther  <rguenther@suse.de>
1095
1096         PR tree-optimization/39636
1097         * tree-ssa-forwprop.c
1098         (forward_propagate_addr_into_variable_array_index): Check for
1099         GIMPLE_ASSIGN before accessing the rhs code.
1100
1101 2009-04-03  Jason Merrill  <jason@redhat.com>
1102
1103         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
1104
1105 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
1106
1107         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
1108         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
1109         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
1110         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
1111         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
1112         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
1113         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
1114         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
1115         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
1116         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
1117         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
1118         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
1119         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
1120         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
1121         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
1122         Use fr_reg_or_fp01_operand instead of fr_register_operand
1123
1124         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
1125         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
1126         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
1127
1128 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
1129
1130         PR rtl-optimization/39607
1131         PR rtl-optimization/39631
1132
1133         Revert:
1134         
1135         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1136         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1137         instead of DF_LR_OUT.
1138         * ira-lives.c (process_bb_node_lives): Ditto.
1139         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1140         instead of DF_LR_{OUT,IN}.
1141         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1142         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1143
1144 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
1145
1146         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
1147         (execute_lower_omp): Always run but take the short way out if -fopenmp
1148         is not given.
1149         (gate_lower_omp): Remove, forcing the pass manager to always run the
1150         pass and always set PROP_gimple_lomp.
1151         (pass_lower_omp): Remove gate function.
1152         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
1153         PROP_trees.  Instead, require it.
1154         * ipa-cp.c (pass_ipa_cp): Likewise.
1155         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
1156         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
1157         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
1158         and PROP_gimple_leh.
1159
1160 2009-04-03  Richard Guenther  <rguenther@suse.de>
1161
1162         PR middle-end/13146
1163         PR tree-optimization/23940
1164         PR tree-optimization/33237
1165         PR middle-end/33974
1166         PR middle-end/34093
1167         PR tree-optimization/36201
1168         PR tree-optimization/36230
1169         PR tree-optimization/38049
1170         PR tree-optimization/38207
1171         PR tree-optimization/38230
1172         PR tree-optimization/38301
1173         PR tree-optimization/38585
1174         PR middle-end/38895
1175         PR tree-optimization/38985
1176         PR tree-optimization/39299
1177         * tree-ssa-structalias.h: Remove.
1178         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
1179         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
1180         (struct vuse_element_d): Remove.
1181         (struct vuse_vec_d): Likewise.
1182         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
1183         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
1184         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
1185         VUSE_ELEMENT_VAR): Likewise.
1186         (struct voptype_d): Likewise.
1187         (NUM_VOP_FREE_BUCKETS): Likewise.
1188         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
1189         (struct stmt_operands_d): Remove.
1190         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
1191         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
1192         VDEF_NUM, VDEF_VECT): Likewise.
1193         (copy_virtual_operands): Remove.
1194         (operand_build_cmp): Likewise.
1195         (create_ssa_artificial_load_stmt): Likewise.
1196         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
1197         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
1198         vuse_index and mayuse_index members.  Pack and move done and iter_type
1199         members to the front.
1200         (SSA_OP_VMAYUSE): Remove.
1201         (SSA_OP_VIRTUAL_USES): Adjust.
1202         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
1203         (unlink_stmt_vdef): Declare.
1204         (add_to_addressable_set): Remove.
1205         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
1206         (vrp_visit_stmt): Likewise.
1207         * doc/tree-ssa.texi (Alias analysis): Update.
1208         * doc/invoke.texi (max-aliased-vops): Remove docs.
1209         (avg-aliased-vops): Likewise.
1210         * tree-into-ssa.c (syms_to_rename): Remove.
1211         (need_to_update_vops_p): Likewise.
1212         (need_to_initialize_update_ssa_p): Rename to ...
1213         (update_ssa_initialized_fn): ... this.  Track function we are
1214         initialized for.
1215         (symbol_marked_for_renaming): Simplify.
1216         (add_new_name_mapping): Do not set need_to_update_vops_p.
1217         (dump_currdefs): Use SYMS_TO_RENAME.
1218         (rewrite_update_stmt): Always walk all uses/defs.
1219         (dump_update_ssa): Adjust.
1220         (init_update_ssa): Take function argument.  Track what we are
1221         initialized for.
1222         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
1223         (create_new_def_for): Initialize for cfun, assert we are initialized
1224         for cfun.
1225         (mark_sym_for_renaming): Simplify.
1226         (mark_set_for_renaming): Do not initialize update-ssa.
1227         (need_ssa_update_p): Simplify.  Take function argument.
1228         (name_mappings_registered_p): Assert we ask for the correct function.
1229         (name_registered_for_update_p): Likewise.
1230         (ssa_names_to_replace): Likewise.
1231         (release_ssa_name_after_update_ssa): Likewise.
1232         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
1233         (dump_decl_set): Do not print a newline.
1234         (debug_decl_set): Do it here.
1235         (dump_update_ssa): And here.
1236         * tree-ssa-loop-im.c (move_computations): Adjust.
1237         (movement_possibility): Likewise.
1238         (determine_max_movement): Likewise.
1239         (gather_mem_refs_stmt): Likewise.
1240         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
1241         or NAME_MEMORY_TAG.
1242         * tree-complex.c (update_all_vops): Remove.
1243         (expand_complex_move): Adjust.
1244         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
1245         Simplify test for memory referencing statement.  Exclude
1246         non-invariant ADDR_EXPRs.
1247         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
1248         * tree-loop-distribution.c (generate_memset_zero): Adjust.
1249         (rdg_flag_uses): Likewise.
1250         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
1251         related code.
1252         (tree_optimize_tail_calls_1): Also split the
1253         edge from the entry block if we have degenerate PHI nodes in
1254         the first basic block.
1255         * tree.c (init_ttree): Remove memory-tag related code.
1256         (tree_code_size): Likewise.
1257         (tree_node_structure): Likewise.
1258         (build7_stat): Re-write to be build6_stat.
1259         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
1260         (SSA_VAR_P): Adjust.
1261         (struct tree_memory_tag): Remove.
1262         (struct tree_memory_partition_tag): Likewise.
1263         (union tree_node): Adjust.
1264         (build7): Re-write to be build6.
1265         * tree-pass.h (pass_reset_cc_flags): Remove.
1266         (TODO_update_address_taken): New flag.
1267         (pass_simple_dse): Remove.
1268         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
1269         * params.h (MAX_ALIASED_VOPS): Remove.
1270         (AVG_ALIASED_VOPS): Likewise.
1271         * omp-low.c (expand_omp_taskreg): Update SSA form.
1272         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
1273         aliases the lhs in a copy stmt.
1274         * tree-ssa-dse.c (struct address_walk_data): Remove.
1275         (memory_ssa_name_same): Likewise.
1276         (memory_address_same): Likewise.
1277         (get_kill_of_stmt_lhs): Likewise.
1278         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
1279         unused stores.  Look through PHI nodes into post-dominated regions.
1280         (dse_optimize_stmt): Simplify.  Properly remove stores.
1281         (tree_ssa_dse): Compute dominators.
1282         (execute_simple_dse): Remove.
1283         (pass_simple_dse): Likewise.
1284         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
1285         gimple_loaded_syms and gimple_stored_syms computation.
1286         * toplev.c (dump_memory_report): Dump alias and pta stats.
1287         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
1288         (vn_reference_eq): Likewise.
1289         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
1290         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
1291         valueize_vuses): Remove.
1292         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
1293         (get_def_ref_stmt_vuse): ... this.
1294         (vn_reference_lookup_2): New function.
1295         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
1296         walking equivalent vuses.  Simplify.
1297         (vn_reference_lookup): Likewise.
1298         (vn_reference_insert): Likewise.
1299         (vn_reference_insert_pieces): Likewise.
1300         (visit_reference_op_call): Simplify.
1301         (visit_reference_op_load): Likewise.
1302         (visit_reference_op_store): Likewise.
1303         (init_scc_vn): Remove shared_lookup_vuses initialization.
1304         (free_scc_vn): Remove shared_lookup_vuses freeing.
1305         (sort_vuses, sort_vuses_heap): Remove.
1306         (get_ref_from_reference_ops): Export.
1307         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
1308         vector with single vuse pointer.
1309         (vn_reference_lookup_pieces, vn_reference_lookup,
1310         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
1311         (shared_vuses_from_stmt): Remove.
1312         (get_ref_from_reference_ops): Declare.
1313         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
1314         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1315         memory-tag related code.
1316         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
1317         (likely_value): Add comment, skip static-chain of call statements.
1318         (surely_varying_stmt_p): Adjust.
1319         (gimplify_and_update_call_from_tree): Likewise.
1320         (execute_fold_all_builtins): Do not rebuild alias info.
1321         (gimplify_and_update_call_from_tree): Properly update VOPs.
1322         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
1323         (copy_ref_info): Remove memory-tag related code.
1324         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
1325         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
1326         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
1327         computation.
1328         * tree-ssa-dom.c (gimple_p): Remove typedef.
1329         (eliminate_redundant_computations): Adjust.
1330         (record_equivalences_from_stmt): Likewise.
1331         (avail_expr_hash): Likewise.
1332         (avail_expr_eq): Likewise.
1333         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
1334         (stmt_makes_single_load): Likewise.
1335         (stmt_makes_single_store): Likewise.
1336         * tree-ssa-alias.c: Rewrite completely.
1337         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
1338         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
1339         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
1340         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
1341         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
1342         Remove public functions.
1343         (pass_reset_cc_flags): Remove.
1344         (pass_build_alias): Move ...
1345         * tree-ssa-structalias.c (pass_build_alias): ... here.
1346         * tree-ssa-alias.c (may_be_aliased): Move ...
1347         * tree-flow-inline.h (may_be_aliased): ... here.
1348         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
1349         count_uses_and_derefs): Move ...
1350         * gimple.c: ... here.
1351         * gimple.h (count_uses_and_derefs): Declare.
1352         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
1353         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
1354         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
1355         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
1356         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
1357         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
1358         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
1359         New functions.
1360         * tree-dfa.c (refs_may_alias_p): Move ...
1361         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
1362         * tree-ssa-alias.h: New file.
1363         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
1364         (statement_sink_location): Likewise.
1365         * opts.c (decode_options): Do not adjust max-aliased-vops or
1366         avg-aliased-vops values.
1367         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
1368         (TV_CALL_CLOBBER): Likewise.
1369         (TV_FLOW_SENSITIVE): Likewise.
1370         (TV_FLOW_INSENSITIVE): Likewise.
1371         (TV_MEMORY_PARTITIONING): Likewise.
1372         (TV_ALIAS_STMT_WALK): New timevar.
1373         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
1374         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
1375         (get_address_description): Remove memory-tag related code.
1376         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
1377         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
1378         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
1379         and immediate uses in statements.  Document.
1380         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
1381         (dump_symbols): Remove.
1382         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
1383         * alias.c (get_deref_alias_set): New function split out from ...
1384         (get_alias_set): ... here.
1385         * alias.h (get_deref_alias_set): Declare.
1386         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
1387         type parameter.  Remove restrict pointer handling.  Create a
1388         ref-all pointer in case type-based alias sets do not conflict.
1389         (vect_analyze_data_refs): Remove SMT related code.
1390         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
1391         (vectorizable_load): Likewise.
1392         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
1393         (DR_SYMBOL_TAG, DR_VOPS): Remove.
1394         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
1395         Ignore vops and SMTs.
1396         (dr_analyze_alias): Likewise..
1397         (free_data_ref): Likewise.
1398         (create_data_ref): Likewise.
1399         (analyze_all_data_dependences): Likewise.
1400         (get_references_in_stmt): Adjust.
1401         * tree-flow-inline.h (gimple_aliases_computed_p,
1402         gimple_addressable_vars, gimple_call_clobbered_vars,
1403         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
1404         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
1405         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
1406         gimple_mem_ref_stats): Remove.
1407         (gimple_vop): New function.
1408         (op_iter_next_use): Remove vuses and mayuses cases.
1409         (op_iter_next_def): Remove vdefs case.
1410         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
1411         (clear_and_done_ssa_iter): Do not set removed fields.
1412         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
1413         Assert we are not iterating over vuses or vdefs if not also
1414         iterating over uses or defs.
1415         (op_iter_init_use): Likewise.
1416         (op_iter_init_def): Likewise.
1417         (op_iter_next_vdef): Remove.
1418         (op_iter_next_mustdef): Likewise.
1419         (op_iter_init_vdef): Likewise.
1420         (compare_ssa_operands_equal): Likewise.
1421         (link_use_stmts_after): Handle vuse operand.
1422         (is_call_used): Use is_call_clobbered.
1423         (is_call_clobbered): Global variables are always call clobbered,
1424         query the call-clobbers bitmap.
1425         (mark_call_clobbered): Ignore global variables.
1426         (clear_call_clobbered): Likewise.
1427         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
1428         virtual operands sanity check.
1429         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
1430         Remove.
1431         (TARGET_MEM_REF): Remove TMR_TAG operand.
1432         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
1433         Remove call-clobber related code.
1434         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
1435         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
1436         partitions or escape reason.
1437         (get_single_def_stmt, get_single_def_stmt_from_phi,
1438         get_single_def_stmt_with_phi): Remove.
1439         (dump_referenced_vars): Tidy.
1440         (get_ref_base_and_extent): Allow bare decls.
1441         (collect_dfa_stats): Adjust.
1442         * graphite.c (rename_variables_in_stmt): Adjust.
1443         (graphite_copy_stmts_from_block): Likewise.
1444         (translate_clast): Likewise.
1445         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
1446         (EXPR_DIES): New.
1447         (translate_vuse_through_block): Use the oracle.
1448         (phi_translate_1): Adjust.
1449         (value_dies_in_block_x): Use the oracle.  Cache the outcome
1450         in EXPR_DIES.
1451         (valid_in_sets): Check if the VUSE for
1452         a REFERENCE is available.
1453         (eliminate): Do not remove stmts during elimination,
1454         instead queue and remove them afterwards.
1455         (do_pre): Do not rebuild alias info.
1456         (pass_pre): Run TODO_rebuild_alias before PRE.
1457         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
1458         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
1459         (mark_all_v_defs_stmt): Remove.
1460         (mark_all_v_defs_seq): Adjust.
1461         (sra_replace): Likewise.
1462         (scalarize_use): Likewise.
1463         (scalarize_copy): Likewise.
1464         (scalarize_init): Likewise.
1465         (scalarize_ldst): Likewise.
1466         (todoflags): Remove.
1467         (tree_sra): Do not rebuild alias info.
1468         (tree_sra_early): Adjust.
1469         (pass_sra): Run TODO_update_address_taken before SRA.
1470         * tree-predcom.c (set_alias_info): Remove.
1471         (prepare_initializers_chain): Do not call it.
1472         (mark_virtual_ops_for_renaming): Adjust.
1473         (mark_virtual_ops_for_renaming_list): Remove.
1474         (initialize_root_vars): Adjust.
1475         (initialize_root_vars_lm): Likewise.
1476         (prepare_initializers_chain): Likewise.
1477         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
1478         (may_propagate_copy_into_stmt): Likewise.
1479         (merge_alias_info): Do nothing for now.
1480         (propagate_tree_value_into_stmt): Adjust.
1481         (stmt_may_generate_copy): Likewise.
1482         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
1483         not mark symbols for renaming.
1484         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
1485         with the same statement, make sure to update the new pointed-to one.
1486         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
1487         call statements, do not mark symbols for renaming.
1488         (mark_operand_necessary): Dump something.
1489         (ref_may_be_aliased): New function.
1490         (mark_aliased_reaching_defs_necessary_1): New helper function.
1491         (mark_aliased_reaching_defs_necessary): Likewise.
1492         (mark_all_reaching_defs_necessary_1): Likewise.
1493         (mark_all_reaching_defs_necessary): Likewise.
1494         (propagate_necessity): Do not process virtual PHIs.  For
1495         non-aliased loads mark all reaching definitions as necessary.
1496         For aliased loads and stores mark the immediate dominating
1497         aliased clobbers as necessary.
1498         (visited): New global static.
1499         (perform_tree_ssa_dce): Free visited bitmap after propagating
1500         necessity.
1501         (remove_dead_phis): Perform simple dead virtual PHI removal.
1502         (remove_dead_stmt): Properly unlink virtual operands when
1503         removing stores.
1504         (eliminate_unnecessary_stmts): Schedule PHI removal after
1505         stmt removal.
1506         * tree-ssa-ter.c (is_replaceable_p): Adjust.
1507         (process_replaceable): Likewise.
1508         (find_replaceable_in_bb): Likewise.
1509         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
1510         based on the single gimple vop.
1511         (verify_flow_insensitive_alias_info): Remove.
1512         (verify_flow_sensitive_alias_info): Likewise.
1513         (verify_call_clobbering): Likewise.
1514         (verify_memory_partitions): Likewise.
1515         (verify_alias_info): Likewise.
1516         (verify_ssa): Adjust..
1517         (execute_update_addresses_taken): Export.  Update SSA
1518         manually.  Optimize only when optimizing.  Use a local bitmap.
1519         (pass_update_address_taken): Remove TODO_update_ssa, add
1520         TODO_dump_func.
1521         (pass_update_address_taken): Just use TODO_update_address_taken.
1522         (init_tree_ssa): Do not initialize addressable_vars.
1523         (verify_ssa): Verify new VUSE / VDEF properties.
1524         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
1525         Do not call verify_alias_info.
1526         (delete_tree_ssa): Clear the VUSE, VDEF operands.
1527         Do not free the loaded and stored syms bitmaps.  Reset the escaped
1528         and callused solutions.  Do not free addressable_vars.
1529         Remove memory-tag related code.
1530         (warn_uninitialized_var): Aliases are always available.
1531         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
1532         * lambda-code.c (can_put_in_inner_loop): Adjust.
1533         (can_put_after_inner_loop): Likewise.
1534         (perfect_nestify): Likewise.
1535         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
1536         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
1537         (vectorizable_conversion): Do not mark symbols for renaming.
1538         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
1539         (expand_call_inline): Unlink the calls virtual operands before
1540         replacing it.
1541         (tree_function_versioning): Do not call update_ssa if we are not
1542         updating clones.  Simplify.
1543         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
1544         (propagate_with_phi): Likewise..
1545         * tree-outof-ssa.c (create_temp): Remove memory tag and call
1546         clobber code.  Assert we are not aliased or global.
1547         * tree-flow.h: Include tree-ssa-alias.h
1548         (enum escape_type): Remove.
1549         (struct mem_sym_stats_d): Likewise.
1550         (struct mem_ref_stats_d): Likewise.
1551         (struct gimple_df): Add vop member.  Remove global_var,
1552         call_clobbered_vars, call_used_vars, addressable_vars,
1553         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
1554         escaped and callused members.
1555         (struct ptr_info_def): Remove all members, add points-to solution
1556         member pt.
1557         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
1558         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
1559         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
1560         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
1561         (tree-ssa-alias.o): Likewise.
1562         (toplev.o): Add tree-ssa-alias.h
1563         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
1564         * gimple.c (gimple_set_bb): Fix off-by-one error.
1565         (is_gimple_reg): Do not handle memory tags.
1566         (gimple_copy): Also copy virtual operands.
1567         Delay updating the statement.  Do not reset loaded and stored syms.
1568         (gimple_set_stored_syms): Remove.
1569         (gimple_set_loaded_syms): Likewise.
1570         (gimple_call_copy_skip_args): Copy the virtual operands
1571         and mark the new statement modified.
1572         * tree-ssa-structalias.c (may_alias_p): Remove.
1573         (set_uids_in_ptset): Take the alias set to prune with as
1574         parameter.  Fold in the alias test of may_alias_p.
1575         (compute_points_to_sets): Compute whether a ptr is dereferenced
1576         in a local sbitmap.
1577         (process_constraint): Deal with &ANYTHING on the lhs, reject all
1578         other ADDRESSOF constraints on the lhs.
1579         (get_constraint_for_component_ref): Assert that we don't get
1580         ADDRESSOF constraints from the base of the reference.
1581         Properly generate UNKNOWN_OFFSET for DEREF if needed.
1582         (struct variable_info): Remove collapsed_to member.
1583         (get_varinfo_fc): Remove.
1584         (new_var_info): Do not set collapsed_to.
1585         (dump_constraint): Do not follow cycles.
1586         (dump_constraint_graph): Likewise.
1587         (build_pred_graph): Likewise.
1588         (build_succ_graph): Likewise.
1589         (rewrite_constraints): Likewise.
1590         (do_simple_structure_copy): Remove.
1591         (do_rhs_deref_structure_copy): Remove.
1592         (do_lhs_deref_structure_copy): Remove.
1593         (collapse_rest_of_var): Remove.
1594         (do_structure_copy): Re-implement.
1595         (pta_stats): New global variable.
1596         (dump_pta_stats): New function.
1597         (struct constraint_expr): Make offset signed.
1598         (UNKNOWN_OFFSET): Define special value.
1599         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
1600         (solution_set_expand): New helper function split out from ...
1601         (do_sd_constraint): ... here.
1602         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
1603         (do_ds_constraint): Likewise.
1604         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
1605         and CALLUSED = *CALLUSED.
1606         (set_union_with_increment): Make inc argument signed.
1607         (type_safe): Remove.
1608         (get_constraint_for_ptr_offset): Handle unknown and negative
1609         constant offsets.
1610         (first_vi_for_offset): Handle offsets before start.  Bail
1611         out early for offsets beyond the variable extent.
1612         (first_or_preceding_vi_for_offset): New function.
1613         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
1614         Together with ESCAPED = *ESCAPED this properly computes reachability.
1615         (find_what_var_points_to): New function.
1616         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
1617         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
1618         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
1619         pt_solutions_intersect): New functions.
1620         (compute_call_used_vars): Remove.
1621         (compute_may_aliases): New main entry into PTA computation.
1622         * gimple.h (gimple_p): New typedef.
1623         (struct gimple_statement_base): Remove references_memory_p.
1624         (struct gimple_statement_with_memory_ops_base): Remove
1625         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
1626         members.
1627         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
1628         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
1629         gimple_set_references_memory): Remove.
1630         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
1631         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
1632         New functions.
1633         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
1634         (verify_expr): Allow RESULT_DECL.
1635         (gimple_duplicate_bb): Do not copy virtual operands.
1636         (gimple_duplicate_sese_region): Adjust.
1637         (gimple_duplicate_sese_tail): Likewise.
1638         (mark_virtual_ops_in_region): Remove.
1639         (move_sese_region_to_fn): Do not call it.
1640         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
1641         and pass_simple_dse.
1642         (execute_function_todo): Handle TODO_update_address_taken,
1643         call execute_update_addresses_taken for TODO_rebuild_alias.
1644         (execute_todo): Adjust.
1645         (execute_one_pass): Init dump files early.
1646         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
1647         call-clobbered.
1648         (create_general_new_stmt): Clear vops.
1649         * tree-ssa-reassoc.c (get_rank): Adjust.
1650         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
1651         symbols for renaming.
1652         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
1653         (PARAM_AVG_ALIASED_VOPS): Likewise.
1654         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
1655         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
1656         * tree-ssa-operands.c: Simplify for new virtual operand representation.
1657         (operand_build_cmp, copy_virtual_operands,
1658         create_ssa_artificial_load_stmt, add_to_addressable_set,
1659         gimple_add_to_addresses_taken): Remove public functions.
1660         (unlink_stmt_vdef): New function.
1661
1662 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1663
1664         * config.gcc (powerpc-*-linux*): Merge variants.
1665
1666 2009-04-02  Chao-ying Fu  <fu@mips.com>
1667             James Grosbach <james.grosbach@microchip.com>
1668
1669         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
1670         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
1671         cop0_sp_offset.
1672         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
1673         keep_interrupts_masked_p, use_debug_exception_return_p.
1674         (mips_attribute_table): Add interrupt, use_shadow_register_set,
1675         keep_interrupts_masked, use_debug_exception_return.
1676         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
1677         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
1678         New functions.
1679         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
1680         (mips_print_operand): Process COP0 registers to print $0 .. $31
1681         correctly for GAS to process.
1682         (mips_interrupt_extra_call_saved_reg_p): New function.
1683         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
1684         extra registers.
1685         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
1686         (mips_compute_frame_info): Add supports for interrupt context that
1687         includes doubleword accumulators and COP0 registers.
1688         (mips_for_each_saved_acc): New function.
1689         (mips_for_each_saved_gpr_and_fpr): Change the function name from
1690         mips_for_each_saved_reg.
1691         (mips_save_reg): Save accumulators.
1692         (mips_kernel_reg_p): A new for_each_rtx callback.
1693         (mips_expand_prologue): Support interrupt handlers.
1694         (mips_restore_reg): Restore accumulators.
1695         (mips_expand_epilogue): Support interrupt handlers.
1696         (mips_can_use_return_insn): Return false for interrupt handlers.
1697         (mips_epilogue_uses): New function.
1698         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
1699         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
1700         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
1701         cop0_move): New instructions.
1702         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
1703         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
1704         defines.
1705         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
1706         New defines.
1707         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
1708         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
1709         interrupt handlers, we use K0 as the temporary register.
1710         (EPILOGUE_USES): Change to a function call.
1711         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
1712         handlers, we use K0 as the temporary register.
1713         
1714         * doc/extend.texi (Function Attributes): Document interrupt,
1715         use_shadow_register_set, keep_interrupts_masked,
1716         use_debug_exception_return for MIPS attributes.
1717
1718 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1719
1720         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
1721         Remove a number of t-files from tmake_file.
1722         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
1723         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
1724         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1725         target_prototype, not TARGET_PROTOTYPE.
1726         (LINK_OS_GNU_SPEC): Define.
1727         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
1728         and darwin-ldoubdle.c.
1729
1730 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1731
1732         PR driver/39293
1733         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
1734         (cpp_options): Ditto.
1735         (default_compilers): Ditto.
1736         (display_help): Ditto.
1737         (process_command): Ditto.
1738         (do_spec_1): Ditto.
1739         (set_input): Use lbasename instead of duplicate code.
1740         (save_temps_prefix): New static for -save-temps=obj.
1741         (save_temps_length): Ditto.
1742         
1743         * doc/invoke.texi (-save-temps=obj): Document new variant to
1744         -save-temps switch.
1745
1746 2009-04-02  Jeff Law  <law@redhat.com>
1747
1748         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
1749         variable.
1750
1751 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1752
1753         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
1754         * configure: Regenerated.
1755
1756 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1757
1758         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
1759         share the argument list.
1760
1761 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1762
1763         Merge
1764
1765         2009-02-12  Diego Novillo  <dnovillo@google.com>
1766
1767         * varpool.c (debug_varpool): New.
1768         * cgraph.h (debug_varpool): Declare.
1769
1770 2009-04-02  Jan Hubicka  <jh@suse.cz>
1771
1772         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
1773         pass.
1774
1775 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1776
1777         * config/i386/i386.c (ix86_abi): Move initialization to ...
1778         (override_options): Here.
1779
1780 2009-04-02  Christian Bruel  <christian.bruel@st.com>
1781
1782         * config/sh/sh.c (sh_dwarf_register_span): New function.
1783         (TARGET_DWARF_REGISTER_SPAN): Define.
1784         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
1785         
1786 2009-04-02  Ira Rosen  <irar@il.ibm.com>
1787
1788         PR tree-optimization/39595
1789         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
1790         interleaved loads group is not  greater than the SLP group size.
1791
1792 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1793
1794         * builtins.c (is_builtin_name): New.
1795         (called_as_built_in): Use is_builtin_name.
1796         * tree.h (is_builtin_name): New.
1797         * varasm.c (incorporeal_function_p): Use is_builtin_name
1798
1799 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
1800
1801         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
1802
1803 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
1804
1805         PR c++/26693
1806         * c-decl.c: (clone_underlying_type): Move this ...
1807         * c-common.c (set_underlying_type): ... here.
1808         Also, make sure the function properly sets TYPE_STUB_DECL() on
1809         the newly created typedef variant type.
1810         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
1811         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
1812         points.
1813
1814 2009-04-02  Richard Guenther  <rguenther@suse.de>
1815
1816         PR tree-optimization/37221
1817         * tree-flow.h (degenerate_phi_result): Declare.
1818         * tree-ssa-dom.c (degenerate_phi_result): Export.
1819         * tree-scalar-evolution.c (analyze_initial_condition): If
1820         the initial condition is defined by a degenerate PHI node
1821         use the degenerate value.
1822
1823 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
1824
1825         PR rtl-optimization/39588
1826         * combine.c (merge_outer_ops): Do not set the constant when this
1827         is not necessary.
1828         (simplify_shift_const_1): Do not modify it either in this case.
1829
1830 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
1831
1832         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
1833         tuning is deprecated if -mtune value is set to an Itanium1 variant.
1834
1835 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
1836
1837         PR c/29027
1838         * c-lex.c (interpret_float): Default (no suffix) is double.
1839
1840 2009-04-1  Xinliang David Li  <davidxl@google.com>
1841
1842         * config/i386/i386.c (legitimate_constant_p): Recognize
1843         all one vector constant.
1844
1845 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1846
1847         * gcc/config/vax/vax.c: Add #includes to silence warnings.
1848         Change #include order to silence two warnings.
1849
1850 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1851
1852         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
1853         (ASM_SPEC): Pass -k to the assembler for PIC code.
1854
1855 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1856
1857         * gcc/config.gcc: Add vax-*-linux* to the switch.
1858         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
1859         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
1860
1861 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1862
1863         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
1864         Use predicate macros instead of GET_CODE() == foo.
1865         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
1866         ashlsi3, rotrsi3, <unnamed>): Likewise.
1867
1868 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1869
1870         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
1871         jbbccihi, jbbccisi): Remova trailing whitespace.
1872         * gcc/config/vax/constraints.md: Likewise.
1873         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1874         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
1875         * gcc/config/vax/predicates.md: Likewise.
1876         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
1877         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
1878         * gcc/config/vax/vax.h: Likewise.
1879         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
1880
1881 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1882
1883         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
1884         (indirectable_address_p, adjacent_operands_p): Add spaces around
1885         braces.
1886         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
1887
1888 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1889
1890         * gcc/config/vax/vax.c (legitimate_constant_address_p,
1891         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
1892         index_term_p, reg_plus_index_p, legitimate_address_p,
1893         vax_mode_dependent_address_p): Update comments to match functions
1894         modified by the recent int->bool conversion.
1895
1896 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1897
1898         * gcc/config/vax/builtins.md: Update copyright message.
1899         * gcc/config/vax/constraints.md: Likewise.
1900         * gcc/config/vax/netbsd-elf.h: Likewise.
1901         * gcc/config/vax/predicates.md: Likewise.
1902         * gcc/config/vax/vax-protos.h: Likewise.
1903         * gcc/config/vax/vax.c: Likewise.
1904         * gcc/config/vax/vax.h: Likewise.
1905         * gcc/config/vax/vax.md: Likewise.
1906         * gcc/config/vax/vax.opt: Likewise.
1907
1908 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1909
1910         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
1911         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
1912         * gcc/config/vax/constraints.md (B, R): Likewise.
1913         * gcc/config/vax/predicates.md (external_memory_operand,
1914         nonimmediate_addsub_di_operand): Likewise.
1915         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
1916         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
1917         untyped_call): Likewise.
1918
1919 2009-04-01  Matt Thomas <matt@3am-software.com>
1920
1921         * config/vax/predicates.md: New file.
1922         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
1923         external_const_operand, nonsymbolic_operand, external_memory_operand,
1924         indirect_memory_operand, indexed_memory_operand,
1925         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
1926         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
1927         predicate.
1928         * config/vax/constraints.md: New file.
1929         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
1930         New constraint.
1931         * config/vax/builtins.md: New file.
1932         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
1933         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
1934         jbbccisi): Define.
1935         * config/vax/vax.opt (mqmath): Add option.
1936         * config/vax/vax.md (isfx): Extend with DI.
1937         (VAXintQH, VAXintQHSD): Define.
1938         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
1939         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
1940         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
1941         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
1942         (movdi): Update constraints and use vax_output_int_move().
1943         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
1944         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
1945         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
1946         nonlocal_goto): New.
1947         (mov<mode>): Extend accepted operand types.
1948         (subdi3_old): Rename from subdi3, change update constraints and use
1949         a new implementation.
1950         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
1951         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
1952         MOVE_RATIO, CLEAR_RATIO): Define.
1953         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
1954         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
1955         (PRINT_OPERAND): Redefine using a function instead of inlined code.
1956         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1957         (split_quadword_operands): Make static and really allow variable
1958         splitting.
1959         (print_operand_address): Update for PIC generation.
1960         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
1961         indexable_address_p, fixup_mathdi_operand,
1962         vax_expand_addsub_di_operands, adjacent_operands_p): New.
1963         (vax_float_literal, legitimate_constant_p,
1964         indirectable_constant_address_p, index_term_p,
1965         reg_plus_index_p): Return bool instead of int.
1966         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
1967         where needed.
1968         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
1969         generation.
1970         (vax_output_conditional_branch): Indent.
1971         (legitimate_constant_address_p, indirectable_constant_address_p,
1972         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
1973         vax_mode_dependent_address_p): Return bool instead of int, update for
1974         PIC generation.
1975         * config/vax/vax-protos.h (legitimate_constant_address_p,
1976         legitimate_constant_p, legitimate_address_p,
1977         vax_mode_dependent_address_p): Change declaration to bool.
1978         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
1979         vax_expand_addsub_di_operands, vax_output_int_subtract,
1980         vax_output_movmemsi): Declare.
1981         (split_quadword_operands, vax_float_literal): Delete declaration.
1982         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
1983         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
1984         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
1985         ASM_OUTPUT_DWARF_PCREL): Define.
1986         (ASM_SPEC): Change definition to allow PIC generation.
1987
1988 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
1989
1990         * doc/sourcebuild.texi: Update front-end requirements.
1991
1992 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1993
1994         PR target/39226
1995         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
1996         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
1997         (booldi3_internal3): Use boolean_or_operator instead of
1998         boolean_operator.
1999
2000 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
2001
2002         PR c/39605
2003         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
2004         declarator whose size is not an integer constant expression but
2005         folds to an integer constant, then treat it as a constant
2006         subsequently.
2007
2008 2009-04-01  Richard Guenther  <rguenther@suse.de>
2009
2010         * fold-const.c (fold_plusminus_mult_expr): Do not fold
2011         i * 4 + 2 to (i * 2 + 1) * 2.
2012
2013 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2014
2015         PR c/37772
2016         * c-parser.c (c_parser_asm_statement): Skip until close paren and
2017         return if c_parser_asm_string_literal returned NULL.
2018
2019 2009-04-01  Nick Clifton  <nickc@redhat.com>
2020
2021         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
2022         already defined.
2023         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
2024         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
2025         other typedefs to avoid conflicts with libgcc2.c.  Define labels
2026         to gain 16-bit bit-manipulation functions from libgcc2.c and then
2027         include it.
2028         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
2029         to gain 16-bit trapping arithmetic functions from libgcc2.c and
2030         then include it.
2031
2032 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
2033
2034         * varasm.c (default_function_rodata_section): Declare DOT as
2035         const char*.
2036
2037 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
2038             Andrey Galkin <agalkin@hypercom.com>
2039
2040         PR/39492
2041         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
2042         Make object_name unique for each process.
2043
2044 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2045
2046         PR other/39591
2047         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
2048         addressable variables in the parallel that could go out of scope while
2049         running queued tasks.
2050
2051 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
2052
2053         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
2054         (CASE_VALUES_THRESHOLD): Redefine.
2055         * config/avr/avr.c (avr_override_options): Remove initialization of
2056         avr_case_values_threshold variable.
2057         (avr_case_values_threshold): Remove variable. Add new function.
2058         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
2059         * config/avr/avr.opt (mno-tablejump): Remove option.
2060         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
2061
2062 2009-04-01  DJ Delorie  <dj@redhat.com>
2063
2064         * varasm.c (default_function_rodata_section): Don't assume
2065         anything about where the first '.' in the section name is.
2066
2067 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
2068
2069         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
2070         rs6000_emit_stack_tie.
2071
2072 2009-03-31  Ian Lance Taylor  <iant@google.com>
2073
2074         * tree-eh.c (tree_remove_unreachable_handlers): Compare
2075         gimple_code with GIMPLE_RESX, not RESX.
2076
2077 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2078
2079         * c-common.c (c_get_ident): New.
2080         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
2081
2082 2009-04-01  Ben Elliston  <bje@au.ibm.com>
2083
2084         * config/rs6000/sysv4.opt (msdata): Improve option description.
2085
2086 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
2087
2088         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
2089         (divdf3_internal_lat): Remove.
2090         (divxf3_internal_lat): Remove.
2091         (divxf3_internal_thr): Remove.
2092         (divxf): Use divxf3_internal.
2093         * config/ia64/div.md (divsf3_internal_lat): New.
2094         (divdf3_internal_lat): New.
2095         (divxf3_internal): New.
2096
2097 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2098
2099         PR c/448
2100         * Makefile.in (USE_GCC_STDINT): Define.
2101         (stmp-int-hdrs): Install stdint.h if applicable.
2102         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
2103         if known.
2104         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
2105         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
2106         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2107         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2108         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2109         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2110         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2111         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2112         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2113         (c_common_nodes_and_builtins): Initialize
2114         underlying_wchar_type_node.  Do not initialize
2115         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
2116         nodes for new types.
2117         (c_stddef_cpp_builtins): Define macros for new types.
2118         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
2119         Remove.
2120         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
2121         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
2122         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
2123         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
2124         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
2125         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
2126         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
2127         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
2128         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
2129         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
2130         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
2131         int16_type_node, int32_type_node, int64_type_node,
2132         uint8_type_node, uint16_type_node, c_uint32_type_node,
2133         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
2134         int_least32_type_node, int_least64_type_node,
2135         uint_least8_type_node, uint_least16_type_node,
2136         uint_least32_type_node, uint_least64_type_node,
2137         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
2138         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
2139         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
2140         uintptr_type_node): Define.
2141         * c-cppbuiltin.c (builtin_define_constants,
2142         builtin_define_type_minmax): New.
2143         (builtin_define_stdint_macros): Define more macros.
2144         (c_cpp_builtins): Define more limit macros.
2145         (type_suffix): New.
2146         (builtin_define_type_max): Define in terms of
2147         builtin_define_type_minmax.  Remove is_long parameter.  All
2148         callers changed.
2149         * config.gcc (use_gcc_stdint): Define.
2150         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
2151         Add newlib-stdint.h for generic targets.
2152         * config/glibc-stdint.h, config/newlib-stdint.h,
2153         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
2154         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
2155         * config/score/score.h (UINTPTR_TYPE): Define.
2156         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2157         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2158         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2159         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2160         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2161         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2162         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2163         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2164         * config/spu/spu.h (STDINT_LONG32): Define.
2165         * configure.ac (use_gcc_stdint): Substitute.
2166         * configure: Regenerate.
2167         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
2168         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
2169         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
2170         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
2171         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
2172         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
2173         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
2174         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
2175         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
2176         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
2177         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
2178         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
2179         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
2180         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
2181         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
2182         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
2183         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
2184         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
2185         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
2186         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
2187         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
2188         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
2189         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2190         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2191         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2192         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2193         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2194         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2195         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
2196
2197 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2198
2199         * loop-iv.c (suitable_set_for_replacement): Renamed from
2200         simplify_using_assignment; changed to return bool and to accept new
2201         args DEST and SRC.  Return true iff we find a source/destination pair
2202         that can be used to make a replacement, and fill SRC and DEST if so.
2203         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
2204         changed.
2205         (simplify_using_initial_values): Deal with altered regs here and track
2206         more precisely the effect they have on the validity of our expression.
2207
2208         * loop-iv.c (simplify_using_condition): A condition of the form
2209         (EQ REG CONST) can be used to simply make a substitution.
2210         (simplify_using_initial_values): Keep track of conditions we have seen
2211         and keep using them to simplify new expressions, while applying the
2212         same substitutions to them as to the expression.
2213
2214         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2215         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
2216         GEU/LTU reversed.
2217
2218         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
2219         changed.  Use this when trying to improve the upper bound.
2220         Generate the comparison by using simplify_gen_relational.
2221
2222         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
2223
2224         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
2225         functions.
2226         (simplify_using_assignment, simplify_using_initial_values): Call 
2227         replace_in_expr to make replacements.  Call replace_single_def_regs
2228         once on the initial version of the expression.
2229
2230 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2231
2232         PR target/27237
2233         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2234         
2235 2009-03-31  Richard Guenther  <rguenther@suse.de>
2236
2237         PR middle-end/31029
2238         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
2239         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
2240
2241 2009-03-31  Richard Guenther  <rguenther@suse.de>
2242
2243         * tree.h (div_if_zero_remainder): Declare.
2244         * fold-const.c (div_if_zero_remainder): Export.
2245         * tree-ssa-forwprop.c
2246         (forward_propagate_addr_into_variable_array_index): Handle
2247         constant array index addition outside of the variable index.
2248
2249 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2250
2251         PR target/39592
2252         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
2253         define_splits, floatunssi<mode>2): Require x87 conversions from
2254         DImode to be permitted.
2255
2256 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2257
2258         PR preprocessor/15638
2259         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
2260
2261 2009-03-31  Richard Guenther  <rguenther@suse.de>
2262
2263         PR middle-end/23401
2264         PR middle-end/27810
2265         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
2266         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
2267         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
2268         a separate statement.
2269         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
2270         (lookup_tmp_var): Likewise.
2271         (is_gimple_formal_tmp_or_call_rhs): Remove.
2272         (is_gimple_reg_or_call_rhs): Rename to ...
2273         (is_gimple_reg_rhs_or_call): ... this.
2274         (is_gimple_mem_or_call_rhs): Rename to ...
2275         (is_gimple_mem_rhs_or_call): ... this.
2276         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
2277         DECL_GIMPLE_REG_P only if is_formal is true.
2278         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
2279         for non-proper post-modify expression gimplification.
2280         (gimplify_self_mod_expr): For post-modify expressions gimplify
2281         the lvalue to a minimal lvalue.
2282         (rhs_predicate_for): Remove formal temp case.
2283         (gimplify_modify_expr_rhs): Likewise.
2284         (gimplify_addr_expr): Use is_gimple_reg.
2285         (gimplify_expr): Remove formal temp cases.
2286         (gimple_regimplify_operands): Likewise.
2287         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
2288         and FILTER_EXPR like constants.
2289         * gimple.c (walk_gimple_op): Fix val_only initialization, use
2290         is_gimple_reg.
2291         (is_gimple_formal_tmp_rhs): Remove.
2292         (is_gimple_reg_rhs): Remove special casing.
2293         (is_gimple_mem_rhs): Fix.
2294         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
2295         (is_gimple_formal_tmp_var): Remove.
2296         (is_gimple_formal_tmp_reg): Likewise.
2297         (is_gimple_min_lval): Allow invariant component ref parts.
2298         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
2299         is_gimple_formal_tmp_reg): Remove declarations.
2300         * tree-cfg.c (verify_expr): Verify that variables with address
2301         taken do not have DECL_GIMPLE_REG_P set.
2302         * tree-mudflap.c (mf_build_check_statement_for): Use
2303         force_gimple_operand instead of gimplify_expr.
2304
2305 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
2306
2307         * modulo-sched.c (sms_schedule_by_order): Pass the actual
2308         schedulable rows to compute_split_row.
2309
2310 2009-03-31  Ben Elliston  <bje@au.ibm.com>
2311
2312         PR target/31635
2313         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
2314         OPT_mvrsave.
2315
2316 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2317
2318         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
2319         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
2320         * configure: Regenerate.
2321         * config.in: Regenerate.
2322         * config/rs6000/rs6000.opt (mtls-markers): Add.
2323         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
2324         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
2325         (tls_ld_aix, tls_ld_sysv): Likewise.
2326         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
2327         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
2328
2329 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2330
2331         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
2332
2333 2009-03-30  Jan Hubicka  <jh@suse.cz>
2334
2335         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
2336         out of RESX.
2337         (tree_remove_unreachable_handlers): Cleanup EH predecestor
2338         detection and label handling.
2339
2340 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2341
2342         * ira-int.h (ira_allocno): Rename left_conflicts_num to
2343         left_conflicts_size.
2344         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
2345         ALLOCNO_LEFT_CONFLICTS_SIZE.
2346
2347         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
2348         remove_allocno_from_bucket_and_push,
2349         allocno_spill_priority_compare, push_allocnos_to_stack,
2350         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2351         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
2352         (setup_allocno_left_conflicts_num): Ditto.  Rename to
2353         setup_allocno_left_conflicts_size.
2354         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2355         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
2356         setup_allocno_left_conflicts_size instead of
2357         setup_allocno_left_conflicts_num.
2358
2359         * ira-build.c (ira_create_allocno): Use
2360         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
2361         ALLOCNO_LEFT_CONFLICTS_NUM.
2362                 
2363 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2364
2365         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2366         instead of DF_LR_OUT.
2367
2368         * ira-lives.c (process_bb_node_lives): Ditto.
2369
2370         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2371         instead of DF_LR_{OUT,IN}.
2372
2373         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2374
2375         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2376
2377 2009-03-30  Jan Hubicka  <jh@suse.cz>
2378
2379         * except.c (label_to_region_map): Fix thinko.
2380
2381 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
2382
2383         PR middle-end/38237
2384         * tree.h (tree_find_value): New declaration.
2385         * tree.c (tree_find_value): New function.
2386         * varasm.c (assemble_external): Avoid duplicate entries on lists.
2387
2388 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
2389
2390         PR debug/39563
2391         * c-decl.c (struct c_binding): Add locus field.
2392         (bind): Add locus argument, set locus field from it.
2393         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
2394         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
2395         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
2396         implicitly_declare, undeclared_variable, lookup_label,
2397         declare_label, c_make_fname_decl, c_builtin_function,
2398         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
2399         bind callers.
2400
2401 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2402
2403         PR target/38781
2404         * config/i386/i386.c (classify_argument): Check total size of
2405         structure.
2406
2407 2009-03-30  Martin Jambor  <mjambor@suse.cz>
2408
2409         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
2410         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
2411         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
2412         respectively.
2413
2414         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
2415         seen_variable_array_ref while also traversing a union.
2416
2417         * tree-inline.c (optimize_inline_calls): Do not call
2418         cgraph_node_remove_callees.
2419         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
2420         (pass_remove_cgraph_callee_edges): New variable.
2421         * passes.c (init_optimization_passes): Add
2422         pass_remove_cgraph_callee_edges after early inlining and before all
2423         late intraprocedural passes.
2424
2425         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
2426
2427 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2428
2429         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
2430         Fix typos in names.
2431
2432 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2433
2434         * combine.c (simplify_comparison): Use have_insn_for.
2435         * dojump.c (do_jump): Likewise.
2436
2437 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2438
2439         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
2440         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
2441         sparc_compare_op0 like sparc_compare_emitted used to be handled.
2442         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
2443         instead of sparc_compare_emitted.
2444         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
2445         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
2446         instead of sparc_compare_emitted.
2447
2448 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2449
2450         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
2451         enter/exit cfglayout mode.
2452         (pass_partition_block): Require it.
2453         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
2454         (combine_instructions): Track basic blocks instead of labels.
2455         (update_cfg_for_uncondjump): New.
2456         (try_combine): Use it.  Update jumps after rescanning.
2457         (pass_combine): Require PROP_cfglayout.
2458         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
2459
2460 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2461
2462         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
2463         Provide/destroy PROP_cfglayout respectively.
2464         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
2465         * tree-pass.h (PROP_cfglayout): New.
2466
2467 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2468
2469         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
2470         fold_convert_const_fixed_from_fixed,
2471         fold_convert_const_fixed_from_int,
2472         fold_convert_const_fixed_from_real, fold_negate_const): Do not
2473         set TREE_CONSTANT_OVERFLOW.
2474         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
2475         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
2476
2477 2009-03-30  Ira Rosen  <irar@il.ibm.com>
2478
2479         * tree-vect-loop-manip.c: New file.
2480         * tree-vectorizer.c: Update documentation and included files.
2481         (vect_loop_location): Make extern.
2482         (rename_use_op): Move to tree-vect-loop-manip.c
2483         (rename_variables_in_bb, rename_variables_in_loop, 
2484         slpeel_update_phis_for_duplicate_loop, 
2485         slpeel_update_phi_nodes_for_guard1,
2486         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
2487         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
2488         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2489         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
2490         find_loop_location): Likewise.
2491         (new_stmt_vec_info): Move to tree-vect-stmts.c.
2492         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
2493         get_vectype_for_scalar_type, vect_is_simple_use,
2494         supportable_widening_operation, supportable_narrowing_operation):
2495         Likewise.
2496         (bb_in_loop_p): Move to tree-vect-loop.c.
2497         (new_loop_vec_info, destroy_loop_vec_info, 
2498         reduction_code_for_scalar_code, report_vect_op, 
2499         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
2500         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
2501         (vect_supportable_dr_alignment): Likewise.
2502         * tree-vectorizer.h (tree-data-ref.h): Include.
2503         (vect_loop_location): Declare.
2504         Reorganize function declarations according to the new file structure.
2505         * tree-vect-loop.c: New file.
2506         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
2507         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
2508         * tree-vect-data-refs.c: New file.
2509         * tree-vect-patterns.c (timevar.h): Don't include.
2510         * tree-vect-stmts.c: New file.
2511         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
2512         tree-vect-slp.c, tree-vect-loop.c.
2513         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
2514         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
2515         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
2516         (tree-vect-analyze.o): Remove.
2517         (tree-vect-transform.o): Likewise.
2518         (tree-vect-data-refs.o): Add rule.
2519         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
2520         tree-vect-slp.o): Likewise.
2521         (tree-vect-patterns.o): Remove redundant dependencies.
2522         (tree-vectorizer.o): Likewise.
2523         * tree-vect-slp.c: New file.
2524
2525 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2526
2527         * optc-gen.awk: Warn if an option flag has multiple different
2528         help strings.
2529
2530 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
2531
2532         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
2533         -floop-block): Document dependences on PPL, CLooG and Graphite.
2534
2535 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2536
2537         PR rtl-optimization/323
2538         * c-common.c (c_fully_fold, convert_and_check,
2539         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
2540         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
2541         * c-common.def (EXCESS_PRECISION_EXPR): New.
2542         * c-cppbuiltin.c (builtin_define_float_constants): Define
2543         constants with enough digits for long double.
2544         * c-lex.c (interpret_float): Interpret constant with excess
2545         precision where appropriate.
2546         * c-opts.c (c_common_post_options): Set
2547         flag_excess_precision_cmdline.  Give an error for
2548         -fexcess-precision=standard for C++ for processors where the
2549         option is significant.
2550         * c-parser.c (c_parser_conditional_expression): Handle excess
2551         precision in condition.
2552         * c-typeck.c (convert_arguments): Handle arguments with excess
2553         precision.
2554         (build_unary_op): Move excess precision outside operation.
2555         (build_conditional_expr): Likewise.
2556         (build_compound_expr): Likewise.
2557         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
2558         (build_modify_expr): Handle excess precision in RHS.
2559         (convert_for_assignment): Handle excess precision in converted
2560         value.
2561         (digest_init, output_init_element, process_init_element): Handle
2562         excess precision in initializer.
2563         (c_finish_return): Handle excess precision in return value.
2564         (build_binary_op): Handle excess precision in operands and add
2565         excess precision as needed for operation.
2566         * common.opt (-fexcess-precision=): New option.
2567         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
2568         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
2569         For standard excess precision, output explicit conversion to and
2570         truncation from XFmode.
2571         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
2572         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
2573         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
2574         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
2575         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
2576         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
2577         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
2578         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
2579         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
2580         define_splits, sqrt<mode>2): Disable where appropriate for
2581         standard excess precision.
2582         * convert.c (convert_to_real): Do not shorten arithmetic to type
2583         for which excess precision would be used.
2584         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
2585         * doc/invoke.texi (-fexcess-precision=): Document option.
2586         (-mfpmath=): Correct index entry.
2587         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
2588         flag_excess_precision): New.
2589         * langhooks.c (lhd_post_options): Set
2590         flag_excess_precision_cmdline.
2591         * opts.c (common_handle_option): Handle -fexcess-precision=.
2592         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
2593         init_excess_precision): New.
2594         (lang_dependent_init_target): Call init_excess_precision.
2595         * tree.c (excess_precision_type): New.
2596         * tree.h (excess_precision_type): Declare.
2597
2598 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2599
2600         PR c/35235
2601         * c-typeck.c (build_component_ref): Do not copy qualifiers from
2602         non-lvalue to component.
2603
2604 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2605
2606         PR preprocessor/34695
2607         * Makefile.in (c-opts.o): Depend on c-tree.h.
2608         * c-common.c: Move down include of diagnostic.h.
2609         (done_lexing, c_cpp_error): New.
2610         * c-common.h (done_lexing): Declare.
2611         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
2612         (parse_in).
2613         * c-opts.c: Include c-tree.h.
2614         (c_common_init_options): Set preprocessor error callback.
2615         (c_common_handle_option): Do not set preprocessor
2616         inhibit_warnings, warnings_are_errors, warn_system_headers,
2617         pedantic_errors or inhibit_warnings flags.
2618         (c_common_post_options): Do not check cpp_errors (parse_in).
2619         (c_common_finish): Do not output dependencies if there were
2620         errors.  Do not check return value of cpp_finish.
2621         * c-ppoutput.c (pp_file_change): Set input_location.
2622         * c-tree.h (c_cpp_error): Declare.
2623         * diagnostic.c (diagnostic_set_info_translated): Also initialize
2624         override_column.
2625         (diagnostic_build_prefix): Check override_column.
2626         * diagnostic.h (diagnostic_info): Add override_column field.
2627         (diagnostic_override_column): Define.
2628
2629 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
2630
2631         * c-common.c (c_expand_expr, c_staticp): Remove.
2632         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
2633         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
2634         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
2635         * c-gimplify.c (gimplify_compound_literal_expr,
2636         optimize_compound_literals_in_ctor): Remove.
2637         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
2638         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
2639         * c-semantics.c (emit_local_var): Remove.
2640
2641         * langhooks-def.h (lhd_expand_expr): Remove.
2642         * langhooks.c (lhd_expand_expr): Remove.
2643         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
2644
2645         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
2646         handling from c-semantics.c; don't call into langhook.
2647         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
2648         * gimplify.c (gimplify_compound_literal_expr,
2649         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
2650         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
2651         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
2652         as was done in c-gimplify.c.
2653         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
2654         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
2655         Move from c-common.h.
2656         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2657
2658         * tree.c (staticp): Do not call langhook.
2659         * langhooks.c (lhd_staticp): Delete.
2660         * langhooks-def.h (lhd_staticp): Delete prototype.
2661         (LANG_HOOKS_STATICP): Delete.
2662         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
2663
2664         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
2665         instead of DECL_STMTs.
2666
2667 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2668
2669         PR c/456
2670         PR c/5675
2671         PR c/19976
2672         PR c/29116
2673         PR c/31871
2674         PR c/35198
2675         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
2676         void_type_node.
2677         (fold_call_expr): Return a NOP_EXPR from folding rather than the
2678         contained expression.
2679         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
2680         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
2681         conditional expressions for C.
2682         (decl_constant_value_for_optimization): Move from
2683         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
2684         whether optimizing and that the expression is a VAR_DECL not of
2685         array type instead of doing such checks in the caller.  Do not
2686         check pedantic.  Call gcc_unreachable for C++.
2687         * c-common.def (C_MAYBE_CONST_EXPR): New.
2688         * c-common.h (c_fully_fold, c_save_expr,
2689         decl_constant_value_for_optimization): New prototypes.
2690         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2691         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2692         EXPR_INT_CONST_OPERANDS): Define.
2693         * c-convert.c (convert): Strip nops from expression.
2694         * c-decl.c (groktypename): Take extra parameters expr and
2695         expr_const_operands.  Update call to grokdeclarator.
2696         (start_decl): Update call to grokdeclarator.  Add statement for
2697         expressions used in type of decl.
2698         (grokparm): Update call to grokdeclarator.
2699         (push_parm_decl): Update call to grokdeclarator.
2700         (build_compound_literal): Add parameter non_const and build a
2701         C_MAYBE_COSNT_EXPR if applicable.
2702         (grokdeclarator): Take extra parameters expr and
2703         expr_const_operands.  Track expressions used in declaration
2704         specifiers and declarators.  Fold array sizes and track whether
2705         they are constant expressions and whether they are integer
2706         constant expressions.
2707         (parser_xref_tag): Set expr and expr_const_operands fields in
2708         return value.
2709         (grokfield): Update call to grokdeclarator.
2710         (start_function): Update call to grokdeclarator.
2711         (build_null_declspecs): Set expr and expr_const_operands fields in
2712         return value.
2713         (declspecs_add_type): Handle expressions in typeof specifiers.
2714         * c-parser.c (c_parser_declspecs): Set expr and
2715         expr_const_operands fields for declaration specifiers.
2716         (c_parser_enum_specifier): Likewise.
2717         (c_parser_struct_or_union_specifier): Likewise.
2718         (c_parser_typeof_specifier): Likewise.  Update call to
2719         groktypename.  Fold expression as needed.  Return expressions with
2720         type instead of adding statements.
2721         (c_parser_attributes): Update calls to c_parser_expr_list.
2722         (c_parser_statement_after_labels): Fold expression before passing
2723         to objc_build_throw_stmt.
2724         (c_parser_condition): Fold expression.
2725         (c_parser_asm_operands): Fold expression.
2726         (c_parser_conditional_expression): Use c_save_expr.  Update call
2727         to build_conditional_expr.
2728         (c_parser_alignof_expression): Update call to groktypename.
2729         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
2730         original_code.  Fold expression argument of va_arg.  Create
2731         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
2732         argument to va_arg.  Update calls to groktypename.  Fold array
2733         index for offsetof.  Verify that first argument to
2734         __builtin_choose_expr has integer type.
2735         (c_parser_postfix_expression_after_paren_type): Update calls to
2736         groktypename and build_compound_literal.  Handle expressions with
2737         side effects in type name.
2738         (c_parser_postfix_expression_after_primary): Update call to
2739         c_parser_expr_list.  Set original_code for calls to
2740         __builtin_constant_p.
2741         (c_parser_expr_list): Take extra parameter fold_p.  Fold
2742         expressions if requested.
2743         (c_parser_objc_type_name): Update call to groktypename.
2744         (c_parser_objc_synchronized_statement): Fold expression.
2745         (c_parser_objc_receiver): Fold expression.
2746         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
2747         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
2748         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
2749         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
2750         (struct c_typespec): Add elements expr and expr_const_operands.
2751         (struct c_declspecs): Add elements expr and expr_const_operands.
2752         (groktypename, build_conditional_expr, build_compound_literal):
2753         Update prototypes.
2754         (in_late_binary_op): Declare.
2755         * c-typeck.c (note_integer_operands): New function.
2756         (in_late_binary_op): New variable.
2757         (decl_constant_value_for_broken_optimization): Move to c-common.c
2758         and rename to decl_constant_value_for_optimization.
2759         (default_function_array_conversion): Do not strip nops.
2760         (default_conversion): Do not call
2761         decl_constant_value_for_broken_optimization.
2762         (build_array_ref): Do not fold result.
2763         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
2764         result when operand is a VLA.
2765         (c_expr_sizeof_type): Update call to groktypename.  Handle
2766         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
2767         result when operand names a VLA type.
2768         (build_function_call): Update call to build_compound_literal.
2769         Only fold result for calls to __builtin_* functions.  Strip
2770         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
2771         the function designator.
2772         (convert_arguments): Fold arguments.  Update call to
2773         convert_for_assignment.
2774         (build_unary_op): Handle increment and decrement of
2775         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
2776         decrement earlier.  Fold operand of increment and decrement.
2777         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
2778         built for integer operand.  Wrap returns that are INTEGER_CSTs
2779         without being integer constant expressions or that have integer
2780         constant operands without being INTEGER_CSTs.
2781         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
2782         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
2783         result is an integer constant expression or can be used in
2784         unevaluated parts of one and avoid folding and wrap as
2785         appropriate.  Fold operands before possibly doing -Wsign-compare
2786         warnings.
2787         (build_compound_expr): Wrap result for C99 if operands can be used
2788         in integer constant expressions.
2789         (build_c_cast): Update call to digest_init.  Do not ignore
2790         overflow from casting floating-point constants to integers.  Wrap
2791         results that could be confused with integer constant expressions,
2792         null pointer constants or floating-point constants.
2793         (c_cast_expr): Update call to groktypename.  Handle expressions
2794         included in type name.
2795         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
2796         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
2797         Update calls to convert_for_assignment.
2798         (convert_for_assignment): Take new parameter
2799         null_pointer_constant.  Do not strip nops or call
2800         decl_constant_value_for_broken_optimization.  Set
2801         in_late_binary_op for conversions to boolean.
2802         (store_init_value): Update call to digest_init.
2803         (digest_init): Take new parameter null_pointer_constant.  Do not
2804         call decl_constant_value_for_broken_optimization.  pedwarn for
2805         initializers not constant expressions.  Update calls to
2806         convert_for_assignment.
2807         (constructor_nonconst): New.
2808         (struct constructor_stack): Add nonconst element.
2809         (really_start_incremental_init, push_init_level, pop_init_level):
2810         Handle constructor_nonconst and nonconst element.
2811         (set_init_index): Call constant_expression_warning for array
2812         designators.
2813         (output_init_element): Fold value.  Set constructor_nonconst as
2814         applicable.  pedwarn for initializers not constant expressions.
2815         Update call to digest_init.  Call constant_expression_warning
2816         where constant initializers are required.
2817         (process_init_element): Use c_save_expr.
2818         (c_finish_goto_ptr): Fold expression.
2819         (c_finish_return): Fold return value.  Update call to
2820         convert_for_assignment.
2821         (c_start_case): Fold switch expression.
2822         (c_process_expr_stmt): Fold expression.
2823         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
2824         ensure statement expression is not evaluated in constant expression.
2825         (build_binary_op): Track whether results are integer constant
2826         expressions or may occur in such, disable folding and wrap results
2827         as applicable.  Fold operands for -Wsign-compare warnings unless
2828         in_late_binary_op.
2829         (c_objc_common_truthvalue_conversion): Handle results folded to
2830         integer constants that are not integer constant expressions.
2831         * doc/extend.texi: Document when typeof operands are evaluated,
2832         that condition of __builtin_choose_expr is an integer constant
2833         expression, and more about use of __builtin_constant_p in
2834         initializers.
2835
2836 2009-03-29  Richard Guenther  <rguenther@suse.de>
2837
2838         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2839         propagate addresses of array references.
2840
2841 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
2842
2843         * regmove.c (perhaps_ends_bb_p): Remove.
2844         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
2845         from INSN and check that the main loop stays within that basic block.
2846         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
2847         (regmove_forward_pass): Split out from regmove_optimize.  Use
2848         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
2849         (regmove_backward_pass): Split out from regmove_optimize.  Use
2850         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
2851         (regmove_optimize): Simplify.
2852
2853 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2854
2855         PR target/39545
2856         * config/i386/i386.c (classify_argument): Ignore flexible array
2857         member in struct and warn ABI change.
2858
2859 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2860
2861         * config/i386/i386-protos.h (ix86_agi_dependent): New.
2862
2863         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
2864         (ix86_adjust_cost): Updated.
2865
2866 2009-03-29  Jan Hubicka  <jh@suse.cz>
2867
2868         PR middle-end/28850
2869         * tree-pass.h (pass_cleanup_eh): New function.
2870         (remove_unreachable_regions): Break code handling RTL
2871         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
2872         that can not be reached by runtime.
2873         (can_be_reached_by_runtime): New function.
2874         (label_to_region_map): New function.
2875         (num_eh_regions): New function.
2876         (rtl_remove_unreachable_regions): New function.
2877         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
2878         (remove_eh_region): New function.
2879         * except.h: Include sbitmap and vecprim.
2880         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
2881         num_eh_regions): Declare.
2882         * passes.c (init_optimization_passes): Schedule cleanup_eh.
2883         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
2884         * tree-eh.c (tree_remove_unreachable_handlers): New function.
2885         (tree_empty_eh_handler_p): New function.
2886         (cleanup_empty_eh): New function.
2887         (cleanup_eh): New function.
2888         (pass_cleanup_eh): New function.
2889
2890 2009-03-29  Jan Hubicka  <jh@suse.cz>
2891
2892         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
2893         for removed regions.
2894
2895 2009-03-29  Jan Hubicka  <jh@suse.cz>
2896
2897         * except.c (dump_eh_tree): Dump all datastructures.
2898
2899 2009-03-29  Jan Hubicka  <jh@suse.cz>
2900
2901         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
2902         (duplicate_eh_regions_1): Likewise.
2903         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
2904         vector; call EH verification.
2905         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2906         Be ready for region being removed.
2907
2908 2009-03-29  Jan Hubicka  <jh@suse.cz>
2909
2910         * bitmap.c (bitmap_last_set_bit): New function.
2911         * bitmap.h (bitmap_last_set_bit): Declare.
2912
2913 2009-03-29  David Ayers  <ayers@fsfe.org>
2914
2915         PR objc/27377
2916         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
2917         by calling objc_compare_types and surpress warnings about
2918         incompatible C pointers that are compatible ObjC pointers.
2919         
2920 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
2921
2922         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
2923         call initialize_inline_failed.
2924         (initialize_inline_failed): Move it from here ...
2925         * cgraph.c (initialize_inline_failed): ... to here.
2926         (cgraph_create_edge): Call initialize_inline_failed rather than
2927         setting inline_failed directly.
2928
2929 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2930
2931         PR target/32542
2932         * sysv4.opt (msdata): Improve comment.
2933         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
2934         * sysv4.h (SVR4_ASM_SPEC): Likewise.
2935
2936 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2937
2938         PR target/30451
2939         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
2940         load and store attributes.
2941
2942 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2943
2944         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
2945         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
2946         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
2947         * doc/extend.texi (X86 Built-in Functions): Add index entries for
2948         __builtin_infq and __builtin_huge_valq.
2949
2950 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
2951
2952         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
2953         atmega8m1 devices.
2954         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2955         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
2956
2957 2009-03-28  Xinliang David Li  <davidxl@google.com>
2958
2959         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
2960         (do_dbg_cnt): New function.
2961
2962 2009-03-28  Jan Hubicka  <jh@suse.cz>
2963
2964         Merge from pretty-ipa:
2965
2966         2009-03-27  Jan Hubicka  <jh@suse.cz>
2967
2968         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2969         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
2970         * passes.c (function_called_by_processed_nodes_p): New.
2971         * ipa-pure-const.c (check_call): Fix handling of operands.
2972         (analyze_function): Dump debug output for skipped bodies.
2973         (local_pure_const): Use function_called_by_processed_nodes_p.
2974         * dwarf2out.c (reference_to_unused): Use output.
2975         * passes.c (do_per_function_toporder): Likewise.
2976
2977         2008-11-12  Jan Hubicka  <jh@suse.cz>
2978
2979         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
2980         * ipa-pure-const.c (funct_state_d): Add can throw field; make
2981         state_set_in_source enum
2982         (check_decl): Ignore memory tags; do not set fake looping flags;
2983         dump diagnostics.
2984         (check_operand, check_tree, check_rhs_var, check_lhs_var,
2985         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
2986         (check_call, analyze_function): Rewrite.
2987         (check_stmt): New.
2988         (add_new_function): Update call of analyze_function.
2989         (generate_summary): Add call of analyze_function.
2990         (propagate): Propagate can_throw; handle state_set_in_source correctly.
2991         (local_pure_const): New function.
2992         (pass_local_pure_const): New pass.
2993         * ipa-inline.c (inline_transform): Set after_inlining.
2994         * tree-eh.c (stmt_can_throw_external): New.
2995         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
2996         work with aliasing built.
2997         * tree-flow.h (stmt_can_throw_external): New.
2998         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
2999         and local pure/const pass in early and late optimization queue.
3000
3001 2009-03-28  Martin Jambor  <mjambor@suse.cz>
3002
3003         * fold-const.c (get_pointer_modulus_and_residue): New parameter
3004         allow_func_align.
3005         (fold_binary): Allow function decl aligment consideration is the
3006         second argument is integer constant one.
3007         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
3008         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
3009         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
3010
3011 2009-03-28  Jan Hubicka  <jh@suse.cz>
3012
3013         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
3014         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
3015         * function.h (rtl_data): Add nothrow flag.
3016         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
3017         set DECL_NOTHROW for AVAILABLE functions.
3018
3019 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
3020
3021         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
3022         following vector keyword has expansion starting with pixel or bool
3023         keyword, expand vector to __vector and pixel or bool to __pixel or
3024         __bool.
3025
3026         PR c++/39554
3027         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
3028         warn_if_disallowed_function_p): Removed.
3029         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
3030         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
3031         warning_if_disallowed_function_p.
3032         * flags.h (warn_if_disallowed_function_p,
3033         warn_disallowed_functions): Removed.
3034         * common.opt (Wdisallowed-function-list=): Removed.
3035         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
3036
3037 2009-03-28  Richard Guenther  <rguenther@suse.de>
3038
3039         PR tree-optimization/38723
3040         * tree-ssa-pre.c (compute_avail): Add all default definitions to
3041         the entry block.
3042
3043 2009-03-28  Jan Hubicka  <jh@suse.cz>
3044
3045         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
3046         test introduced by my previous patch.
3047
3048 2009-03-28  Richard Guenther  <rguenther@suse.de>
3049
3050         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
3051         the PHIs value undefined.
3052
3053 2009-03-28  Jan Hubicka  <jh@suse.cz>
3054
3055         * tree-pass.h (pass_fixup_cfg): New pass.
3056         * ipa-inline.c (inline_transform): Set
3057         always_inline_functions_inlined/after_inlining.
3058         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
3059         (pass_fixup_cfg): New pass.
3060         * passes.c (init_optimization_passes): Add fixup_cfg.
3061
3062 2009-03-28  Richard Guenther  <rguenther@suse.de>
3063
3064         PR tree-optimization/38458
3065         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
3066         argument use the arguments copy-of value.
3067
3068 2009-03-28  Richard Guenther  <rguenther@suse.de>
3069
3070         PR tree-optimization/38180
3071         * tree-ssa-ccp.c (get_default_value): Simplify.
3072         (likely_value): Likewise.
3073         (surely_varying_stmt_p): Properly handle VOP case.
3074         (ccp_initialize): Likewise.
3075         (ccp_fold): Handle propagating through *&.
3076         (fold_const_aggregate_ref): Also handle decls.
3077
3078 2009-03-28  Jan Hubicka  <jh@suse.cz>
3079
3080         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
3081         * cgraph.h (cgraph_node): Likewise.
3082         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
3083         (cgraph_reset_node): Use process flag.
3084         (cgraph_mark_functions_to_output): Likewise.
3085         (cgraph_expand_function): Likewise.
3086         (cgraph_expand_all_functions): Likewise.
3087         (cgraph_output_in_order): Likewise.
3088         * dwarf2out.c (reference_to_unused): Likewise.
3089         * passes.c do_per_function_toporder): Likewise.
3090
3091 2009-03-28  Jan Hubicka  <jh@suse.cz>
3092
3093         Bring from lto-branch:
3094
3095         2008-09-03  Doug Kwan  <dougkwan@google.com>
3096
3097         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
3098         enums instead of reason strings.
3099         * cgraph.c (cgraph_create_edge): Same.
3100         (cgraph_inline_failed_string): New function.
3101         * cgraph.h (cgraph_inline_failed_t): New enum type.
3102         (cgraph_inline_failed_string): New prototype.
3103         (struct cgraph_edge): Change type of INLINED_FAILED from constant
3104         char pointer to cgraph_inline_failed_t.
3105         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
3106         (cgraph_default_inline_p): Ditto.
3107         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
3108         to cgraph_inline_failed_t pointer.
3109         * cif-code.def: New file.
3110         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
3111         reason string.
3112         (cgraph_check_inline_limits): Change type of REASON to pointer to
3113         cgraph_inline_failed_t.  Replace reason strings with enums.
3114         (cgraph_default_inline_p): Ditto.
3115         (cgraph_recursive_inlining_p): Ditto.
3116         (update_caller_keys): Change type of FAILED_REASON to
3117         cgraph_inline_failed_t.
3118         (cgraph_set_inline_failed): Change type of REASON to pointer to
3119         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
3120         convert enums to strings for text output.
3121         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
3122         to be of type cgraph_inline_failed_t.  Replace reason strings with
3123         enums.  Call cgraph_inline_failed_string to covert enums
3124         to strings for text output.
3125         (cgraph_decide_inlining): Replace reason strings with enums.
3126         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
3127         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
3128         for text output.
3129         * tree-inline.c (expand_call_inline): Change type of REASON
3130         to cgraph_inline_failed_t.  Replace reason strings with enums.
3131         Call cgraph_inline_failed_string for text output.
3132         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
3133         (cgraph.o): Ditto.
3134
3135 2009-03-28  Jan Hubicka  <jh@suse.cz>
3136
3137         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
3138         cgraph_clone_node): Remove master clone handling.
3139         (cgraph_is_master_clone, cgraph_master_clone): Remove.
3140         * cgraph.h (master_clone): Remove.
3141         (cgraph_is_master_clone, cgraph_master_clone): Remove.
3142         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
3143         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
3144
3145 2009-03-28  Jan Hubicka  <jh@suse.cz>
3146
3147         * cgraph.c (cgraph_function_body_availability): Functions declared
3148         inline are always safe to assume that it is not going to be replaced.
3149
3150 2009-03-28  Richard Guenther  <rguenther@suse.de>
3151
3152         PR tree-optimization/38513
3153         * tree-ssa-pre.c (eliminate): Remove redundant stores.
3154         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3155         EXC_PTR_EXPR and FILTER_EXPR.
3156         (get_ref_from_reference_ops): Likewise.
3157
3158 2009-03-28  Richard Guenther  <rguenther@suse.de>
3159
3160         PR tree-optimization/38968
3161         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
3162         Use FLOOR_MOD_EXPR to compute misalignment.
3163
3164 2009-03-28  Richard Guenther  <rguenther@suse.de>
3165
3166         PR tree-optimization/37795
3167         * tree.h (combine_comparisons): Declare.
3168         * fold-const.c (combine_comparisons): Export.
3169         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
3170         comparisons.
3171         (ifcombine_iforif): Use combine_comparisons.
3172
3173 2009-03-28  Jan Hubicka  <jh@suse.cz>
3174
3175         * tree-eh.c (inlinable_call_p): New function.
3176         (make_eh_edges): Use it.
3177         (verify_eh_edges): Use it.
3178         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
3179         * except.c (reachable_next_level): Add inlinable_function argument
3180         (sjlj_find_directly_reachable_regions): Update.
3181         (add_reachable_handler): Do not set saw_any_handlers.
3182         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
3183         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
3184         Add new inlinable call parameter.
3185         (can_throw_internal, can_throw_external): Update.
3186         * except.h (can_throw_internal_1, can_throw_external_1,
3187         foreach_reachable_handler): Update declaration.
3188
3189 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
3190
3191         * config/arm/t-arm-coff, config/h8300/coff.h,
3192         config/i386/i386-aout.h, config/i386/i386-coff.h,
3193         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
3194         config/pdp11/2bsd.h, config/rs6000/aix41.h,
3195         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
3196         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
3197         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
3198         sys-types.h: Remove.
3199         * Makefile.in: Remove protoize and fixproto support and references
3200         in comments.
3201         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
3202         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
3203         Remove.
3204         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
3205         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
3206         unprotoize$(exeext).
3207         (rest.encap): Don't depend on $(STMP_FIXPROTO)
3208         (.PHONY): Don't depend on proto.
3209         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
3210         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
3211         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
3212         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
3213         build/gen-protos.o, build/scan.o, xsys-protos.h,
3214         build/fix-header$(build_exeext), build/fix-header.o,
3215         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
3216         stmp-install-fixproto): Remove.
3217         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
3218         SYSCALLS.c or fixproto files.
3219         (install-common): Don't install protoize.
3220         (install-headers-tar, install-headers-cpio, install-headers-cp):
3221         Don't depend on $(STMP_FIXPROTO).
3222         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
3223         install fixproto files or write out fixproto settings.
3224         (uninstall): Don't uninstall protoize.
3225         * config.gcc (use_fixproto): Remove.
3226         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
3227         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
3228         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
3229         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
3230         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
3231         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
3232         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
3233         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
3234         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
3235         * config/t-vxworks (STMP_FIXPROTO): Remove.
3236         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
3237         STMP_FIXPROTO): Remove.
3238         * config.in, configure: Regenerate.
3239         * crtstuff.c (gid_t, uid_t): Don't undefine.
3240         * doc/install.texi: Change m68k-coff to m68k-elf in example.
3241         (arm-*-coff, arm-*-aout: Remove target entries.
3242         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
3243         Remove mention of AIX 4.1.
3244         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
3245         * doc/invoke.texi (Running Protoize): Remove.
3246         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
3247         (Protoize Caveats): Remove.
3248         * tsystem.h: Update comments on headers assumed to exist.
3249
3250 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3251
3252         * genautomata.c: Add a new year to the copyright.  Add a new
3253         reference.
3254         (struct insn_reserv_decl): Add comments for member bypass_list.
3255         (find_bypass): Remove.
3256         (insert_bypass): New.
3257         (process_decls): Use insert_bypass.
3258         (output_internal_insn_latency_func): Output all bypasses with the
3259         same input insn in one switch case.
3260
3261         * rtl.def (define_bypass): Describe bypass choice.
3262         * doc/md.texi (define_bypass): Ditto.
3263
3264 2009-03-27  Richard Guenther  <rguenther@suse.de>
3265
3266         * gimplify.c (mark_addressable): Export.
3267         * tree-flow.h (mark_addressable): Declare.
3268         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
3269         * tree-ssa.c (verify_phi_args): Verify that address taken
3270         variables have TREE_ADDRESSABLE set.
3271
3272 2009-03-27  Richard Guenther  <rguenther@suse.de>
3273
3274         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
3275         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
3276         Do not mark decls TREE_ADDRESSABLE.
3277         (build_fold_addr_expr): Adjust.
3278         (fold_addr_expr): Remove.
3279         (fold_unary): Use build_fold_addr_expr.
3280         (fold_comparison): Likewise.
3281         (split_address_to_core_and_offset): Likewise.
3282         * coverage.c (tree_coverage_counter_addr): Mark the array decl
3283         TREE_ADDRESSABLE.
3284         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
3285         (gimplify_modify_expr_to_memcpy): Mark source and destination
3286         addressable.
3287         * omp-low.c (create_omp_child_function): Mark the object decl
3288         TREE_ADDRESSABLE.
3289         (lower_rec_input_clauses): Mark the var we take the address of
3290         TREE_ADDRESSABLE.
3291         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
3292
3293 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3294
3295         PR middle-end/39315
3296         * cfgexpand.c (expand_one_stack_var_at): Change alignment
3297         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
3298
3299 2009-03-27  Richard Guenther  <rguenther@suse.de>
3300
3301         PR tree-optimization/39120
3302         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
3303         constraints.
3304         (handle_lhs_call): Process return constraints.  Add escape
3305         constraints if necessary.
3306         (handle_const_call): Fill out return constraints.  Make nested
3307         case more precise.  Avoid consttmp if possible.
3308         (handle_pure_call): Fill out return constraints.  Avoid
3309         callused if possible.
3310         (find_func_aliases): Simplify call handling.
3311
3312 2009-03-27  Richard Guenther  <rguenther@suse.de>
3313
3314         PR tree-optimization/39120
3315         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
3316         as a representative.
3317         (solve_graph): Do propagate CALLUSED.
3318         (handle_pure_call): Use a scalar constraint from CALLUSED for
3319         the return value.
3320         (find_what_p_points_to): CALLUSED shall not appear in poins-to
3321         solutions.
3322
3323 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3324
3325         PR c/39323
3326         * c-common.c (handle_aligned_attribute): Properly check alignment
3327         overflow.  Use (1U << i) instead of (1 << i).
3328
3329         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
3330
3331         * expr.h (get_mem_align_offset): Updated.
3332
3333         * tree.h (tree_decl_common): Change align to "unsigned int" and
3334         move it before pointer_alias_set.
3335
3336 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3337             Jakub Jelinek  <jakub@redhat.com>
3338
3339         PR target/38034
3340         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
3341         gr_register_operand with gr_reg_or_0_operand.
3342         (cmpxchg_rel_di): Likewise.
3343         (sync_lock_test_and_set<mode>): Likewise.
3344
3345 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3346
3347         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
3348         (true_regnum): Likewise.
3349
3350         * rtlanal.c (subreg_info): Moved to ...
3351         * rtl.h (subreg_info): Here.  New.
3352         (subreg_get_info): New.
3353
3354         * rtlanal.c (subreg_get_info): Make it extern.
3355
3356 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3357
3358         PR target/39472
3359         * config/i386/i386.c (ix86_abi): New.
3360         (override_options): Handle -mabi=.
3361         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
3362         (ix86_call_abi_override): Likewise.
3363         (init_cumulative_args): Likewise.
3364         (function_arg_advance): Likewise.
3365         (function_arg_64): Likewise.
3366         (function_arg): Likewise.
3367         (ix86_pass_by_reference): Likewise.
3368         (ix86_function_value_regno_p): Likewise.
3369         (ix86_build_builtin_va_list_abi): Likewise.
3370         (setup_incoming_varargs_64): Likewise.
3371         (is_va_list_char_pointer): Likewise.
3372         (ix86_init_machine_status): Likewise.
3373         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
3374         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
3375         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
3376         (ix86_function_abi): Make it static and return enum calling_abi.
3377         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
3378         with ix86_abi.
3379         (ix86_fn_abi_va_list): Updated.
3380
3381         * config/i386/i386.h (ix86_abi): New.
3382         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
3383         (CONDITIONAL_REGISTER_USAGE): Likewise.
3384         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
3385         (machine_function): Likewise.
3386
3387         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
3388         with ix86_abi.
3389         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
3390         (STACK_BOUNDARY): Likewise.
3391         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
3392
3393         * config/i386/i386.opt (mabi=): New.
3394
3395         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
3396         return enum calling_abi.
3397         (ix86_function_type_abi): Likewise.
3398         (ix86_function_abi): Removed.
3399
3400         * doc/invoke.texi: Document -mabi= option for x86.
3401
3402 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3403
3404         * builtins.c (real_dconstp): Delete.
3405         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
3406
3407 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
3408             Jakub Jelinek  <jakub@redhat.com>
3409
3410         PR debug/37959
3411         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
3412         (gen_subprogram_die): When a function is explicit, generate the
3413         DW_AT_explicit attribute.
3414         * langhooks.h (struct lang_hooks_for_decls): Add
3415         function_decl_explicit_p langhook.
3416         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
3417         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
3418
3419 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
3420
3421         * builtins.c (fold_builtin_memory_op): Optimize memmove
3422         into memcpy if we can prove source and destination don't overlap.
3423
3424         * tree-inline.c: Include gt-tree-inline.h.
3425         (clone_fn_id_num): New variable.
3426         (clone_function_name): New function.
3427         (tree_function_versioning): Use it.
3428         * Makefile.in (GTFILES): Add tree-inline.c.
3429
3430 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
3431
3432         * BASE-VER: Change to 4.5.0.
3433
3434 2009-03-27  Xinliang David Li  <davidxl@google.com>
3435
3436         PR tree-optimization/39557
3437         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
3438
3439 2009-03-27  Xinliang David Li  <davidxl@google.com>
3440
3441         PR tree-optimization/39548
3442         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
3443         candidate check.
3444
3445 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3446
3447         * c-common.c (pointer_int_sum): Use %wd on return from
3448         tree_low_cst.
3449
3450 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3451
3452         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
3453         on return from tree_low_cst.
3454
3455 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3456
3457         PR c++/36799
3458         * ginclude/stdarg.h (va_copy): Define also for
3459         __GXX_EXPERIMENTAL_CXX0X__.
3460
3461 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3462
3463         PR c++/35652
3464         * builtins.h (c_strlen): Do not warn here.
3465         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3466         * c-common.c (pointer_int_sum): Take an explicit location.
3467         Warn about offsets out of bounds.
3468         * c-common.h (pointer_int_sum): Adjust declaration.
3469
3470 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3471
3472         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
3473         markup glitch.
3474
3475 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
3476
3477         PR c++/39554
3478         * opts.c (warn_if_disallowed_function_p): Don't assume
3479         get_callee_fndecl must return non-NULL.
3480
3481 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3482
3483         PR rtl-optimization/39522
3484         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
3485         when reg_reloaded_valid is set.
3486
3487 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3488
3489         * config/spu/divv2df3.c: New file.
3490         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
3491         (DPBIT_FUNCS): Filter out _div_df.
3492
3493 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3494
3495         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
3496         a jump insn, count that jump in the distance to the loop start.
3497
3498 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3499
3500         PR target/39523
3501         * config/sh/sh.c (calc_live_regs): Fix condition for global
3502         registers except PIC_OFFSET_TABLE_REGNUM.
3503
3504 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
3505
3506         PR/39518
3507         * doc/invoke.texi (-mconsole): New.
3508         (-mcygwin): New.
3509         (-mno-cygwin): New.
3510         (-mdll): New.
3511         (-mnop-fun-dllimport): New.
3512         (-mthread): New.
3513         (-mwin32): New.
3514         (-mwindows): New.
3515         (sub section "i386 and x86-64 Windows Options"): New.
3516
3517 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
3518
3519         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
3520         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
3521
3522 2009-03-25  Richard Guenther  <rguenther@suse.de>
3523
3524         PR middle-end/39497
3525         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
3526         of -Wno-error.
3527
3528 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
3529
3530         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
3531         neither of haifa/selective schedulers are working.
3532
3533 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3534
3535         * doc/invoke.texi (Debugging Options): Fix description of
3536         -fno-merge-debug-strings.
3537
3538 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
3539
3540         * config/cris/libgcc.ver: New version-script.
3541         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
3542
3543         * configure.ac <GAS features, nop mnemonic>: Add pattern
3544         crisv32-*-* for "nop".
3545         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
3546         * configure: Regenerate.
3547
3548 2009-03-24  Ira Rosen  <irar@il.ibm.com>
3549
3550         PR tree-optimization/39529
3551         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3552         mark_sym_for_renaming for the tag copied to the new vector
3553         pointer.
3554
3555 2009-03-24  Arthur Loiret  <aloiret@debian.org>
3556
3557         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
3558         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
3559         EXTRA_SPEC_FUNCTIONS.
3560         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
3561         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
3562         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
3563         -march and -mtune options.
3564
3565 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
3566
3567         * config/m68k/t-rtems: Add m5329 multilib.
3568
3569 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
3570             Jakub Jelinek  <jakub@redhat.com>
3571
3572         PR debug/39524
3573         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
3574         nodes.
3575
3576 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3577
3578         PR c/39495
3579         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
3580         instead of c_parser_expression_conv, if original_code isn't one of the
3581         4 allowed comparison codes, fail.
3582
3583 2009-03-23  Richard Guenther  <rguenther@suse.de>
3584
3585         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
3586         * tree.h (struct tree_type): Likewise.
3587         * reload.h (struct insn_chain): Likewise.
3588         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
3589         * function.h (struct function): Likewise.
3590         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
3591
3592 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3593
3594         PR tree-optimization/39516
3595         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
3596
3597 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
3598
3599         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
3600         should be set true if BITS_PER_WORD of target is bigger than 32
3601
3602 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
3603
3604         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
3605         Translate -B-options to -rpath-link.  Correct existing
3606         rpath-link and conditionalize on !nostdlib.
3607
3608 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3609
3610         * doc/extend.texi (Function Attributes, Variable Attributes):
3611         Fix typos.
3612         * doc/invoke.texi (Debugging Options, Optimize Options)
3613         (i386 and x86-64 Options, MCore Options): Likewise.
3614
3615 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
3616
3617         PR debug/37890
3618         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
3619         it for block local namespace aliases.
3620         (gen_decl_die): Pass context_die to gen_namespace_die.
3621
3622 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
3623
3624         PR c/39495
3625         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
3626         minimum or maximum value.
3627
3628 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
3629
3630         * reginfo.c (globalize_reg): Recompute derived reg sets.
3631
3632 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
3633
3634         PR target/39063
3635         * libgcc2.c (mprotect): Do not use signed arguments for
3636         VirtualProtect, use DWORD arguments.  Also fix the 'may
3637         be used uninitialized' warning for the np variable.
3638
3639 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
3640
3641         PR target/39496
3642         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
3643         functions using regparm calling conventions when not optimizing.
3644         (ix86_function_sseregparm): Similarly for sseregparm calling
3645         conventions.
3646
3647 2009-03-19  Li Feng  <nemokingdom@gmail.com>
3648
3649         PR middle-end/39500
3650         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
3651         dependence if the first conflict is after niter iterations.
3652
3653 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
3654
3655         PR middle-end/38609
3656         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
3657         functions with dynamic stack-pointer adjustments.
3658
3659 2009-03-19  Ben Elliston  <bje@au.ibm.com>
3660
3661         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
3662         option; change to -msdata=data.
3663
3664 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3665
3666         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
3667         and -fopenmp.
3668
3669 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
3670
3671         PR target/35180
3672         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
3673
3674 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
3675
3676         * doc/invoke.texi (Code Gen Options): Expand discussion of
3677         -fno-common.
3678
3679 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
3680
3681         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
3682         * matrix-reorg.c (struct matrix_info): Likewise.
3683         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
3684         * rtl.h (struct mem_attrs): Likewise.
3685         * df.h (struct df): Likewise.
3686         * tree-data-ref.h (struct data_dependence_relation): Likewise.
3687         * ira-int.h (struct ira_allocno): Likewise.
3688         * df-scan.c (struct df_collection_rec): Likewise.
3689         * ira.c (struct equivalence): Likewise.
3690         * function.c (struct temp_slot): Likewise.
3691         * cfgloop.h (struct loop): Likewise.
3692
3693         PR debug/39485
3694         * function.c (use_register_for_decl): When not optimizing, disregard
3695         register keyword for variables with types containing methods.
3696
3697 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
3698
3699         PR middle-end/39447
3700         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
3701         (is_simple_operand): Call contains_component_ref_p before calling data
3702         reference analysis that would fail on COMPONENT_REFs.
3703
3704         * tree-vrp.c (search_for_addr_array): Fix formatting.
3705
3706 2009-03-18  Richard Guenther  <rguenther@suse.de>
3707
3708         * tree-vect-transform.c (vect_loop_versioning): Fold the
3709         generated comparisons.
3710         * tree-vectorizer.c (set_prologue_iterations): Likewise.
3711         (slpeel_tree_peel_loop_to_edge): Likewise.
3712
3713 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3714
3715         PR middle-end/37805
3716         * opts.c (print_specific_help): In addition to `undocumented',
3717         accept `separate' and `joined' flags if passed alone.  Describe
3718         output by the first matched one of those.
3719         (common_handle_option): Skip over empty strings.
3720         * gcc.c (display_help): Fix help string for `--help='.
3721         * doc/invoke.texi (Option Summary, Overall Options): With
3722         `--help=', classes and qualifiers can both be repeated, but
3723         only the latter can be negated.  One should not pass only
3724         negated qualifiers.  Fix markup and examples.
3725
3726         Revert
3727         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3728         PR middle-end/37805
3729         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3730         and -fhelp=separate.
3731
3732 2009-03-17  Jing Yu  <jingyu@google.com>
3733
3734         PR middle-end/39378
3735         * function.h (struct rtl_data): Move is_thunk from here...
3736         (struct function): ...to here.
3737         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3738         * varasm.c (assemble_start_function): Change is_thunk from crtl to
3739         cfun.
3740         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
3741         cfun.
3742         (alpha_does_function_need_gp, alpha_start_function): Likewise.
3743         (alpha_output_function_end_prologue): Likewise.
3744         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
3745         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
3746         (rs6000_output_function_epilogue): Likewise.
3747         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3748
3749 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
3750
3751         PR target/39482
3752         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
3753         from different units in a single alternative.
3754         (*truncdfsf_i387): Ditto.
3755         (*truncxfsf2_mixed): Ditto.
3756         (*truncxfdf2_mixed): Ditto.
3757
3758 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
3759
3760         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
3761         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
3762
3763         PR debug/39474
3764         * tree-ssa-live.c (remove_unused_locals): Don't remove local
3765         unused non-artificial variables when not optimizing.
3766
3767         PR debug/39471
3768         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
3769         DW_TAG_imported_module even if decl is IMPORTED_DECL with
3770         NAMESPACE_DECL in its DECL_INITIAL.
3771
3772         PR middle-end/39443
3773         * optabs.c (set_user_assembler_libfunc): New function.
3774         * expr.h (set_user_assembler_libfunc): New prototype.
3775         * c-common.c: Include libfuncs.h.
3776         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
3777         for memcmp, memset, memcpy, memmove and abort.
3778         * Makefile.in (c-common.o): Depend on libfuncs.h.
3779
3780         PR debug/39412
3781         * dwarf2out.c (gen_inlined_enumeration_type_die,
3782         gen_inlined_structure_type_die, gen_inlined_union_type_die,
3783         gen_tagged_type_instantiation_die): Removed.
3784         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
3785         do nothing.
3786
3787 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
3788
3789         PR testsuite/38526
3790         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
3791         its use.
3792         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
3793         (check-parallel-%): Ditto.
3794         (check-consistency): Ditto.
3795
3796 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
3797
3798         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
3799         local variable rhs by NULL_TREE.
3800
3801 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3802
3803         PR target/39477
3804         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
3805
3806 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3807
3808         PR target/39476
3809         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
3810
3811 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3812
3813         PR target/39473
3814         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
3815         for ms->sysv ABI calls only in 64bit mode.
3816
3817         * config/i386/i386.md (untyped_call): Support 32bit.
3818
3819 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3820
3821         * doc/extend.texi: Replace x86_65 with x86_64.
3822
3823 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
3824
3825         PR tree-optimization/39455
3826         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
3827         mismatches for POINTER_TYPE_P (type).
3828         (number_of_iterations_le): Likewise.
3829
3830 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
3831
3832         * config/picochip/picochip.c: Removed profiling support.
3833         * config/picochip/picochip.md: Removed profiling instruction.
3834         * config/picochip/picochip.h: Removed profiling builtin.
3835
3836 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
3837
3838         * doc/install.texi (--with-host-libstdcxx): Document.
3839
3840 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
3841
3842         PR target/34299
3843         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
3844         generate a warning if the function name does not begin with
3845         "__vector" and the function has either the 'signal' or 'interrupt'
3846         attribute, from here to ...
3847         (avr_declare_function_name): ...here. New function.
3848         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
3849         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
3850
3851 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
3852
3853         PR bootstrap/39454
3854         * cse.c (fold_rtx): Don't modify original const_arg1 when
3855         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
3856         separate variable instead.
3857         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
3858         from out of range shift counts.
3859         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
3860
3861 2008-03-13  Catherine Moore  <clm@codesourcery.com>
3862
3863         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
3864         diagnostic.h with $(DIAGNOSTIC_H).
3865
3866 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3867
3868         PR target/39431
3869         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
3870         predicate.
3871         * config/i386/sync.md (sync_compare_and_swap<mode>,
3872         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
3873         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
3874         into a register.
3875         (sync_double_compare_and_swapdi_pic,
3876         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
3877         cmpxchg8b_pic_memory_operand instead of just memory_operand.
3878
3879 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3880
3881         PR target/39445
3882         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
3883
3884 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3885
3886         PR target/39327
3887         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3888         (avx_addsubv4df3): Likewise.
3889         (*avx_addsubv4sf3): Likewise.
3890         (sse3_addsubv4sf3): Likewise.
3891
3892 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3893
3894         PR target/38824
3895         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
3896
3897 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
3898
3899         PR debug/39432
3900         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
3901         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3902         registers for allocnos created from user-defined variables.
3903
3904 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3905
3906         PR target/39181
3907         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
3908         of non-integer mode as well.
3909
3910 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
3911
3912         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
3913         for functions for which the parameter types are unknown.
3914
3915 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
3916
3917         PR target/39137
3918         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
3919         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
3920         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
3921         * config/i386/i386.c (ix86_local_alignment): For
3922         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
3923         long long variables on the stack to avoid dynamic realignment.
3924         Allow the first argument to be a decl rather than type.
3925         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
3926
3927 2009-03-11  Nick Clifton  <nickc@redhat.com>
3928
3929         PR target/5362
3930         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
3931         options.
3932         Add description to mno-lsim option.
3933         * config/mcore/mcore.h: Remove comment about deprecated m4align
3934         option.
3935         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
3936         * doc/invoke.texi: Add description of mno-lsim and
3937         mstack-increment options.
3938
3939         * config/fr30/fr30.opt: Document the -mno-lsim option.
3940         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
3941         and -mno-lsim options.
3942
3943 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3944
3945         * fold-const.c (fold_comparison): Only call fold_inf_compare
3946         if the mode supports infinities.
3947
3948 2009-03-11  Jason Merrill  <jason@redhat.com>
3949
3950         PR debug/39086
3951         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
3952         end already did.  Notice GIMPLE_CALL modifications of the result.
3953         Don't copy debug information from an ignored decl or a decl from
3954         another function.
3955
3956 2009-03-10  Richard Guenther  <rguenther@suse.de>
3957             Nathan Froyd  <froydnj@codesourcery.com>
3958
3959         PR middle-end/37850
3960         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
3961         (__divMODE3): Likewise.
3962
3963 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
3964
3965         PR tree-optimization/39394
3966         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
3967         DECL_SIZE_UNIT of variable length FIELD_DECLs.
3968
3969 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3970
3971         * recog.c (verfiy_changes): Disallow renaming of hard regs in
3972         inline asms for register asm ("") declarations.
3973
3974 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3975
3976         * fold-const.c (fold_unary): Fix comment.
3977
3978 2009-03-07  Jan Hubicka  <jh@suse.cz>
3979
3980         PR target/39361
3981         * tree-inline.c (setup_one_parameter): Do replacement of const
3982         argument by constant in SSA form.
3983
3984 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3985
3986         PR middle-end/38028
3987         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
3988         determine alignment passed to assign_stack_local.
3989         (assign_parms_unsplit_complex): Likewise.
3990         * except.c (sjlj_build_landing_pads): Likewise.
3991
3992 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3993
3994         PR middle-end/39360
3995         * tree-flow.h (add_referenced_var): Return bool instead of void.
3996         * tree-dfa.c (add_referenced_var): Return result of
3997         referenced_var_check_and_insert call.
3998         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
3999         of referenced_var_check_and_insert.
4000
4001         PR debug/39372
4002         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
4003         (gen_variable_die): Emit DW_AT_location on abstract static variable's
4004         DIE, don't emit it if abstract origin already has it.
4005         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
4006         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
4007
4008 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4009
4010         * genpreds.c (needs_variable): Fix parentheses at variable name
4011         detection.
4012         (write_tm_constrs_h): Indent generated code.
4013
4014 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4015
4016         * doc/extend.texi (Function Attributes): Add documentation
4017         for isr attributes.
4018
4019 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
4020
4021         PR debug/39387
4022         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
4023         take locus from its DECL_SOURCE_LOCATION instead of input_location.
4024
4025 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
4026
4027         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
4028         the loop as bad.
4029
4030 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
4031
4032         PR debug/39379
4033         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
4034         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
4035
4036 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
4037
4038         * config/i386/i386.md (R8_REG, R9_REG): New constants.
4039         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
4040         constants instead of magic numbers.
4041         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
4042         (QI_REG_P): Ditto.
4043         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
4044         (x86_64_ms_abi_int_parameter_registers): Ditto.
4045         (x86_64_int_return_registers): Ditto.
4046         (ix86_maybe_switch_abi): Ditto.
4047         (ix86_expand_call): Ditto for clobbered_registers array.
4048         (ix86_hard_regno_mode_ok): Ditto.
4049         (x86_extended_QIreg_mentioned_p): Ditto.
4050
4051 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
4052
4053         PR tree-optimization/39349
4054         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
4055
4056         * combine.c (gen_lowpart_for_combine): Use omode when generating
4057         clobber.
4058
4059 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
4060
4061         PR rtl-optimization/39235
4062         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
4063
4064 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
4065
4066         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
4067
4068 2009-03-04  Richard Guenther  <rguenther@suse.de>
4069
4070         PR tree-optimization/39362
4071         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
4072         that occur in abnormal PHIs should be varying.
4073
4074 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
4075
4076         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
4077         Extend comments.
4078         (simple_iv):  Take loop as an argument instead of statement.
4079         * tree-scalar-evolution.h (simple_iv): Declaration changed.
4080         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
4081         to simple_iv.
4082         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
4083         Ditto.
4084         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
4085         * matrix-reorg.c (analyze_transpose): Ditto.
4086         * tree-data-ref.c (dr_analyze_innermost): Ditto.
4087         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
4088         * tree-predcom.c (ref_at_iteration): Ditto.
4089         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
4090
4091 2009-03-04  Richard Guenther  <rguenther@suse.de>
4092
4093         PR tree-optimization/39358
4094         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
4095         escaped_id and callused_id.
4096         (solve_graph): Likewise.
4097
4098 2009-03-04  Richard Guenther  <rguenther@suse.de>
4099
4100         PR tree-optimization/39339
4101         * tree-sra.c (try_instantiate_multiple_fields): Make it
4102         no longer ICE on the above.
4103
4104 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
4105
4106         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
4107         that fits within Pmode.
4108
4109 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
4110
4111         PR middle-end/10109
4112         * tm.texi (LIBCALL_VALUE): Update description.
4113
4114 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
4115
4116         PR middle-end/34443
4117         * doc/extend.texi (section): Update description.
4118
4119 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
4120
4121         PR middle-end/39345
4122         * tree-inline.c (remapped_type): New.
4123         (can_be_nonlocal): Call remapped_type instead of remap_type.
4124
4125 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
4126
4127         PR fortran/39354
4128         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
4129         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
4130
4131 2009-03-03  Richard Guenther  <rguenther@suse.de>
4132
4133         PR middle-end/39272
4134         * tree.c (tree_nonartificial_location): New function.
4135         * tree.h (tree_nonartificial_location): Declare.
4136         * builtins.c (expand_builtin_memory_chk): Provide location
4137         of the call location for artificial function pieces.
4138         (maybe_emit_chk_warning): Likewise.
4139         (maybe_emit_sprintf_chk_warning): Likewise.
4140         (maybe_emit_free_warning): Likewise.
4141         * expr.c (expand_expr_real_1): Likewise.
4142
4143 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
4144
4145         PR tree-optimization/39343
4146         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
4147         COMPONENT_REF t has ARRAY_TYPE.
4148
4149 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
4150
4151         PR middle-end/39335
4152         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
4153         when the type precision of the induction variable should be
4154         larger than the type precision of nit.
4155         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
4156         * graphite.c (graphite_loop_normal_form): Same.
4157         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
4158
4159 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
4160
4161         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
4162         (*call_1_rex64_ms_sysv): Use named constants instead of magic
4163         numbers to describe clobbered registers.
4164         (*call_value_0_rex64_ms_sysv): Ditto.
4165         * config/i386/mmx.md (mmx_emms): Ditto.
4166         (mmx_femms): Ditto.
4167
4168 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
4169
4170         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
4171         of ABI_64.
4172
4173 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4174
4175         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
4176         (spu_section_type_flags): New function.
4177
4178 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
4179
4180         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
4181         reg_class_contents of FLOAT_REGS into a temporary.
4182
4183 2009-03-02  Richard Guenther  <rguenther@suse.de>
4184             Ira Rosen  <irar@il.ibm.com>
4185
4186         PR tree-optimization/39318
4187         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
4188         information to the vectorized statement.
4189
4190 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
4191
4192         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
4193         variable.  Use defined names instead of magic constants for REX SSE
4194         registers.
4195
4196 2009-03-01  Richard Guenther  <rguenther@suse.de>
4197
4198         PR tree-optimization/39331
4199         * omp-low.c (lower_send_shared_vars): Do not receive new
4200         values for the reference of DECL_BY_REFERENCE parms or results.
4201
4202 2009-03-01  Jan Hubicka  <jh@suse.cz>
4203
4204         PR debug/39267
4205         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
4206         BLOCK_NONLOCALIZED_VAR): New macros.
4207         (tree_block): Add nonlocalized_vars.
4208         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
4209         gen_decl_die): Add origin argument.  Allow generation of die with
4210         origin at hand only.
4211         (gen_member_die, gen_type_die_with_usage, force_decl_die,
4212         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
4213         of gen_*.
4214         (gen_block_die): Fix checking for unused blocks.
4215         (process_scope_var): Break out from .... ; work with origins only.
4216         (decls_for_scope) ... here; process nonlocalized list.
4217         (dwarf2out_ignore_block): Look for nonlocalized vars.
4218         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
4219         vars.
4220         (dump_scope_block): Dump them.
4221         * tree-inline.c (remap_decls): Handle nonlocalized vars.
4222         (remap_block): Likewise.
4223         (can_be_nonlocal): New predicate.
4224         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
4225
4226 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4227
4228         * configure: Regenerate.
4229
4230 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4231
4232         * optc-gen.awk: No need to duplicate option flags twice.
4233         Reuse help texts for duplicate options which do not have any.
4234
4235         * gcc.c (display_help): Document --version.
4236
4237         * gcc.c (main): If print_help_list and verbose_flag, ensure
4238         driver output comes before subprocess output.
4239
4240         * optc-gen.awk: Assign all remaining fields to help string,
4241         space-separated, for multi-line help in *.opt.
4242
4243         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
4244         -Wno-pedantic-ms-format is for MinGW targets only.
4245
4246         * doc/options.texi (Option file format): Fix bad indentation,
4247         restoring dropped sentence.
4248
4249 2009-02-28  Jan Hubicka  <jh@suse.cz>
4250
4251         * tree-inline.c (tree_function_versioning): Output debug info.
4252
4253 2009-02-28  Jan Hubicka  <jh@suse.cz>
4254
4255         PR debug/39267
4256         * tree-inline.c (setup_one_parameter): Do not copy propagate
4257         arguments when not optimizing.
4258
4259 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
4260
4261         PR target/39327
4262         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
4263         (avx_addsubv4df3): Likewise.
4264         (*avx_addsubv4sf3): Likewise.
4265         (sse3_addsubv4sf3): Likewise.
4266         (*avx_addsubv2df3): Likewise.
4267         (sse3_addsubv2df3): Likewise.
4268         (avx_unpckhps256): Correct item selectors.
4269         (avx_unpcklps256): Likewise.
4270         (avx_unpckhpd256): Likewise.
4271         (avx_unpcklpd256): Likewise.
4272
4273 2009-02-28  Jan Hubicka  <jh@suse.cz>
4274
4275         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
4276         static vars.
4277         (copy_arguments_for_versioning): If var is declared don't declare it.
4278         (tree_function_versioning): First setup substitutions and then copy
4279         args.
4280
4281 2009-02-27  Jan Hubicka  <jh@suse.cz>
4282
4283         PR debug/39267
4284         * cgraph.h (varpool_output_debug_info): Remove.
4285         * cgraphunit.c (varpool_output_debug_info): Remove.
4286         * dwarf2out.c (deferred_locations_struct): New struct
4287         (deferred_locations): New type.
4288         (deferred_locations_list): New static var.
4289         (deffer_location): New function.
4290         (gen_variable_die): Use it.
4291         (decls_for_scope): Output info on local static vars.
4292         (dwarf2out_finish): Process deferred locations.
4293         * varpool.c (varpool_output_debug_info): Remove.
4294
4295 2009-02-27  Jan Hubicka  <jh@suse.cz>
4296
4297         PR debug/39267
4298         * tree.h (TREE_PROTECTED): Fix comment.
4299         (BLOCK_HANDLER_BLOCK): Remove.
4300         (struct tree_block): Remove handler_block add body_block.
4301         (inlined_function_outer_scope_p): New.
4302         (is_body_block): Remove.
4303         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
4304         * dwarf2out.c (is_inlined_entry_point): Remove.
4305         (add_high_low_attributes): Use inlined_function_outer_scope_p.
4306         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
4307         code.
4308         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
4309         * gimplify.c (gimplify_expr): Gimplify body blocks.
4310         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
4311         block with multiple subblocks.
4312         (dump_scope_block): Prettier output; dump more flags and info.
4313         (dump_scope_blocks): New.
4314         (remove_unused_locals): Use dump_scope_blocks.
4315         * tree-flow.h (dump_scope_blocks): Declare.
4316         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
4317         * stmt.c (is_body_block): Remove.
4318         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
4319         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
4320
4321 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
4322
4323         PR middle-end/39308
4324         * graphite.c (graphite_loop_normal_form): Do not call 
4325         number_of_iterations_exit from a gcc_assert.
4326
4327 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4328
4329         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
4330         jumps if COND is NULL.
4331         (find_cond_jump): New function.
4332         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
4333         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
4334
4335 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
4336
4337         * config/alpha/alpha.h (alpha_expand_mov): Return false if
4338         force_const_mem returns NULL_RTX.
4339
4340 2009-02-26  Jan Hubicka  <jh@suse.cz>
4341
4342         PR debug/39267
4343         * cgraph.h (varpool_output_debug_info): Remove.
4344         * cgraphunit.c (varpool_output_debug_info): Remove.
4345         * dwarf2out.c (deferred_locations_struct): New struct
4346         (deferred_locations): New type.
4347         (deferred_locations_list): New static var.
4348         (deffer_location): New function.
4349         (gen_variable_die): Use it.
4350         (decls_for_scope): Output info on local static vars.
4351         (dwarf2out_finish): Process deferred locations.
4352         * varpool.c (varpool_output_debug_info): Remove.
4353
4354 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
4355
4356         PR rtl-optimization/39241
4357         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
4358         to subreg_offset_representable_p.
4359
4360 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4361
4362         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
4363         execute function prototype.  Get f and nregs from max_reg_num
4364         and get_insns.  Remove the first backward pass as it's dead,
4365         guard the forward pass by flag_expensive_optimizations.
4366         (rest_of_handle_regmove): Delete.
4367         (pass_regmove): Replace it with regmove_optimize.
4368
4369 2009-02-25  Martin Jambor  <mjambor@suse.cz>
4370
4371         PR tree-optimization/39259
4372         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
4373         calls_alloca function flags.
4374         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
4375         calls are detected.
4376
4377 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4378
4379         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
4380         flags_set_1_rtx, flags_set_1_set): Delete.
4381         (regmove_optimize): Do not call mark_flags_life_zones.
4382
4383 2009-02-24  Julian Brown  <julian@codesourcery.com>
4384
4385         PR target/35965
4386         * config/arm/arm.c (require_pic_register): Only set
4387         cfun->machine->pic_reg once per function.
4388
4389 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
4390
4391         * doc/invoke.texi (Link Options): Document an easier way to pass
4392         options that take arguments to the GNU linker using -Xlinker and -Wl.
4393
4394 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
4395
4396         PR target/33785
4397         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
4398
4399 2009-02-24  Richard Guenther  <rguenther@suse.de>
4400
4401         PR debug/39285
4402         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
4403
4404 2009-02-24  Richard Guenther  <rguenther@suse.de>
4405             Zdenek Dvorak  <ook@ucw.cz>
4406
4407         PR tree-optimization/39233
4408         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
4409         from converting them to a generic type.
4410
4411 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
4412
4413         PR tree-optimization/39260
4414         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
4415         contains a condition with a real type.
4416         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
4417
4418 2009-02-23  Jason Merrill  <jason@redhat.com>
4419
4420         PR c++/38880
4421         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
4422         narrowing_initializer_constant_valid_p.
4423         (narrowing_initializer_constant_valid_p): Don't return 
4424         null_pointer_node for adding a pointer to itself.
4425
4426 2009-02-23  Jan Hubicka  <jh@suse.cz>
4427
4428         PR c/12245
4429         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
4430         resizing.
4431
4432 2009-02-23  Jan Hubicka  <jh@suse.cz>
4433
4434         PR tree-optimization/37709
4435         * tree.c (block_ultimate_origin): Move here from dwarf2out.
4436         * tree.h (block_ultimate_origin): Declare.
4437         * dwarf2out.c (block_ultimate_origin): Move to tree.c
4438         * tree-ssa-live.c (remove_unused_scope_block_p):
4439         Eliminate blocks containig no instructions nor live variables nor
4440         nested blocks.
4441         (dump_scope_block): New function.
4442         (remove_unused_locals): Enable removal of dead blocks by default;
4443         enable dumping at TDF_DETAILS.
4444
4445 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4446
4447         * config/i386/i386.c (classify_argument): Don't allow COImode
4448         and OImode.
4449         (function_arg_advance_32): Don't allow OImode.
4450         (function_arg_32): Likewise.
4451         (function_value_32): Likewise.
4452         (return_in_memory_32): Likewise.
4453         (function_arg_64): Remove OImode comment.
4454
4455 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4456
4457         PR target/39261
4458         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4459         ix86_expand_vector_set for V4DImode in 64bit mode only.
4460         (ix86_expand_vector_init_one_var): Likewise.
4461
4462 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
4463
4464         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
4465
4466 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4467
4468         PR bootstrap/39257
4469         * loop-iv.c: Revert last change.
4470         * emit-rtl.c: Likewise.
4471
4472 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4473
4474         PR target/39256
4475         * config/i386/i386.c (type_natural_mode): Remove an extra
4476         space in the warning message.
4477         (function_value_32): Handle 32-byte vector modes.
4478         (return_in_memory_32): Likewise.
4479
4480 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4481
4482         * loop-iv.c (truncate_value): New function.
4483         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
4484         of lowpart_subreg.
4485         (lowpart_subreg): Move to...
4486         * emit-rtl.c: ...here.
4487
4488 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
4489
4490         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
4491         accidental and undocumented change at revision 140860.
4492
4493 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
4494
4495         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
4496         take gimple_seq * arguments.
4497         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
4498         types_compatible_p langhook.
4499
4500 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
4501             Joseph Myers  <joseph@codesourcery.com>
4502
4503         * config/arm/arm.c (arm_builtin_va_list): New function.
4504         (arm_expand_builtin_va_start): Likewise.
4505         (arm_gimplify_va_arg_expr): Likewise.
4506         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
4507         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
4508         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
4509         (va_list_type): New variable.
4510         (arm_mangle_type): Mangle va_list_type appropriately.
4511
4512 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
4513
4514         PR middle-end/39157
4515         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
4516         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
4517         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
4518         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
4519         parameter to 1000 for -O1 by default.
4520         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
4521         parameter.
4522         * loop-invariant.c: Include params.h.
4523         (move_loop_invariants): Don't call move_single_loop_invariants on
4524         very large loops.
4525
4526 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
4527
4528         * calls.c (emit_library_call_value_1): Use slot_offset instead of
4529         offset when calculating bounds for indexing stack_usage_map.  Fixes
4530         a buffer overflow with certain target setups.
4531
4532 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
4533
4534         PR target/39240
4535         * calls.c (expand_call): Clear try_tail_call if caller and callee
4536         disagree in promotion of function return value.
4537
4538 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
4539
4540         PR target/39175
4541         * c-common.c (c_determine_visibility): If visibility changed and
4542         DECL_RTL has been already set, call make_decl_rtl to update symbol
4543         flags.
4544
4545 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
4546
4547         PR c++/39188
4548         * varasm.c (assemble_variable): Don't check DECL_NAME when
4549         globalizing a variable.
4550
4551 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
4552
4553         PR c/38483
4554         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
4555         expression before any __builtin_trap call.
4556         * c-typeck.c (build_function_call): Convert and check function
4557         arguments before generating a call to a trap.  Evaluate the
4558         function arguments before the trap.
4559
4560 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
4561
4562         PR target/39228
4563         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
4564         (UNSPEC_FXAM_MEM): New unspec.
4565         (fxam<mode>2_i387_with_temp): New insn and split pattern.
4566         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
4567         memory using fxam<mode>2_i387_with_temp to remove excess precision.
4568
4569 2009-02-19  Richard Guenther  <rguenther@suse.de>
4570
4571         PR tree-optimization/39207
4572         PR tree-optimization/39074
4573         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
4574         storedanything_tree): New.
4575         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
4576         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
4577         (build_succ_graph): Add edges from STOREDANYTHING to all
4578         non-direct nodes.
4579         (init_base_vars): Initialize STOREDANYTHING.
4580         (compute_points_to_sets): Free substitution info after
4581         building the succ graph.
4582         (ipa_pta_execute): Likewise.
4583
4584         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
4585         field.
4586         (do_ds_constraint): Do not add to special var or non-pointer
4587         field solutions.
4588         (type_could_have_pointers): Split out from ...
4589         (could_have_pointers): ... here.  For arrays use the element type.
4590         (create_variable_info_for): Initialize may_have_pointers.
4591         (new_var_info): Likewise.
4592         (handle_lhs_call): Make the HEAP variable unknown-sized.
4593         (intra_create_variable_infos): Use a type with pointers for
4594         PARM_NOALIAS, make it unknown-sized.
4595
4596 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
4597
4598         PR target/39224
4599         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
4600
4601 2009-02-18  Jason Merrill  <jason@redhat.com>
4602
4603         PR target/39179
4604         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
4605         value if DECL_EXTERNAL.
4606         * tree-sra.c (sra_walk_gimple_assign): Likewise.
4607         * target.h (gcc_target::binds_local_p): Clarify "module".
4608         * tree.h (TREE_PUBLIC): Clarify "module".
4609
4610 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
4611
4612         PR target/38891
4613         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
4614         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
4615
4616 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
4617
4618         PR target/39082
4619         * c.opt (Wabi): Support C and ObjC.
4620         (Wpsabi): New.
4621
4622         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
4623
4624         * config/i386/i386.c (classify_argument): Warn once about the ABI
4625         change when passing union with long double.
4626
4627         * doc/invoke.texi: Update -Wabi for warning psABI changes.
4628
4629 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
4630
4631         PR c/35447
4632         * c-parser.c (c_parser_compound_statement): Always enter and leave
4633         a scope.
4634
4635 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4636
4637         PR target/34587
4638         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
4639
4640 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
4641
4642         PR tree-optimization/36922
4643         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
4644         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
4645         Likewise.
4646
4647 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4648
4649         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
4650         to 0 for EABI64.
4651
4652 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4653
4654         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
4655
4656 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4657
4658         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
4659         tree sharing.
4660
4661 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
4662             Richard Sandiford  <rdsandiford@googlemail.com>
4663
4664         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
4665         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
4666         (loongson_biadd): ...this.
4667
4668 2009-02-17  Richard Guenther  <rguenther@suse.de>
4669
4670         PR tree-optimization/39202
4671         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
4672         a var make sure to follow existing collapses.
4673
4674 2009-02-17  Richard Guenther  <rguenther@suse.de>
4675
4676         PR middle-end/39214
4677         * langhooks.c (lhd_print_error_function): Check for NULL block.
4678
4679 2009-02-17  Richard Guenther  <rguenther@suse.de>
4680
4681         PR tree-optimization/39204
4682         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
4683         of the PHI arg.
4684
4685 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
4686
4687         * config/soft-fp/double.h: Update from glibc CVS.
4688
4689 2009-02-17  Richard Guenther  <rguenther@suse.de>
4690
4691         PR tree-optimization/39207
4692         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
4693         strict-aliasing warnings for pointers pointing to NULL.
4694
4695 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
4696
4697         PR c/35446
4698         * c-parser.c (c_parser_braced_init): Call pop_init_level when
4699         skipping until next close brace.
4700
4701 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
4702
4703         PR target/37049
4704         * config/i386/i386.c (ix86_expand_push): Set memory alignment
4705         to function argument boundary.
4706
4707 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
4708
4709         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
4710         in the lea_add. Reload eventually constraints it properly.
4711         * config/picochip/constraints.md : Remove the target constraint
4712         "b", since it is not needed anymore.
4713
4714 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
4715
4716         * gthr-dce.h: Uglify function parameter and local variable names.
4717         * gthr-gnat.h: Likewise.
4718         * gthr-mipssde.h: Likewise.
4719         * gthr-nks.h: Likewise.
4720         * gthr-posix95.h: Likewise.
4721         * gthr-posix.h: Likewise.
4722         * gthr-rtems.h: Likewise.
4723         * gthr-single.h: Likewise.
4724         * gthr-solaris.h: Likewise.
4725         * gthr-tpf.h: Likewise.
4726         * gthr-vxworks.h: Likewise.
4727         * gthr-win32.h: Likewise.
4728
4729 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4730
4731         PR target/39196
4732         * config/i386/i386.md: Restrict the new peephole2 to move
4733         between MMX/SSE registers.
4734
4735 2009-02-15  Richard Guenther  <rguenther@suse.de>
4736
4737         Revert
4738         2009-02-13  Richard Guenther  <rguenther@suse.de>
4739
4740         * configure.ac: Enable LFS.
4741         * configure: Re-generate.
4742         * config.in: Likewise.
4743
4744 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4745
4746         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
4747         spu_srqwbyte, spu_srqwbytebc): Define.
4748         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
4749         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
4750         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
4751         "shrqby_<mode>"): New insn-and-split patterns.
4752         * config/spu/spu.c (expand_builtin_args): Determine and return
4753         number of operands using spu_builtin_description data.
4754         (spu_expand_builtin_1): Use it.
4755
4756 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
4757
4758         PR target/38056
4759         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
4760         TARGET_CONST_GP.
4761
4762 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4763
4764         PR target/39149
4765         * config/i386/i386.c (override_options): Correct warning
4766         messages for -malign-loops, -malign-jumps and -malign-functions.
4767
4768 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4769
4770         PR target/39152
4771         * config/i386/i386.md: Restrict the new peephole2 to move
4772         between the general purpose registers.
4773
4774 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4775
4776         PR target/39162
4777         * config/i386/i386.c (type_natural_mode): Add a new argument.
4778         Return the original mode and warn ABI change if vector size is 32byte.
4779         (function_arg_advance): Updated.
4780         (function_arg): Likewise.
4781         (ix86_function_value): Likewise.
4782         (ix86_return_in_memory): Likewise.
4783         (ix86_sol10_return_in_memory): Likewise.
4784         (ix86_gimplify_va_arg): Likewise.
4785         (function_arg_32): Don't warn ABX ABI change here.
4786         (function_arg_64): Likewise.
4787
4788 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4789
4790         * loop-iv.c (implies_p): In the final case, test that operands 0
4791         of the two comparisons match.
4792
4793         * config/bfin/bfin.c (find_prev_insn_start): New function.
4794         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
4795         (find_next_insn_start): Move.
4796
4797 2009-02-13  Richard Guenther  <rguenther@suse.de>
4798
4799         * configure.ac: Enable LFS.
4800         * configure: Re-generate.
4801         * config.in: Likewise.
4802
4803 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
4804
4805         PR c/35444
4806         * c-parser.c (c_parser_parms_list_declarator): Discard pending
4807         sizes on syntax error after some arguments have been parsed.
4808
4809 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
4810
4811         * doc/invoke.texi (-fira): Remove.
4812
4813 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4814
4815         * caller-save.c: Replace regclass.c with reginfo.c in comments.
4816         * recog.c: Likewise.
4817         * rtl.h: Likewise.
4818
4819 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
4820
4821         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
4822         (umul_ppmm): Likewise.
4823         (count_leading_zeros): Likewise.
4824         (count_trailing_zeros): Likewise.
4825         (UMUL_TIME): Likewise.
4826
4827 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4828
4829         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
4830         soft-fp/t-softfp to tmake_file.
4831
4832         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
4833         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
4834         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
4835         IA64_BUILTIN_INFQ]: New.
4836         (ia64_init_builtins): Initialize __builtin_infq,
4837         __builtin_fabsq and __builtin_copysignq if not HPUX.
4838         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
4839         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
4840
4841         * config/ia64/lib1funcs.asm (__divtf3): Define only if
4842         SHARED is defined.
4843         (__fixtfti): Likewise.
4844         (__fixunstfti): Likewise.
4845         (__floattitf): Likewise.
4846
4847         * config/ia64/libgcc-glibc.ver: New.
4848         * config/ia64/t-fprules-softfp: Likewise.
4849         * config/ia64/sfp-machine.h: Likewise.
4850
4851         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
4852         (LIBGCC2_TF_CEXT): Likewise.
4853         (TF_SIZE): Likewise.
4854         (TARGET_INIT_LIBFUNCS): Likewise.
4855
4856         * config/ia64/t-glibc (SHLINB_MAPFILES):
4857         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
4858
4859 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4860
4861         * config/i386/i386.c (construct_container): Rewrite processing
4862         BLKmode with X86_64_SSE_CLASS.
4863
4864 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
4865
4866         PR target/39152
4867         * config/i386/i386.md: Replace simplify_replace_rtx with
4868         replace_rtx in the new peephole2.
4869
4870 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4871
4872         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
4873         loop unrolling do not happen at -O2.
4874
4875 2009-02-12  Michael Matz  <matz@suse.de>
4876
4877         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
4878
4879 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
4880
4881         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
4882         for -g3.
4883
4884 2009-02-12  Ben Elliston  <bje@au.ibm.com>
4885
4886         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
4887         patterns when updating the back chain.  Missed in the 2009-02-10
4888         change.
4889
4890 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
4891
4892         * doc/extend.texi (Decimal Floating Types): Update identifier of
4893         draft TR and list of missing support.
4894
4895 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
4896
4897         PR middle-end/39154
4898         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
4899         bit to variable length decl's flags, add it also to its
4900         pointer replacement variable.
4901
4902 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
4903             Jakub Jelinek  <jakub@redhat.com>
4904
4905         PR target/39118
4906         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
4907         (memory_blockage): New expander.
4908         (*memory_blockage): New insn pattern.
4909         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
4910         instead of general blockage at the end of function prologue when
4911         frame pointer is used to access red zone area.  Do not emit blockage
4912         when profiling, it is emitted in generic code.
4913         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
4914         function epilogue when frame pointer is used to access red zone area.
4915
4916 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
4917
4918         PR target/38824
4919         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
4920         by arithmetic with memory operands.
4921         * config/i386/predicates.md (commutative_operator): New.
4922
4923 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
4924
4925         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
4926         bulleted lists.
4927
4928 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
4929
4930         * alias.h (record_alias_subset): Declare.
4931         * alias.c (record_alias_subset): Make global.
4932
4933 2009-02-10  Nick Clifton  <nickc@redhat.com>
4934
4935         * tree-parloops.c: Change license to GPLv3.
4936         * ipa-struct-reorg.c: Change license to GPLv3.
4937         * ipa-struct-reorg.h: Change license to GPLv3.
4938
4939 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
4940
4941         PR c/39084
4942         * c-decl.c (start_struct): Return NULL on error.
4943
4944 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
4945
4946         PR middle-end/39124
4947         * cfgloopmanip.c (remove_path): Call remove_bbs after
4948         cancel_loop_tree, not before it.
4949
4950         PR target/39139
4951         * function.h (struct function): Add has_local_explicit_reg_vars bit.
4952         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
4953         VAR_DECLs were seen.
4954         * tree-ssa-live.c (remove_unused_locals): Recompute
4955         cfun->has_local_explicit_reg_vars.
4956         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
4957         copies or clearings if cfun->has_local_explicit_reg_vars.
4958
4959 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
4960
4961         PR target/39118
4962         * config/i386/i386.c (expand_prologue): Emit blockage at the end
4963         of function prologue when frame pointer is used to access
4964         red zone area.
4965
4966 2009-02-10  Richard Guenther  <rguenther@suse.de>
4967
4968         PR middle-end/39127
4969         * gimplify.c (gimple_regimplify_operands): Always look if
4970         we need to create a temporary.
4971
4972 2009-02-10  Richard Guenther  <rguenther@suse.de>
4973
4974         PR tree-optimization/39132
4975         * tree-loop-distribution.c (todo): New global var.
4976         (generate_memset_zero): Trigger TODO_rebuild_alias.
4977         (tree_loop_distribution): Return todo.
4978
4979 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
4980
4981         PR target/39119
4982         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
4983         (x86_64_reg_class_name): Removed.
4984         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
4985         first one isn't X86_64_SSE_CLASS or any other ones aren't
4986         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
4987         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
4988         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
4989         and 3 X86_64_SSEUP_CLASS.
4990         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
4991         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
4992
4993 2009-02-10  Ben Elliston  <bje@au.ibm.com>
4994
4995         * config/rs6000/rs6000.md (allocate_stack): Always use an update
4996         form instruction to update the stack back chain word, even if the
4997         user has disabled the generation of update instructions.
4998         (movdi_<mode>_update_stack): New.
4999         (movsi_update_stack): Likewise.
5000         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
5001         always use an update form instruction to update the stack back
5002         chain word.
5003
5004 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
5005
5006         PR middle-end/38953
5007         * graphite.c (if_region_set_false_region): After moving a region in
5008         the false branch of a condition, remove the empty dummy basic block.
5009         (gloog): Remove wrong fix for PR38953.
5010
5011 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5012
5013         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
5014         generation due to implicit sign extension.
5015
5016 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
5017
5018         PR middle-end/38981
5019         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
5020         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
5021
5022 2009-02-09  Richard Guenther  <rguenther@suse.de>
5023
5024         PR middle-end/35202
5025         * convert.c (convert_to_real): Disable (float)fn((double)x)
5026         to fnf(x) conversion if errno differences may occur and
5027         -fmath-errno is set.
5028
5029 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
5030
5031         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
5032         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
5033         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
5034
5035 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
5036
5037         PR c/35434
5038         * c-common.c (handle_alias_attribute): Disallow attribute for
5039         anything not a FUNCTION_DECL or VAR_DECL.
5040
5041 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
5042
5043         PR c/39035
5044         * real.c (do_compare): Special-case compare of zero against
5045         decimal float value.
5046
5047 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
5048
5049         PR c/36432
5050         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
5051         as indicating flexible array members unless the field itself is
5052         being declarared as the incomplete array.
5053
5054 2009-02-06  Jan Hubicka  <jh@suse.cz>
5055
5056         PR tree-optimization/38844
5057         * ipa-inline.c (try_inline): Stop inlining recursion when edge
5058         is already inlined.
5059
5060 2009-02-06  Richard Guenther  <rguenther@suse.de>
5061
5062         PR middle-end/38977
5063         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
5064         fork because we may expand it as __gcov_fork.
5065
5066 2009-02-06  Nick Clifton  <nickc@redhat.com>
5067
5068         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
5069
5070 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
5071
5072         PR tree-optimization/35659
5073         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
5074         vn_phi_eq): Shortcut if hashcode does not match.
5075         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
5076         NULL operands.
5077         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
5078         and avoid iterative_hash_expr.
5079         (FOR_EACH_VALUE_ID_IN_SET): New.
5080         (value_id_compare): Remove.
5081         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
5082         sort expressions by value id.
5083
5084 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5085
5086         PR target/38991
5087         * config/sh/predicates.md (general_movsrc_operand): Don't check
5088         the subreg of system registers here.
5089
5090 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
5091
5092         PR c++/39106
5093         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
5094         on the copied decl.
5095
5096 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
5097
5098         PR rtl-optimization/39110
5099         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
5100         addresses, not aligned ones.
5101
5102 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
5103             Richard Guenther  <rguenther@suse.de>
5104
5105         PR tree-optimization/39100
5106         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
5107         comment says and add edges.
5108
5109 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
5110
5111         PR c/35435
5112         * c-common.c (handle_tls_model_attribute): Ignore attribute for
5113         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
5114
5115 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
5116
5117         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
5118         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
5119         register_bb_in_sese, new_sese, free_sese): Moved.
5120         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
5121         outermost_loop_in_scop, build_scop_iteration_domain,
5122         expand_scalar_variables_ssa_name, get_vdef_before_scop,
5123         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
5124         Use loop_in_sese_p instead of loop_in_scop_p.
5125         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
5126         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
5127         (scopdet_basic_block_info): Fix bug in scop detection.
5128         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
5129         eq_loop_to_cloog_loop): Remove.
5130         (nb_loops_around_loop_in_scop, nb_loop
5131         ref_nb_loops): Moved here...
5132         * graphite.h (ref_nb_loops): ... from here.
5133         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
5134         (loop_domain_dim, loop_iteration_vector_dim): Remove.
5135         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
5136         * testsuite/gcc.dg/graphite/scop-19.c: New
5137
5138 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
5139             Hans-Peter Nilsson  <hp@axis.com>
5140
5141         PR rtl-optimization/37889
5142         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
5143         Move offset handling from PLUS to before the switch.  Use new
5144         arguments when considering SYMBOL_REFs too.
5145         (rtx_addr_can_trap_p): Pass dummy offset and size.
5146         (enum may_trap_p_flags): Remove.
5147         (may_trap_p_1): Pass size from MEM_SIZE.
5148
5149         PR rtl-optimization/38921
5150         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
5151         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
5152         * rtlanal.c (may_trap_after_code_motion_p): Delete.
5153         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
5154
5155 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
5156
5157         AVX Programming Reference (January, 2009)
5158         * config/i386/sse.md (*vpclmulqdq): New.
5159
5160 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
5161
5162         PR tree-optimization/38977
5163         PR gcov-profile/38292
5164         * calls.c (special_function_p): Disregard __builtin_ prefix.
5165
5166 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
5167
5168         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
5169         non-indexable addresses even before reload.
5170
5171 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
5172
5173         PR c/29129
5174         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
5175         as having variable size.  Do not give an error for unnamed
5176         parameters with [*] declarators.  Give a warning for type names
5177         with [*] declarators and mark them as variable size.
5178         * c-parser.c (c_parser_sizeof_expression): Do not give an error
5179         for sizeof applied to [*] type names.
5180
5181 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5182
5183         PR C++/36607
5184         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
5185
5186 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
5187
5188         * gcc.c (process_command): Update copyright notice dates.
5189         * gcov.c (print_version): Likewise.
5190         * gcov-dump.c (print_version): Likewise.
5191         * mips-tfile.c (main): Likewise.
5192         * mips-tdump.c (main): Likewise.
5193
5194 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
5195
5196         PR c/35433
5197         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
5198         for composite type involving a zero-length array type.
5199
5200 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
5201
5202         PR target/35318
5203         * function.c (match_asm_constraints_1): Skip over
5204         initial optional % in the constraint.
5205
5206         PR inline-asm/39059
5207         * c-parser.c (c_parser_postfix_expression): If fixed point is not
5208         supported, don't accept FIXED_CSTs.
5209         * c-decl.c (finish_declspecs): Error if fixed point is not supported
5210         and _Sat is used without _Fract/_Accum.  Set specs->type to
5211         integer_type_node for cts_fract/cts_accum if fixed point is not
5212         supported.
5213
5214 2009-02-02  Catherine Moore  <clm@codesourcery.com>
5215
5216         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
5217
5218 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
5219
5220         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
5221         (ABI_HAS_64BIT_SYMBOLS): Use it.
5222         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
5223
5224 2009-02-02  Paul Brook  <paul@codesourcery.com>
5225
5226         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
5227
5228 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
5229
5230         PR inline-asm/39058
5231         * recog.h (asm_operand_ok): Add constraints argument.
5232         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
5233         recurse on matching constraint.
5234         (check_asm_operands): Pass constraints as 3rd argument to
5235         asm_operand_ok.  Don't look up matching constraint here.
5236         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
5237         to asm_operand_ok.
5238
5239 2009-02-02  Ben Elliston  <bje@au.ibm.com>
5240
5241         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
5242         TARGET_NARROW_VOLATILE_BITFIELD macro names.
5243
5244 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5245
5246         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
5247         information.  Remove some obsolete information.  Reorganize.
5248
5249         * config/pa/fptr.c: Revert license to GPL 2.
5250         * config/pa/milli64.S: Likewise.
5251
5252 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5253
5254         PR target/38904
5255         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
5256         LIBRARY name in, instead of hard-coding it.
5257         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
5258         extra target make frag to tmake_files according to EH model.
5259         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
5260         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
5261         frags that define makefile variable EH_MODEL appropriately.
5262         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
5263         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
5264         to "-sjlj" according to type of EH configured.
5265         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5266         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
5267         to "_sjlj" according to type of EH configured.
5268         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5269         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
5270         (SHLIB_LINK):  Add missing semicolon to if-else construct.
5271         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5272         string value of "pe_dll" command-line option.
5273         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
5274         (SHLIB_SONAME):  Use it when overriding t-cygming default.
5275         (SHLIB_IMPLIB):  Override t-cygming default.
5276         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5277         string value of "pe_dll" command-line option.
5278
5279 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5280
5281         PR target/38952
5282         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
5283         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
5284
5285 2009-01-31  Richard Guenther  <rguenther@suse.de>
5286
5287         PR tree-optimization/38937
5288         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
5289         computing the transitive closure.
5290
5291 2009-01-30  Richard Guenther  <rguenther@suse.de>
5292
5293         PR tree-optimization/39041
5294         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
5295         Propagate variable indices only if the types match for this stmt.
5296
5297 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
5298
5299         PR target/39013
5300         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
5301         inline but never defined.
5302
5303 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
5304
5305         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
5306         (*insv_h_di_reg_extimm): New insn.
5307         (*insv_l<mode>_reg_extimm): New insn.
5308
5309 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5310
5311         * config/picochip/picochip.c (flag_conserve_stack): set
5312         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
5313         fconserve-stack. Reduce call-overhead used by inliner.
5314
5315 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5316
5317         PR/38157
5318         * common.opt (flag_conserve_stack): Initialised to zero.
5319
5320 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
5321
5322         PR/39002
5323         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
5324         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
5325         method.
5326
5327 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
5328
5329         * ira-color.c (allocno_reload_assign): Update comments.
5330         * regmove.c (regmove_optimize): Likewise.
5331
5332         * ra.h: Removed.
5333
5334 2009-01-29  Robert Millan  <rmh@aybabtu.com>
5335
5336         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
5337         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
5338         `MD_UNWIND_SUPPORT'.
5339         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
5340
5341 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
5342
5343         PR tree-optimization/39007
5344         * tree-loop-distribution.c (generate_builtin): Use
5345         recompute_dominator to compute the immediate dominator of the
5346         basic block just after the loop.
5347
5348 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5349
5350         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
5351         (ASM_OUTPUT_DWARF_PCREL): Define.
5352
5353 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
5354
5355         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
5356         * doc/passes.texi: Remove entries about regclass, local-alloc, and
5357         global.  Modify entries about regmove and IRA.
5358
5359         * ra-conflict.c: Remove the file.
5360
5361         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
5362
5363         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
5364         (pass_regclass_init): Rename to pass_reginfo_init.
5365
5366         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
5367
5368         * toplev.h (flag_ira): Remove.
5369
5370         * caller-save.c (setup_save_areas): Remove flag_ira.
5371
5372         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
5373
5374         * global.c: Remove the file.
5375
5376         * opts.c (decode_options): Remove flag_ira.
5377
5378         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
5379
5380         * regmove.c: Modify file description.
5381         (find_use_as_address, try_auto_increment): Define them only if
5382         AUTO_INC_DEC is defined.
5383         (replacement_quality, replace_in_call_usage, fixup_match_1,
5384         stable_and_no_regs_but_for_p): Remove.
5385         (reg_set_in_bb): Make it static.
5386         (regmove_optimize): Remove flag_ira and code which worked for
5387         !flag_ira.
5388
5389         * local-alloc.c: Remove the file.
5390
5391         * common.opt (fira): Remove.
5392
5393         * ira.c: Include except.h.
5394         (eliminable_regset): Move from global.c.
5395         (mark_elimination): Ditto.  Remove flag_ira.
5396         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
5397         equiv_mem_modified, validate_equiv_mem_from_store,
5398         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
5399         contains_replace_regs, memref_referenced_p, memref_used_between_p,
5400         no_equiv, recorded_label_ref): Move from local-alloc.c.
5401         (update_equiv_regs): Ditto.  Make it static.
5402         (print_insn_chain, print_insn_chains): Move it from global.c.
5403         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
5404         (build_insn_chain): Ditto.  Make it static.
5405         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
5406         Rename to init_live_subregs.
5407         (gate_ira): Remove flag_ira.
5408
5409         * regclass.c: Rename reginfo.c.  Change file description.
5410         (FORBIDDEN_INC_DEC_CLASSES): Remove.
5411         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
5412         (init_reg_sets_1): Remove code for evaluation of
5413         reg_class_superclasses and losing_caller_save_reg_set.
5414         (init_regs): Remove init_reg_autoinc.
5415         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
5416         ok_for_base_p_nonstrict): Remove.
5417         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
5418         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
5419         corresponding entries.
5420         (dump_regclass, record_operand_costs, scan_one_insn,
5421         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
5422         record_address_regs, auto_inc_dec_reg_p): Remove.
5423         (gt-regclass.h): Rename to gt-reginfo.h.
5424
5425         * rtl.h (dump_global_regs, retry_global_alloc,
5426         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
5427
5428         * Makefile.in (RA_H): Remove.
5429         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
5430         Rename regclass.o to reginfo.o.
5431         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
5432         gt-reginfo.h.
5433         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
5434         (GTFILES): Rename regclass.c to reginfo.c.
5435
5436         * passes.c (init_optimization_passes): Remove pass_local_alloc and
5437         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
5438
5439         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
5440         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
5441         Remove flag_ira.
5442         (finish_spills): Ditto.  Remove code for !flag_ira.
5443         
5444 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
5445
5446         PR middle-end/35854
5447         * doc/invoke.texi (rtl debug options): Complete rewrite.
5448         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
5449         to auto_inc_dec".
5450         * mode-switching.c (pass_mode_switching): Rename pass from
5451         "mode-sw" to "mode_sw".
5452         * except.c (pass_convert_to_eh_ranges): Rename pass from
5453         "eh-ranges" to "eh_ranges".
5454         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
5455         to "subreg1".
5456                 
5457         
5458 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
5459             Alexander Monakov  <amonakov@ispras.ru>
5460
5461         PR middle-end/38857
5462         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
5463         register.
5464         (move_exprs_to_boundary): Change return type and pass through
5465         should_move from move_op.  Relax assert.  Update usage ...
5466         (schedule_expr_on_boundary): ... here.  Use should_move instead of
5467         cant_move.
5468         (move_op_orig_expr_found): Indicate that insn was disconnected from
5469         stream.
5470         (code_motion_process_successors): Do not call after_merge_succs
5471         callback if original expression was not found when traversing any of
5472         the branches.
5473         (code_motion_path_driver): Change return type.  Update prototype.
5474         (move_op): Update comment.  Add a new parameter (should_move).  Update
5475         prototype.  Set *should_move based on indication provided by
5476         move_op_orig_expr_found.
5477
5478 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
5479
5480         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
5481         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
5482         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
5483         * config/rs6000/rs6000.c (rs6000_override_options): Default
5484         avoid-indexed-addresses on for Power6, off for everything else.
5485         (avoiding_indexed_address_p): New function.
5486         (rs6000_legitimize_address): Use it.
5487         (rs6000_legitimate_address): Likewise.
5488         * config/rs6000/rs6000.md (movXX_updateX): Likewise
5489
5490 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
5491
5492         PR tree-optimization/38997
5493         * tree-loop-distribution.c (generate_memset_zero): Use
5494         POINTER_PLUS_EXPR for a pointer addition.
5495
5496 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5497
5498         * config/s390/s390.md (bswap<mode>2): New pattern added.
5499
5500 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5501
5502         * config/s390/s390.md (*tls_load_31): Added type attribute.
5503
5504 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5505
5506         * config/s390/s390.md: Fix a few comments.
5507
5508 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
5509
5510         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
5511         (*tm<mode>_full): Fixed z10prop attribute.
5512         (*tst<mode>_extimm): Fixed z10prop attribute.
5513         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
5514         (*tstqiCCT_cconly): Fixed z10prop attribute.
5515         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
5516         (*movsi_larl): Fixed z10prop attribute.
5517         (*movsi_zarch): Fixed z10prop attribute.
5518         (*movsi_eas): Fixed z10prop attribute.
5519         (*movhi): Fixed z10prop attribute.
5520         (*movqi): Fixed z10prop attribute.
5521         (*movstrictqi): Fixed z10prop attribute.
5522         (*mov<mode>): Fixed z10prop attribute.
5523         (*movcc): Fixed z10prop attribute.
5524         (*sethighpartdi_64): Fixed z10prop attribute.
5525         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
5526         (*negdi2_sign_cc): Fixed z10prop attribute.
5527         (*negdi2_sign): Fixed z10prop attribute.
5528         (*absdi2_sign_cc): Fixed z10prop attribute.
5529         (*absdi2_sign): Fixed z10prop attribute.
5530         (*negabsdi2_sign_cc): Fixed z10prop attribute.
5531         (*negabsdi2_sign): Fixed z10prop attribute.
5532         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
5533         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
5534         (doloop_si64): Fixed z10prop attribute.
5535         (doloop_si31): Fixed z10prop attribute.
5536         (doloop_long): Fixed z10prop attribute.
5537         (indirect_jump): Fixed z10prop attribute.
5538         (nop): Fixed z10prop attribute.
5539         (main_base_64): Fixed z10prop attribute.
5540         (reload_base_64): Fixed z10prop attribute.
5541
5542 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
5543
5544         PR rtl-optimization/38740
5545         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
5546         if !optimize.
5547         * config/mips/mips.c (mips_reorg): Likewise.
5548
5549 2009-01-28  Richard Guenther  <rguenther@suse.de>
5550
5551         PR tree-optimization/38926
5552         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
5553         with the correct value id to a value.
5554         (do_regular_insertion): Use the value number of edoubleprime
5555         for the value number of the expr.
5556
5557         Revert
5558         2008-08-21  Richard Guenther  <rguenther@suse.de>
5559
5560         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
5561         a PHI ask VN if it is already available.
5562         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
5563         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
5564
5565 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
5566
5567         PR middle-end/38934
5568         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
5569         set to varying whenever max has TREE_OVERFLOW set, similarly
5570         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
5571
5572 2009-01-28  Richard Guenther  <rguenther@suse.de>
5573
5574         PR middle-end/38908
5575         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
5576         uninitialized aggregate uses in call arguments.
5577
5578 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
5579
5580         PR tree-optimization/38984
5581         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
5582         the nothing_id variable if -fno-delete-null-pointer-checks.
5583
5584 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
5585
5586         PR target/38988
5587         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
5588         (set_got_offset_rex64): Ditto.
5589
5590 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
5591
5592         PR target/38941
5593         * doc/extend.texi: Improve local variable with asm reg.
5594
5595 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
5596
5597         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
5598         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
5599         was not supplied then set warn_packed_bitfield_compat to the
5600         default value of 1.
5601         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
5602         against 1.
5603
5604 2009-01-27  Richard Guenther  <rguenther@suse.de>
5605
5606         PR tree-optimization/38503
5607         * cfgexpand.c (expand_gimple_basic_block): Ignore
5608         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
5609         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
5610         variables that cannot have TBAA applied.
5611         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
5612         statements.
5613
5614 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
5615
5616         PR middle-end/38969
5617         * calls.c (initialize_argument_information): Do not wrap complex
5618         arguments in SAVE_EXPR.
5619
5620 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
5621
5622         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5623         (INSTALL_LIBGCC): Revert typo commit.
5624
5625 2009-01-26  Richard Guenther  <rguenther@suse.de>
5626
5627         PR tree-optimization/38745
5628         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
5629         from special handling.
5630
5631 2009-01-26  Richard Guenther  <rguenther@suse.de>
5632
5633         PR tree-optimization/38745
5634         * tree-ssa.c (execute_update_addresses_taken): Do not include
5635         variables that cannot possibly be a register in not_reg_needs.
5636         Do not clear TREE_ADDRESSABLE on vars that may not become
5637         registers.
5638         * tree-ssa.c (update_alias_info_1): Include those in the set
5639         of addressable vars.
5640
5641 2009-01-26  Richard Guenther  <rguenther@suse.de>
5642
5643         PR middle-end/38851
5644         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
5645         * tree-ssa-dse.c: Include langhooks.h
5646         (execute_simple_dse): Remove stores with zero size.
5647
5648 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
5649
5650         PR c/38957
5651         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
5652         as PLUS_EXPR.
5653
5654 2009-01-24  Julian Brown  <julian@codesourcery.com>
5655
5656         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
5657         config/arm/linux-atomic.c.
5658         * config/arm/linux-atomic.c: New.
5659
5660 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
5661
5662         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
5663         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
5664         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
5665
5666 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
5667
5668         PR c/38938
5669         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
5670         properly.
5671
5672 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
5673
5674         PR tree-optimization/38953
5675         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
5676         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
5677         (gloog): Split the exit of the scop when the scop exit is a loop exit.
5678         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
5679         changed the CFG.
5680
5681 2009-01-24  Paul Brook  <paul@codesourcery.com>
5682
5683         * config/arm/neon.md (neon_type): Move to arm.md.
5684         (neon_mov<VSTRUCT>): Add neon_type attribute.
5685         * config/arm/arm.md (neon_type): Move to here.
5686         (conds): Add "unconditioal" and use as default for NEON insns.
5687
5688 2009-01-24  Ben Elliston  <bje@au.ibm.com>
5689
5690         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
5691         void *' warning from -Wc++-compat.
5692         * Makefile.in (dominance.o-warn): Remove.
5693
5694 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
5695
5696         PR tree-optimization/38932
5697         * fold-const.c (fold_unary_ignore_overflow): New.
5698         * tree.h (fold_unary_ignore_overflow): Declare.
5699         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
5700         * tree-ssa-sccvn.c (visit_reference_op_load,
5701         simplify_unary_expression): Likewise.
5702
5703 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
5704
5705         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
5706         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
5707         regardless of their type.
5708         * c-common.c (handle_packed_attribute): Don't ignore packed on
5709         bitfields.
5710         * c.opt (Wpacked-bitfield-compat): New warning option.
5711         * stor-layout.c (place_field): Warn if offset of a field changed.
5712         * doc/extend.texi (packed): Mention the ABI change.
5713         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
5714         (Warning Options): Add it to the list.
5715
5716 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
5717
5718         * c-opts.c (c_common_post_options): Fix a typo in comments.
5719
5720 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
5721
5722         PR middle-end/38615
5723         * gimplify.c (gimplify_init_constructor): Fix promotion of const
5724         variables to static.
5725         * doc/invoke.texi (-fmerge-all-constants): Update description.
5726
5727 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
5728
5729         PR target/38931
5730         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
5731         (*movdi_1_rex64): Use type "mmx" for alternative 5.
5732
5733 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
5734
5735         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
5736         a word boundary.
5737         (LOCAL_ALIGNMENT): Similarly.
5738
5739 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
5740             Joseph Myers  <joseph@codesourcery.com>
5741
5742         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
5743         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
5744         * config/arm/arm-tune.md: Regenerate.
5745         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
5746         -march=iwmmxt2.
5747
5748 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
5749
5750         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
5751         version number to five.
5752
5753 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
5754
5755         PR c++/38930
5756         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
5757         * c-common.c (set_underlying_type): Likewise.
5758         (is_typedef_decl ): Likewise
5759         * tree.h: Likewise
5760         (set_underlying_type): Likewise.
5761         (is_typedef_type): Likewise.
5762
5763 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
5764
5765         PR middle-end/38587
5766         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
5767         crossing setjmps.
5768
5769 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
5770
5771         PR bootstrap/37660
5772         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
5773         (LIBGCC_SPEC):  Don't define.
5774         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
5775
5776 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
5777
5778         PR rtl-optimization/38879
5779         * alias.c (base_alias_check): Unaligned access via AND address can
5780         alias all surrounding object types except those with sizes equal
5781         or wider than the size of unaligned access.
5782
5783 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
5784
5785         PR c++/26693
5786         * c-decl.c (clone_underlying_type): Move this ...
5787         * c-common.c (set_underlying_type): ... here.
5788         Also, make sure the function properly sets TYPE_STUB_DECL() on
5789         the newly created typedef variant type.
5790         (is_typedef_decl ): New entry point.
5791         * tree.h: Added a new member member_types_needing_access_check to
5792         struct tree_decl_non_common.
5793         (set_underlying_type): New entry point.
5794         (is_typedef_type): Likewise.
5795
5796 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
5797
5798         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
5799         Check whether two instructions have memory references that
5800         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
5801         are helper functions for traversing.
5802         * alias.h (insn_alias_sets_confilict_p): New prototypes.
5803         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
5804         not to draw dependency edge for instructions with non-conflicting
5805         alias sets.
5806
5807 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
5808
5809         PR other/38758
5810         * longlong.h: Update copyright years.  Use soft-fp license notice.
5811         Sync __clz_tab declaration with glibc.
5812
5813 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
5814
5815         PR target/30687
5816         * doc/extend.texi (syscall_linkage): New.
5817         (version_id): Modify.
5818
5819 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5820             Richard Guenther  <rguenther@suse.de>
5821
5822         PR tree-optimization/38747
5823         PR tree-optimization/38748
5824         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
5825         conversion if the base address is an indirect reference and the
5826         aliasing sets could cause issues.
5827
5828 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
5829
5830         * common.opt (fgraphite, fgraphite-identity): Add comment for 
5831         explaining why these options are not documented.
5832
5833 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
5834
5835         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
5836         gimple_call_lhs is NULL.
5837
5838 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
5839
5840         PR target/38868
5841         * emit-rtl.c (adjust_address_1): Make sure memref is never
5842         overwritten.
5843
5844 2009-01-20  Ben Elliston  <bje@au.ibm.com>
5845
5846         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5847         const qualifier from arg parameter. Remove unnecessary cast to char *.
5848         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5849         const qualifier from arg 2.
5850
5851 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
5852
5853         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
5854
5855 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
5856
5857         PR c/38869
5858         * rtl.h (reinit_regs): New prototype.
5859         * regclass.c: Include ira.h.
5860         (reinit_regs): New.
5861         * Makefile.in (regclass.o): Add ira.h.
5862         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
5863
5864 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
5865
5866         PR target/38736
5867         * c-common.c (handle_aligned_attribute): Use
5868         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
5869         default alignment value.
5870
5871         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
5872
5873         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
5874         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
5875
5876         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
5877         __BIGGEST_ALIGNMENT__.
5878
5879         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
5880
5881 2009-01-18  Richard Guenther  <rguenther@suse.de>
5882
5883         PR tree-optimization/38819
5884         * tree-flow.h (operation_could_trap_helper_p): Declare.
5885         * tree-eh.c (operation_could_trap_helper_p): Export.
5886         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
5887         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
5888         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
5889         are about to insert a possibly trapping instruction and fail
5890         in this case.
5891
5892 2009-01-18  Andreas Schwab  <schwab@suse.de>
5893
5894         * doc/install.texi (Configuration): Remove obsolete paragraph
5895         about use of --with-gnu-ld with --with-gnu-as.
5896
5897 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
5898
5899         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
5900         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
5901         Follow spelling conventions.
5902
5903 2009-01-18  Ben Elliston  <bje@au.ibm.com>
5904
5905         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
5906         C++ warning about implicit conversion from void * to struct
5907         bitmap_head_def *.
5908         (bitmap_obstack_free): Likewise for bitmap_element *.
5909         * Makefile.in (bitmap.o-warn): Remove.
5910
5911 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
5912
5913         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
5914
5915 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
5916             Tobias Grosser  <tobi.grosser@amd.com>
5917
5918         * graphite.c (graphite_trans_scop_block): Do not block single
5919         nested loops.
5920
5921 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
5922
5923         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
5924         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
5925         test with assertion.
5926
5927 2009-01-16  Richard Guenther  <rguenther@suse.de>
5928
5929         PR tree-optimization/38835
5930         PR middle-end/36227
5931         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
5932         and INT + PTR -> (INT)(PTR p+ INT) folding.
5933         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
5934
5935 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
5936
5937         PR target/38554
5938         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
5939         the subreg from a lowpart subreg if it is also casting the value.
5940
5941 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5942             Tobias Grosser  <tobi.grosser@amd.com>
5943
5944         * graphite.c (compare_prefix_loops): New.
5945         (build_scop_canonical_schedules): Rewritten.
5946         (graphite_transform_loops): Move build_scop_canonical_schedules
5947         after build_scop_iteration_domain.
5948
5949 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5950             Tobias Grosser  <tobi.grosser@amd.com>
5951
5952         * graphite.c (add_conditions_to_domain): Add the loops to 
5953         the dimension of the iteration domain.  Do copy the domain
5954         only when it exists.
5955         (build_scop_conditions_1): Do not call add_conditions_to_domain.
5956         (add_conditions_to_constraints): New.
5957         (can_generate_code_stmt, can_generate_code): Removed.
5958         (gloog): Do not call can_generate_code.
5959         (graphite_transform_loops): Call add_conditions_to_constraints
5960         after building the iteration domain.
5961
5962 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
5963
5964         PR tree-optimization/38789
5965         * tree-ssa-threadedge.c
5966         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5967         __builtin_constant_p.
5968
5969 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
5970
5971         * dce.c (delete_unmarked_insns): Reversed the order that insns are
5972         examined before deleting them.
5973         
5974 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
5975
5976         * function.c (aggregate_value_p): Correctly extract the function
5977         type from CALL_EXPR_FN lookup.
5978
5979 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
5980
5981         * config/picochip/picochip.c (picochip_override_options): Revert
5982         CFI asm flag disable commited previously.
5983
5984 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
5985             Tobias Grosser  <tobi.grosser@amd.com>
5986             Jan Sjodin  <jan.sjodin@amd.com>
5987
5988         * graphite.c (scan_tree_for_params): On substractions negate
5989         all the coefficients of the term.
5990         (clast_to_gcc_expression_red): New.  Handle reduction expressions
5991         of more than two operands.
5992         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
5993         (get_vdef_before_scop): Handle also the case of default definitions.
5994
5995 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
5996
5997         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
5998         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
5999         Also use them when walking CALL_INSN_FUNCTION_USAGE.
6000
6001 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
6002             Joey Ye  <joey.ye@intel.com>
6003
6004         PR middle-end/37843
6005         * cfgexpand.c (expand_stack_alignment): Don't update stack
6006         boundary nor check incoming stack boundary here.
6007         (gimple_expand_cfg): Update stack boundary and check incoming
6008         stack boundary here.
6009
6010 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
6011
6012         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
6013         
6014 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
6015
6016         PR rtl-optimization/38245
6017         * calls.c (expand_call): Add stack arguments to
6018         CALL_INSN_FUNCTION_USAGE even for pure calls (when
6019         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
6020         in regs and partially in memory or BLKmode arguments.
6021         (emit_library_call_value_1): Add stack arguments to
6022         CALL_INSN_FUNCTION_USAGE even for pure calls (when
6023         ACCUMULATE_OUTGOING_ARGS).
6024         * dce.c: Include tm_p.h.
6025         (find_call_stack_args): New function.
6026         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
6027         argument.
6028         (mark_insn): Call find_call_stack_args for CALL_Ps.
6029         (prescan_insns_for_dce): Walk insns backwards in bb rather than
6030         forwards.  Allocate and free arg_stores bitmap if needed, pass it
6031         down to deletable_insn_p, don't mark stores set in arg_stores
6032         bitmap, clear the bitmap at the beginning of each bb.
6033         * Makefile.in (dce.o): Depend on $(TM_P_H).
6034
6035 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
6036
6037         PR target/22599
6038         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
6039         to make sure the insn is a conditional test (bug 22599).  Reformat a
6040         few long lines.
6041
6042 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
6043
6044         PR middle-end/38431
6045         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
6046         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
6047         (gloog): Do not call cleanup_tree_cfg.
6048         (graphite_transform_loops): Call cleanup_tree_cfg after all 
6049         scops have been code generated.
6050
6051 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
6052         * doc/gty.texi (Invoking the garbage collector): Added new node
6053         and section documenting ggc_collect.
6054
6055 2009-01-14  Richard Guenther  <rguenther@suse.de>
6056
6057         PR tree-optimization/38826
6058         PR middle-end/38477
6059         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
6060         initialization notes only if we actually emitted a warning.
6061         (intra_create_variable_infos): Add constraints for a result decl
6062         that is passed by hidden reference.
6063         (build_pred_graph): Mark all related variables non-direct on
6064         address-taking.
6065
6066 2009-01-14  Nick Clifton  <nickc@redhat.com>
6067
6068         * ira-conflicts.c: Include addresses.h for the definition of
6069         base_reg_class.
6070         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
6071         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
6072
6073 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
6074
6075         PR target/38811
6076         * Makefile.in (ira-lives.o): Add except.h.
6077
6078         * ira-lives.c: Include except.h.
6079         (process_bb_node_lives): Process can_throw_internal.
6080
6081 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
6082
6083         PR rtl-optimization/38774
6084         * combine.c (simplify_set): When undoing cc_use change, don't do
6085         PUT_CODE on the newly created comparison, but instead put back the
6086         old comparison.
6087
6088 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
6089
6090         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
6091         values.  Remove duplicate arm8 entry.
6092
6093 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
6094
6095         PR tree-optimization/38786
6096         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
6097         the SSA_NAME case of expand_scalar_variables_expr.
6098         Set the type of an expression to the type of its assign statement.
6099         (expand_scalar_variables_expr): Also gather the scalar computation
6100         used to index the memory access.  Do not pass loop_p.
6101         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
6102         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
6103         the gimple_stmt_iterator where it inserts new code.
6104         Do not pass loop_p.
6105         (copy_bb_and_scalar_dependences): Do not pass loop_p.
6106         (translate_clast): Update call to copy_bb_and_scalar_dependences.
6107
6108 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
6109
6110         * graphite.h (debug_value): Removed.
6111         * graphite.c (debug_value): Removed.
6112
6113 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
6114
6115         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
6116         ldrd/strd with two 32-bit instructions.
6117
6118 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
6119
6120         * config/arm/arm.c (struct processors): Pass for speed down into
6121         cost helper functions.
6122         (const_ok_for_op): Handle COMPARE and inequality nodes.
6123         (arm_rtx_costs_1): Rewrite.
6124         (arm_size_rtx_costs): Update prototype.
6125         (arm_rtx_costs): Pass speed down to helper functions.
6126         (arm_slowmul_rtx_costs): Rework cost calculations.
6127         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
6128         (arm_9e_rtx_costs): Likewise.
6129
6130 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
6131
6132         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
6133         relocations of local symbols wider than UNITS_PER_WORD are not valid.
6134         (alpha_legitimize_address): Do not split local symbols wider than
6135         UNITS_PER_WORD into HIGH/LO_SUM parts.
6136
6137 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
6138
6139         PR bootstrap/38580
6140         * gcc.c (process_command): Replace call to execvp with calls
6141         to pex_one and exit.
6142
6143 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
6144
6145         PR target/29141
6146         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
6147         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
6148         variant for devices with 3-byte PC.
6149         (__tablejump_elpm__): New.
6150
6151 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
6152
6153         PR c/32041
6154         * c-parser.c (c_parser_postfix_expression): Allow `->' in
6155         offsetof member-designator, handle it as `[0].'.
6156
6157 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6158
6159         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
6160         function when not using named sections on targets with named sections
6161         if branch distance is less than 262132.
6162
6163 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
6164
6165         * combine.c (combine_instructions):  Recompute
6166         optimize_this_for_speed_p  for each BB in the main combine loop.
6167
6168 2009-01-12  Tomas Bily  <tbily@suse.cz>
6169
6170         PR middlend/38385
6171         * tree-loop-distribution.c (prop_phis): New function.
6172         (generate_builtin): Call prop_phis.
6173         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
6174
6175 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
6176
6177         PR tree-optimization/38807
6178         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
6179         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
6180
6181 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
6182
6183         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
6184         subreg of op0 to the original op0.
6185
6186 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
6187
6188         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
6189         
6190 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
6191
6192         PR debug/7055
6193         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
6194         starting with digits.
6195
6196 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
6197
6198         PR target/38695
6199         * config/arm/arm.c (arm_is_long_call_p): Don't call
6200         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
6201
6202 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
6203
6204         * regrename.c (regrename_optimize): Fix dumping.
6205         (find_oldest_value_reg): Preserve REG_POINTER.
6206         (copy_hardreg_forward_1): Likewise.
6207
6208 2009-01-09  Diego Novillo  <dnovillo@google.com>
6209
6210         * gimple.h (struct gimple_statement_base) <uid>: Document
6211         the restrictions on its use.
6212         (gimple_uid): Tidy.
6213         (gimple_set_uid): Tidy.
6214
6215 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6216
6217         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
6218         zero guard even if align_bytes != 0 and count is smaller than
6219         size_needed.
6220
6221 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
6222
6223         PR rtl-optimization/38495
6224         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
6225         (add_range_and_copies_from_move_list): Print all added ranges.
6226         Add ranges to memory optimized destination.
6227
6228 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6229
6230         PR target/38686
6231         PR target/38708
6232         * config/i386/i386.c (override_options): Reject
6233         -mstringop-strategy=rep_8byte with -m32.
6234         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
6235         to 1.  Do count comparison against epilogue_size_needed at compile
6236         time even when count_exp was constant forced into register.  For
6237         size_needed don't jump to epilogue, instead just avoid aligning
6238         and invoke the body algorithm.  If need_zero_guard, add zero guard
6239         even if count is non-zero, but smaller than size_needed + number of
6240         bytes that could be stored for alignment.
6241         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
6242         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
6243         but smaller than size_needed + number of bytes that could be stored
6244         for alignment.  Compare size_needed with epilogue_size_needed instead
6245         of desired_align - align, don't adjust size_needed, pass
6246         epilogue_size_needed to the epilogue expanders.
6247
6248         PR c/35742
6249         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
6250
6251 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6252
6253         * pa.c (last_address): Change to unsigned.
6254         (update_total_code_bytes): Change argument to unsigned.  Don't
6255         check if insn addresses are set.
6256         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
6257         addresses are not set.
6258         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
6259
6260 2009-01-09  Nick Clifton  <nickc@redhat.com>
6261
6262         * config/sh/symbian.c: Replace uses of DECL_INLINE with
6263         DECL_DECLARED_INLINE_P.
6264
6265 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6266
6267         PR middle-end/38347
6268         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
6269         GET_MODE (op0) in operand_subword_force calls.
6270
6271         PR middle-end/38771
6272         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
6273         fold_convert arg0 operands to TREE_TYPE (op0) first.
6274
6275 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
6276
6277         * params.def (ira-max-conflict-table-size): Decrease default value
6278         to 1000.
6279
6280 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
6281
6282         PR tree-optimization/37031
6283         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
6284         on parameter_set.
6285         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
6286         allocate it using gc instead of heap, use VEC_quick_push instead of
6287         VEC_safe_push.
6288         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
6289         instead of heap, use VEC_quick_push instead of VEC_safe_push.
6290         * tree-data-ref.h (struct access_matrix): Change matrix to gc
6291         allocated vector from heap allocated.
6292         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
6293         * tree-loop-linear.c (linear_transform_loops): Allocate nest
6294         vector only after perfect_loop_nest_depth call.
6295
6296 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
6297             Jan Sjodin  <jan.sjodin@amd.com>
6298
6299         PR tree-optimization/38559
6300         * graphite.c (debug_value, copy_constraint,
6301         swap_constraint_variables, scale_constraint_variable, ): New.
6302         (get_lower_bound, get_upper_bound): Removed.
6303         (graphite_trans_bb_strip_mine): Clean up this code that works
6304         only for constant number of iterations.  Fully copy upper and
6305         lower bound constraints, not only the constant part of them.
6306         * graphite.h (debug_value): Declared.
6307
6308 2009-01-08  Ira Rosen  <irar@il.ibm.com>
6309
6310         PR tree-optimization/37194
6311         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
6312         Don't add the cost of cost model guard in prologue to scalar 
6313         outside cost in case of known number of iterations.
6314
6315 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
6316             Alan Modra  <amodra@bigpond.net.au>
6317
6318         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
6319         non-word-aligned REG+CONST addressing.
6320
6321 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6322
6323         PR target/38706
6324         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
6325         free_after_compilation when outputting a thunk.
6326         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
6327         Do not call free_after_compilation here.
6328
6329 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6330
6331         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
6332         (ix86_valid_target_attribute_inner_p): Ditto.
6333
6334 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
6335
6336         PR tree-optimization/38492
6337         PR tree-optimization/38498
6338         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
6339         * tree-chrec.h (scev_is_linear_expression): Declared.
6340         * graphite.c (graphite_cannot_represent_loop_niter): New.
6341         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
6342         (graphite_loop_normal_form): Use gcc_assert.
6343         (scan_tree_for_params): Use CASE_CONVERT.
6344         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
6345         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
6346         Use gcc_assert.  Discard scops that contain unhandled cases.
6347         (build_scop_conditions): Return a boolean status for unhandled cases.
6348         (strip_mine_profitable_p): Print the loop number, not its depth.
6349         (is_interchange_valid): Pass the depth of the loop nest, don't
6350         recompute it wrongly.
6351         (graphite_trans_bb_block): Same.
6352         (graphite_trans_bb_block): Print tentative of loop blocking.
6353         (graphite_trans_scop_block): Do not print that the loop has been
6354         blocked.
6355         (graphite_transform_loops): Do not handle scops that contain condition
6356         scalar phi nodes.
6357
6358 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
6359
6360         AVX Programming Reference (December, 2008)
6361         * config/i386/avxintrin.h (_mm256_stream_si256): New.
6362         (_mm256_stream_pd): Likewise.
6363         (_mm256_stream_ps): Likewise.
6364
6365         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
6366         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
6367         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
6368         (bdesc_special_args): Add __builtin_ia32_movntdq256,
6369         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
6370         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
6371         (ix86_expand_special_args_builtin): Likewise.
6372
6373         * config/i386/sse.md (AVXMODEDI): New.
6374         (avx_movnt<mode>): Likewise.
6375         (avx_movnt<mode>): Likewise.
6376         (<sse>_movnt<mode>): Remove AVX support.
6377         (sse2_movntv2di): Likewise.
6378
6379 2009-01-07  Richard Guenther  <rguenther@suse.de>
6380
6381         PR middle-end/38751
6382         * fold-const.c (extract_muldiv): Remove obsolete comment.
6383         (fold_plusminus_mult_expr): Undo MINUS_EXPR
6384         to PLUS_EXPR canonicalization for the canonicalization.
6385
6386 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
6387
6388         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
6389         hosted cross-compilers generating less efficient code.
6390
6391 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6392
6393         * function.h (rtl_data): Add a dbr_scheduled_p field.
6394         * reorg.c (dbr_schedule): Set it.
6395         (gate_handle_delay_slots): Check it.
6396         * config/mips/mips.c (mips_base_delayed_branch): Delete.
6397         (mips_reorg): Check flag_delayed_branch instead of
6398         mips_base_delayed_branch.
6399         (mips_override_options): Don't set mips_base_delayed_branch
6400         or flag_delayed_branch.
6401
6402 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6403
6404         PR rtl-optimization/38426.
6405         * ira.c (ira): Set current_function_is_leaf earlier.
6406
6407 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
6408
6409         PR rtl-optimization/38722
6410         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
6411         too early, only set a flag and modify after last possible
6412         undo_all point.
6413
6414 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
6415
6416         PR c/34252
6417         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
6418         * real.c (decimal_single_format): Correct values of emin and emax.
6419         (decimal_double_format): Ditto.
6420         (decimal_quad_format): Ditto.
6421         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
6422         computation of DECnn_MIN and DECnn_MAX for corrected values of
6423         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
6424         __DECnn_MIN__, and adjust its computation for the corrected value
6425         of emin.
6426
6427 2009-01-06  Jan Hubicka  <jh@suse.cz>
6428
6429         PR target/38744
6430         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
6431
6432 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
6433
6434         * doc/contrib.texi (Contributors): Slightly adjust the end note.
6435         Add Robert Clark to the list of testers.
6436
6437 2009-01-06  Jan Hubicka  <jh@suse.cz>
6438             Kai Tietz  <kai.tietz@onevision.com>
6439
6440         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
6441         * config/i386/i386.c (ix86_expand_call): Add clobbers.
6442
6443 2009-01-06  Jan Hubicka  <jh@suse.cz>
6444             Kai Tietz  <kai.tietz@onevision.com>
6445
6446         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
6447         for w64 ABI.
6448         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
6449         (ix86_nsaved_regs): Count only general purpose regs.
6450         (ix86_nsaved_sseregs): New.
6451         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
6452         to 16 for w64; compute padding and size of sse reg save area.
6453         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
6454         general purpose regs.
6455         (ix86_emit_save_sse_regs_using_mov): New.
6456         (ix86_expand_prologue): Save SSE regs if needed.
6457         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
6458         (ix86_emit_restore_sse_regs_using_mov): New.
6459         (ix86_expand_epilogue): Save SSE regs if needed.
6460
6461 2009-01-06  Jan Hubicka  <jh@suse.cz>
6462             Kai Tietz  <kai.tietz@onevision.com>
6463
6464         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
6465         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
6466         functions when accumulate outgoing args is off.
6467
6468 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6469
6470         PR bootstrap/38742
6471         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
6472         before using pseudos_have_intersected_live_ranges_p.
6473
6474         * ira-int.h (ira_assert): Always define.
6475
6476 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6477
6478         AVX Programming Reference (December, 2008)
6479         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
6480         (_mm256_permute2_pd): Likewise.
6481         (_mm_permute2_ps): Likewise.
6482         (_mm256_permute2_ps): Likewise.
6483         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
6484         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
6485
6486         * config/i386/i386.c (ix86_builtins): Remove
6487         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
6488         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
6489         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
6490         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
6491         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
6492         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
6493         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
6494         __builtin_ia32_vpermil2ps256.
6495         (ix86_init_mmx_sse_builtins): Updated.
6496         (ix86_expand_args_builtin): Likewise.
6497
6498 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6499
6500         * pa.c (output_call): Relocate non-jump insns in the delay slot of
6501         long absolute calls when generating PA 2.0 code.
6502
6503 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
6504
6505         PR rtl-optimization/38583
6506         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
6507
6508         * params.def (ira-max-conflict-table-size): New.
6509
6510         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
6511         
6512         * ira.h (ira_conflicts_p): New external definition.
6513         
6514         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
6515         table.  Report this.  Return result of building.
6516         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
6517         building conflict table.
6518
6519         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
6520         (ira_color): Use ira_conflicts_p.
6521         
6522         * global.c: Include ira.h.
6523         (pseudo_for_reload_consideration_p, build_insn_chain): Use
6524         ira_conflicts_p.
6525
6526         * Makefile.in (global.o): Add ira.h.
6527         
6528         * ira-build.c (mark_all_loops_for_removal,
6529         propagate_some_info_from_allocno): New.
6530         (remove_unnecessary_allocnos): Call
6531         propagate_some_info_from_allocno.
6532         (remove_low_level_allocnos): New.
6533         (remove_unnecessary_regions): Add parameter.  Call
6534         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
6535         parameter to remove_unnecessary_regions.
6536         (ira_build): Remove all regions but root if the conflict table was
6537         not built.  Update conflict hard regs for allocnos crossing calls.
6538
6539         * ira.c (ira_conflicts_p): New global.
6540         (ira): Define and use ira_conflicts_p.
6541
6542         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
6543         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
6544         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
6545         
6546 2009-01-06  Ben Elliston  <bje@au.ibm.com>
6547
6548         * gengtype-lex.l (YY_NO_INPUT): Define.
6549
6550 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6551
6552         PR c/34911
6553         * c-common.c (handle_vector_size_attribute): Also reject
6554         BOOLEAN_TYPE types.
6555
6556 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
6557
6558         PR tree-optimization/38492
6559         * graphite.c (rename_map_elt, debug_rename_elt,
6560         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
6561         rename_map_elt_info, eq_rename_map_elts,
6562         get_new_name_from_old_name, bb_in_sese_p): Moved around.
6563         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
6564         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
6565         (sese_build_livein_liveouts): New.
6566         (new_sese, free_sese): New.
6567         (new_scop): Call new_sese.
6568         (free_scop): Call free_sese.
6569         (rename_variables_from_edge, rename_phis_end_scop): Removed.
6570         (register_old_new_names): Renamed register_old_and_new_names.
6571         (register_scop_liveout_renames, add_loop_exit_phis,
6572         insert_loop_close_phis, struct igp,
6573         default_liveout_before_guard, add_guard_exit_phis,
6574         insert_guard_phis, copy_renames): New.
6575         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
6576         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
6577         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
6578         (scop_adjust_phis_for_liveouts): New.
6579         (gloog): Call scop_adjust_phis_for_liveouts.
6580
6581         * graphite.h (struct sese): Documented.  Added fields liveout,
6582         num_ver and livein.
6583         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
6584         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
6585         (struct scop): Added field liveout_renames.
6586         (SCOP_LIVEOUT_RENAMES): New.
6587
6588 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
6589
6590         PR tree-optimization/38510
6591         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
6592         (translate_clast): Call recompute_all_dominators before
6593         graphite_verify.
6594         (gloog): Call recompute_all_dominators before graphite_verify.
6595
6596 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
6597             Jan Sjodin  <jan.sjodin@amd.com>
6598
6599         PR tree-optimization/38500
6600         * graphite.c (create_sese_edges): Call fix_loop_structure after
6601         splitting blocks.
6602
6603 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
6604
6605         * config.gcc: Add m32r*-*-rtems*.
6606         * config/m32r/rtems.h: New file.
6607
6608 2009-01-05  Ben Elliston  <bje@au.ibm.com>
6609
6610         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
6611         (.po.pox): Likewise.
6612         (po/gcc.pot): Likewise.
6613
6614 2009-01-04  David S. Miller  <davem@davemloft.net>
6615
6616         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
6617         (STARTING_FRAME_OFFSET): Always set to zero.
6618
6619 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
6620
6621         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
6622         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
6623         fixed-point types, and vectors of the same.
6624
6625 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
6626
6627         * config/mips/sync.md (*mb_barrier): Rename to...
6628         (*memory_barrier): ...this.
6629
6630 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
6631
6632         * doc/extend.texi (Function Attributes): Move @cindex after @item
6633         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
6634         and put in alphabetical order. Fix 'target' name and put in order.
6635         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
6636         typos.
6637
6638 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
6639
6640         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
6641         (memory_barrier): Expand as unspec instead of unspec_volatile.
6642         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6643         (*memory_barrier): Define as unspec instead of unspec_volatile.
6644         Use (match_dup 0) as input operand.
6645
6646         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
6647         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
6648         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
6649         scratch register.  Remove operand 1.
6650         (*stbar): Define as unspec instead of unspec_volatile.
6651         Use (match_dup 0) as input operand, remove (const_int 8).
6652         (*membar): Define as unspec instead of unspec_volatile.
6653         Use (match_dup 0) as input operand, remove input operand 2.
6654
6655         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
6656         (memory_barrier): Expand as unspec instead of unspec_volatile.
6657         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6658         (*memory_barrier): Define as unspec instead of unspec_volatile.
6659         Use (match_dup 0) as input operand.
6660
6661         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
6662         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6663         Set volatile flag on operand 0.
6664         (*memory_barrier): New insn pattern.
6665
6666         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
6667         insn operands.
6668         (*memory_barrier): Use (match_dup 0) as input operand.
6669
6670         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
6671         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6672         Set volatile flag on operand 0.
6673         (*mb_internal): New insn pattern.
6674
6675         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
6676
6677 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
6678
6679         PR middle-end/38586
6680         * function.c (struct temp_slot): Move to the section of the file
6681         that deals with temp slots.  Remove field 'address'.
6682         (temp_slot_address_table): New hash table of address -> temp slot.
6683         (struct temp_slot_address_entry): New struct, items for the table.
6684         (temp_slot_address_compute_hash, temp_slot_address_hash,
6685         temp_slot_address_eq, insert_temp_slot_address): Support functions
6686         for the new table.
6687         (find_temp_slot_from_address): Rewrite to use the new hash table.
6688         (remove_unused_temp_slot_addresses): Remove addresses of temp
6689         slots that have been made available.
6690         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
6691         worker function for remove_unused_temp_slot_addresses.
6692         (assign_stack_temp_for_type): Don't clear the temp slot address list.
6693         Add the temp slot address to the address -> temp slot map.
6694         (update_temp_slot_address): Update via insert_temp_slot_address.
6695         (free_temp_slots): Call remove_unused_temp_slot_addresses.
6696         (pop_temp_slots): Likewise.
6697         (init_temp_slots): Allocate the address -> temp slot map, or empty
6698         the map if it is already allocated.
6699         (prepare_function_start): Initialize temp slot processing.
6700
6701 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
6702
6703         PR middle-end/38584
6704         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
6705         Calculate the size of all stack vars assuming no packing of stack
6706         vars will happen, replacing a quadratic algorithm with a linear one.
6707
6708 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
6709
6710         PR target/38707
6711         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
6712         can't be used.
6713
6714 2009-01-03  Diego Novillo  <dnovillo@google.com>
6715
6716         * doc/contrib.texi: Update contributions.
6717
6718 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
6719
6720         PR c++/38705
6721         * builtins.c (fold_builtin_memory_op): Give up if either operand
6722         is volatile.  Set srctype or desttype to non-qualified version
6723         of the other type.
6724
6725         PR c/38700
6726         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
6727         and FUNCTION_DECLs.
6728
6729 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
6730
6731         PR rtl-optimization/35805
6732         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
6733         problem if fast dce is able to remove any instructions.
6734         * dce.c (dce_process_block): Fix dump message.
6735         
6736 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
6737
6738         PR 33649
6739         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
6740
6741 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
6742
6743         PR middle-end/38690
6744         * tree-flow.h (op_code_prio, op_prio): New prototypes.
6745         * tree-pretty-print.c (op_code_prio): New function.
6746         (op_prio): No longer static.  Use op_code_prio.
6747         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
6748         Use op_prio and op_code_prio to determine if () should be
6749         printed around operand(s) or not.
6750
6751         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
6752         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
6753         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
6754         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
6755         pp_character instead of pp_string for single letter printing.
6756
6757 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6758
6759         * doc/extend.texi: Fix '#pragma GCC option' typo.
6760
6761 2009-01-02  Richard Guenther  <rguenther@suse.de>
6762
6763         * doc/install.texi (--enable-checking): Mention different
6764         default for stage1.
6765         (--enable-stage1-checking): Document.
6766
6767 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
6768
6769         PR middle-end/30142
6770         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
6771         case to be an error.
6772
6773 2009-01-02  Ben Elliston  <bje@au.ibm.com>
6774
6775         * config/fp-bit.h (pack_d): Constify argument.
6776         * config/fp-bit.c (makenan): Constify return type. Remove casts.
6777         (isnan): Constify argument.
6778         (isinf): Likewise.
6779         (iszero): Likewise.
6780         (pack_d): Likewise.
6781         (_fpadd_parts): Constify return type.
6782         (_fpmul_parts): Likewise.
6783         (_fpdiv_parts): Likewise.
6784
6785 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
6786
6787         PR c/36489
6788         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
6789         warn about overwriting initializer with side-effects or
6790         -Woverride-init if !IMPLICIT.
6791         (output_init_element): Likewise.  Pass IMPLICIT down to
6792         add_pending_init.
6793         (process_init_element): Add IMPLICIT argument.  Pass it down
6794         to output_init_element.
6795         (push_init_element, pop_init_level, set_designator): Adjust
6796         process_init_element callers.
6797         (set_nonincremental_init, set_nonincremental_init_from_string):
6798         Adjust add_pending_init callers.
6799         (output_pending_init_elements): Adjust output_init_element callers.
6800         * c-tree.h (process_init_element): Adjust prototype.
6801         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
6802         process_init_element callers.