OSDN Git Service

9d9aba899fd846247b5b5665e27cc74408b3b17a
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
2
3         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
4         output for other floating point modes.
5
6 2009-04-14  Diego Novillo  <dnovillo@google.com>
7
8         * diagnostic.c (diagnostic_report_diagnostic): Do not
9         warn about loaded plugins for DK_ERROR and DK_WARNING.
10         * c-decl.c (declspecs_add_type): Move call to
11         invoke_plugin_callbacks ...
12         * c-parser.c (c_parser_declspecs): ... here.
13         * plugin.c (dump_active_plugins): Tidy output.
14
15 2009-04-14  Diego Novillo  <dnovillo@google.com>
16             Le-Chun Wu  <lcwu@google.com>
17
18         * configure.ac: Add --enable-plugin support.
19         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
20         * Makefile.in (PLUGIN_H): Define.
21         Export ENABLE_PLUGIN and GMPINC to site.exp.
22         Add PLUGINLIBS to link command.
23         Add/modify dependencies for plugin.o and files including plugin.h.
24         (plugin.o): New.
25         * config.in: Regenerate.
26         
27         * opts.c (common_handle_option): Handle OPT_fplugin_ and
28         OPT_fplugin_arg_.
29
30 2009-04-14  Le-Chun Wu  <lcwu@google.com>
31
32         * tree-pass.h (register_one_dump_file): Add a prototype for
33         register_one_dump_file.
34         * toplev.c (compile_file): Call initialize_plugins.
35         (do_compile): Call invoke_plugin_callbacks.
36         (toplev_main): Call invoke_plugin_callbacks.
37         * common.opt: Add -fplugin= and -fplugin-arg-.
38         * gcc-plugin.h: New public header file for plugins to include.
39         * plugin.c: New source file.
40         * plugin.h: New internal header file.
41         * passes.c (register_one_dump_file): Make it external.
42         
43         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
44
45 2009-04-14  Diego Novillo  <dnovillo@google.com>
46
47         * doc/plugins.texi: New.
48         * doc/gccint.texi: Add reference to Plugins chapter.
49         * doc/invoke.texi: Document -fplugin and -fplugin-arg
50         * diagnostic.c (diagnostic_report_diagnostic): Warn about
51         loaded plugins, if any.
52         * timevar.def (TV_PLUGIN_INIT): Define.
53         (TV_PLUGIN_RUN): Define.
54         * plugin.c: Include timevar.h
55         (plugins_active_p): New.
56         (dump_active_plugins): New.
57         (debug_active_plugins): New.
58
59 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
60
61         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
62         library paths.
63         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
64
65 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
66
67         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
68         the same as a minus without a shift.
69
70 2009-04-14  Nick Clifton  <nickc@redhat.com>
71
72         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
73         comparisons with small integers will always produce a short
74         branch.
75
76 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
77
78         Merge:
79
80         2008-12-19  Diego Novillo  <dnovillo@google.com>
81
82                 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
83
84 2000-04-14  Richard Guenther  <rguenther@suse.de>
85
86         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
87         verification.
88         (verify_gimple_assign_binary): Likewise.  Handle shifts and
89         rotates correctly.
90         (verify_gimple_phi): Print the mismatched argument position.
91         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
92         Fix types.
93         (vect_update_init_of_dr): Likewise.
94         * matrix-reorg.c (transform_access_sites): Do what the
95         comment suggests.
96         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
97
98 2009-04-13  Michael Eager <eager@eagercon.com>
99
100         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
101         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
102         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
103         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 
104         remove duplicate config
105
106 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
107
108         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
109         file_name:line_number type locator of the call site.
110         
111 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
112
113         * genautomata.c: Put blank after comma.
114         (automaton_decls): New.
115         (struct unit_usage): Add comments to member next.
116         (store_alt_unit_usage): Keep the list ordered.
117         (unit_present_on_list_p, equal_alternatives_p): New.
118         (check_regexp_units_distribution): Check units distribution
119         correctness correctly.
120         (main): Don't write automata if error is found.  Return correct
121         exit code.
122         
123         * config/m68k/cf.md (cfv4_ds): Remove.
124         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
125         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
126
127         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
128         power4-load-ext, power4-store, power4-store-update,
129         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
130         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
131         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
132         power4-sqrt, power4-isync): Modify reservation to make correct
133         unit distribution to automata.
134
135         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
136         power5-store-update, power5-two, power5-three, power5-lmul,
137         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
138         
139 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
140
141         * except.c (pass_set_nothrow_function_flags): Set name and add
142         TODO_dump_func.
143         (set_nothrow_function_flags): Mention in the dump file when
144         changing a function to nothrow.
145
146 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
147
148         PR/39066
149         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
150         instead of unsigned long.
151
152 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
153
154         * config/arm/arm.c (return_used_this_function): Remove.
155         (arm_output_function_prologue): Remove use of
156         return_used_this_function.
157         (output_return_instruction): Replace use of
158         return_used_this_function
159         by cfun->machine->return_used_this_function.
160         (arm_output_epilogue): Likewise.
161         (arm_output_function_epilogue): Likewise.
162         (thumb_unexpanded_epilogue): Likewise.
163         * config/arm/arm.h (struct machine_function):
164         New member return_used_this_function.
165
166 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
167
168         * doc/install.texi: Correct description of default directory for
169         --with-gxx-include-dir.
170
171 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
172
173         * fold-const.c (build_range_check): Properly deal with enumeral and
174         boolean base types.
175
176 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
177
178         * doc/invoke.texi (max_gcse_passes): Remove documentation.
179         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
180         * params.h (MAX_GCSE_PASSES): Remove.
181         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
182         in sequence.  Remove ability to run multiple passes.
183         (bypass_jumps): Report run as third CPROP pass.
184
185 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
186
187         PR middle-end/39651
188         * except.c (can_throw_external): Look at each insn in a SEQUENCE
189         when deciding whether the whole SEQUENCE can throw.
190
191 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
192
193         PR target/39740
194         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
195         offseted label references.
196
197 2009-04-11  Jan Hubicka  <jh@suse.cz>
198
199         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
200
201 2009-04-11  Richard Guenther  <rguenther@suse.de>
202
203         PR middle-end/39732
204         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
205         return variables as TREE_ADDRESSABLE.
206
207 2009-04-11  Richard Guenther  <rguenther@suse.de>
208
209         PR tree-optimization/39713
210         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
211         reference trees have SSA_NAME operands.
212
213 2009-04-11  Richard Guenther  <rguenther@suse.de>
214
215         PR c/39712
216         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
217         address expressions.
218
219 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
220
221         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
222         match changes in Cygwin 1.7
223         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
224         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
225
226 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
227
228         PR tree-optimization/39701
229         * doc/invoke.texi (Optimization Options): Document change in
230         meaning and initialization of -fdelete-null-pointer-checks.
231
232 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
233
234         PR middle-end/39701
235         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
236
237         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
238         here.
239
240         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
241
242 2009-04-10  Chao-ying Fu  <fu@mips.com>
243
244         * doc/tm.texi (Instruction Output): Document
245         TARGET_ASM_FINAL_POSTSCAN_INSN.
246         * target.h (final_postscan_insn): New field in asm_out.
247         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
248         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
249         * final.c (final_scan_insn): Call
250         targetm.asm_out.final_postscan_insn after outputting
251         an asm macro and a normal instruction.
252
253         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
254         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
255         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
256         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
257         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
258
259 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
260
261         PR middle-end/39701
262         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
263         variables as non-NULL even with -fdelete-null-pointer-checks.
264
265 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
266
267         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
268
269 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
270
271         PR target/39678
272         * config/i386/i386.c (classify_argument): Handle SCmode with
273         (bit_offset % 64) != 0.
274
275 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
276
277         * doc/invoke.texi (Optimize Options): Add cross-reference to
278         -Q --help=optimizers examples.
279
280 2009-04-10  Ben Elliston  <bje@au.ibm.com>
281
282         PR target/36800
283         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
284         regalign for the reg == fpr and TDmode case.
285
286 2009-04-09  David Ayers  <ayers@fsfe.org>
287
288         PR objc/29200
289         * objc/objc-act.c (warn_with_method): Remove helper function.
290         (check_duplicates): Call warning and inform directly.
291         (really_start_method): Likewise.
292
293 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
294
295         * expmed.c (expand_divmod): Always use a comparison for a division
296         by a large unsigned integer.
297
298         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
299         for things others than variables or functions as nonzero.
300
301 2009-04-09  Nick Clifton  <nickc@redhat.com>
302
303         * unwind-compat.c: Change copyright header to refer to version
304         3 of the GNU General Public License with version 3.1 of the
305         GCC Runtime Library Exception and to point readers at the
306         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
307         * config/alpha/crtfastmath.c: Likewise.
308         * config/alpha/linux-unwind.h: Likewise.
309         * config/alpha/qrnnd.asm: Likewise.
310         * config/alpha/vms-crt0-64.c: Likewise.
311         * config/alpha/vms-crt0.c: Likewise.
312         * config/alpha/vms-dwarf2.asm: Likewise.
313         * config/alpha/vms-dwarf2eh.asm: Likewise.
314         * config/alpha/vms-psxcrt0-64.c: Likewise.
315         * config/alpha/vms-psxcrt0.c: Likewise.
316         * config/alpha/vms_tramp.asm: Likewise.
317         * config/arc/initfini.c: Likewise.
318         * config/arc/lib1funcs.asm: Likewise.
319         * config/arm/bpabi-v6m.S: Likewise.
320         * config/arm/bpabi.S: Likewise.
321         * config/arm/bpabi.c: Likewise.
322         * config/arm/crti.asm: Likewise.
323         * config/arm/crtn.asm: Likewise.
324         * config/arm/ieee754-df.S: Likewise.
325         * config/arm/ieee754-sf.S: Likewise.
326         * config/arm/lib1funcs.asm: Likewise.
327         * config/arm/libunwind.S: Likewise.
328         * config/arm/linux-atomic.c: Likewise.
329         * config/arm/mmintrin.h: Likewise.
330         * config/arm/pr-support.c: Likewise.
331         * config/arm/unaligned-funcs.c: Likewise.
332         * config/arm/unwind-arm.c: Likewise.
333         * config/arm/unwind-arm.h: Likewise.
334         * config/avr/libgcc.S: Likewise.
335         * config/bfin/crti.s: Likewise.
336         * config/bfin/crtlibid.s: Likewise.
337         * config/bfin/crtn.s: Likewise.
338         * config/bfin/lib1funcs.asm: Likewise.
339         * config/bfin/linux-unwind.h: Likewise.
340         * config/cris/arit.c: Likewise.
341         * config/cris/cris_abi_symbol.c: Likewise.
342         * config/darwin-64.c: Likewise.
343         * config/darwin-crt2.c: Likewise.
344         * config/darwin-crt3.c: Likewise.
345         * config/darwin.h: Likewise.
346         * config/dbxelf.h: Likewise.
347         * config/dfp-bit.c: Likewise.
348         * config/dfp-bit.h: Likewise.
349         * config/elfos.h: Likewise.
350         * config/fixed-bit.c: Likewise.
351         * config/fixed-bit.h: Likewise.
352         * config/fp-bit.c: Likewise.
353         * config/fp-bit.h: Likewise.
354         * config/fr30/crti.asm: Likewise.
355         * config/fr30/crtn.asm: Likewise.
356         * config/fr30/lib1funcs.asm: Likewise.
357         * config/freebsd-spec.h: Likewise.
358         * config/frv/cmovd.c: Likewise.
359         * config/frv/cmovh.c: Likewise.
360         * config/frv/cmovw.c: Likewise.
361         * config/frv/frvbegin.c: Likewise.
362         * config/frv/frvend.c: Likewise.
363         * config/frv/lib1funcs.asm: Likewise.
364         * config/glibc-stdint.h: Likewise.
365         * config/h8300/clzhi2.c: Likewise.
366         * config/h8300/crti.asm: Likewise.
367         * config/h8300/crtn.asm: Likewise.
368         * config/h8300/ctzhi2.c: Likewise.
369         * config/h8300/fixunssfsi.c: Likewise.
370         * config/h8300/lib1funcs.asm: Likewise.
371         * config/h8300/parityhi2.c: Likewise.
372         * config/h8300/popcounthi2.c: Likewise.
373         * config/i386/ammintrin.h: Likewise.
374         * config/i386/att.h: Likewise.
375         * config/i386/avxintrin.h: Likewise.
376         * config/i386/biarch64.h: Likewise.
377         * config/i386/bmmintrin.h: Likewise.
378         * config/i386/cpuid.h: Likewise.
379         * config/i386/cross-stdarg.h: Likewise.
380         * config/i386/crtfastmath.c: Likewise.
381         * config/i386/crtprec.c: Likewise.
382         * config/i386/cygming-crtbegin.c: Likewise.
383         * config/i386/cygming-crtend.c: Likewise.
384         * config/i386/cygwin.asm: Likewise.
385         * config/i386/emmintrin.h: Likewise.
386         * config/i386/gmm_malloc.h: Likewise.
387         * config/i386/gthr-win32.c: Likewise.
388         * config/i386/i386.h: Likewise.
389         * config/i386/immintrin.h: Likewise.
390         * config/i386/linux-unwind.h: Likewise.
391         * config/i386/linux64.h: Likewise.
392         * config/i386/mm3dnow.h: Likewise.
393         * config/i386/mmintrin-common.h: Likewise.
394         * config/i386/mmintrin.h: Likewise.
395         * config/i386/nmmintrin.h: Likewise.
396         * config/i386/pmm_malloc.h: Likewise.
397         * config/i386/pmmintrin.h: Likewise.
398         * config/i386/smmintrin.h: Likewise.
399         * config/i386/sol2-c1.asm: Likewise.
400         * config/i386/sol2-ci.asm: Likewise.
401         * config/i386/sol2-cn.asm: Likewise.
402         * config/i386/sol2-gc1.asm: Likewise.
403         * config/i386/tmmintrin.h: Likewise.
404         * config/i386/unix.h: Likewise.
405         * config/i386/w32-unwind.h: Likewise.
406         * config/i386/wmmintrin.h: Likewise.
407         * config/i386/x86-64.h: Likewise.
408         * config/i386/x86intrin.h: Likewise.
409         * config/i386/xmmintrin.h: Likewise.
410         * config/ia64/crtbegin.asm: Likewise.
411         * config/ia64/crtend.asm: Likewise.
412         * config/ia64/crtfastmath.c: Likewise.
413         * config/ia64/crti.asm: Likewise.
414         * config/ia64/crtn.asm: Likewise.
415         * config/ia64/fde-glibc.c: Likewise.
416         * config/ia64/lib1funcs.asm: Likewise.
417         * config/ia64/linux-unwind.h: Likewise.
418         * config/ia64/quadlib.c: Likewise.
419         * config/ia64/unwind-ia64.c: Likewise.
420         * config/linux.h: Likewise.
421         * config/m32c/m32c-lib1.S: Likewise.
422         * config/m32c/m32c-lib2-trapv.c: Likewise.
423         * config/m32c/m32c-lib2.c: Likewise.
424         * config/m32r/initfini.c: Likewise.
425         * config/m68hc11/larith.asm: Likewise.
426         * config/m68hc11/m68hc11-crt0.S: Likewise.
427         * config/m68k/cf.md: Likewise.
428         * config/m68k/crti.s: Likewise.
429         * config/m68k/crtn.s: Likewise.
430         * config/m68k/lb1sf68.asm: Likewise.
431         * config/m68k/linux-unwind.h: Likewise.
432         * config/mcore/crti.asm: Likewise.
433         * config/mcore/crtn.asm: Likewise.
434         * config/mcore/lib1.asm: Likewise.
435         * config/mips/linux-unwind.h: Likewise.
436         * config/mips/loongson.h: Likewise.
437         * config/mips/mips16.S: Likewise.
438         * config/mmix/crti.asm: Likewise.
439         * config/mmix/crtn.asm: Likewise.
440         * config/pa/fptr.c: Likewise.
441         * config/pa/hpux-unwind.h: Likewise.
442         * config/pa/lib2funcs.asm: Likewise.
443         * config/pa/linux-atomic.c: Likewise.
444         * config/pa/linux-unwind.h: Likewise.
445         * config/pa/milli64.S: Likewise.
446         * config/pa/quadlib.c: Likewise.
447         * config/pa/stublib.c: Likewise.
448         * config/picochip/libgccExtras/adddi3.asm: Likewise.
449         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
450         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
451         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
452         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
453         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
454         * config/picochip/libgccExtras/divmod15.asm: Likewise.
455         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
456         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
457         * config/picochip/libgccExtras/longjmp.asm: Likewise.
458         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
459         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
460         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
461         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
462         * config/picochip/libgccExtras/setjmp.asm: Likewise.
463         * config/picochip/libgccExtras/subdi3.asm: Likewise.
464         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
465         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
466         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
467         * config/rs6000/750cl.h: Likewise.
468         * config/rs6000/altivec.h: Likewise.
469         * config/rs6000/biarch64.h: Likewise.
470         * config/rs6000/crtresfpr.asm: Likewise.
471         * config/rs6000/crtresgpr.asm: Likewise.
472         * config/rs6000/crtresxfpr.asm: Likewise.
473         * config/rs6000/crtresxgpr.asm: Likewise.
474         * config/rs6000/crtsavfpr.asm: Likewise.
475         * config/rs6000/crtsavgpr.asm: Likewise.
476         * config/rs6000/darwin-asm.h: Likewise.
477         * config/rs6000/darwin-fallback.c: Likewise.
478         * config/rs6000/darwin-fpsave.asm: Likewise.
479         * config/rs6000/darwin-ldouble.c: Likewise.
480         * config/rs6000/darwin-tramp.asm: Likewise.
481         * config/rs6000/darwin-unwind.h: Likewise.
482         * config/rs6000/darwin-vecsave.asm: Likewise.
483         * config/rs6000/darwin-world.asm: Likewise.
484         * config/rs6000/e500crtres32gpr.asm: Likewise.
485         * config/rs6000/e500crtres64gpr.asm: Likewise.
486         * config/rs6000/e500crtres64gprctr.asm: Likewise.
487         * config/rs6000/e500crtrest32gpr.asm: Likewise.
488         * config/rs6000/e500crtrest64gpr.asm: Likewise.
489         * config/rs6000/e500crtresx32gpr.asm: Likewise.
490         * config/rs6000/e500crtresx64gpr.asm: Likewise.
491         * config/rs6000/e500crtsav32gpr.asm: Likewise.
492         * config/rs6000/e500crtsav64gpr.asm: Likewise.
493         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
494         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
495         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
496         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
497         * config/rs6000/eabi-ci.asm: Likewise.
498         * config/rs6000/eabi-cn.asm: Likewise.
499         * config/rs6000/eabi.asm: Likewise.
500         * config/rs6000/linux-unwind.h: Likewise.
501         * config/rs6000/linux64.h: Likewise.
502         * config/rs6000/paired.h: Likewise.
503         * config/rs6000/paired.md: Likewise.
504         * config/rs6000/ppc64-fp.c: Likewise.
505         * config/rs6000/ppu_intrinsics.h: Likewise.
506         * config/rs6000/rs6000.h: Likewise.
507         * config/rs6000/si2vmx.h: Likewise.
508         * config/rs6000/sol-ci.asm: Likewise.
509         * config/rs6000/sol-cn.asm: Likewise.
510         * config/rs6000/spe.h: Likewise.
511         * config/rs6000/spu2vmx.h: Likewise.
512         * config/rs6000/sysv4.h: Likewise.
513         * config/rs6000/tramp.asm: Likewise.
514         * config/rs6000/vec_types.h: Likewise.
515         * config/s390/linux-unwind.h: Likewise.
516         * config/s390/tpf-unwind.h: Likewise.
517         * config/score/crti.asm: Likewise.
518         * config/score/crtn.asm: Likewise.
519         * config/sh/crt1.asm: Likewise.
520         * config/sh/crti.asm: Likewise.
521         * config/sh/crtn.asm: Likewise.
522         * config/sh/divtab-sh4-300.c: Likewise.
523         * config/sh/divtab-sh4.c: Likewise.
524         * config/sh/divtab.c: Likewise.
525         * config/sh/lib1funcs-4-300.asm: Likewise.
526         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
527         * config/sh/lib1funcs.asm: Likewise.
528         * config/sh/lib1funcs.h: Likewise.
529         * config/sh/linux-atomic.asm: Likewise.
530         * config/sh/linux-unwind.h: Likewise.
531         * config/sh/shmedia.h: Likewise.
532         * config/sh/sshmedia.h: Likewise.
533         * config/sh/ushmedia.h: Likewise.
534         * config/sparc/crtfastmath.c: Likewise.
535         * config/sparc/linux-unwind.h: Likewise.
536         * config/sparc/sol2-c1.asm: Likewise.
537         * config/sparc/sol2-ci.asm: Likewise.
538         * config/sparc/sol2-cn.asm: Likewise.
539         * config/spu/divmodti4.c: Likewise.
540         * config/spu/divv2df3.c: Likewise.
541         * config/spu/float_disf.c: Likewise.
542         * config/spu/float_unsdidf.c: Likewise.
543         * config/spu/float_unsdisf.c: Likewise.
544         * config/spu/float_unssidf.c: Likewise.
545         * config/spu/mfc_multi_tag_release.c: Likewise.
546         * config/spu/mfc_multi_tag_reserve.c: Likewise.
547         * config/spu/mfc_tag_release.c: Likewise.
548         * config/spu/mfc_tag_reserve.c: Likewise.
549         * config/spu/mfc_tag_table.c: Likewise.
550         * config/spu/multi3.c: Likewise.
551         * config/spu/spu_internals.h: Likewise.
552         * config/spu/spu_intrinsics.h: Likewise.
553         * config/spu/spu_mfcio.h: Likewise.
554         * config/spu/vec_types.h: Likewise.
555         * config/spu/vmx2spu.h: Likewise.
556         * config/stormy16/stormy16-lib2.c: Likewise.
557         * config/svr4.h: Likewise.
558         * config/sync.c: Likewise.
559         * config/v850/lib1funcs.asm: Likewise.
560         * config/vxlib-tls.c: Likewise.
561         * config/vxlib.c: Likewise.
562         * config/vxworks-dummy.h: Likewise.
563         * config/xtensa/crti.asm: Likewise.
564         * config/xtensa/crtn.asm: Likewise.
565         * config/xtensa/ieee754-df.S: Likewise.
566         * config/xtensa/ieee754-sf.S: Likewise.
567         * config/xtensa/lib1funcs.asm: Likewise.
568         * config/xtensa/lib2funcs.S: Likewise.
569         * config/xtensa/linux-unwind.h: Likewise.
570         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
571         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
572         * coretypes.h: Likewise.
573         * crtstuff.c: Likewise.
574         * defaults.h: Likewise.
575         * dwarf2.h: Likewise.
576         * emutls.c: Likewise.
577         * gbl-ctors.h: Likewise.
578         * gcov-io.h: Likewise.
579         * ginclude/float.h: Likewise.
580         * ginclude/iso646.h: Likewise.
581         * ginclude/stdarg.h: Likewise.
582         * ginclude/stdbool.h: Likewise.
583         * ginclude/stddef.h: Likewise.
584         * ginclude/stdfix.h: Likewise.
585         * ginclude/stdint-gcc.h: Likewise.
586         * ginclude/tgmath.h: Likewise.
587         * gthr-aix.h: Likewise.
588         * gthr-dce.h: Likewise.
589         * gthr-gnat.c: Likewise.
590         * gthr-gnat.h: Likewise.
591         * gthr-lynx.h: Likewise.
592         * gthr-mipssde.h: Likewise.
593         * gthr-nks.h: Likewise.
594         * gthr-posix.c: Likewise.
595         * gthr-posix.h: Likewise.
596         * gthr-posix95.h: Likewise.
597         * gthr-rtems.h: Likewise.
598         * gthr-single.h: Likewise.
599         * gthr-solaris.h: Likewise.
600         * gthr-tpf.h: Likewise.
601         * gthr-vxworks.h: Likewise.
602         * gthr-win32.h: Likewise.
603         * gthr.h: Likewise.
604         * libgcc2.c: Likewise.
605         * libgcc2.h: Likewise.
606         * libgcov.c: Likewise.
607         * tsystem.h: Likewise.
608         * typeclass.h: Likewise.
609         * unwind-c.c: Likewise.
610         * unwind-compat.h: Likewise.
611         * unwind-dw2-fde-compat.c: Likewise.
612         * unwind-dw2-fde-darwin.c: Likewise.
613         * unwind-dw2-fde-glibc.c: Likewise.
614         * unwind-dw2-fde.c: Likewise.
615         * unwind-dw2-fde.h: Likewise.
616         * unwind-dw2.c: Likewise.
617         * unwind-dw2.h: Likewise.
618         * unwind-generic.h: Likewise.
619         * unwind-pe.h: Likewise.
620         * unwind-sjlj.c: Likewise.
621         * unwind.inc: Likewise.
622         * config/arm/neon-gen.ml: Change generated copyright header to
623         refer to version 3 of the GNU General Public License with
624         version 3.1 of the GCC Runtime Library Exception and to point
625         readers at the COPYING3 and COPYING3.RUNTIME files and the
626         FSF's license web page.
627         * config/arm/arm_neon.h: Regenerate.
628
629 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
630
631         * config/cris/cris.md: Change copyright header to refer to version
632         3 of the GNU General Public License.
633         * doc/install.texi2html: Change copyright header to refer to version
634         3 of the GNU General Public License and to point readers at the
635         COPYING3 file and the FSF's license web page.
636         * config/vax/linux.h: Likewise.
637
638 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
639
640         * config/i386/i386.md (cmpcc): New.
641         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
642         (sync_compare_and_swap_cc*): Delete.
643
644         * config/s390/s390.c (s390_compare_emitted): Remove.
645         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
646         s390_compare_emitted used to be handled.  Assert that modes match.
647         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
648         refer to sync_compare_and_swap_ccsi.
649         * config/s390/s390.h (s390_compare_emitted): Remove.
650         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
651         instead of s390_compare_emitted.
652         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
653         instead of s390_compare_emitted.
654         * config/s390/s390.md (cmpcc): New.
655         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
656         CC_REGNUM, do not pretend it's set.
657         (sync_compare_and_swap_cc*): Delete.
658         * config/s390/predicates.md (cc_reg_operand): New.
659
660         * expr.c (sync_compare_and_swap_cc): Delete.
661         * optabs.h (sync_compare_and_swap_cc): Delete.
662         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
663         is being used with can_compare_p.
664         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
665         (find_cc_set): New.
666         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
667         look for a MODE_CC set instead.  Use emit_store_flag.
668         (expand_compare_and_swap_loop): Likewise, with some additional
669         complication to avoid a force_reg when useless.  Use
670         emit_cmp_and_jump_insns.
671         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
672         * doc/md.texi (sync_compare_and_swap_cc): Merge with
673         sync_compare_and_swap documentation.
674
675 2009-04-09  Jan Hubicka  <jh@suse.cz>
676
677         * except.c (find_prev_try): Break out from ....
678         (duplicate_eh_regions): ... here; properly update prev_try pointers
679         when duplication part of tree.
680         (dump_eh_tree): Improve dumping.
681         (verify_eh_region): New.
682         (verify_eh_tree): Use it.
683
684 2009-04-06  Richard Guenther  <rguenther@suse.de>
685
686         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
687         &ARRAY addresses by adjusting their types and prepending
688         a conversion.
689         * tree-cfg.c (verify_gimple_assign_single): Verify that
690         addresses are correct.
691
692 2009-04-09  Richard Guenther  <rguenther@suse.de>
693
694         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
695         indices into an array reference if possible.
696         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
697         Fold POINTER_PLUS_EXPR statements with invariant address.
698
699 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
700
701         PR target/39634
702         * config.gcc (powerpc64-*-linux*): Always build biarch.
703
704 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
705
706         PR c/39613
707         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
708         it and pedwarn if this results in an INTEGER_CST.
709
710 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
711
712         * doc/install.texi: Update minimum GMP version.  Remove obsolete
713         text in MPFR section.
714
715 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
716
717         * dwarf2out.c (class_scope_p): New static inline.
718         (class_or_namespace_scope_p): Use it.
719         (gen_variable_die): Use DW_TAG_member tag for static data member
720         declarations instead of DW_TAG_variable.
721
722         PR middle-end/39573
723         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
724         variables.
725
726 2009-04-08  Richard Guenther  <rguenther@suse.de>
727
728         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
729         valueize random data.
730
731 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
732
733         * config.gcc (aix tm_file):  Add aix-stdint.h.
734         (aix tm clause use_gcc_stdint):  Set to wrap.
735         * config/rs6000/aix-stdint.h:  New file.
736         
737 2009-04-08  Richard Guenther  <rguenther@suse.de>
738
739         PR middle-end/36291
740         * tree-dfa.c (add_referenced_var): Do not recurse into
741         global initializers.
742         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
743         exposed variables.
744         (fold_const_aggregate_ref): Likewise.
745
746 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
747
748         * recog.c (ordered_comparison_operator): New.
749         * gensupport.c (std_preds): Add it.
750         * doc/md.texi (Machine-Independent Predicates): Document it.
751
752 2009-04-08  Jan Hubicka  <jh@suse.cz>
753
754         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
755         * function.h (rtl_eh): Remove exception_handler_label_map.
756         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
757         remove_exception_handler_label, for_each_eh_label_1): Remove.
758         (rtl_remove_unreachable_regions): Remove.
759         (convert_from_eh_region_ranges): Do not remove unreachable regions.
760         (find_exception_handler_labels): Don't build the hashtable.
761         (maybe_remove_eh_handler): Remove.
762         (for_each_eh_label): Rewrite to walk the tree.
763         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
764         * except.h (maybe_remove_eh_handler): Remove.
765         * passes.c (init_optimization_passes): Schedule second EH cleanup
766         before out-of-ssa.
767         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
768         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
769
770 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
771
772         * genoutput.c (validate_optab_operands): New.
773         (gen_insn, gen_expand): Call it.
774
775         * genflags.c (gen_insn): Detect misused iterators.
776         (main): Pass line_no to gen_insn, exit with status 1 on error.
777
778         * genextract.c (line_no): Make global.
779         (VEC_safe_set_locstr): Change assertion to error message.
780         (main): Exit with status 1 on error.
781
782 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
783
784         PR c/39614
785         PR c/39673
786         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
787         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
788         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
789         * c-convert.c (convert): Do not call fold on results of conversion
790         functions when the result is a C_MAYBE_CONST_EXPR.
791         * c-parser.c (c_parser_postfix_expression): Do not fold condition
792         of __builtin_choose_expr.
793         * c-typeck.c (remove_c_maybe_const_expr): New.
794         (build_unary_op, build_conditional_expr, build_compound_expr,
795         build_binary_op, c_objc_common_truthvalue_conversion): Call
796         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
797         integer operands.
798
799 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
800
801         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
802         CODE to produce a new one. Add a prototype to use fold_convert_const
803
804 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
805
806         PR bootstrap/39660
807         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
808         mix declarations and code.
809
810 2009-04-08  Ben Elliston  <bje@au.ibm.com>
811
812         * gcc.c: Replace `CC' with `GCC' throughout.
813
814 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
815
816         * doc/invoke.texi: Document Atom support.
817
818 2009-04-07  Jason Merrill  <jason@redhat.com>
819
820         PR c++/25185
821         * c-common.h, c-common.c: Add flag_pretty_templates.
822         * c-opts.c (c_common_handle_option): Set it.
823         * c.opt: Add -fno-pretty-templates.
824         * doc/invoke.texi (C++ Dialect Options): Likewise.
825
826 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
827
828         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
829         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
830         (ia64_expand_builtin): Likewise.
831
832 2009-04-07  Martin Jambor  <mjambor@suse.cz>
833
834         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
835         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
836         ADDR_EXPRS are include too.
837
838 2009-04-07  Richard Guenther  <rguenther@suse.de>
839
840         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
841         decls are only used if passes as parameters or if they are
842         local statics and the call is not to a builtin.
843         (call_may_clobber_ref_p_1): Likewise.
844
845 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
846
847         * expr.c (do_store_flag): Remove last argument.  Simplify code
848         to avoid duplication of tests already done by can_compare_p.
849         (expand_expr_real_1): Adjust caller.
850
851 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
852
853         * optabs.c (can_compare_p): Test the predicate of a
854         cbranch and cstore pattern.
855
856 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
857
858         * expr.c (convert_move): Use emit_store_flag instead of
859         "emulating" it.
860
861 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
862
863         * config/i386/i386.c (ix86_compare_emitted): Remove.
864         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
865         ix86_compare_op0 like ix86_compare_emitted used to be handled.
866         * config/i386/i386.h (ix86_compare_emitted): Remove.
867         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
868         instead of ix86_compare_emitted.
869         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
870
871 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
872
873         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
874         Add t-sysroot-suffix to tmake_file.
875         * config/print-sysroot-suffix.sh: New file.
876         * config/t-sysroot-suffix: New file.
877
878 2009-04-07  Ben Elliston  <bje@au.ibm.com>
879
880         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
881         as the latter produces a warning when the target does not support
882         infinity.
883
884 2009-04-07  Ben Elliston  <bje@au.ibm.com>
885
886         * dfp.c: Replace type punning assignments with memcpy throughout.
887         * Makefile.in (dfp.o-warn): Remove.
888         
889 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
890
891         PR target/39634
892         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
893         Include soft-fp/t-softfp after rs6000/t-linux64.
894
895 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
896
897         * stor-layout.c (set_sizetype): Use the full precision of their
898         machine mode for bitsize types.
899
900 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
901
902         * config/i386/i386.md: Revert 2 accidental checkins.
903
904 2009-04-06  Joey Ye  <joey.ye@intel.com>
905             Xuepeng Guo <xuepeng.guo@intel.com>
906             H.J. Lu  <hongjiu.lu@intel.com>
907
908         Atom pipeline model, tuning and insn selection.
909         * config.gcc (atom): Add atom config options and target.
910
911         * config/i386/atom.md: New.
912
913         * config/i386/i386.c (atom_cost): New cost.
914         (m_ATOM): New macro flag.
915         (initial_ix86_tune_features): Set m_ATOM.
916         (x86_accumulate_outgoing_args): Likewise.
917         (x86_arch_always_fancy_math_387): Likewise.
918         (processor_target): Add Atom cost.
919         (cpu_names): Add Atom cpu name.
920         (override_options): Set Atom ISA.
921         (ix86_issue_rate): New case PROCESSOR_ATOM.
922         (ix86_adjust_cost): Likewise.
923
924         * config/i386/i386.h (TARGET_ATOM): New target macro.
925         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
926         (TARGET_OPT_AGU): New target option.
927         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
928         (processor_type): Add PROCESSOR_ATOM.
929
930         * config/i386/i386.md (cpu): Add new value "atom".
931         (use_carry, movu): New attr.
932         (atom.md): Include atom.md.
933         (adddi3_carry_rex64): Set attr "use_carry".
934         (addqi3_carry): Likewise.
935         (addhi3_carry): Likewise.
936         (addsi3_carry): Likewise.
937         (*addsi3_carry_zext): Likewise.
938         (subdi3_carry_rex64): Likewise.
939         (subqi3_carry): Likewise.
940         (subhi3_carry): Likewise.
941         (subsi3_carry): Likewise.
942         (x86_movdicc_0_m1_rex64): Likewise.
943         (*x86_movdicc_0_m1_se): Likewise.
944         (x86_movsicc_0_m1): Likewise.
945         (*x86_movsicc_0_m1_se): Likewise.
946         (*adddi_1_rex64): Emit add insn as much as possible.
947         (*addsi_1): Likewise.
948         (return_internal): Set atom_unit.
949         (return_internal_long): Likewise.
950         (return_pop_internal): Likewise.
951         (*rcpsf2_sse): Set atom_sse_attr attr.
952         (*qrt<mode>2_sse): Likewise.
953         (*prefetch_sse): Likewise.
954
955         * config/i386/i386-c.c (ix86_target_macros_internal): New case
956         PROCESSOR_ATOM.
957         (ix86_target_macros_internal): Likewise.
958
959         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
960         (*prefetch_sse_rex): Likewise.
961         (sse_rcpv4sf2): Likewise.
962         (sse_vmrcpv4sf2): Likewise.
963         (sse_sqrtv4sf2): Likewise.
964         (<sse>_vmsqrt<mode>2): Likewise.
965         (sse_ldmxcsr): Likewise.
966         (sse_stmxcsr): Likewise.
967         (*sse_sfence): Likewise.
968         (sse2_clflush): Likewise.
969         (*sse2_mfence): Likewise.
970         (*sse2_lfence): Likewise.
971         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
972         (<sse>_movup<ssemodesuffixf2c>): Likewise.
973         (avx_movdqu<avxmodesuffix>): Likewise.
974         (avx_lddqu<avxmodesuffix>): Likewise.
975         (sse2_movntv2di): Change attr "type" to "ssemov".
976         (sse2_movntsi): Likewise.
977         (rsqrtv8sf2): Change attr "type" to "sseadd".
978         (sse3_addsubv2df3): Set attr "atom_unit".
979         (sse3_h<plusminus_insn>v4sf3): Likewise.
980         (*sse2_pmaddwd): Likewise.
981         (*vec_extractv2di_1_rex64): Likewise.
982         (*vec_extractv2di_1_avx): Likewise.
983         (sse2_psadbw): Likewise.
984         (ssse3_phaddwv8hi3): Likewise.
985         (ssse3_phaddwv4hi3): Likewise.
986         (ssse3_phadddv4si3): Likewise.
987         (ssse3_phadddv2si3): Likewise.
988         (ssse3_phaddswv8hi3): Likewise.
989         (ssse3_phaddswv4hi3): Likewise.
990         (ssse3_phsubwv8hi3): Likewise.
991         (ssse3_phsubwv4hi3): Likewise.
992         (ssse3_phsubdv4si3): Likewise.
993         (ssse3_phsubdv2si3): Likewise.
994         (ssse3_phsubswv8hi3): Likewise.
995         (ssse3_phsubswv4hi3): Likewise.
996         (ssse3_pmaddubsw128): Likewise.
997         (sse3_pmaddubsw: Likewise.
998         (ssse3_palignrti): Likewise.
999         (ssse3_palignrdi): Likewise.
1000
1001 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
1002
1003         * doc/install.texi (Specific): Fix two cross-references to MinGW.
1004
1005 2009-04-06  Richard Guenther  <rguenther@suse.de>
1006
1007         PR tree-optimization/28868
1008         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
1009         of which PHI results we inserted.
1010         (insert_into_preds_of_block): Record inserted PHIs.
1011         (eliminate): Eliminate redundant PHI nodes.
1012         (init_pre): Init inserted_phi_names.
1013
1014 2009-04-06  Richard Guenther  <rguenther@suse.de>
1015
1016         PR tree-optimization/39643
1017         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
1018         IMAGPART_EXPRs of complex constants.
1019         (execute_fold_all_builtins): If we folded a call queue
1020         TODO_update_address_taken.
1021
1022 2009-04-06  Jan Hubicka  <jh@suse.cz>
1023
1024         PR middle-end/39659
1025         * except.c (remove_unreachable_regions): Propagate may_contain_throw
1026         flag.
1027
1028 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
1029
1030         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
1031         delay slot.
1032         (ic_invalidate_array): Likewise.
1033
1034 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
1035
1036         * calls.c (emit_library_call_value_1): Fix a problem with parameter
1037         alignment for library calls.
1038
1039 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
1040
1041         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
1042         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
1043         * config/i386/mingw-stdint.h:  New file.
1044
1045 2009-04-05  Richard Guenther  <rguenther@suse.de>
1046
1047         PR tree-optimization/39648
1048         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
1049         our &A vs. &A[0] IL deficiencies.
1050
1051 2009-04-04  Jan Hubicka  <jh@suse.cz>
1052
1053         * except.c (sjlj_find_directly_reachable_regions): Be ready for
1054         removed toplevel regions.
1055         (sjlj_mark_call_sites): Likewise.
1056
1057 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
1058
1059         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
1060         (cygwin tm clause use_gcc_stdint):  Set to wrap.
1061         * config/i386/cygwin-stdint.h:  New file.
1062
1063 2009-04-04  Richard Guenther  <rguenther@suse.de>
1064
1065         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
1066         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
1067         single-argument PHIs if we are in loop-closed SSA form.
1068         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
1069         for the pre-condition.
1070         (slpeel_tree_peel_loop_to_edge): Likewise.
1071         (vect_build_loop_niters): Take an optional sequence to append stmts.
1072         (vect_generate_tmps_on_preheader): Likewise.
1073         (vect_do_peeling_for_loop_bound): Take extra guards for the
1074         pre-condition.
1075         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
1076         the cost model check.
1077         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
1078         guards if we are going to peel.  Do not apply versioning in that case.
1079         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
1080         (vect_do_peeling_for_loop_bound): Likewise.
1081         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
1082         loop bound only record extra pre-conditions, do not apply loop
1083         versioning.
1084
1085 2009-04-04  Richard Guenther  <rguenther@suse.de>
1086
1087         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
1088         renaming code.
1089
1090 2009-04-04  Jan Hubicka  <jh@suse.cz>
1091
1092         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
1093         last_basic_block for size of bb->index indexed array.
1094         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
1095         compute_out, link_btr_uses, build_btr_def_use_webs,
1096         build_btr_def_use_webs, migrate_btr_defs): Likewise.
1097
1098 2009-04-04  Jan Hubicka  <jh@suse.cz>
1099
1100         * except.c (remove_eh_handler_and_replace): Break out from ...
1101         (remove_eh_handler): ... here.
1102         (bring_to_root): New function.
1103         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
1104         handled ones, bring others to root of tree.
1105
1106 2009-04-04  Jan Hubicka  <jh@suse.cz>
1107
1108         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
1109         (all_phis_safe_to_merge): New function.
1110         (update_info): New structure.
1111         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
1112         (cleanup_empty_eh): Update SSA if possible.
1113
1114 2009-04-04  Richard Guenther  <rguenther@suse.de>
1115
1116         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
1117         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
1118         (append_vuse): Likewise.
1119
1120 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
1121
1122         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
1123         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
1124         instead of REG_UNSAVED for DW_CFA_undefined.
1125         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
1126         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
1127         outermost frame.
1128
1129 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
1130
1131         PR target/39501
1132         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
1133         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
1134         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
1135
1136 2009-04-04  Richard Guenther  <rguenther@suse.de>
1137
1138         PR tree-optimization/8781
1139         PR tree-optimization/37892
1140         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
1141         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
1142         (valueize_refs): Call it for *& valueizations.
1143         (shared_reference_ops_from_ref): Rename to ...
1144         (valueize_shared_reference_ops_from_ref): ... this and valueize.
1145         (shared_reference_ops_from_call): Rename to ...
1146         (valueize_shared_reference_ops_from_call): ... this and valueize.
1147         (vn_reference_lookup): Update.
1148         (visit_reference_op_call): Likewise.
1149         * tree-ssa-pre.c (phi_translate_1): Fold *&.
1150         (eliminate): Value-replace the call address in call statements.
1151
1152 2009-04-04  Richard Guenther  <rguenther@suse.de>
1153
1154         PR tree-optimization/39636
1155         * tree-ssa-forwprop.c
1156         (forward_propagate_addr_into_variable_array_index): Check for
1157         GIMPLE_ASSIGN before accessing the rhs code.
1158
1159 2009-04-03  Jason Merrill  <jason@redhat.com>
1160
1161         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
1162
1163 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
1164
1165         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
1166         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
1167         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
1168         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
1169         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
1170         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
1171         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
1172         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
1173         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
1174         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
1175         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
1176         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
1177         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
1178         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
1179         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
1180         Use fr_reg_or_fp01_operand instead of fr_register_operand
1181
1182         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
1183         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
1184         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
1185
1186 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
1187
1188         PR rtl-optimization/39607
1189         PR rtl-optimization/39631
1190
1191         Revert:
1192         
1193         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1194         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1195         instead of DF_LR_OUT.
1196         * ira-lives.c (process_bb_node_lives): Ditto.
1197         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1198         instead of DF_LR_{OUT,IN}.
1199         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1200         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1201
1202 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
1203
1204         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
1205         (execute_lower_omp): Always run but take the short way out if -fopenmp
1206         is not given.
1207         (gate_lower_omp): Remove, forcing the pass manager to always run the
1208         pass and always set PROP_gimple_lomp.
1209         (pass_lower_omp): Remove gate function.
1210         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
1211         PROP_trees.  Instead, require it.
1212         * ipa-cp.c (pass_ipa_cp): Likewise.
1213         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
1214         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
1215         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
1216         and PROP_gimple_leh.
1217
1218 2009-04-03  Richard Guenther  <rguenther@suse.de>
1219
1220         PR middle-end/13146
1221         PR tree-optimization/23940
1222         PR tree-optimization/33237
1223         PR middle-end/33974
1224         PR middle-end/34093
1225         PR tree-optimization/36201
1226         PR tree-optimization/36230
1227         PR tree-optimization/38049
1228         PR tree-optimization/38207
1229         PR tree-optimization/38230
1230         PR tree-optimization/38301
1231         PR tree-optimization/38585
1232         PR middle-end/38895
1233         PR tree-optimization/38985
1234         PR tree-optimization/39299
1235         * tree-ssa-structalias.h: Remove.
1236         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
1237         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
1238         (struct vuse_element_d): Remove.
1239         (struct vuse_vec_d): Likewise.
1240         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
1241         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
1242         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
1243         VUSE_ELEMENT_VAR): Likewise.
1244         (struct voptype_d): Likewise.
1245         (NUM_VOP_FREE_BUCKETS): Likewise.
1246         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
1247         (struct stmt_operands_d): Remove.
1248         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
1249         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
1250         VDEF_NUM, VDEF_VECT): Likewise.
1251         (copy_virtual_operands): Remove.
1252         (operand_build_cmp): Likewise.
1253         (create_ssa_artificial_load_stmt): Likewise.
1254         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
1255         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
1256         vuse_index and mayuse_index members.  Pack and move done and iter_type
1257         members to the front.
1258         (SSA_OP_VMAYUSE): Remove.
1259         (SSA_OP_VIRTUAL_USES): Adjust.
1260         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
1261         (unlink_stmt_vdef): Declare.
1262         (add_to_addressable_set): Remove.
1263         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
1264         (vrp_visit_stmt): Likewise.
1265         * doc/tree-ssa.texi (Alias analysis): Update.
1266         * doc/invoke.texi (max-aliased-vops): Remove docs.
1267         (avg-aliased-vops): Likewise.
1268         * tree-into-ssa.c (syms_to_rename): Remove.
1269         (need_to_update_vops_p): Likewise.
1270         (need_to_initialize_update_ssa_p): Rename to ...
1271         (update_ssa_initialized_fn): ... this.  Track function we are
1272         initialized for.
1273         (symbol_marked_for_renaming): Simplify.
1274         (add_new_name_mapping): Do not set need_to_update_vops_p.
1275         (dump_currdefs): Use SYMS_TO_RENAME.
1276         (rewrite_update_stmt): Always walk all uses/defs.
1277         (dump_update_ssa): Adjust.
1278         (init_update_ssa): Take function argument.  Track what we are
1279         initialized for.
1280         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
1281         (create_new_def_for): Initialize for cfun, assert we are initialized
1282         for cfun.
1283         (mark_sym_for_renaming): Simplify.
1284         (mark_set_for_renaming): Do not initialize update-ssa.
1285         (need_ssa_update_p): Simplify.  Take function argument.
1286         (name_mappings_registered_p): Assert we ask for the correct function.
1287         (name_registered_for_update_p): Likewise.
1288         (ssa_names_to_replace): Likewise.
1289         (release_ssa_name_after_update_ssa): Likewise.
1290         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
1291         (dump_decl_set): Do not print a newline.
1292         (debug_decl_set): Do it here.
1293         (dump_update_ssa): And here.
1294         * tree-ssa-loop-im.c (move_computations): Adjust.
1295         (movement_possibility): Likewise.
1296         (determine_max_movement): Likewise.
1297         (gather_mem_refs_stmt): Likewise.
1298         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
1299         or NAME_MEMORY_TAG.
1300         * tree-complex.c (update_all_vops): Remove.
1301         (expand_complex_move): Adjust.
1302         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
1303         Simplify test for memory referencing statement.  Exclude
1304         non-invariant ADDR_EXPRs.
1305         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
1306         * tree-loop-distribution.c (generate_memset_zero): Adjust.
1307         (rdg_flag_uses): Likewise.
1308         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
1309         related code.
1310         (tree_optimize_tail_calls_1): Also split the
1311         edge from the entry block if we have degenerate PHI nodes in
1312         the first basic block.
1313         * tree.c (init_ttree): Remove memory-tag related code.
1314         (tree_code_size): Likewise.
1315         (tree_node_structure): Likewise.
1316         (build7_stat): Re-write to be build6_stat.
1317         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
1318         (SSA_VAR_P): Adjust.
1319         (struct tree_memory_tag): Remove.
1320         (struct tree_memory_partition_tag): Likewise.
1321         (union tree_node): Adjust.
1322         (build7): Re-write to be build6.
1323         * tree-pass.h (pass_reset_cc_flags): Remove.
1324         (TODO_update_address_taken): New flag.
1325         (pass_simple_dse): Remove.
1326         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
1327         * params.h (MAX_ALIASED_VOPS): Remove.
1328         (AVG_ALIASED_VOPS): Likewise.
1329         * omp-low.c (expand_omp_taskreg): Update SSA form.
1330         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
1331         aliases the lhs in a copy stmt.
1332         * tree-ssa-dse.c (struct address_walk_data): Remove.
1333         (memory_ssa_name_same): Likewise.
1334         (memory_address_same): Likewise.
1335         (get_kill_of_stmt_lhs): Likewise.
1336         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
1337         unused stores.  Look through PHI nodes into post-dominated regions.
1338         (dse_optimize_stmt): Simplify.  Properly remove stores.
1339         (tree_ssa_dse): Compute dominators.
1340         (execute_simple_dse): Remove.
1341         (pass_simple_dse): Likewise.
1342         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
1343         gimple_loaded_syms and gimple_stored_syms computation.
1344         * toplev.c (dump_memory_report): Dump alias and pta stats.
1345         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
1346         (vn_reference_eq): Likewise.
1347         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
1348         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
1349         valueize_vuses): Remove.
1350         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
1351         (get_def_ref_stmt_vuse): ... this.
1352         (vn_reference_lookup_2): New function.
1353         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
1354         walking equivalent vuses.  Simplify.
1355         (vn_reference_lookup): Likewise.
1356         (vn_reference_insert): Likewise.
1357         (vn_reference_insert_pieces): Likewise.
1358         (visit_reference_op_call): Simplify.
1359         (visit_reference_op_load): Likewise.
1360         (visit_reference_op_store): Likewise.
1361         (init_scc_vn): Remove shared_lookup_vuses initialization.
1362         (free_scc_vn): Remove shared_lookup_vuses freeing.
1363         (sort_vuses, sort_vuses_heap): Remove.
1364         (get_ref_from_reference_ops): Export.
1365         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
1366         vector with single vuse pointer.
1367         (vn_reference_lookup_pieces, vn_reference_lookup,
1368         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
1369         (shared_vuses_from_stmt): Remove.
1370         (get_ref_from_reference_ops): Declare.
1371         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
1372         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1373         memory-tag related code.
1374         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
1375         (likely_value): Add comment, skip static-chain of call statements.
1376         (surely_varying_stmt_p): Adjust.
1377         (gimplify_and_update_call_from_tree): Likewise.
1378         (execute_fold_all_builtins): Do not rebuild alias info.
1379         (gimplify_and_update_call_from_tree): Properly update VOPs.
1380         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
1381         (copy_ref_info): Remove memory-tag related code.
1382         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
1383         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
1384         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
1385         computation.
1386         * tree-ssa-dom.c (gimple_p): Remove typedef.
1387         (eliminate_redundant_computations): Adjust.
1388         (record_equivalences_from_stmt): Likewise.
1389         (avail_expr_hash): Likewise.
1390         (avail_expr_eq): Likewise.
1391         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
1392         (stmt_makes_single_load): Likewise.
1393         (stmt_makes_single_store): Likewise.
1394         * tree-ssa-alias.c: Rewrite completely.
1395         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
1396         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
1397         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
1398         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
1399         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
1400         Remove public functions.
1401         (pass_reset_cc_flags): Remove.
1402         (pass_build_alias): Move ...
1403         * tree-ssa-structalias.c (pass_build_alias): ... here.
1404         * tree-ssa-alias.c (may_be_aliased): Move ...
1405         * tree-flow-inline.h (may_be_aliased): ... here.
1406         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
1407         count_uses_and_derefs): Move ...
1408         * gimple.c: ... here.
1409         * gimple.h (count_uses_and_derefs): Declare.
1410         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
1411         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
1412         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
1413         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
1414         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
1415         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
1416         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
1417         New functions.
1418         * tree-dfa.c (refs_may_alias_p): Move ...
1419         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
1420         * tree-ssa-alias.h: New file.
1421         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
1422         (statement_sink_location): Likewise.
1423         * opts.c (decode_options): Do not adjust max-aliased-vops or
1424         avg-aliased-vops values.
1425         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
1426         (TV_CALL_CLOBBER): Likewise.
1427         (TV_FLOW_SENSITIVE): Likewise.
1428         (TV_FLOW_INSENSITIVE): Likewise.
1429         (TV_MEMORY_PARTITIONING): Likewise.
1430         (TV_ALIAS_STMT_WALK): New timevar.
1431         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
1432         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
1433         (get_address_description): Remove memory-tag related code.
1434         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
1435         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
1436         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
1437         and immediate uses in statements.  Document.
1438         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
1439         (dump_symbols): Remove.
1440         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
1441         * alias.c (get_deref_alias_set): New function split out from ...
1442         (get_alias_set): ... here.
1443         * alias.h (get_deref_alias_set): Declare.
1444         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
1445         type parameter.  Remove restrict pointer handling.  Create a
1446         ref-all pointer in case type-based alias sets do not conflict.
1447         (vect_analyze_data_refs): Remove SMT related code.
1448         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
1449         (vectorizable_load): Likewise.
1450         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
1451         (DR_SYMBOL_TAG, DR_VOPS): Remove.
1452         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
1453         Ignore vops and SMTs.
1454         (dr_analyze_alias): Likewise..
1455         (free_data_ref): Likewise.
1456         (create_data_ref): Likewise.
1457         (analyze_all_data_dependences): Likewise.
1458         (get_references_in_stmt): Adjust.
1459         * tree-flow-inline.h (gimple_aliases_computed_p,
1460         gimple_addressable_vars, gimple_call_clobbered_vars,
1461         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
1462         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
1463         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
1464         gimple_mem_ref_stats): Remove.
1465         (gimple_vop): New function.
1466         (op_iter_next_use): Remove vuses and mayuses cases.
1467         (op_iter_next_def): Remove vdefs case.
1468         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
1469         (clear_and_done_ssa_iter): Do not set removed fields.
1470         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
1471         Assert we are not iterating over vuses or vdefs if not also
1472         iterating over uses or defs.
1473         (op_iter_init_use): Likewise.
1474         (op_iter_init_def): Likewise.
1475         (op_iter_next_vdef): Remove.
1476         (op_iter_next_mustdef): Likewise.
1477         (op_iter_init_vdef): Likewise.
1478         (compare_ssa_operands_equal): Likewise.
1479         (link_use_stmts_after): Handle vuse operand.
1480         (is_call_used): Use is_call_clobbered.
1481         (is_call_clobbered): Global variables are always call clobbered,
1482         query the call-clobbers bitmap.
1483         (mark_call_clobbered): Ignore global variables.
1484         (clear_call_clobbered): Likewise.
1485         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
1486         virtual operands sanity check.
1487         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
1488         Remove.
1489         (TARGET_MEM_REF): Remove TMR_TAG operand.
1490         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
1491         Remove call-clobber related code.
1492         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
1493         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
1494         partitions or escape reason.
1495         (get_single_def_stmt, get_single_def_stmt_from_phi,
1496         get_single_def_stmt_with_phi): Remove.
1497         (dump_referenced_vars): Tidy.
1498         (get_ref_base_and_extent): Allow bare decls.
1499         (collect_dfa_stats): Adjust.
1500         * graphite.c (rename_variables_in_stmt): Adjust.
1501         (graphite_copy_stmts_from_block): Likewise.
1502         (translate_clast): Likewise.
1503         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
1504         (EXPR_DIES): New.
1505         (translate_vuse_through_block): Use the oracle.
1506         (phi_translate_1): Adjust.
1507         (value_dies_in_block_x): Use the oracle.  Cache the outcome
1508         in EXPR_DIES.
1509         (valid_in_sets): Check if the VUSE for
1510         a REFERENCE is available.
1511         (eliminate): Do not remove stmts during elimination,
1512         instead queue and remove them afterwards.
1513         (do_pre): Do not rebuild alias info.
1514         (pass_pre): Run TODO_rebuild_alias before PRE.
1515         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
1516         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
1517         (mark_all_v_defs_stmt): Remove.
1518         (mark_all_v_defs_seq): Adjust.
1519         (sra_replace): Likewise.
1520         (scalarize_use): Likewise.
1521         (scalarize_copy): Likewise.
1522         (scalarize_init): Likewise.
1523         (scalarize_ldst): Likewise.
1524         (todoflags): Remove.
1525         (tree_sra): Do not rebuild alias info.
1526         (tree_sra_early): Adjust.
1527         (pass_sra): Run TODO_update_address_taken before SRA.
1528         * tree-predcom.c (set_alias_info): Remove.
1529         (prepare_initializers_chain): Do not call it.
1530         (mark_virtual_ops_for_renaming): Adjust.
1531         (mark_virtual_ops_for_renaming_list): Remove.
1532         (initialize_root_vars): Adjust.
1533         (initialize_root_vars_lm): Likewise.
1534         (prepare_initializers_chain): Likewise.
1535         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
1536         (may_propagate_copy_into_stmt): Likewise.
1537         (merge_alias_info): Do nothing for now.
1538         (propagate_tree_value_into_stmt): Adjust.
1539         (stmt_may_generate_copy): Likewise.
1540         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
1541         not mark symbols for renaming.
1542         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
1543         with the same statement, make sure to update the new pointed-to one.
1544         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
1545         call statements, do not mark symbols for renaming.
1546         (mark_operand_necessary): Dump something.
1547         (ref_may_be_aliased): New function.
1548         (mark_aliased_reaching_defs_necessary_1): New helper function.
1549         (mark_aliased_reaching_defs_necessary): Likewise.
1550         (mark_all_reaching_defs_necessary_1): Likewise.
1551         (mark_all_reaching_defs_necessary): Likewise.
1552         (propagate_necessity): Do not process virtual PHIs.  For
1553         non-aliased loads mark all reaching definitions as necessary.
1554         For aliased loads and stores mark the immediate dominating
1555         aliased clobbers as necessary.
1556         (visited): New global static.
1557         (perform_tree_ssa_dce): Free visited bitmap after propagating
1558         necessity.
1559         (remove_dead_phis): Perform simple dead virtual PHI removal.
1560         (remove_dead_stmt): Properly unlink virtual operands when
1561         removing stores.
1562         (eliminate_unnecessary_stmts): Schedule PHI removal after
1563         stmt removal.
1564         * tree-ssa-ter.c (is_replaceable_p): Adjust.
1565         (process_replaceable): Likewise.
1566         (find_replaceable_in_bb): Likewise.
1567         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
1568         based on the single gimple vop.
1569         (verify_flow_insensitive_alias_info): Remove.
1570         (verify_flow_sensitive_alias_info): Likewise.
1571         (verify_call_clobbering): Likewise.
1572         (verify_memory_partitions): Likewise.
1573         (verify_alias_info): Likewise.
1574         (verify_ssa): Adjust..
1575         (execute_update_addresses_taken): Export.  Update SSA
1576         manually.  Optimize only when optimizing.  Use a local bitmap.
1577         (pass_update_address_taken): Remove TODO_update_ssa, add
1578         TODO_dump_func.
1579         (pass_update_address_taken): Just use TODO_update_address_taken.
1580         (init_tree_ssa): Do not initialize addressable_vars.
1581         (verify_ssa): Verify new VUSE / VDEF properties.
1582         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
1583         Do not call verify_alias_info.
1584         (delete_tree_ssa): Clear the VUSE, VDEF operands.
1585         Do not free the loaded and stored syms bitmaps.  Reset the escaped
1586         and callused solutions.  Do not free addressable_vars.
1587         Remove memory-tag related code.
1588         (warn_uninitialized_var): Aliases are always available.
1589         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
1590         * lambda-code.c (can_put_in_inner_loop): Adjust.
1591         (can_put_after_inner_loop): Likewise.
1592         (perfect_nestify): Likewise.
1593         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
1594         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
1595         (vectorizable_conversion): Do not mark symbols for renaming.
1596         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
1597         (expand_call_inline): Unlink the calls virtual operands before
1598         replacing it.
1599         (tree_function_versioning): Do not call update_ssa if we are not
1600         updating clones.  Simplify.
1601         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
1602         (propagate_with_phi): Likewise..
1603         * tree-outof-ssa.c (create_temp): Remove memory tag and call
1604         clobber code.  Assert we are not aliased or global.
1605         * tree-flow.h: Include tree-ssa-alias.h
1606         (enum escape_type): Remove.
1607         (struct mem_sym_stats_d): Likewise.
1608         (struct mem_ref_stats_d): Likewise.
1609         (struct gimple_df): Add vop member.  Remove global_var,
1610         call_clobbered_vars, call_used_vars, addressable_vars,
1611         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
1612         escaped and callused members.
1613         (struct ptr_info_def): Remove all members, add points-to solution
1614         member pt.
1615         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
1616         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
1617         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
1618         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
1619         (tree-ssa-alias.o): Likewise.
1620         (toplev.o): Add tree-ssa-alias.h
1621         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
1622         * gimple.c (gimple_set_bb): Fix off-by-one error.
1623         (is_gimple_reg): Do not handle memory tags.
1624         (gimple_copy): Also copy virtual operands.
1625         Delay updating the statement.  Do not reset loaded and stored syms.
1626         (gimple_set_stored_syms): Remove.
1627         (gimple_set_loaded_syms): Likewise.
1628         (gimple_call_copy_skip_args): Copy the virtual operands
1629         and mark the new statement modified.
1630         * tree-ssa-structalias.c (may_alias_p): Remove.
1631         (set_uids_in_ptset): Take the alias set to prune with as
1632         parameter.  Fold in the alias test of may_alias_p.
1633         (compute_points_to_sets): Compute whether a ptr is dereferenced
1634         in a local sbitmap.
1635         (process_constraint): Deal with &ANYTHING on the lhs, reject all
1636         other ADDRESSOF constraints on the lhs.
1637         (get_constraint_for_component_ref): Assert that we don't get
1638         ADDRESSOF constraints from the base of the reference.
1639         Properly generate UNKNOWN_OFFSET for DEREF if needed.
1640         (struct variable_info): Remove collapsed_to member.
1641         (get_varinfo_fc): Remove.
1642         (new_var_info): Do not set collapsed_to.
1643         (dump_constraint): Do not follow cycles.
1644         (dump_constraint_graph): Likewise.
1645         (build_pred_graph): Likewise.
1646         (build_succ_graph): Likewise.
1647         (rewrite_constraints): Likewise.
1648         (do_simple_structure_copy): Remove.
1649         (do_rhs_deref_structure_copy): Remove.
1650         (do_lhs_deref_structure_copy): Remove.
1651         (collapse_rest_of_var): Remove.
1652         (do_structure_copy): Re-implement.
1653         (pta_stats): New global variable.
1654         (dump_pta_stats): New function.
1655         (struct constraint_expr): Make offset signed.
1656         (UNKNOWN_OFFSET): Define special value.
1657         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
1658         (solution_set_expand): New helper function split out from ...
1659         (do_sd_constraint): ... here.
1660         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
1661         (do_ds_constraint): Likewise.
1662         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
1663         and CALLUSED = *CALLUSED.
1664         (set_union_with_increment): Make inc argument signed.
1665         (type_safe): Remove.
1666         (get_constraint_for_ptr_offset): Handle unknown and negative
1667         constant offsets.
1668         (first_vi_for_offset): Handle offsets before start.  Bail
1669         out early for offsets beyond the variable extent.
1670         (first_or_preceding_vi_for_offset): New function.
1671         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
1672         Together with ESCAPED = *ESCAPED this properly computes reachability.
1673         (find_what_var_points_to): New function.
1674         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
1675         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
1676         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
1677         pt_solutions_intersect): New functions.
1678         (compute_call_used_vars): Remove.
1679         (compute_may_aliases): New main entry into PTA computation.
1680         * gimple.h (gimple_p): New typedef.
1681         (struct gimple_statement_base): Remove references_memory_p.
1682         (struct gimple_statement_with_memory_ops_base): Remove
1683         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
1684         members.
1685         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
1686         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
1687         gimple_set_references_memory): Remove.
1688         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
1689         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
1690         New functions.
1691         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
1692         (verify_expr): Allow RESULT_DECL.
1693         (gimple_duplicate_bb): Do not copy virtual operands.
1694         (gimple_duplicate_sese_region): Adjust.
1695         (gimple_duplicate_sese_tail): Likewise.
1696         (mark_virtual_ops_in_region): Remove.
1697         (move_sese_region_to_fn): Do not call it.
1698         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
1699         and pass_simple_dse.
1700         (execute_function_todo): Handle TODO_update_address_taken,
1701         call execute_update_addresses_taken for TODO_rebuild_alias.
1702         (execute_todo): Adjust.
1703         (execute_one_pass): Init dump files early.
1704         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
1705         call-clobbered.
1706         (create_general_new_stmt): Clear vops.
1707         * tree-ssa-reassoc.c (get_rank): Adjust.
1708         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
1709         symbols for renaming.
1710         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
1711         (PARAM_AVG_ALIASED_VOPS): Likewise.
1712         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
1713         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
1714         * tree-ssa-operands.c: Simplify for new virtual operand representation.
1715         (operand_build_cmp, copy_virtual_operands,
1716         create_ssa_artificial_load_stmt, add_to_addressable_set,
1717         gimple_add_to_addresses_taken): Remove public functions.
1718         (unlink_stmt_vdef): New function.
1719
1720 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1721
1722         * config.gcc (powerpc-*-linux*): Merge variants.
1723
1724 2009-04-02  Chao-ying Fu  <fu@mips.com>
1725             James Grosbach <james.grosbach@microchip.com>
1726
1727         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
1728         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
1729         cop0_sp_offset.
1730         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
1731         keep_interrupts_masked_p, use_debug_exception_return_p.
1732         (mips_attribute_table): Add interrupt, use_shadow_register_set,
1733         keep_interrupts_masked, use_debug_exception_return.
1734         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
1735         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
1736         New functions.
1737         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
1738         (mips_print_operand): Process COP0 registers to print $0 .. $31
1739         correctly for GAS to process.
1740         (mips_interrupt_extra_call_saved_reg_p): New function.
1741         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
1742         extra registers.
1743         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
1744         (mips_compute_frame_info): Add supports for interrupt context that
1745         includes doubleword accumulators and COP0 registers.
1746         (mips_for_each_saved_acc): New function.
1747         (mips_for_each_saved_gpr_and_fpr): Change the function name from
1748         mips_for_each_saved_reg.
1749         (mips_save_reg): Save accumulators.
1750         (mips_kernel_reg_p): A new for_each_rtx callback.
1751         (mips_expand_prologue): Support interrupt handlers.
1752         (mips_restore_reg): Restore accumulators.
1753         (mips_expand_epilogue): Support interrupt handlers.
1754         (mips_can_use_return_insn): Return false for interrupt handlers.
1755         (mips_epilogue_uses): New function.
1756         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
1757         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
1758         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
1759         cop0_move): New instructions.
1760         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
1761         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
1762         defines.
1763         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
1764         New defines.
1765         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
1766         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
1767         interrupt handlers, we use K0 as the temporary register.
1768         (EPILOGUE_USES): Change to a function call.
1769         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
1770         handlers, we use K0 as the temporary register.
1771         
1772         * doc/extend.texi (Function Attributes): Document interrupt,
1773         use_shadow_register_set, keep_interrupts_masked,
1774         use_debug_exception_return for MIPS attributes.
1775
1776 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1777
1778         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
1779         Remove a number of t-files from tmake_file.
1780         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
1781         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
1782         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1783         target_prototype, not TARGET_PROTOTYPE.
1784         (LINK_OS_GNU_SPEC): Define.
1785         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
1786         and darwin-ldoubdle.c.
1787
1788 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1789
1790         PR driver/39293
1791         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
1792         (cpp_options): Ditto.
1793         (default_compilers): Ditto.
1794         (display_help): Ditto.
1795         (process_command): Ditto.
1796         (do_spec_1): Ditto.
1797         (set_input): Use lbasename instead of duplicate code.
1798         (save_temps_prefix): New static for -save-temps=obj.
1799         (save_temps_length): Ditto.
1800         
1801         * doc/invoke.texi (-save-temps=obj): Document new variant to
1802         -save-temps switch.
1803
1804 2009-04-02  Jeff Law  <law@redhat.com>
1805
1806         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
1807         variable.
1808
1809 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1810
1811         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
1812         * configure: Regenerated.
1813
1814 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1815
1816         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
1817         share the argument list.
1818
1819 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1820
1821         Merge
1822
1823         2009-02-12  Diego Novillo  <dnovillo@google.com>
1824
1825         * varpool.c (debug_varpool): New.
1826         * cgraph.h (debug_varpool): Declare.
1827
1828 2009-04-02  Jan Hubicka  <jh@suse.cz>
1829
1830         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
1831         pass.
1832
1833 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1834
1835         * config/i386/i386.c (ix86_abi): Move initialization to ...
1836         (override_options): Here.
1837
1838 2009-04-02  Christian Bruel  <christian.bruel@st.com>
1839
1840         * config/sh/sh.c (sh_dwarf_register_span): New function.
1841         (TARGET_DWARF_REGISTER_SPAN): Define.
1842         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
1843         
1844 2009-04-02  Ira Rosen  <irar@il.ibm.com>
1845
1846         PR tree-optimization/39595
1847         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
1848         interleaved loads group is not  greater than the SLP group size.
1849
1850 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1851
1852         * builtins.c (is_builtin_name): New.
1853         (called_as_built_in): Use is_builtin_name.
1854         * tree.h (is_builtin_name): New.
1855         * varasm.c (incorporeal_function_p): Use is_builtin_name
1856
1857 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
1858
1859         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
1860
1861 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
1862
1863         PR c++/26693
1864         * c-decl.c: (clone_underlying_type): Move this ...
1865         * c-common.c (set_underlying_type): ... here.
1866         Also, make sure the function properly sets TYPE_STUB_DECL() on
1867         the newly created typedef variant type.
1868         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
1869         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
1870         points.
1871
1872 2009-04-02  Richard Guenther  <rguenther@suse.de>
1873
1874         PR tree-optimization/37221
1875         * tree-flow.h (degenerate_phi_result): Declare.
1876         * tree-ssa-dom.c (degenerate_phi_result): Export.
1877         * tree-scalar-evolution.c (analyze_initial_condition): If
1878         the initial condition is defined by a degenerate PHI node
1879         use the degenerate value.
1880
1881 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
1882
1883         PR rtl-optimization/39588
1884         * combine.c (merge_outer_ops): Do not set the constant when this
1885         is not necessary.
1886         (simplify_shift_const_1): Do not modify it either in this case.
1887
1888 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
1889
1890         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
1891         tuning is deprecated if -mtune value is set to an Itanium1 variant.
1892
1893 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
1894
1895         PR c/29027
1896         * c-lex.c (interpret_float): Default (no suffix) is double.
1897
1898 2009-04-1  Xinliang David Li  <davidxl@google.com>
1899
1900         * config/i386/i386.c (legitimate_constant_p): Recognize
1901         all one vector constant.
1902
1903 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1904
1905         * gcc/config/vax/vax.c: Add #includes to silence warnings.
1906         Change #include order to silence two warnings.
1907
1908 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1909
1910         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
1911         (ASM_SPEC): Pass -k to the assembler for PIC code.
1912
1913 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1914
1915         * gcc/config.gcc: Add vax-*-linux* to the switch.
1916         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
1917         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
1918
1919 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1920
1921         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
1922         Use predicate macros instead of GET_CODE() == foo.
1923         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
1924         ashlsi3, rotrsi3, <unnamed>): Likewise.
1925
1926 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1927
1928         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
1929         jbbccihi, jbbccisi): Remova trailing whitespace.
1930         * gcc/config/vax/constraints.md: Likewise.
1931         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1932         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
1933         * gcc/config/vax/predicates.md: Likewise.
1934         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
1935         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
1936         * gcc/config/vax/vax.h: Likewise.
1937         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
1938
1939 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1940
1941         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
1942         (indirectable_address_p, adjacent_operands_p): Add spaces around
1943         braces.
1944         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
1945
1946 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1947
1948         * gcc/config/vax/vax.c (legitimate_constant_address_p,
1949         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
1950         index_term_p, reg_plus_index_p, legitimate_address_p,
1951         vax_mode_dependent_address_p): Update comments to match functions
1952         modified by the recent int->bool conversion.
1953
1954 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1955
1956         * gcc/config/vax/builtins.md: Update copyright message.
1957         * gcc/config/vax/constraints.md: Likewise.
1958         * gcc/config/vax/netbsd-elf.h: Likewise.
1959         * gcc/config/vax/predicates.md: Likewise.
1960         * gcc/config/vax/vax-protos.h: Likewise.
1961         * gcc/config/vax/vax.c: Likewise.
1962         * gcc/config/vax/vax.h: Likewise.
1963         * gcc/config/vax/vax.md: Likewise.
1964         * gcc/config/vax/vax.opt: Likewise.
1965
1966 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1967
1968         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
1969         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
1970         * gcc/config/vax/constraints.md (B, R): Likewise.
1971         * gcc/config/vax/predicates.md (external_memory_operand,
1972         nonimmediate_addsub_di_operand): Likewise.
1973         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
1974         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
1975         untyped_call): Likewise.
1976
1977 2009-04-01  Matt Thomas <matt@3am-software.com>
1978
1979         * config/vax/predicates.md: New file.
1980         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
1981         external_const_operand, nonsymbolic_operand, external_memory_operand,
1982         indirect_memory_operand, indexed_memory_operand,
1983         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
1984         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
1985         predicate.
1986         * config/vax/constraints.md: New file.
1987         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
1988         New constraint.
1989         * config/vax/builtins.md: New file.
1990         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
1991         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
1992         jbbccisi): Define.
1993         * config/vax/vax.opt (mqmath): Add option.
1994         * config/vax/vax.md (isfx): Extend with DI.
1995         (VAXintQH, VAXintQHSD): Define.
1996         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
1997         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
1998         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
1999         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
2000         (movdi): Update constraints and use vax_output_int_move().
2001         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
2002         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
2003         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
2004         nonlocal_goto): New.
2005         (mov<mode>): Extend accepted operand types.
2006         (subdi3_old): Rename from subdi3, change update constraints and use
2007         a new implementation.
2008         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
2009         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
2010         MOVE_RATIO, CLEAR_RATIO): Define.
2011         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
2012         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
2013         (PRINT_OPERAND): Redefine using a function instead of inlined code.
2014         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
2015         (split_quadword_operands): Make static and really allow variable
2016         splitting.
2017         (print_operand_address): Update for PIC generation.
2018         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
2019         indexable_address_p, fixup_mathdi_operand,
2020         vax_expand_addsub_di_operands, adjacent_operands_p): New.
2021         (vax_float_literal, legitimate_constant_p,
2022         indirectable_constant_address_p, index_term_p,
2023         reg_plus_index_p): Return bool instead of int.
2024         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
2025         where needed.
2026         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
2027         generation.
2028         (vax_output_conditional_branch): Indent.
2029         (legitimate_constant_address_p, indirectable_constant_address_p,
2030         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
2031         vax_mode_dependent_address_p): Return bool instead of int, update for
2032         PIC generation.
2033         * config/vax/vax-protos.h (legitimate_constant_address_p,
2034         legitimate_constant_p, legitimate_address_p,
2035         vax_mode_dependent_address_p): Change declaration to bool.
2036         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
2037         vax_expand_addsub_di_operands, vax_output_int_subtract,
2038         vax_output_movmemsi): Declare.
2039         (split_quadword_operands, vax_float_literal): Delete declaration.
2040         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
2041         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
2042         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
2043         ASM_OUTPUT_DWARF_PCREL): Define.
2044         (ASM_SPEC): Change definition to allow PIC generation.
2045
2046 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
2047
2048         * doc/sourcebuild.texi: Update front-end requirements.
2049
2050 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2051
2052         PR target/39226
2053         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
2054         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
2055         (booldi3_internal3): Use boolean_or_operator instead of
2056         boolean_operator.
2057
2058 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
2059
2060         PR c/39605
2061         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
2062         declarator whose size is not an integer constant expression but
2063         folds to an integer constant, then treat it as a constant
2064         subsequently.
2065
2066 2009-04-01  Richard Guenther  <rguenther@suse.de>
2067
2068         * fold-const.c (fold_plusminus_mult_expr): Do not fold
2069         i * 4 + 2 to (i * 2 + 1) * 2.
2070
2071 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2072
2073         PR c/37772
2074         * c-parser.c (c_parser_asm_statement): Skip until close paren and
2075         return if c_parser_asm_string_literal returned NULL.
2076
2077 2009-04-01  Nick Clifton  <nickc@redhat.com>
2078
2079         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
2080         already defined.
2081         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
2082         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
2083         other typedefs to avoid conflicts with libgcc2.c.  Define labels
2084         to gain 16-bit bit-manipulation functions from libgcc2.c and then
2085         include it.
2086         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
2087         to gain 16-bit trapping arithmetic functions from libgcc2.c and
2088         then include it.
2089
2090 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
2091
2092         * varasm.c (default_function_rodata_section): Declare DOT as
2093         const char*.
2094
2095 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
2096             Andrey Galkin <agalkin@hypercom.com>
2097
2098         PR/39492
2099         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
2100         Make object_name unique for each process.
2101
2102 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2103
2104         PR other/39591
2105         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
2106         addressable variables in the parallel that could go out of scope while
2107         running queued tasks.
2108
2109 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
2110
2111         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
2112         (CASE_VALUES_THRESHOLD): Redefine.
2113         * config/avr/avr.c (avr_override_options): Remove initialization of
2114         avr_case_values_threshold variable.
2115         (avr_case_values_threshold): Remove variable. Add new function.
2116         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
2117         * config/avr/avr.opt (mno-tablejump): Remove option.
2118         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
2119
2120 2009-04-01  DJ Delorie  <dj@redhat.com>
2121
2122         * varasm.c (default_function_rodata_section): Don't assume
2123         anything about where the first '.' in the section name is.
2124
2125 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
2126
2127         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
2128         rs6000_emit_stack_tie.
2129
2130 2009-03-31  Ian Lance Taylor  <iant@google.com>
2131
2132         * tree-eh.c (tree_remove_unreachable_handlers): Compare
2133         gimple_code with GIMPLE_RESX, not RESX.
2134
2135 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2136
2137         * c-common.c (c_get_ident): New.
2138         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
2139
2140 2009-04-01  Ben Elliston  <bje@au.ibm.com>
2141
2142         * config/rs6000/sysv4.opt (msdata): Improve option description.
2143
2144 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
2145
2146         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
2147         (divdf3_internal_lat): Remove.
2148         (divxf3_internal_lat): Remove.
2149         (divxf3_internal_thr): Remove.
2150         (divxf): Use divxf3_internal.
2151         * config/ia64/div.md (divsf3_internal_lat): New.
2152         (divdf3_internal_lat): New.
2153         (divxf3_internal): New.
2154
2155 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2156
2157         PR c/448
2158         * Makefile.in (USE_GCC_STDINT): Define.
2159         (stmp-int-hdrs): Install stdint.h if applicable.
2160         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
2161         if known.
2162         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
2163         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
2164         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2165         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2166         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2167         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2168         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2169         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2170         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2171         (c_common_nodes_and_builtins): Initialize
2172         underlying_wchar_type_node.  Do not initialize
2173         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
2174         nodes for new types.
2175         (c_stddef_cpp_builtins): Define macros for new types.
2176         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
2177         Remove.
2178         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
2179         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
2180         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
2181         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
2182         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
2183         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
2184         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
2185         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
2186         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
2187         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
2188         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
2189         int16_type_node, int32_type_node, int64_type_node,
2190         uint8_type_node, uint16_type_node, c_uint32_type_node,
2191         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
2192         int_least32_type_node, int_least64_type_node,
2193         uint_least8_type_node, uint_least16_type_node,
2194         uint_least32_type_node, uint_least64_type_node,
2195         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
2196         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
2197         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
2198         uintptr_type_node): Define.
2199         * c-cppbuiltin.c (builtin_define_constants,
2200         builtin_define_type_minmax): New.
2201         (builtin_define_stdint_macros): Define more macros.
2202         (c_cpp_builtins): Define more limit macros.
2203         (type_suffix): New.
2204         (builtin_define_type_max): Define in terms of
2205         builtin_define_type_minmax.  Remove is_long parameter.  All
2206         callers changed.
2207         * config.gcc (use_gcc_stdint): Define.
2208         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
2209         Add newlib-stdint.h for generic targets.
2210         * config/glibc-stdint.h, config/newlib-stdint.h,
2211         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
2212         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
2213         * config/score/score.h (UINTPTR_TYPE): Define.
2214         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2215         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2216         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2217         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2218         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2219         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2220         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2221         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2222         * config/spu/spu.h (STDINT_LONG32): Define.
2223         * configure.ac (use_gcc_stdint): Substitute.
2224         * configure: Regenerate.
2225         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
2226         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
2227         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
2228         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
2229         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
2230         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
2231         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
2232         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
2233         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
2234         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
2235         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
2236         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
2237         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
2238         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
2239         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
2240         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
2241         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
2242         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
2243         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
2244         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
2245         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
2246         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
2247         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2248         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2249         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2250         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2251         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2252         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2253         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
2254
2255 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2256
2257         * loop-iv.c (suitable_set_for_replacement): Renamed from
2258         simplify_using_assignment; changed to return bool and to accept new
2259         args DEST and SRC.  Return true iff we find a source/destination pair
2260         that can be used to make a replacement, and fill SRC and DEST if so.
2261         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
2262         changed.
2263         (simplify_using_initial_values): Deal with altered regs here and track
2264         more precisely the effect they have on the validity of our expression.
2265
2266         * loop-iv.c (simplify_using_condition): A condition of the form
2267         (EQ REG CONST) can be used to simply make a substitution.
2268         (simplify_using_initial_values): Keep track of conditions we have seen
2269         and keep using them to simplify new expressions, while applying the
2270         same substitutions to them as to the expression.
2271
2272         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2273         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
2274         GEU/LTU reversed.
2275
2276         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
2277         changed.  Use this when trying to improve the upper bound.
2278         Generate the comparison by using simplify_gen_relational.
2279
2280         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
2281
2282         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
2283         functions.
2284         (simplify_using_assignment, simplify_using_initial_values): Call 
2285         replace_in_expr to make replacements.  Call replace_single_def_regs
2286         once on the initial version of the expression.
2287
2288 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2289
2290         PR target/27237
2291         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2292         
2293 2009-03-31  Richard Guenther  <rguenther@suse.de>
2294
2295         PR middle-end/31029
2296         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
2297         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
2298
2299 2009-03-31  Richard Guenther  <rguenther@suse.de>
2300
2301         * tree.h (div_if_zero_remainder): Declare.
2302         * fold-const.c (div_if_zero_remainder): Export.
2303         * tree-ssa-forwprop.c
2304         (forward_propagate_addr_into_variable_array_index): Handle
2305         constant array index addition outside of the variable index.
2306
2307 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2308
2309         PR target/39592
2310         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
2311         define_splits, floatunssi<mode>2): Require x87 conversions from
2312         DImode to be permitted.
2313
2314 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2315
2316         PR preprocessor/15638
2317         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
2318
2319 2009-03-31  Richard Guenther  <rguenther@suse.de>
2320
2321         PR middle-end/23401
2322         PR middle-end/27810
2323         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
2324         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
2325         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
2326         a separate statement.
2327         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
2328         (lookup_tmp_var): Likewise.
2329         (is_gimple_formal_tmp_or_call_rhs): Remove.
2330         (is_gimple_reg_or_call_rhs): Rename to ...
2331         (is_gimple_reg_rhs_or_call): ... this.
2332         (is_gimple_mem_or_call_rhs): Rename to ...
2333         (is_gimple_mem_rhs_or_call): ... this.
2334         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
2335         DECL_GIMPLE_REG_P only if is_formal is true.
2336         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
2337         for non-proper post-modify expression gimplification.
2338         (gimplify_self_mod_expr): For post-modify expressions gimplify
2339         the lvalue to a minimal lvalue.
2340         (rhs_predicate_for): Remove formal temp case.
2341         (gimplify_modify_expr_rhs): Likewise.
2342         (gimplify_addr_expr): Use is_gimple_reg.
2343         (gimplify_expr): Remove formal temp cases.
2344         (gimple_regimplify_operands): Likewise.
2345         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
2346         and FILTER_EXPR like constants.
2347         * gimple.c (walk_gimple_op): Fix val_only initialization, use
2348         is_gimple_reg.
2349         (is_gimple_formal_tmp_rhs): Remove.
2350         (is_gimple_reg_rhs): Remove special casing.
2351         (is_gimple_mem_rhs): Fix.
2352         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
2353         (is_gimple_formal_tmp_var): Remove.
2354         (is_gimple_formal_tmp_reg): Likewise.
2355         (is_gimple_min_lval): Allow invariant component ref parts.
2356         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
2357         is_gimple_formal_tmp_reg): Remove declarations.
2358         * tree-cfg.c (verify_expr): Verify that variables with address
2359         taken do not have DECL_GIMPLE_REG_P set.
2360         * tree-mudflap.c (mf_build_check_statement_for): Use
2361         force_gimple_operand instead of gimplify_expr.
2362
2363 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
2364
2365         * modulo-sched.c (sms_schedule_by_order): Pass the actual
2366         schedulable rows to compute_split_row.
2367
2368 2009-03-31  Ben Elliston  <bje@au.ibm.com>
2369
2370         PR target/31635
2371         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
2372         OPT_mvrsave.
2373
2374 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2375
2376         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
2377         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
2378         * configure: Regenerate.
2379         * config.in: Regenerate.
2380         * config/rs6000/rs6000.opt (mtls-markers): Add.
2381         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
2382         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
2383         (tls_ld_aix, tls_ld_sysv): Likewise.
2384         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
2385         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
2386
2387 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2388
2389         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
2390
2391 2009-03-30  Jan Hubicka  <jh@suse.cz>
2392
2393         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
2394         out of RESX.
2395         (tree_remove_unreachable_handlers): Cleanup EH predecestor
2396         detection and label handling.
2397
2398 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2399
2400         * ira-int.h (ira_allocno): Rename left_conflicts_num to
2401         left_conflicts_size.
2402         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
2403         ALLOCNO_LEFT_CONFLICTS_SIZE.
2404
2405         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
2406         remove_allocno_from_bucket_and_push,
2407         allocno_spill_priority_compare, push_allocnos_to_stack,
2408         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2409         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
2410         (setup_allocno_left_conflicts_num): Ditto.  Rename to
2411         setup_allocno_left_conflicts_size.
2412         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2413         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
2414         setup_allocno_left_conflicts_size instead of
2415         setup_allocno_left_conflicts_num.
2416
2417         * ira-build.c (ira_create_allocno): Use
2418         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
2419         ALLOCNO_LEFT_CONFLICTS_NUM.
2420                 
2421 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2422
2423         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2424         instead of DF_LR_OUT.
2425
2426         * ira-lives.c (process_bb_node_lives): Ditto.
2427
2428         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2429         instead of DF_LR_{OUT,IN}.
2430
2431         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2432
2433         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2434
2435 2009-03-30  Jan Hubicka  <jh@suse.cz>
2436
2437         * except.c (label_to_region_map): Fix thinko.
2438
2439 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
2440
2441         PR middle-end/38237
2442         * tree.h (tree_find_value): New declaration.
2443         * tree.c (tree_find_value): New function.
2444         * varasm.c (assemble_external): Avoid duplicate entries on lists.
2445
2446 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
2447
2448         PR debug/39563
2449         * c-decl.c (struct c_binding): Add locus field.
2450         (bind): Add locus argument, set locus field from it.
2451         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
2452         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
2453         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
2454         implicitly_declare, undeclared_variable, lookup_label,
2455         declare_label, c_make_fname_decl, c_builtin_function,
2456         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
2457         bind callers.
2458
2459 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2460
2461         PR target/38781
2462         * config/i386/i386.c (classify_argument): Check total size of
2463         structure.
2464
2465 2009-03-30  Martin Jambor  <mjambor@suse.cz>
2466
2467         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
2468         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
2469         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
2470         respectively.
2471
2472         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
2473         seen_variable_array_ref while also traversing a union.
2474
2475         * tree-inline.c (optimize_inline_calls): Do not call
2476         cgraph_node_remove_callees.
2477         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
2478         (pass_remove_cgraph_callee_edges): New variable.
2479         * passes.c (init_optimization_passes): Add
2480         pass_remove_cgraph_callee_edges after early inlining and before all
2481         late intraprocedural passes.
2482
2483         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
2484
2485 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2486
2487         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
2488         Fix typos in names.
2489
2490 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2491
2492         * combine.c (simplify_comparison): Use have_insn_for.
2493         * dojump.c (do_jump): Likewise.
2494
2495 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2496
2497         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
2498         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
2499         sparc_compare_op0 like sparc_compare_emitted used to be handled.
2500         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
2501         instead of sparc_compare_emitted.
2502         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
2503         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
2504         instead of sparc_compare_emitted.
2505
2506 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2507
2508         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
2509         enter/exit cfglayout mode.
2510         (pass_partition_block): Require it.
2511         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
2512         (combine_instructions): Track basic blocks instead of labels.
2513         (update_cfg_for_uncondjump): New.
2514         (try_combine): Use it.  Update jumps after rescanning.
2515         (pass_combine): Require PROP_cfglayout.
2516         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
2517
2518 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2519
2520         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
2521         Provide/destroy PROP_cfglayout respectively.
2522         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
2523         * tree-pass.h (PROP_cfglayout): New.
2524
2525 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2526
2527         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
2528         fold_convert_const_fixed_from_fixed,
2529         fold_convert_const_fixed_from_int,
2530         fold_convert_const_fixed_from_real, fold_negate_const): Do not
2531         set TREE_CONSTANT_OVERFLOW.
2532         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
2533         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
2534
2535 2009-03-30  Ira Rosen  <irar@il.ibm.com>
2536
2537         * tree-vect-loop-manip.c: New file.
2538         * tree-vectorizer.c: Update documentation and included files.
2539         (vect_loop_location): Make extern.
2540         (rename_use_op): Move to tree-vect-loop-manip.c
2541         (rename_variables_in_bb, rename_variables_in_loop, 
2542         slpeel_update_phis_for_duplicate_loop, 
2543         slpeel_update_phi_nodes_for_guard1,
2544         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
2545         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
2546         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2547         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
2548         find_loop_location): Likewise.
2549         (new_stmt_vec_info): Move to tree-vect-stmts.c.
2550         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
2551         get_vectype_for_scalar_type, vect_is_simple_use,
2552         supportable_widening_operation, supportable_narrowing_operation):
2553         Likewise.
2554         (bb_in_loop_p): Move to tree-vect-loop.c.
2555         (new_loop_vec_info, destroy_loop_vec_info, 
2556         reduction_code_for_scalar_code, report_vect_op, 
2557         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
2558         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
2559         (vect_supportable_dr_alignment): Likewise.
2560         * tree-vectorizer.h (tree-data-ref.h): Include.
2561         (vect_loop_location): Declare.
2562         Reorganize function declarations according to the new file structure.
2563         * tree-vect-loop.c: New file.
2564         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
2565         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
2566         * tree-vect-data-refs.c: New file.
2567         * tree-vect-patterns.c (timevar.h): Don't include.
2568         * tree-vect-stmts.c: New file.
2569         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
2570         tree-vect-slp.c, tree-vect-loop.c.
2571         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
2572         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
2573         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
2574         (tree-vect-analyze.o): Remove.
2575         (tree-vect-transform.o): Likewise.
2576         (tree-vect-data-refs.o): Add rule.
2577         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
2578         tree-vect-slp.o): Likewise.
2579         (tree-vect-patterns.o): Remove redundant dependencies.
2580         (tree-vectorizer.o): Likewise.
2581         * tree-vect-slp.c: New file.
2582
2583 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2584
2585         * optc-gen.awk: Warn if an option flag has multiple different
2586         help strings.
2587
2588 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
2589
2590         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
2591         -floop-block): Document dependences on PPL, CLooG and Graphite.
2592
2593 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2594
2595         PR rtl-optimization/323
2596         * c-common.c (c_fully_fold, convert_and_check,
2597         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
2598         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
2599         * c-common.def (EXCESS_PRECISION_EXPR): New.
2600         * c-cppbuiltin.c (builtin_define_float_constants): Define
2601         constants with enough digits for long double.
2602         * c-lex.c (interpret_float): Interpret constant with excess
2603         precision where appropriate.
2604         * c-opts.c (c_common_post_options): Set
2605         flag_excess_precision_cmdline.  Give an error for
2606         -fexcess-precision=standard for C++ for processors where the
2607         option is significant.
2608         * c-parser.c (c_parser_conditional_expression): Handle excess
2609         precision in condition.
2610         * c-typeck.c (convert_arguments): Handle arguments with excess
2611         precision.
2612         (build_unary_op): Move excess precision outside operation.
2613         (build_conditional_expr): Likewise.
2614         (build_compound_expr): Likewise.
2615         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
2616         (build_modify_expr): Handle excess precision in RHS.
2617         (convert_for_assignment): Handle excess precision in converted
2618         value.
2619         (digest_init, output_init_element, process_init_element): Handle
2620         excess precision in initializer.
2621         (c_finish_return): Handle excess precision in return value.
2622         (build_binary_op): Handle excess precision in operands and add
2623         excess precision as needed for operation.
2624         * common.opt (-fexcess-precision=): New option.
2625         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
2626         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
2627         For standard excess precision, output explicit conversion to and
2628         truncation from XFmode.
2629         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
2630         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
2631         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
2632         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
2633         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
2634         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
2635         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
2636         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
2637         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
2638         define_splits, sqrt<mode>2): Disable where appropriate for
2639         standard excess precision.
2640         * convert.c (convert_to_real): Do not shorten arithmetic to type
2641         for which excess precision would be used.
2642         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
2643         * doc/invoke.texi (-fexcess-precision=): Document option.
2644         (-mfpmath=): Correct index entry.
2645         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
2646         flag_excess_precision): New.
2647         * langhooks.c (lhd_post_options): Set
2648         flag_excess_precision_cmdline.
2649         * opts.c (common_handle_option): Handle -fexcess-precision=.
2650         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
2651         init_excess_precision): New.
2652         (lang_dependent_init_target): Call init_excess_precision.
2653         * tree.c (excess_precision_type): New.
2654         * tree.h (excess_precision_type): Declare.
2655
2656 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
2657
2658         PR c/35235
2659         * c-typeck.c (build_component_ref): Do not copy qualifiers from
2660         non-lvalue to component.
2661
2662 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2663
2664         PR preprocessor/34695
2665         * Makefile.in (c-opts.o): Depend on c-tree.h.
2666         * c-common.c: Move down include of diagnostic.h.
2667         (done_lexing, c_cpp_error): New.
2668         * c-common.h (done_lexing): Declare.
2669         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
2670         (parse_in).
2671         * c-opts.c: Include c-tree.h.
2672         (c_common_init_options): Set preprocessor error callback.
2673         (c_common_handle_option): Do not set preprocessor
2674         inhibit_warnings, warnings_are_errors, warn_system_headers,
2675         pedantic_errors or inhibit_warnings flags.
2676         (c_common_post_options): Do not check cpp_errors (parse_in).
2677         (c_common_finish): Do not output dependencies if there were
2678         errors.  Do not check return value of cpp_finish.
2679         * c-ppoutput.c (pp_file_change): Set input_location.
2680         * c-tree.h (c_cpp_error): Declare.
2681         * diagnostic.c (diagnostic_set_info_translated): Also initialize
2682         override_column.
2683         (diagnostic_build_prefix): Check override_column.
2684         * diagnostic.h (diagnostic_info): Add override_column field.
2685         (diagnostic_override_column): Define.
2686
2687 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
2688
2689         * c-common.c (c_expand_expr, c_staticp): Remove.
2690         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
2691         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
2692         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
2693         * c-gimplify.c (gimplify_compound_literal_expr,
2694         optimize_compound_literals_in_ctor): Remove.
2695         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
2696         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
2697         * c-semantics.c (emit_local_var): Remove.
2698
2699         * langhooks-def.h (lhd_expand_expr): Remove.
2700         * langhooks.c (lhd_expand_expr): Remove.
2701         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
2702
2703         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
2704         handling from c-semantics.c; don't call into langhook.
2705         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
2706         * gimplify.c (gimplify_compound_literal_expr,
2707         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
2708         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
2709         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
2710         as was done in c-gimplify.c.
2711         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
2712         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
2713         Move from c-common.h.
2714         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2715
2716         * tree.c (staticp): Do not call langhook.
2717         * langhooks.c (lhd_staticp): Delete.
2718         * langhooks-def.h (lhd_staticp): Delete prototype.
2719         (LANG_HOOKS_STATICP): Delete.
2720         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
2721
2722         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
2723         instead of DECL_STMTs.
2724
2725 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2726
2727         PR c/456
2728         PR c/5675
2729         PR c/19976
2730         PR c/29116
2731         PR c/31871
2732         PR c/35198
2733         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
2734         void_type_node.
2735         (fold_call_expr): Return a NOP_EXPR from folding rather than the
2736         contained expression.
2737         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
2738         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
2739         conditional expressions for C.
2740         (decl_constant_value_for_optimization): Move from
2741         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
2742         whether optimizing and that the expression is a VAR_DECL not of
2743         array type instead of doing such checks in the caller.  Do not
2744         check pedantic.  Call gcc_unreachable for C++.
2745         * c-common.def (C_MAYBE_CONST_EXPR): New.
2746         * c-common.h (c_fully_fold, c_save_expr,
2747         decl_constant_value_for_optimization): New prototypes.
2748         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2749         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2750         EXPR_INT_CONST_OPERANDS): Define.
2751         * c-convert.c (convert): Strip nops from expression.
2752         * c-decl.c (groktypename): Take extra parameters expr and
2753         expr_const_operands.  Update call to grokdeclarator.
2754         (start_decl): Update call to grokdeclarator.  Add statement for
2755         expressions used in type of decl.
2756         (grokparm): Update call to grokdeclarator.
2757         (push_parm_decl): Update call to grokdeclarator.
2758         (build_compound_literal): Add parameter non_const and build a
2759         C_MAYBE_COSNT_EXPR if applicable.
2760         (grokdeclarator): Take extra parameters expr and
2761         expr_const_operands.  Track expressions used in declaration
2762         specifiers and declarators.  Fold array sizes and track whether
2763         they are constant expressions and whether they are integer
2764         constant expressions.
2765         (parser_xref_tag): Set expr and expr_const_operands fields in
2766         return value.
2767         (grokfield): Update call to grokdeclarator.
2768         (start_function): Update call to grokdeclarator.
2769         (build_null_declspecs): Set expr and expr_const_operands fields in
2770         return value.
2771         (declspecs_add_type): Handle expressions in typeof specifiers.
2772         * c-parser.c (c_parser_declspecs): Set expr and
2773         expr_const_operands fields for declaration specifiers.
2774         (c_parser_enum_specifier): Likewise.
2775         (c_parser_struct_or_union_specifier): Likewise.
2776         (c_parser_typeof_specifier): Likewise.  Update call to
2777         groktypename.  Fold expression as needed.  Return expressions with
2778         type instead of adding statements.
2779         (c_parser_attributes): Update calls to c_parser_expr_list.
2780         (c_parser_statement_after_labels): Fold expression before passing
2781         to objc_build_throw_stmt.
2782         (c_parser_condition): Fold expression.
2783         (c_parser_asm_operands): Fold expression.
2784         (c_parser_conditional_expression): Use c_save_expr.  Update call
2785         to build_conditional_expr.
2786         (c_parser_alignof_expression): Update call to groktypename.
2787         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
2788         original_code.  Fold expression argument of va_arg.  Create
2789         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
2790         argument to va_arg.  Update calls to groktypename.  Fold array
2791         index for offsetof.  Verify that first argument to
2792         __builtin_choose_expr has integer type.
2793         (c_parser_postfix_expression_after_paren_type): Update calls to
2794         groktypename and build_compound_literal.  Handle expressions with
2795         side effects in type name.
2796         (c_parser_postfix_expression_after_primary): Update call to
2797         c_parser_expr_list.  Set original_code for calls to
2798         __builtin_constant_p.
2799         (c_parser_expr_list): Take extra parameter fold_p.  Fold
2800         expressions if requested.
2801         (c_parser_objc_type_name): Update call to groktypename.
2802         (c_parser_objc_synchronized_statement): Fold expression.
2803         (c_parser_objc_receiver): Fold expression.
2804         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
2805         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
2806         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
2807         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
2808         (struct c_typespec): Add elements expr and expr_const_operands.
2809         (struct c_declspecs): Add elements expr and expr_const_operands.
2810         (groktypename, build_conditional_expr, build_compound_literal):
2811         Update prototypes.
2812         (in_late_binary_op): Declare.
2813         * c-typeck.c (note_integer_operands): New function.
2814         (in_late_binary_op): New variable.
2815         (decl_constant_value_for_broken_optimization): Move to c-common.c
2816         and rename to decl_constant_value_for_optimization.
2817         (default_function_array_conversion): Do not strip nops.
2818         (default_conversion): Do not call
2819         decl_constant_value_for_broken_optimization.
2820         (build_array_ref): Do not fold result.
2821         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
2822         result when operand is a VLA.
2823         (c_expr_sizeof_type): Update call to groktypename.  Handle
2824         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
2825         result when operand names a VLA type.
2826         (build_function_call): Update call to build_compound_literal.
2827         Only fold result for calls to __builtin_* functions.  Strip
2828         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
2829         the function designator.
2830         (convert_arguments): Fold arguments.  Update call to
2831         convert_for_assignment.
2832         (build_unary_op): Handle increment and decrement of
2833         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
2834         decrement earlier.  Fold operand of increment and decrement.
2835         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
2836         built for integer operand.  Wrap returns that are INTEGER_CSTs
2837         without being integer constant expressions or that have integer
2838         constant operands without being INTEGER_CSTs.
2839         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
2840         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
2841         result is an integer constant expression or can be used in
2842         unevaluated parts of one and avoid folding and wrap as
2843         appropriate.  Fold operands before possibly doing -Wsign-compare
2844         warnings.
2845         (build_compound_expr): Wrap result for C99 if operands can be used
2846         in integer constant expressions.
2847         (build_c_cast): Update call to digest_init.  Do not ignore
2848         overflow from casting floating-point constants to integers.  Wrap
2849         results that could be confused with integer constant expressions,
2850         null pointer constants or floating-point constants.
2851         (c_cast_expr): Update call to groktypename.  Handle expressions
2852         included in type name.
2853         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
2854         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
2855         Update calls to convert_for_assignment.
2856         (convert_for_assignment): Take new parameter
2857         null_pointer_constant.  Do not strip nops or call
2858         decl_constant_value_for_broken_optimization.  Set
2859         in_late_binary_op for conversions to boolean.
2860         (store_init_value): Update call to digest_init.
2861         (digest_init): Take new parameter null_pointer_constant.  Do not
2862         call decl_constant_value_for_broken_optimization.  pedwarn for
2863         initializers not constant expressions.  Update calls to
2864         convert_for_assignment.
2865         (constructor_nonconst): New.
2866         (struct constructor_stack): Add nonconst element.
2867         (really_start_incremental_init, push_init_level, pop_init_level):
2868         Handle constructor_nonconst and nonconst element.
2869         (set_init_index): Call constant_expression_warning for array
2870         designators.
2871         (output_init_element): Fold value.  Set constructor_nonconst as
2872         applicable.  pedwarn for initializers not constant expressions.
2873         Update call to digest_init.  Call constant_expression_warning
2874         where constant initializers are required.
2875         (process_init_element): Use c_save_expr.
2876         (c_finish_goto_ptr): Fold expression.
2877         (c_finish_return): Fold return value.  Update call to
2878         convert_for_assignment.
2879         (c_start_case): Fold switch expression.
2880         (c_process_expr_stmt): Fold expression.
2881         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
2882         ensure statement expression is not evaluated in constant expression.
2883         (build_binary_op): Track whether results are integer constant
2884         expressions or may occur in such, disable folding and wrap results
2885         as applicable.  Fold operands for -Wsign-compare warnings unless
2886         in_late_binary_op.
2887         (c_objc_common_truthvalue_conversion): Handle results folded to
2888         integer constants that are not integer constant expressions.
2889         * doc/extend.texi: Document when typeof operands are evaluated,
2890         that condition of __builtin_choose_expr is an integer constant
2891         expression, and more about use of __builtin_constant_p in
2892         initializers.
2893
2894 2009-03-29  Richard Guenther  <rguenther@suse.de>
2895
2896         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2897         propagate addresses of array references.
2898
2899 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
2900
2901         * regmove.c (perhaps_ends_bb_p): Remove.
2902         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
2903         from INSN and check that the main loop stays within that basic block.
2904         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
2905         (regmove_forward_pass): Split out from regmove_optimize.  Use
2906         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
2907         (regmove_backward_pass): Split out from regmove_optimize.  Use
2908         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
2909         (regmove_optimize): Simplify.
2910
2911 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2912
2913         PR target/39545
2914         * config/i386/i386.c (classify_argument): Ignore flexible array
2915         member in struct and warn ABI change.
2916
2917 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2918
2919         * config/i386/i386-protos.h (ix86_agi_dependent): New.
2920
2921         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
2922         (ix86_adjust_cost): Updated.
2923
2924 2009-03-29  Jan Hubicka  <jh@suse.cz>
2925
2926         PR middle-end/28850
2927         * tree-pass.h (pass_cleanup_eh): New function.
2928         (remove_unreachable_regions): Break code handling RTL
2929         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
2930         that can not be reached by runtime.
2931         (can_be_reached_by_runtime): New function.
2932         (label_to_region_map): New function.
2933         (num_eh_regions): New function.
2934         (rtl_remove_unreachable_regions): New function.
2935         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
2936         (remove_eh_region): New function.
2937         * except.h: Include sbitmap and vecprim.
2938         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
2939         num_eh_regions): Declare.
2940         * passes.c (init_optimization_passes): Schedule cleanup_eh.
2941         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
2942         * tree-eh.c (tree_remove_unreachable_handlers): New function.
2943         (tree_empty_eh_handler_p): New function.
2944         (cleanup_empty_eh): New function.
2945         (cleanup_eh): New function.
2946         (pass_cleanup_eh): New function.
2947
2948 2009-03-29  Jan Hubicka  <jh@suse.cz>
2949
2950         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
2951         for removed regions.
2952
2953 2009-03-29  Jan Hubicka  <jh@suse.cz>
2954
2955         * except.c (dump_eh_tree): Dump all datastructures.
2956
2957 2009-03-29  Jan Hubicka  <jh@suse.cz>
2958
2959         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
2960         (duplicate_eh_regions_1): Likewise.
2961         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
2962         vector; call EH verification.
2963         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2964         Be ready for region being removed.
2965
2966 2009-03-29  Jan Hubicka  <jh@suse.cz>
2967
2968         * bitmap.c (bitmap_last_set_bit): New function.
2969         * bitmap.h (bitmap_last_set_bit): Declare.
2970
2971 2009-03-29  David Ayers  <ayers@fsfe.org>
2972
2973         PR objc/27377
2974         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
2975         by calling objc_compare_types and surpress warnings about
2976         incompatible C pointers that are compatible ObjC pointers.
2977         
2978 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
2979
2980         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
2981         call initialize_inline_failed.
2982         (initialize_inline_failed): Move it from here ...
2983         * cgraph.c (initialize_inline_failed): ... to here.
2984         (cgraph_create_edge): Call initialize_inline_failed rather than
2985         setting inline_failed directly.
2986
2987 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2988
2989         PR target/32542
2990         * sysv4.opt (msdata): Improve comment.
2991         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
2992         * sysv4.h (SVR4_ASM_SPEC): Likewise.
2993
2994 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2995
2996         PR target/30451
2997         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
2998         load and store attributes.
2999
3000 2009-03-29  Ben Elliston  <bje@au.ibm.com>
3001
3002         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
3003         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
3004         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
3005         * doc/extend.texi (X86 Built-in Functions): Add index entries for
3006         __builtin_infq and __builtin_huge_valq.
3007
3008 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
3009
3010         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
3011         atmega8m1 devices.
3012         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3013         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
3014
3015 2009-03-28  Xinliang David Li  <davidxl@google.com>
3016
3017         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
3018         (do_dbg_cnt): New function.
3019
3020 2009-03-28  Jan Hubicka  <jh@suse.cz>
3021
3022         Merge from pretty-ipa:
3023
3024         2009-03-27  Jan Hubicka  <jh@suse.cz>
3025
3026         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
3027         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
3028         * passes.c (function_called_by_processed_nodes_p): New.
3029         * ipa-pure-const.c (check_call): Fix handling of operands.
3030         (analyze_function): Dump debug output for skipped bodies.
3031         (local_pure_const): Use function_called_by_processed_nodes_p.
3032         * dwarf2out.c (reference_to_unused): Use output.
3033         * passes.c (do_per_function_toporder): Likewise.
3034
3035         2008-11-12  Jan Hubicka  <jh@suse.cz>
3036
3037         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
3038         * ipa-pure-const.c (funct_state_d): Add can throw field; make
3039         state_set_in_source enum
3040         (check_decl): Ignore memory tags; do not set fake looping flags;
3041         dump diagnostics.
3042         (check_operand, check_tree, check_rhs_var, check_lhs_var,
3043         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
3044         (check_call, analyze_function): Rewrite.
3045         (check_stmt): New.
3046         (add_new_function): Update call of analyze_function.
3047         (generate_summary): Add call of analyze_function.
3048         (propagate): Propagate can_throw; handle state_set_in_source correctly.
3049         (local_pure_const): New function.
3050         (pass_local_pure_const): New pass.
3051         * ipa-inline.c (inline_transform): Set after_inlining.
3052         * tree-eh.c (stmt_can_throw_external): New.
3053         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
3054         work with aliasing built.
3055         * tree-flow.h (stmt_can_throw_external): New.
3056         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
3057         and local pure/const pass in early and late optimization queue.
3058
3059 2009-03-28  Martin Jambor  <mjambor@suse.cz>
3060
3061         * fold-const.c (get_pointer_modulus_and_residue): New parameter
3062         allow_func_align.
3063         (fold_binary): Allow function decl aligment consideration is the
3064         second argument is integer constant one.
3065         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
3066         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
3067         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
3068
3069 2009-03-28  Jan Hubicka  <jh@suse.cz>
3070
3071         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
3072         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
3073         * function.h (rtl_data): Add nothrow flag.
3074         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
3075         set DECL_NOTHROW for AVAILABLE functions.
3076
3077 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
3078
3079         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
3080         following vector keyword has expansion starting with pixel or bool
3081         keyword, expand vector to __vector and pixel or bool to __pixel or
3082         __bool.
3083
3084         PR c++/39554
3085         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
3086         warn_if_disallowed_function_p): Removed.
3087         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
3088         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
3089         warning_if_disallowed_function_p.
3090         * flags.h (warn_if_disallowed_function_p,
3091         warn_disallowed_functions): Removed.
3092         * common.opt (Wdisallowed-function-list=): Removed.
3093         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
3094
3095 2009-03-28  Richard Guenther  <rguenther@suse.de>
3096
3097         PR tree-optimization/38723
3098         * tree-ssa-pre.c (compute_avail): Add all default definitions to
3099         the entry block.
3100
3101 2009-03-28  Jan Hubicka  <jh@suse.cz>
3102
3103         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
3104         test introduced by my previous patch.
3105
3106 2009-03-28  Richard Guenther  <rguenther@suse.de>
3107
3108         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
3109         the PHIs value undefined.
3110
3111 2009-03-28  Jan Hubicka  <jh@suse.cz>
3112
3113         * tree-pass.h (pass_fixup_cfg): New pass.
3114         * ipa-inline.c (inline_transform): Set
3115         always_inline_functions_inlined/after_inlining.
3116         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
3117         (pass_fixup_cfg): New pass.
3118         * passes.c (init_optimization_passes): Add fixup_cfg.
3119
3120 2009-03-28  Richard Guenther  <rguenther@suse.de>
3121
3122         PR tree-optimization/38458
3123         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
3124         argument use the arguments copy-of value.
3125
3126 2009-03-28  Richard Guenther  <rguenther@suse.de>
3127
3128         PR tree-optimization/38180
3129         * tree-ssa-ccp.c (get_default_value): Simplify.
3130         (likely_value): Likewise.
3131         (surely_varying_stmt_p): Properly handle VOP case.
3132         (ccp_initialize): Likewise.
3133         (ccp_fold): Handle propagating through *&.
3134         (fold_const_aggregate_ref): Also handle decls.
3135
3136 2009-03-28  Jan Hubicka  <jh@suse.cz>
3137
3138         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
3139         * cgraph.h (cgraph_node): Likewise.
3140         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
3141         (cgraph_reset_node): Use process flag.
3142         (cgraph_mark_functions_to_output): Likewise.
3143         (cgraph_expand_function): Likewise.
3144         (cgraph_expand_all_functions): Likewise.
3145         (cgraph_output_in_order): Likewise.
3146         * dwarf2out.c (reference_to_unused): Likewise.
3147         * passes.c do_per_function_toporder): Likewise.
3148
3149 2009-03-28  Jan Hubicka  <jh@suse.cz>
3150
3151         Bring from lto-branch:
3152
3153         2008-09-03  Doug Kwan  <dougkwan@google.com>
3154
3155         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
3156         enums instead of reason strings.
3157         * cgraph.c (cgraph_create_edge): Same.
3158         (cgraph_inline_failed_string): New function.
3159         * cgraph.h (cgraph_inline_failed_t): New enum type.
3160         (cgraph_inline_failed_string): New prototype.
3161         (struct cgraph_edge): Change type of INLINED_FAILED from constant
3162         char pointer to cgraph_inline_failed_t.
3163         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
3164         (cgraph_default_inline_p): Ditto.
3165         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
3166         to cgraph_inline_failed_t pointer.
3167         * cif-code.def: New file.
3168         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
3169         reason string.
3170         (cgraph_check_inline_limits): Change type of REASON to pointer to
3171         cgraph_inline_failed_t.  Replace reason strings with enums.
3172         (cgraph_default_inline_p): Ditto.
3173         (cgraph_recursive_inlining_p): Ditto.
3174         (update_caller_keys): Change type of FAILED_REASON to
3175         cgraph_inline_failed_t.
3176         (cgraph_set_inline_failed): Change type of REASON to pointer to
3177         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
3178         convert enums to strings for text output.
3179         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
3180         to be of type cgraph_inline_failed_t.  Replace reason strings with
3181         enums.  Call cgraph_inline_failed_string to covert enums
3182         to strings for text output.
3183         (cgraph_decide_inlining): Replace reason strings with enums.
3184         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
3185         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
3186         for text output.
3187         * tree-inline.c (expand_call_inline): Change type of REASON
3188         to cgraph_inline_failed_t.  Replace reason strings with enums.
3189         Call cgraph_inline_failed_string for text output.
3190         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
3191         (cgraph.o): Ditto.
3192
3193 2009-03-28  Jan Hubicka  <jh@suse.cz>
3194
3195         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
3196         cgraph_clone_node): Remove master clone handling.
3197         (cgraph_is_master_clone, cgraph_master_clone): Remove.
3198         * cgraph.h (master_clone): Remove.
3199         (cgraph_is_master_clone, cgraph_master_clone): Remove.
3200         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
3201         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
3202
3203 2009-03-28  Jan Hubicka  <jh@suse.cz>
3204
3205         * cgraph.c (cgraph_function_body_availability): Functions declared
3206         inline are always safe to assume that it is not going to be replaced.
3207
3208 2009-03-28  Richard Guenther  <rguenther@suse.de>
3209
3210         PR tree-optimization/38513
3211         * tree-ssa-pre.c (eliminate): Remove redundant stores.
3212         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3213         EXC_PTR_EXPR and FILTER_EXPR.
3214         (get_ref_from_reference_ops): Likewise.
3215
3216 2009-03-28  Richard Guenther  <rguenther@suse.de>
3217
3218         PR tree-optimization/38968
3219         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
3220         Use FLOOR_MOD_EXPR to compute misalignment.
3221
3222 2009-03-28  Richard Guenther  <rguenther@suse.de>
3223
3224         PR tree-optimization/37795
3225         * tree.h (combine_comparisons): Declare.
3226         * fold-const.c (combine_comparisons): Export.
3227         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
3228         comparisons.
3229         (ifcombine_iforif): Use combine_comparisons.
3230
3231 2009-03-28  Jan Hubicka  <jh@suse.cz>
3232
3233         * tree-eh.c (inlinable_call_p): New function.
3234         (make_eh_edges): Use it.
3235         (verify_eh_edges): Use it.
3236         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
3237         * except.c (reachable_next_level): Add inlinable_function argument
3238         (sjlj_find_directly_reachable_regions): Update.
3239         (add_reachable_handler): Do not set saw_any_handlers.
3240         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
3241         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
3242         Add new inlinable call parameter.
3243         (can_throw_internal, can_throw_external): Update.
3244         * except.h (can_throw_internal_1, can_throw_external_1,
3245         foreach_reachable_handler): Update declaration.
3246
3247 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
3248
3249         * config/arm/t-arm-coff, config/h8300/coff.h,
3250         config/i386/i386-aout.h, config/i386/i386-coff.h,
3251         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
3252         config/pdp11/2bsd.h, config/rs6000/aix41.h,
3253         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
3254         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
3255         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
3256         sys-types.h: Remove.
3257         * Makefile.in: Remove protoize and fixproto support and references
3258         in comments.
3259         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
3260         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
3261         Remove.
3262         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
3263         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
3264         unprotoize$(exeext).
3265         (rest.encap): Don't depend on $(STMP_FIXPROTO)
3266         (.PHONY): Don't depend on proto.
3267         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
3268         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
3269         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
3270         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
3271         build/gen-protos.o, build/scan.o, xsys-protos.h,
3272         build/fix-header$(build_exeext), build/fix-header.o,
3273         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
3274         stmp-install-fixproto): Remove.
3275         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
3276         SYSCALLS.c or fixproto files.
3277         (install-common): Don't install protoize.
3278         (install-headers-tar, install-headers-cpio, install-headers-cp):
3279         Don't depend on $(STMP_FIXPROTO).
3280         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
3281         install fixproto files or write out fixproto settings.
3282         (uninstall): Don't uninstall protoize.
3283         * config.gcc (use_fixproto): Remove.
3284         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
3285         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
3286         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
3287         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
3288         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
3289         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
3290         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
3291         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
3292         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
3293         * config/t-vxworks (STMP_FIXPROTO): Remove.
3294         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
3295         STMP_FIXPROTO): Remove.
3296         * config.in, configure: Regenerate.
3297         * crtstuff.c (gid_t, uid_t): Don't undefine.
3298         * doc/install.texi: Change m68k-coff to m68k-elf in example.
3299         (arm-*-coff, arm-*-aout: Remove target entries.
3300         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
3301         Remove mention of AIX 4.1.
3302         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
3303         * doc/invoke.texi (Running Protoize): Remove.
3304         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
3305         (Protoize Caveats): Remove.
3306         * tsystem.h: Update comments on headers assumed to exist.
3307
3308 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3309
3310         * genautomata.c: Add a new year to the copyright.  Add a new
3311         reference.
3312         (struct insn_reserv_decl): Add comments for member bypass_list.
3313         (find_bypass): Remove.
3314         (insert_bypass): New.
3315         (process_decls): Use insert_bypass.
3316         (output_internal_insn_latency_func): Output all bypasses with the
3317         same input insn in one switch case.
3318
3319         * rtl.def (define_bypass): Describe bypass choice.
3320         * doc/md.texi (define_bypass): Ditto.
3321
3322 2009-03-27  Richard Guenther  <rguenther@suse.de>
3323
3324         * gimplify.c (mark_addressable): Export.
3325         * tree-flow.h (mark_addressable): Declare.
3326         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
3327         * tree-ssa.c (verify_phi_args): Verify that address taken
3328         variables have TREE_ADDRESSABLE set.
3329
3330 2009-03-27  Richard Guenther  <rguenther@suse.de>
3331
3332         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
3333         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
3334         Do not mark decls TREE_ADDRESSABLE.
3335         (build_fold_addr_expr): Adjust.
3336         (fold_addr_expr): Remove.
3337         (fold_unary): Use build_fold_addr_expr.
3338         (fold_comparison): Likewise.
3339         (split_address_to_core_and_offset): Likewise.
3340         * coverage.c (tree_coverage_counter_addr): Mark the array decl
3341         TREE_ADDRESSABLE.
3342         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
3343         (gimplify_modify_expr_to_memcpy): Mark source and destination
3344         addressable.
3345         * omp-low.c (create_omp_child_function): Mark the object decl
3346         TREE_ADDRESSABLE.
3347         (lower_rec_input_clauses): Mark the var we take the address of
3348         TREE_ADDRESSABLE.
3349         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
3350
3351 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3352
3353         PR middle-end/39315
3354         * cfgexpand.c (expand_one_stack_var_at): Change alignment
3355         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
3356
3357 2009-03-27  Richard Guenther  <rguenther@suse.de>
3358
3359         PR tree-optimization/39120
3360         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
3361         constraints.
3362         (handle_lhs_call): Process return constraints.  Add escape
3363         constraints if necessary.
3364         (handle_const_call): Fill out return constraints.  Make nested
3365         case more precise.  Avoid consttmp if possible.
3366         (handle_pure_call): Fill out return constraints.  Avoid
3367         callused if possible.
3368         (find_func_aliases): Simplify call handling.
3369
3370 2009-03-27  Richard Guenther  <rguenther@suse.de>
3371
3372         PR tree-optimization/39120
3373         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
3374         as a representative.
3375         (solve_graph): Do propagate CALLUSED.
3376         (handle_pure_call): Use a scalar constraint from CALLUSED for
3377         the return value.
3378         (find_what_p_points_to): CALLUSED shall not appear in poins-to
3379         solutions.
3380
3381 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3382
3383         PR c/39323
3384         * c-common.c (handle_aligned_attribute): Properly check alignment
3385         overflow.  Use (1U << i) instead of (1 << i).
3386
3387         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
3388
3389         * expr.h (get_mem_align_offset): Updated.
3390
3391         * tree.h (tree_decl_common): Change align to "unsigned int" and
3392         move it before pointer_alias_set.
3393
3394 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3395             Jakub Jelinek  <jakub@redhat.com>
3396
3397         PR target/38034
3398         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
3399         gr_register_operand with gr_reg_or_0_operand.
3400         (cmpxchg_rel_di): Likewise.
3401         (sync_lock_test_and_set<mode>): Likewise.
3402
3403 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3404
3405         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
3406         (true_regnum): Likewise.
3407
3408         * rtlanal.c (subreg_info): Moved to ...
3409         * rtl.h (subreg_info): Here.  New.
3410         (subreg_get_info): New.
3411
3412         * rtlanal.c (subreg_get_info): Make it extern.
3413
3414 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3415
3416         PR target/39472
3417         * config/i386/i386.c (ix86_abi): New.
3418         (override_options): Handle -mabi=.
3419         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
3420         (ix86_call_abi_override): Likewise.
3421         (init_cumulative_args): Likewise.
3422         (function_arg_advance): Likewise.
3423         (function_arg_64): Likewise.
3424         (function_arg): Likewise.
3425         (ix86_pass_by_reference): Likewise.
3426         (ix86_function_value_regno_p): Likewise.
3427         (ix86_build_builtin_va_list_abi): Likewise.
3428         (setup_incoming_varargs_64): Likewise.
3429         (is_va_list_char_pointer): Likewise.
3430         (ix86_init_machine_status): Likewise.
3431         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
3432         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
3433         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
3434         (ix86_function_abi): Make it static and return enum calling_abi.
3435         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
3436         with ix86_abi.
3437         (ix86_fn_abi_va_list): Updated.
3438
3439         * config/i386/i386.h (ix86_abi): New.
3440         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
3441         (CONDITIONAL_REGISTER_USAGE): Likewise.
3442         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
3443         (machine_function): Likewise.
3444
3445         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
3446         with ix86_abi.
3447         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
3448         (STACK_BOUNDARY): Likewise.
3449         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
3450
3451         * config/i386/i386.opt (mabi=): New.
3452
3453         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
3454         return enum calling_abi.
3455         (ix86_function_type_abi): Likewise.
3456         (ix86_function_abi): Removed.
3457
3458         * doc/invoke.texi: Document -mabi= option for x86.
3459
3460 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3461
3462         * builtins.c (real_dconstp): Delete.
3463         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
3464
3465 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
3466             Jakub Jelinek  <jakub@redhat.com>
3467
3468         PR debug/37959
3469         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
3470         (gen_subprogram_die): When a function is explicit, generate the
3471         DW_AT_explicit attribute.
3472         * langhooks.h (struct lang_hooks_for_decls): Add
3473         function_decl_explicit_p langhook.
3474         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
3475         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
3476
3477 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
3478
3479         * builtins.c (fold_builtin_memory_op): Optimize memmove
3480         into memcpy if we can prove source and destination don't overlap.
3481
3482         * tree-inline.c: Include gt-tree-inline.h.
3483         (clone_fn_id_num): New variable.
3484         (clone_function_name): New function.
3485         (tree_function_versioning): Use it.
3486         * Makefile.in (GTFILES): Add tree-inline.c.
3487
3488 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
3489
3490         * BASE-VER: Change to 4.5.0.
3491
3492 2009-03-27  Xinliang David Li  <davidxl@google.com>
3493
3494         PR tree-optimization/39557
3495         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
3496
3497 2009-03-27  Xinliang David Li  <davidxl@google.com>
3498
3499         PR tree-optimization/39548
3500         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
3501         candidate check.
3502
3503 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3504
3505         * c-common.c (pointer_int_sum): Use %wd on return from
3506         tree_low_cst.
3507
3508 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3509
3510         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
3511         on return from tree_low_cst.
3512
3513 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3514
3515         PR c++/36799
3516         * ginclude/stdarg.h (va_copy): Define also for
3517         __GXX_EXPERIMENTAL_CXX0X__.
3518
3519 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3520
3521         PR c++/35652
3522         * builtins.h (c_strlen): Do not warn here.
3523         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3524         * c-common.c (pointer_int_sum): Take an explicit location.
3525         Warn about offsets out of bounds.
3526         * c-common.h (pointer_int_sum): Adjust declaration.
3527
3528 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3529
3530         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
3531         markup glitch.
3532
3533 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
3534
3535         PR c++/39554
3536         * opts.c (warn_if_disallowed_function_p): Don't assume
3537         get_callee_fndecl must return non-NULL.
3538
3539 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3540
3541         PR rtl-optimization/39522
3542         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
3543         when reg_reloaded_valid is set.
3544
3545 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3546
3547         * config/spu/divv2df3.c: New file.
3548         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
3549         (DPBIT_FUNCS): Filter out _div_df.
3550
3551 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3552
3553         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
3554         a jump insn, count that jump in the distance to the loop start.
3555
3556 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3557
3558         PR target/39523
3559         * config/sh/sh.c (calc_live_regs): Fix condition for global
3560         registers except PIC_OFFSET_TABLE_REGNUM.
3561
3562 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
3563
3564         PR/39518
3565         * doc/invoke.texi (-mconsole): New.
3566         (-mcygwin): New.
3567         (-mno-cygwin): New.
3568         (-mdll): New.
3569         (-mnop-fun-dllimport): New.
3570         (-mthread): New.
3571         (-mwin32): New.
3572         (-mwindows): New.
3573         (sub section "i386 and x86-64 Windows Options"): New.
3574
3575 2009-03-25  Ralf Cors├ępius <ralf.corsepius@rtems.org>
3576
3577         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
3578         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
3579
3580 2009-03-25  Richard Guenther  <rguenther@suse.de>
3581
3582         PR middle-end/39497
3583         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
3584         of -Wno-error.
3585
3586 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
3587
3588         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
3589         neither of haifa/selective schedulers are working.
3590
3591 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3592
3593         * doc/invoke.texi (Debugging Options): Fix description of
3594         -fno-merge-debug-strings.
3595
3596 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
3597
3598         * config/cris/libgcc.ver: New version-script.
3599         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
3600
3601         * configure.ac <GAS features, nop mnemonic>: Add pattern
3602         crisv32-*-* for "nop".
3603         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
3604         * configure: Regenerate.
3605
3606 2009-03-24  Ira Rosen  <irar@il.ibm.com>
3607
3608         PR tree-optimization/39529
3609         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3610         mark_sym_for_renaming for the tag copied to the new vector
3611         pointer.
3612
3613 2009-03-24  Arthur Loiret  <aloiret@debian.org>
3614
3615         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
3616         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
3617         EXTRA_SPEC_FUNCTIONS.
3618         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
3619         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
3620         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
3621         -march and -mtune options.
3622
3623 2009-03-24  Ralf Cors├ępius <ralf.corsepius@rtems.org>
3624
3625         * config/m68k/t-rtems: Add m5329 multilib.
3626
3627 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
3628             Jakub Jelinek  <jakub@redhat.com>
3629
3630         PR debug/39524
3631         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
3632         nodes.
3633
3634 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3635
3636         PR c/39495
3637         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
3638         instead of c_parser_expression_conv, if original_code isn't one of the
3639         4 allowed comparison codes, fail.
3640
3641 2009-03-23  Richard Guenther  <rguenther@suse.de>
3642
3643         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
3644         * tree.h (struct tree_type): Likewise.
3645         * reload.h (struct insn_chain): Likewise.
3646         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
3647         * function.h (struct function): Likewise.
3648         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
3649
3650 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
3651
3652         PR tree-optimization/39516
3653         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
3654
3655 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
3656
3657         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
3658         should be set true if BITS_PER_WORD of target is bigger than 32
3659
3660 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
3661
3662         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
3663         Translate -B-options to -rpath-link.  Correct existing
3664         rpath-link and conditionalize on !nostdlib.
3665
3666 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3667
3668         * doc/extend.texi (Function Attributes, Variable Attributes):
3669         Fix typos.
3670         * doc/invoke.texi (Debugging Options, Optimize Options)
3671         (i386 and x86-64 Options, MCore Options): Likewise.
3672
3673 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
3674
3675         PR debug/37890
3676         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
3677         it for block local namespace aliases.
3678         (gen_decl_die): Pass context_die to gen_namespace_die.
3679
3680 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
3681
3682         PR c/39495
3683         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
3684         minimum or maximum value.
3685
3686 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
3687
3688         * reginfo.c (globalize_reg): Recompute derived reg sets.
3689
3690 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
3691
3692         PR target/39063
3693         * libgcc2.c (mprotect): Do not use signed arguments for
3694         VirtualProtect, use DWORD arguments.  Also fix the 'may
3695         be used uninitialized' warning for the np variable.
3696
3697 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
3698
3699         PR target/39496
3700         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
3701         functions using regparm calling conventions when not optimizing.
3702         (ix86_function_sseregparm): Similarly for sseregparm calling
3703         conventions.
3704
3705 2009-03-19  Li Feng  <nemokingdom@gmail.com>
3706
3707         PR middle-end/39500
3708         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
3709         dependence if the first conflict is after niter iterations.
3710
3711 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
3712
3713         PR middle-end/38609
3714         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
3715         functions with dynamic stack-pointer adjustments.
3716
3717 2009-03-19  Ben Elliston  <bje@au.ibm.com>
3718
3719         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
3720         option; change to -msdata=data.
3721
3722 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3723
3724         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
3725         and -fopenmp.
3726
3727 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
3728
3729         PR target/35180
3730         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
3731
3732 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
3733
3734         * doc/invoke.texi (Code Gen Options): Expand discussion of
3735         -fno-common.
3736
3737 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
3738
3739         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
3740         * matrix-reorg.c (struct matrix_info): Likewise.
3741         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
3742         * rtl.h (struct mem_attrs): Likewise.
3743         * df.h (struct df): Likewise.
3744         * tree-data-ref.h (struct data_dependence_relation): Likewise.
3745         * ira-int.h (struct ira_allocno): Likewise.
3746         * df-scan.c (struct df_collection_rec): Likewise.
3747         * ira.c (struct equivalence): Likewise.
3748         * function.c (struct temp_slot): Likewise.
3749         * cfgloop.h (struct loop): Likewise.
3750
3751         PR debug/39485
3752         * function.c (use_register_for_decl): When not optimizing, disregard
3753         register keyword for variables with types containing methods.
3754
3755 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
3756
3757         PR middle-end/39447
3758         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
3759         (is_simple_operand): Call contains_component_ref_p before calling data
3760         reference analysis that would fail on COMPONENT_REFs.
3761
3762         * tree-vrp.c (search_for_addr_array): Fix formatting.
3763
3764 2009-03-18  Richard Guenther  <rguenther@suse.de>
3765
3766         * tree-vect-transform.c (vect_loop_versioning): Fold the
3767         generated comparisons.
3768         * tree-vectorizer.c (set_prologue_iterations): Likewise.
3769         (slpeel_tree_peel_loop_to_edge): Likewise.
3770
3771 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3772
3773         PR middle-end/37805
3774         * opts.c (print_specific_help): In addition to `undocumented',
3775         accept `separate' and `joined' flags if passed alone.  Describe
3776         output by the first matched one of those.
3777         (common_handle_option): Skip over empty strings.
3778         * gcc.c (display_help): Fix help string for `--help='.
3779         * doc/invoke.texi (Option Summary, Overall Options): With
3780         `--help=', classes and qualifiers can both be repeated, but
3781         only the latter can be negated.  One should not pass only
3782         negated qualifiers.  Fix markup and examples.
3783
3784         Revert
3785         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3786         PR middle-end/37805
3787         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3788         and -fhelp=separate.
3789
3790 2009-03-17  Jing Yu  <jingyu@google.com>
3791
3792         PR middle-end/39378
3793         * function.h (struct rtl_data): Move is_thunk from here...
3794         (struct function): ...to here.
3795         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3796         * varasm.c (assemble_start_function): Change is_thunk from crtl to
3797         cfun.
3798         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
3799         cfun.
3800         (alpha_does_function_need_gp, alpha_start_function): Likewise.
3801         (alpha_output_function_end_prologue): Likewise.
3802         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
3803         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
3804         (rs6000_output_function_epilogue): Likewise.
3805         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3806
3807 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
3808
3809         PR target/39482
3810         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
3811         from different units in a single alternative.
3812         (*truncdfsf_i387): Ditto.
3813         (*truncxfsf2_mixed): Ditto.
3814         (*truncxfdf2_mixed): Ditto.
3815
3816 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
3817
3818         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
3819         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
3820
3821         PR debug/39474
3822         * tree-ssa-live.c (remove_unused_locals): Don't remove local
3823         unused non-artificial variables when not optimizing.
3824
3825         PR debug/39471
3826         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
3827         DW_TAG_imported_module even if decl is IMPORTED_DECL with
3828         NAMESPACE_DECL in its DECL_INITIAL.
3829
3830         PR middle-end/39443
3831         * optabs.c (set_user_assembler_libfunc): New function.
3832         * expr.h (set_user_assembler_libfunc): New prototype.
3833         * c-common.c: Include libfuncs.h.
3834         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
3835         for memcmp, memset, memcpy, memmove and abort.
3836         * Makefile.in (c-common.o): Depend on libfuncs.h.
3837
3838         PR debug/39412
3839         * dwarf2out.c (gen_inlined_enumeration_type_die,
3840         gen_inlined_structure_type_die, gen_inlined_union_type_die,
3841         gen_tagged_type_instantiation_die): Removed.
3842         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
3843         do nothing.
3844
3845 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
3846
3847         PR testsuite/38526
3848         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
3849         its use.
3850         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
3851         (check-parallel-%): Ditto.
3852         (check-consistency): Ditto.
3853
3854 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
3855
3856         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
3857         local variable rhs by NULL_TREE.
3858
3859 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3860
3861         PR target/39477
3862         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
3863
3864 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3865
3866         PR target/39476
3867         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
3868
3869 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3870
3871         PR target/39473
3872         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
3873         for ms->sysv ABI calls only in 64bit mode.
3874
3875         * config/i386/i386.md (untyped_call): Support 32bit.
3876
3877 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3878
3879         * doc/extend.texi: Replace x86_65 with x86_64.
3880
3881 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
3882
3883         PR tree-optimization/39455
3884         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
3885         mismatches for POINTER_TYPE_P (type).
3886         (number_of_iterations_le): Likewise.
3887
3888 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
3889
3890         * config/picochip/picochip.c: Removed profiling support.
3891         * config/picochip/picochip.md: Removed profiling instruction.
3892         * config/picochip/picochip.h: Removed profiling builtin.
3893
3894 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
3895
3896         * doc/install.texi (--with-host-libstdcxx): Document.
3897
3898 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
3899
3900         PR target/34299
3901         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
3902         generate a warning if the function name does not begin with
3903         "__vector" and the function has either the 'signal' or 'interrupt'
3904         attribute, from here to ...
3905         (avr_declare_function_name): ...here. New function.
3906         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
3907         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
3908
3909 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
3910
3911         PR bootstrap/39454
3912         * cse.c (fold_rtx): Don't modify original const_arg1 when
3913         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
3914         separate variable instead.
3915         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
3916         from out of range shift counts.
3917         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
3918
3919 2008-03-13  Catherine Moore  <clm@codesourcery.com>
3920
3921         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
3922         diagnostic.h with $(DIAGNOSTIC_H).
3923
3924 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3925
3926         PR target/39431
3927         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
3928         predicate.
3929         * config/i386/sync.md (sync_compare_and_swap<mode>,
3930         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
3931         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
3932         into a register.
3933         (sync_double_compare_and_swapdi_pic,
3934         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
3935         cmpxchg8b_pic_memory_operand instead of just memory_operand.
3936
3937 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3938
3939         PR target/39445
3940         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
3941
3942 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3943
3944         PR target/39327
3945         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3946         (avx_addsubv4df3): Likewise.
3947         (*avx_addsubv4sf3): Likewise.
3948         (sse3_addsubv4sf3): Likewise.
3949
3950 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3951
3952         PR target/38824
3953         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
3954
3955 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
3956
3957         PR debug/39432
3958         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
3959         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3960         registers for allocnos created from user-defined variables.
3961
3962 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3