ChangeLog: Whitespace fixes.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2009-05-06  Richard Guenther  <rguenther@suse.de>
2             Adam Nemet  <anemet@caviumnetworks.com>
3
4         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5         comment.  Add that if LHS is not a gimple register, then RHS1 has
6         to be a single object (GIMPLE_SINGLE_RHS).
7
8 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
9
10         * expr.c (get_def_for_expr): Move it up in the file.
11         (store_field): When expanding a bit-field store, look at the
12         defining gimple stmt for the masking conversion.
13
14 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
15
16         PR middle-end/39986
17         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
18         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
19         32-bit memcpy into long.
20
21 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
22
23         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
24         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
25         new_reg_loc_descr.
26         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
27         instead of appending DW_OP_deref*.
28
29 2009-05-06  Michael Matz  <matz@suse.de>
30
31         PR middle-end/40021
32         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
33         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
34
35 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
36
37         * Makefile.in (install-plugin): Fix srcdir handling.
38
39 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
40
41         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
42         when processing for not_regs_needed bitmap.
43         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
44         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
45         handling it for rhs. 
46
47 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
48
49         * config/i386/i386.md (unnamed inc/dec peephole): Use
50         optimize_insn_for_size_p instead of optimize_size.
51         * config/i386/predicates.md (incdec_operand): Likewise.
52         (aligned_operand): Likewise.
53         * config/i386/sse.md (divv8sf3): Likewise.
54         (sqrtv8sf2): Likewise.
55
56 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
57
58         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
59
60         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
61
62 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
63
64         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
65         ssemodesuffixf2c with avxmodesuffixf2c.
66
67 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
68
69         PR c/40032
70         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
71
72 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
73
74         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
75         (struct tree_base): Adjust spacing for 8 bit boundaries.
76         (struct tree_decl_common): Add decl_by_reference_flag bit.
77         (DECL_BY_REFERENCE): Adjust.
78         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
79         print DECL_BY_REFERENCE bit.
80         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
81         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
82         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
83         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
84         unconditionally.
85
86         PR middle-end/39666
87         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
88         range of the type, but default label is missing, add it with one
89         of the existing labels instead of adding a new label for it.
90
91 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
92
93         * dwarf.h: Remove.
94
95 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
96
97         * Makefile.in (enable_plugin, plugin_includedir): New.
98         (install): Depend on install-plugin.
99         (PLUGIN_HEADERS): New.
100         (install-plugin): New.
101         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
102
103 2009-05-05  Richard Guenther  <rguenther@suse.de>
104
105         PR tree-optimization/40022
106         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
107         the only vuse.
108         (phivn_valid_p): Fix tuplification error, simplify.
109         (phiprop_insert_phi): Add dumps.
110         (propagate_with_phi): Simplify.
111
112 2009-05-05  Richard Guenther  <rguenther@suse.de>
113
114         PR middle-end/40023
115         * builtins.c (gimplify_va_arg_expr): Properly build the address.
116
117 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
118
119         * tree.h (strip_float_extensions): Remove duplicate declaration.
120         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
121         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
122         block_ultimate_origin): Rearrange the declarations line to match the
123         comment that indicates the .c file which the functions are defined.
124         (dwarf2out_*, set_decl_rtl): Add comment.
125         (get_base_address): Adjust comment.
126         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
127         declarations line and add comment.
128         (is_builtin_name): Add blank after function name, for clarity.
129
130 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
131
132         * attribs.c (decl_attributes): Use %qE for identifiers in
133         diagnostics.
134         * cgraphunit.c (verify_cgraph_node): Translate function names to
135         locale character set in diagnostics.
136         * coverage.c (get_coverage_counts): Use %qE for identifiers in
137         diagnostics.
138         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
139         Document that functions are named in UTF-8.
140         * expr.c (expand_expr_real_1): Translate function names to locale
141         character set in diagnostics.
142         * gimplify.c (omp_notice_variable, omp_is_private,
143         gimplify_scan_omp_clauses): Use %qE for identifiers in
144         diagnostics.
145         * langhooks.c (lhd_print_error_function): Translate function names
146         to locale character set.
147         * langhooks.h (decl_printable_name): Document that return value is
148         in internal character set.
149         * stmt.c: Include pretty-print.h
150         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
151         diagnostics.
152         (resolve_operand_name_1): Translate named operand name to locale
153         character set.
154         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
155         diagnostics.
156         * toplev.c (announce_function): Translate function names to locale
157         character set.
158         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
159         (default_tree_printer): Use pp_identifier or translate identifiers
160         to locale character set.  Mark "<anonymous>" for translation.
161         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
162         for identifiers in diagnostics.
163         * tree.c (handle_dll_attribute): Use %qE for identifiers in
164         diagnostics.
165         * varasm.c (output_constructor): Use %qE for identifiers in
166         diagnostics.
167
168 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
169
170         * configure.ac: use ` ` instead of $()
171         * configure: Regenerate.
172
173 2009-05-05  Ben Elliston  <bje@au.ibm.com>
174
175         * config/pa/linux-atomic.c: Eliminate conditional include of
176         errno.h on non-LP64 systems to simplify build requirements.
177
178 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
179
180         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
181         diagnostics.
182         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
183         and pass value to identifier_to_locale.
184         (warn_variable_length_array): Make name a tree.
185         (grokdeclarator): Separate diagnostic texts for named and unnamed
186         declarators.  Use %qE for named declarators.
187         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
188         diagnostics.
189         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
190         identifiers in diagnostics.
191         * c-typeck.c (push_member_name, start_init): Pass identifiers to
192         identifier_to_locale.  Mark "anonymous" strings for translation.
193
194 2009-05-04  Michael Eager <eager@eagercon.com>
195
196         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
197         address for DImode/DFmode only if double-precision FP regs.
198
199 2009-05-04  Michael Eager <eager@eagercon.com>
200
201         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
202         TARGET_SINGLE_FLOAT check.
203
204 2009-05-04  Michael Eager <eager@eagercon.com>
205
206         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
207
208 2009-05-04  Michael Eager <eager@eagercon.com>
209
210         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
211         * config/rs6000/t-xilinx: New
212
213 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
214
215         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
216         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
217         * gcc/explow.c (memory_address): Use target hook.
218         * gcc/targhooks.c (default_legitimize_address): New.
219         * gcc/targhooks.h (default_legitimize_address): New.
220         * gcc/target.h (legitimize_address): New.
221         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
222         (TARGET_INITIALIZER): Include it.
223         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
224
225         * config/bfin/bfin-protos.h (legitimize_address): Remove.
226         * config/bfin/bfin.c (legitimize_address): Remove.
227         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
228         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
229         Remove.
230         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
231         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
232
233         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
234         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
235         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
236         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
237         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
238         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
239         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
240         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
241         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
242         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
243         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
244         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
245         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
246         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
247         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
248         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
249         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
250         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
251         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
252         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
253         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
254         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
255         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
256
257         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
258         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
259         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
260         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
261         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
262         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
263         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
264         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
265         (thumb_legitimize_address): Delete.
266         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
267         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
268         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
269         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
270         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
271         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
272         Delete.
273         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
274         Delete.
275
276         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
277         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
278         * config/m32r/m32r.c (m32r_legitimize_address): New.
279         * config/m68k/m68k.c (m68k_legitimize_address): New.
280         * config/score/score.c (score_legitimize_address): Standardize.
281         * config/score/score3.c (score3_legitimize_address): Standardize.
282         * config/score/score3.h (score3_legitimize_address): Adjust.
283         * config/score/score7.c (score7_legitimize_address): Standardize.
284         * config/score/score7.h (score7_legitimize_address): Adjust.
285         * config/sh/sh.c (sh_legitimize_address): New.
286         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
287
288         * gcc/config/s390/s390.c (legitimize_address): Rename to...
289         (s390_legitimize_address): ... this.
290         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
291         (sparc_legitimize_address): ... this.
292         * gcc/config/i386/i386.c (legitimize_address): Rename to...
293         (ix86_legitimize_address): ... this.
294         * gcc/config/avr/avr.c (legitimize_address): Rename to...
295         (avr_legitimize_address): ... this.
296         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
297         (mn10300_legitimize_address): ... this.
298         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
299         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
300         (alpha_expand_mov): Adjust call.
301
302         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
303         * config/spu/spu.c (spu_legitimize_address): Likewise.
304         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
305         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
306
307 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
308
309         * intl.c (locale_encoding, locale_utf8): New.
310         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
311         * intl.h (locale_encoding, locale_utf8): Declare.
312         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
313         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
314         New.
315         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
316         argument.
317         (pp_tree_identifier): Define to call pp_base_tree_identifier.
318         (pp_base_tree_identifier): Declare as function.
319         (identifier_to_locale): Declare.
320         * Makefile.in (pretty-print.o): Update dependencies.
321         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
322
323 2009-05-04  Richard Guenther  <rguenther@suse.de>
324
325         PR middle-end/40015
326         * builtins.c (fold_builtin_memory_op): Do not decay to element
327         type if the size matches the whole array.
328
329 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
330
331         * expmed.c (synth_mult): When trying out a shift, pass the result
332         of a signed shift.
333
334 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
335
336         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
337         (shiftsub1_cost): New.
338         (init_expmed): Compute shiftsub1_cost.
339         (synth_mult): Optimize multiplications by constants of the form
340         -(2^^m-1) for some constant positive integer m.
341
342 2009-05-03  Richard Guenther  <rguenther@suse.de>
343
344         PR c/39983
345         * c-typeck.c (array_to_pointer_conversion): Do not built
346         ADDR_EXPRs of arrays of pointer-to-element type.
347         * c-gimplify.c (c_gimplify_expr): Revert change fixing
348         up wrong ADDR_EXPRs after-the-fact.
349         * c-common.c (strict_aliasing_warning): Strip pointer
350         conversions for obtaining the original type.
351         * builtins.c (fold_builtin_memset): Handle array types.
352         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
353         and array types
354
355 2009-05-03  Richard Guenther  <rguenther@suse.de>
356
357         PR middle-end/23329
358         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
359         Do not lose casts from array types with unknown extent to array
360         types with known extent.
361         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
362         alias set compatibility.
363
364 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
365
366         * flags.h (extra_warnings): Delete.
367         * toplev.c (process_options): Handle Wuninitialized here.
368         * opts.c (extra_warnings): Delete.
369         (set_Wextra): Delete.
370         (common_handle_option): -Wextra can be handled automatically.
371         * c-opts.c (c_common_handle_option): Delete obsolete code.
372         (c_common_post_options): Simplify comment.
373         * common.opt (W): Add Var.
374         (Wextra): Add Var.
375         (Wuninitialized): Initialize to -1.
376
377 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
378             Richard Guenther  <rguenther@suse.de>
379
380         * expr.c (get_def_for_expr): New function.
381         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
382         SSA rather than trees.
383         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
384         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
385         
386 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
387
388         * c-common.c (reswords): Add _Imaginary.
389         * c-common.c (enum rid): Add RID_IMAGINARY.
390
391 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
392
393         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
394         Patch by Richard Guenther.
395
396 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
397
398         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
399         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
400         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
401         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
402         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
403         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
404         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
405         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
406         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
407         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
408         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
409         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
410         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
411         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
412         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
413         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
414         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
415         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
416
417 2009-05-02  Richard Guenther  <rguenther@suse.de>
418
419         PR tree-optimization/39940
420         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
421         doing so.
422
423 2009-05-02  Richard Guenther  <rguenther@suse.de>
424
425         PR middle-end/40001
426         * tree-ssa.c (execute_update_addresses_taken): Properly check
427         if we can mark a variable DECL_GIMPLE_REG_P.
428         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
429         back to the end of the function.
430         (is_gimple_reg_type): Remove complex type special casing.
431         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
432         if not optimizing.
433
434 2009-05-02  Ben Elliston  <bje@au.ibm.com>
435
436         * doc/collect2.texi (Collect2): Document search path behaviour
437         when configured with --with-ld.
438
439 2009-05-02  Jan Hubicka  <jh@suse.cz>
440
441         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
442         parameter; update callers.
443         (coalesce_cost_edge): EH edges are costier because they needs
444         splitting even if not critical and even more costier when there are
445         multiple EH predecestors.
446
447 2009-05-02  Jan Hubicka  <jh@suse.cz>
448
449         * except.c (remove_eh_handler_and_replace): Handle updating after
450         removing TRY blocks.
451
452 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
453
454         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
455
456 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
457
458         * varasm.c: Do not include c-pragma.h.
459         * attribs.c: Do not incude c-common.h.
460
461 2009-05-01  Michael Matz  <matz@suse.de>
462
463         * calls.c (initialize_argument_information): Handle SSA names like
464         decls with a non MEM_P DECL_RTL.
465
466 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
467
468         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
469         * ipa-utils.c: Likewise.
470         * ipa-type-escape.c: Likewise.
471         * cgraphunit.c Do not include c-common.h.
472         * ipa-pure-const.c: Likewise.
473         * tree-if-conv.c: Likewise.
474         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
475         * ipa-struct-reorg.c: Likewise.
476         * tree-nomudflap.c: Likewise.
477         * tree-ssa-structalias.c: Likewise.
478
479 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
480
481         * store-motion.c: Many cleanups to make this pass a first-class
482         citizen instead of an appendix to gcse load motion.  Add TODO list
483         to make this pass faster/cleaner/better.
484
485         (struct ls_expr): Post gcse.c-split cleanups.
486         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
487         "stores" field to "avail_stores".
488         (pre_ldst_mems): Rename to store_motion_mems.
489         (pre_ldst_table): Rename to store_motion_mems_table.
490         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
491         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
492         (ldst_entry): Rename to st_expr_entry, update users.
493         (free_ldst_entry): Rename to free_st_expr_entry, update users.
494         (free_ldst_mems): Rename to free_store_motion_mems, update users.
495         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
496         update caller.
497         (first_ls_expr): Rename to first_st_expr, update users.
498         (next_ls_expr): Rename to next_st_expr, update users.
499         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
500         fields properly for store motion instead of names inherited from load
501         motion in gcse.c.
502         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
503         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
504         are done with it.
505
506         (ae_kill): Rename to st_kill, update users.
507         (ae_gen): Rename to st_avloc, update users.
508         (transp): Rename to st_transp, update users.
509         (pre_insert_map): Rename to st_insert_map, update users.
510         (pre_delete_map): Rename to st_delete_map, update users.
511         (insert_store, build_store_vectors, free_store_memory,
512         one_store_motion_pass): Update for abovementioned changes.
513
514         (gcse_subst_count, gcse_create_count): Remove.
515         (one_store_motion_pass): New statistics counters "n_stores_deleted"
516         and "n_stores_created", local variables.
517
518         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
519         use for_each_rtx.
520
521         (regvec, compute_store_table_current_insn): Remove.
522         (reg_set_info, reg_clear_last_set): Remove.
523         (compute_store_table): Use DF caches instead of local dataflow
524         solvers.
525
526 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
527
528         * c-objc-common.c (c_tree_printer): Print identifiers with
529         pp_identifier, not pp_string.  Mark "({anonymous})" for
530         translation.
531         * c-pretty-print.c (pp_c_ws_string): New.
532         (pp_c_cv_qualifier, pp_c_type_specifier,
533         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
534         pp_c_storage_class_specifier, pp_c_function_specifier,
535         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
536         pp_c_primary_expression, pp_c_postfix_expression,
537         pp_c_unary_expression, pp_c_shift_expression,
538         pp_c_relational_expression, pp_c_equality_expression,
539         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
540         use pp_string and pp_c_ws_string in place of pp_identifier and
541         pp_c_identifier for non-identifiers.  Mark English strings for
542         translation.
543         * c-pretty-print.h (pp_c_ws_string): Declare.
544
545 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
546             Roland McGrath <roland@redhat.com>
547
548         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
549         (ENABLE_LD_BUILDID): New configuration option.
550         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
551         (LINK_BUILDID_SPEC): New macro.
552         (init_spec): If defined, prepend it between LINK_EH_SPEC and
553         link_spec.
554         * doc/install.texi: Document --enable-linker-build-id option.
555         * configure: Rebuild.
556         * config.in: Rebuild.
557
558 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
559
560         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
561         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
562         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
563         MIPS_GP_SAVE_AREA_SIZE.
564         * config/mips/mips.c (struct mips_frame_info): Update comment
565         before arg_pointer_offset and hard_frame_pointer_offset.
566         (mips_compute_frame_info): Update diagram before function: to
567         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
568         indicate the position of frame_pointer_rtx with -fstack-protector and
569         to show args_size.  Don't allocate cprestore area for leaf functions
570         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
571         cprestore_size.
572         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
573
574 2009-04-30  Michael Matz  <matz@suse.de>
575
576         PR tree-optimization/39955
577         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
578
579 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
580
581         * ira.c (setup_cover_and_important_classes):  Use safe macro
582         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
583         directly.
584         * genpreds.c (write_tm_preds_h):  Output suitable definition of
585         REG_CLASS_FOR_CONSTRAINT.
586
587 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
588
589         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
590         instead of an int.
591         * bitmap.c (bitmap_descriptor): Likewise.
592         * ggc-common.c (loc_descriptor): Likewise.
593         * varray.c (varray_descriptor): Likewise.
594         * vec.c (vec_descriptor): Likewise.
595
596 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
597
598         * Makefile.in (dce.o): Add $(EXCEPT_H).
599         * dce.c: Include except.h and delete redundant vector definitions.
600         (deletable_insn_p): Return false for non-call insns that can throw
601         if DF is running.
602
603 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
604
605         * gcse.c (ae_gen): Remove.
606         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
607         and make non-static function to make it available in store-motion.c.
608         Update call sites with search-and-replace.
609         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
610         extract_mentioned_regs, extract_mentioned_regs_helper,
611         find_moveable_store, compute_store_table, load_kills_store, find_loads,
612         store_killed_in_insn, store_killed_after, store_killed_before,
613         build_store_vectors, insert_insn_start_basic_block, insert-store,
614         remove_reachable_equiv_notes, replace_store_insn, delete_store,
615         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
616         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
617         * store-motion.c: ...new file.  Also copy data structures from gcse.c
618         and clean up to remove parts not used by store motion.
619         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
620         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
621
622 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
623
624         PR target/38571
625         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
626         when optimizing for size.
627
628 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
629
630         * gcse.c (gcse_constant_p): Fix typo in last change.
631
632 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
633
634         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
635
636 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
637
638         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
639
640 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
641
642         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
643         CONST_HIGH_PART result.
644
645 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
646
647         * config/avr/avr.c (initial_elimination_offset): Rename to
648         avr_initial_elimination_offset.
649         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
650         change return type to bool.
651         (avr_can_eliminate): New function.
652         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
653         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
654         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
655         * config/avr/avr-protos.h (initial_elimination_offset) : Rename to
656         avr_initial_elimination_offset.
657         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
658         (avr_initial_elimination_offset): Define.
659
660 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
661             Steven Bosscher  <steven@gcc.gnu.org>
662
663         PR rtl-optimization/39938
664         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
665         * cfgrtl.c: Include insn-attr.h.
666         (rest_of_pass_free_cfg): New function.
667         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
668         * resource.c (init_resource_info): Remove call to df_analyze.
669
670 2009-04-29  Richard Guenther  <rguenther@suse.de>
671
672         PR target/39943
673         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
674         allow conversion to signed integers.
675
676 2009-04-29  Richard Guenther  <rguenther@suse.de>
677
678         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
679         shifts of floating point vectors if the shift amount is
680         a constant multiple of the element size.
681
682 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
683             Michael Matz  <matz@suse.de>
684
685         PR middle-end/39927
686         PR bootstrap/39929
687         * tree-outof-ssa.c (emit_partition_copy): New function.
688         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
689         insert_part_to_rtx_on_edge): Perform the partition base var
690         copy using emit_partition_copy.
691         (insert_value_copy_on_edge): Convert constants to the right mode.
692         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
693         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
694
695 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
696
697         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
698         scan backwards to try to find a constant to initialize it.
699
700         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
701         insn before the loop_end instruction, don't look past labels.
702
703 2009-04-29  Richard Guenther  <rguenther@suse.de>
704
705         PR middle-end/39937
706         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
707         loose type conversions.
708         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
709         stmts only if there are no uses of its definition.
710
711 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
712
713         * config/bfin/bfin.h (splitting_loops): Declare.
714         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
715         Reorder bit definitions to be ascending.
716         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
717         * config/bfin/bfin.c (splitting_loops): New variable.
718         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
719         (struct loop_info): Remove members INIT and LOOP_INIT.
720         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
721         the LSETUP sequence.  Allow LC to be loaded from any register, but
722         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
723         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
724         set to 1.
725         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
726         of reload_completed.
727
728         From Jie Zhang:
729         * config/bfin/bfin.md (movsi_insn): Refine constraints.
730
731 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
732
733         * Makefile.in (PLUGIN_VERSION_H): New.
734         (OBJS-common): Remove plugin-version.o.
735         (plugin.o): Depend on (PLUGIN_VERSION_H).
736         (plugin-version.o): Remove.
737         * configure: Regenerate
738         * configure.ac: Create plugin-version.h.
739         * gcc-plugin.h (plugin_gcc_version): Remove.
740         (plugin_default_version_check): Change signature.
741         * plugin-version.c: Remove.
742         * plugin.c: Include plugin-version.h.
743         (str_plugin_gcc_version_name): Remove.
744         (try_init_one_plugin): Pass gcc version to plugin_init.
745         (plugin_default_version_check): Both gcc and plugin versions are now
746         arguments.
747
748 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
749         
750         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
751         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
752         Remove special case testing for last insn of inner loops. Don't fail
753         if the loop ends with a jump, emit an extra nop instead.
754
755         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
756         DREGS rather than comparing directly.  Remove code that tries to
757         account for latencies.
758
759 2009-04-29  Richard Guenther  <rguenther@suse.de>
760
761         PR tree-optimization/39941
762         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
763         eliminating an indirect call.
764
765 2009-04-29  Richard Guenther  <rguenther@suse.de>
766
767         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
768         parameter.  Allow invariants as base if !require_lvalue.
769         (verify_gimple_assign_single): Adjust.
770
771 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
772
773         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
774         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
775         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
776         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
777         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
778         a VEC_SELECT.
779         * config/bfin/bfin.c (bfin_expand_builtin,
780         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
781
782 2009-04-28  Richard Guenther  <rguenther@suse.de>
783
784         * tree-vect-loop.c (get_initial_def_for_induction): Use
785         correct types for pointer increment.
786
787 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
788
789         * toplev.c (print_version): Update GMP version string calculation.
790
791 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
792
793         PR rtl-optimization/39938
794         * resource.c (init_resource_info): Add call to df_analyze.
795
796 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
797
798         * config/alpha/alpha.md (usegp): Cast the result of
799         alpha_find_lo_sum_using_gp to enum attr_usegp.
800         * config/alpha/alpha.c (override_options): Remove end-of-structure
801         marker element from cpu_table.  Use array size of cpu_table to handle
802         -mcpu and -mtune options.
803         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
804
805 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
806
807         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
808         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
809         tune_32 and tune_64.
810         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
811         support on PowerPC.
812         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
813         * config/rs6000/option-defaults.h: ... here.  New file.
814         (OPT_64, OPT_32): Define.
815         (MASK_64BIT): Define to 0 if not already defined.
816         (OPT_ARCH64, OPT_ARCH32): Define.
817         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
818         and tune_64.
819
820 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
821
822         * config/arm/arm.c (arm_override_options): Emit error on using
823         fpa with AAPCS.
824
825 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
826
827         PR rtl-optimization/39914
828         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
829         registers for allocnos created from user-defined variables only
830         when not optimizing.
831
832 2009-04-28  Richard Guenther  <rguenther@suse.de>
833
834         PR middle-end/39937
835         * fold-const.c (fold_binary): Use distribute_real_division only
836         on float types.
837
838 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
839
840         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
841         add hpux-stdint.h to tm_file.
842         (hppa[12]*-*-hpux11*): Ditto.
843         (ia64*-*-hpux*): Ditto.
844         * config/hpux-stdint.h: New.
845         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
846         __STDC_EXT__ for all compiles.
847         * config/pa/pa-hpux.h: Ditto.
848         * config/pa/pa-hpux10.h: Ditto.
849         * config/pa/pa-hpux11.h: Ditto.
850
851 2009-04-28  Catherine Moore  <clm@codesourcery.com>
852
853         * debug.h (set_name): Add comment.
854
855 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
856
857         PR target/39929
858         * config/darwin.c (machopic_gen_offset): Check
859         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
860         * config/arm/arm.c (require_pic_register): Likewise.
861
862 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
863
864         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
865         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
866         m32c_promote_prototypes): Delete.
867
868 2009-04-28  Michael Matz  <matz@suse.de>
869
870         PR middle-end/39922
871         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
872         constants.
873
874 2009-04-28  Richard Guenther  <rguenther@suse.de>
875
876         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
877
878 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
879
880         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
881         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
882         * config/arm/arm-tune.md: Regenerate.
883
884 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
885
886         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
887         block if there are complex incoming edges.
888         (sel_merge_blocks): Remove useless assert.
889         (sel_redirect_edge_and_branch): Check that edge was redirected.
890         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
891         (sel_find_rgns): Delete declaration.
892         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
893         the region when it is not a preheader.
894
895 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
896
897         PR c/39323
898         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
899
900 2009-04-28  Richard Guenther  <rguenther@suse.de>
901
902         * tree.h (SSA_NAME_VALUE): Remove.
903         (struct tree_ssa_name): Remove value_handle member.
904         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
905         array for jump threading.
906         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
907         SSA_NAME_VALUEs.
908         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
909         * tree-flow.h (threadedge_initialize_values): Declare.
910         (threadedge_finalize_values): Likewise.
911         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
912         (SSA_NAME_VALUE): Define.
913         (threadedge_initialize_values): New function.
914         (threadedge_finalize_values): Likewise.
915         * tree-ssa-dom.c (ssa_name_values): New global variable.
916         (SSA_NAME_VALUE): Define.
917         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
918
919 2009-04-28  Ira Rosen  <irar@il.ibm.com>
920
921         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
922         Use REPORT_VECTORIZED_LOCATIONS instead 
923         REPORT_VECTORIZED_LOOPS.
924         * tree-vectorizer.c (vect_verbosity_level): Make static.
925         (vect_loop_location): Rename to vect_location.
926         (vect_set_verbosity_level): Update comment.
927         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
928         and vect_location.
929         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
930         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
931         instead REPORT_UNVECTORIZED_LOOPS.
932         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
933         vect_loop_def to vect_external_def and vect_internal_def.
934         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
935         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
936         REPORT_UNVECTORIZED_LOCATIONS.
937         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
938         and vect_used_in_loop and to vect_unused_in_scope and 
939         vect_used_in_scope.
940         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
941         (vect_verbosity_level): Remove declaration.
942         (vect_analyze_operations): Likewise.
943         (vect_analyze_stmt): Declare.
944         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
945         REPORT_UNVECTORIZED_LOCATIONS.
946         (vect_get_loop_niters): Fix indentation.
947         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
948         (vect_analyze_loop_operations): New function.
949         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
950         vect_analyze_operations.
951         (vect_is_simple_reduction): Use new names.
952         (vectorizable_live_operation, vect_transform_loop): Likewise.
953         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
954         specify whether the data references can be a part of interleaving chain.
955         (vect_analyze_data_ref_dependence): Use new names.
956         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
957         (vect_create_addr_base_for_vector_ref): Remove redundant code.
958         * tree-vect-patterns.c (widened_name_p): Use new names.
959         (vect_recog_dot_prod_pattern): Likewise.
960         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
961         (process_use, vect_mark_stmts_to_be_vectorized, 
962         vect_model_simple_cost, vect_model_store_cost,
963         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
964         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
965         vectorizable_operation, vectorizable_type_demotion,
966         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
967         vectorizable_condition): Likewise.
968         (vect_analyze_operations): Split into vect_analyze_loop_operations
969         and ...
970         (vect_analyze_stmt): ... new function.
971         (new_stmt_vec_info): Use new names.
972         (vect_is_simple_use): Use new names and fix comment.
973         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
974         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
975
976 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
977
978         PR target/39911
979         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
980         and integer modes for x87 operands.  Do not ICE for unsupported size,
981         generate error instead.  Generate error for unsupported operand types.
982         ['z']: Do not handle HImode memory operands specially.  Warning
983         for floating-point operands.  Fallthru to 'Z' for unsupported operand
984         types.  Do not ICE for unsupported size, generate error instead.
985         (output_387_binary_op): Use %Z to output operands.
986         (output_fp_compare): Ditto.
987         (output_387_reg_move): Ditto.
988
989 2009-04-28  Ben Elliston  <bje@au.ibm.com>
990
991         PR c++/35652
992         Revert:
993
994         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
995
996         * builtins.c (c_strlen): Do not warn here.
997         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
998         * c-common.c (pointer_int_sum): Take an explicit location.
999         Warn about offsets out of bounds.
1000         * c-common.h (pointer_int_sum): Adjust declaration.
1001
1002 2009-04-27  Ian Lance Taylor  <iant@google.com>
1003
1004         * collect2.c (is_ctor_dtor): Change type of ret field in struct
1005         names to symkind.
1006         * dce.c (run_fast_df_dce): Change type of old_flags to int.
1007         * df-core.c (df_set_flags): Change return type to int.  Change
1008         type of old_flags to int.
1009         (df_clear_flags): Likewise.
1010         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
1011         (df_get_conditional_uses): Likewise.
1012         * df.h (df_set_flags, df_clear_flags): Update declarations.
1013         * dwarf2out.c (struct indirect_string_node): Change type of form
1014         field to enum dwarf_form.
1015         (AT_string_form): Change return type to enum dwarf_form.
1016         * fixed-value.c (fixed_compare): Add cast to enum type.
1017         * fwprop.c (update_df): Change 0 to VOIDmode.
1018         * gensupport.c: Change 0 to UNKNOWN.
1019         * gimple.h (gimple_cond_code): Add cast to enum type.
1020         * haifa-sched.c (reemit_notes): Add cast to enum type.
1021         * hooks.c (hook_int_void_no_regs): Remove function.
1022         * hooks.h (hook_int_void_no_regs): Remove declaration.
1023         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
1024         * predict.c (combine_predictions_for_insn): Add casts to enum type.
1025         * real.c (real_arithmetic): Add cast to enum type.
1026         (real_compare): Likewise.
1027         * target.h (struct gcc_target): Change return type of
1028         branch_target_register_class to enum reg_class.
1029         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
1030         default_branch_target_register_class.
1031         * targhooks.c (default_branch_target_register_class): New function.
1032         * targhooks.h (default_branch_target_register_class): Declare.
1033         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
1034         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
1035         cast to int.
1036         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
1037         ERROR_MARK.
1038         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
1039         vect_uninitialized_def.  Change 0 to ERROR_MARK.
1040         * tree-vect-stmts.c (supportable_widening_operation): Don't
1041         initialize icode1 and icode2.
1042         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
1043         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
1044         and to STD_C89.
1045         (cmn_err_flag_specs): Change 0 to STD_C89.
1046         (cmn_err_char_table): Likewise.
1047         * config/arm/arm.c (get_arm_condition_code): Change type of code
1048         to enum arm_cond_code.
1049         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
1050         (IWMMXT_BUILTIN2): Likewise.
1051         (neon_builtin_type_bits): Don't define typedef.
1052         (neon_builtin_datum): Change type of bits field to int.
1053         (arm_expand_neon_args): Add cast to enum type.
1054         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
1055         TLS_MODEL_NONE.
1056         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
1057         casts to enum type.
1058         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
1059         MIPS_FP_COND_f.
1060         * config/mips/mips.md (jal_macro): Return enum constant.
1061         (single_insn): Likewise.
1062         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
1063         CODE_FOR_nothing.
1064         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1065         casts to enum type.
1066         * config/s390/s390.c (s390_tune_flags): Change type to int.
1067         (s390_arch_flags): Likewise.
1068         (s390_handle_arch_option): Change flags field of struct pta to int.
1069         * config/s390/s390.h (s390_tune_flags): Update declaration.
1070         (s390_arch_flags): Likewise.
1071         * config/sh/sh.c (prepare_move_operands): Compare
1072         tls_symbolic_operand result with enum constant.
1073         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
1074         (sh_expand_prologue): Add cast to enum type.
1075         (sh_expand_epilogue): Likewise.
1076         (tls_symbolic_operand): Change return type to enum tls_model.
1077         (fpscr_set_from_mem): Add cast to enum type.
1078         (legitimize_pic_address): Compare tls_symbolic_operand result with
1079         enum constant.
1080         (sh_target_reg_class): Change return type to enum reg_class.
1081         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
1082         PROCESSOR_xxx.
1083         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
1084         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
1085         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
1086         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
1087         (delayed_branch, tls_call_delay): Likewise.
1088         (eligible_for_sibcall_delay): Likewise.
1089         (eligible_for_return_delay): Likewise. 
1090         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
1091         (spu_expand_builtin_1): Likewise.
1092
1093         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
1094         for all types of conversions.
1095         (output_init_element): Issue -Wc++-compat warning if needed when
1096         initializing a bitfield with enum type.
1097         * c-parser.c (c_parser_expression): Set original_type to
1098         original_type of right hand operand of comman operator.
1099
1100 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1101
1102         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
1103         grammar nits.
1104         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
1105         * doc/cpp.texi (Standard Predefined Macros)
1106         (Implementation-defined behavior): Likewise.
1107         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
1108         * doc/gimple.texi (GIMPLE Exception Handling)
1109         (@code{GIMPLE_ASSIGN}): Likewise.
1110         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
1111         * doc/invoke.texi (Warning Options, Optimize Options)
1112         (AVR Options, Darwin Options): Likewise.
1113         (Optimize Options): Reformulate -fwhole-program description.
1114         * doc/loop.texi (Lambda): Likewise.
1115         * doc/md.texi (Output Template, Define Constraints)
1116         (Standard Names, Insn Splitting): Likewise.
1117         * doc/options.texi (Option properties): Likewise.
1118         * doc/passes.texi (Tree-SSA passes): Likewise.
1119         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
1120         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
1121         (File Names and DBX): Likewise.
1122         * doc/trouble.texi (Incompatibilities): Likewise.
1123
1124 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1125
1126         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
1127         instruction is correct.
1128
1129 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
1130
1131         Allow non-constant arguments to conversion intrinsics.
1132         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
1133         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
1134         * spu.c (print_operand): Handle 'v' and 'w'.
1135         (exp2_immediate_p, spu_gen_exp2): Define.
1136         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
1137         spu_convtf_1): Update parameter descriptions.
1138         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
1139         * constraints.md ('v', 'w'): New.
1140         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
1141         Remove.
1142         (i2f, I2F): New define_mode_attr.
1143         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
1144         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
1145         fixuns_truncv4sfv4si2):  Update to use mode attribute.
1146         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
1147         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
1148         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
1149         patterns for combine.
1150
1151 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
1152
1153         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
1154         (cprop, hoist, pre, store_motion): New debug counters.
1155         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
1156         is not an RTL pass anymore.
1157         (pass_profiling): Remove extern decl for pass removed in 2005.
1158         (pass_gcse, pass_jump_bypass): Remove.
1159         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
1160         to 0 for clean state.
1161         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
1162         * cse.c (gate_handle_cse_after_global_opts,
1163         rest_of_handle_cse_after_global_opts): New functions.
1164         (pass_cse_after_global_opts): New pass, does local CSE.
1165         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
1166         (TV_CPROP): New timevar.
1167         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
1168         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
1169         (gcse_main, recompute_all_luids): Remove.
1170         (compute_hash_table_work): Call max_reg_num instead of reading
1171         max_gcse_regno.
1172         (cprop_jump): Don't set run_jump_opt_after_gcse.
1173         (constprop_register): Always allow to alter jumps.
1174         (cprop_insn): Likewise.
1175         (do_local_cprop): Likewise.
1176         (local_cprop_pass): Likewise.  Return non-zero if something changed.
1177         (cprop): Remove function, fold interesting bits into one_cprop_pass.
1178         (find_implicit_sets): Add note about missed optimization opportunity.
1179         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
1180         pass_rtl_cprop execute function.
1181         Don't bother tracking the pass number, each pass gets its own dumpfile
1182         now anyway.
1183         Always allow to alter jumpsand bypass jumps.
1184         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
1185         will just find no suitable set.
1186         (pre_edge_insert): Fix dumping, this function is for PRE only.
1187         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
1188         pass_rtl_pre execute function.
1189         (hoist_code): Return non-zero if something changed.  Keep track of
1190         substitutions and insertions for statistics gathering similar to PRE.
1191         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
1192         called from the pass_rtl_hoist execute function.  Show pass statistics.
1193         (compute_store_table): Use max_reg_num directly instead of using the
1194         formerly global max_gcse_regno.
1195         (build_store_vectors): Likewise.
1196         (replace_store_insn): Fix dumping.
1197         (store_motion): Rename to ...
1198         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
1199         pass, called from the pass_rtl_store_motion execute function.  Keep
1200         track of substitutions and insertions for statistics gathering similar
1201         to PRE.
1202         (bypass_jumps): Remove, fold interesting bits into ...
1203         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
1204         from the pass_rtl_cprop execute function.
1205         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
1206         pass_jump_bypass): Remove.
1207         (gate_handle_gcse, rest_of_handle_gcse): Remove.
1208         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
1209         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
1210         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
1211         (gate_rtl_store_motion, execute_rtl_store_motion,
1212         pass_rtl_store_motion): New.
1213         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
1214         make it clear that -fcse-skip-blocks is a no-op for backward compat.
1215         * passes.c (init_optimization_passes): Remove pass_gcse and
1216         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
1217         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
1218         instead of pass_jump_bypass.
1219
1220 2009-04-27  Richard Guenther  <rguenther@suse.de>
1221
1222         PR middle-end/39928
1223         * gimplify.c (gimplify_expr): If we are required to create
1224         a temporary make sure it ends up as register.
1225
1226 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
1227
1228         PR target/39903
1229         * config/i386/i386.c (construct_container): Don't call
1230         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
1231         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
1232
1233 2009-04-27  Michael Matz  <matz@suse.de>
1234
1235         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
1236         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
1237         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
1238         (dump_replaceable_exprs): Take a bitmap.
1239         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
1240         array.
1241         (expand_gimple_basic_block): Likewise.
1242         * tree-ssa-ter.c (struct temp_expr_table_d): Make
1243         replaceable_expressions member a bitmap.
1244         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
1245         (mark_replaceable): Likewise.
1246         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
1247         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
1248
1249 2009-04-27  Richard Guenther  <rguenther@suse.de>
1250
1251         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
1252         (verify_stmts): Dispatch to gimple/type verification code.
1253         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
1254         issue with call argument types.
1255
1256 2009-04-27  Michael Matz  <matz@suse.de>
1257
1258         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
1259         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
1260         to above.
1261
1262 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
1263             Eric Botcazou  <ebotcazou@adacore.com>
1264
1265         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
1266         a label's basic block.
1267         (mark_target_live_regs): Tidy and rework obsolete comments.
1268         Change back DF problem to LIVE.  If a label starts a basic block,
1269         assume that all registers that used to be live then still are.
1270         (init_resource_info): If a label starts a basic block, set its
1271         BLOCK_FOR_INSN accordingly.
1272         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
1273
1274 2009-04-27  Richard Guenther  <rguenther@suse.de>
1275
1276         * tree-flow-inline.h (function_ann): Remove.
1277         (get_function_ann): Likewise.
1278         * tree-dfa.c (create_function_ann): Remove.
1279         * tree-flow.h (struct static_var_ann_d): Remove.
1280         (struct function_ann_d): Likewise.
1281         (union tree_ann_d): Remove fdecl member.
1282         (function_ann_t): Remove.
1283         (function_ann, get_function_ann, create_function_ann): Remove
1284         declarations.
1285
1286 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
1287
1288         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
1289
1290 2009-04-27  Jan Hubicka  <jh@suse.cz>
1291
1292         * ipa-pure-const.c (struct funct_state_d): New fields
1293         state_previously_known, looping_previously_known; remove
1294         state_set_in_source.
1295         (analyze_function): Use new fields.
1296         (propagate): Avoid assumption that state_set_in_source imply
1297         nonlooping.
1298
1299         * tree-ssa-loop-niter.c (finite_loop_p): New function.
1300         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
1301         * cfgloop.h (finite_loop_p): Declare.
1302
1303 2009-04-26  Michael Matz  <matz@suse.de>
1304
1305         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
1306
1307 2009-04-26  Michael Matz  <matz@suse.de>
1308
1309         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
1310         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
1311         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
1312         pass_mark_used_blocks): Remove.
1313         * tree-optimize.c (pass_free_datastructures,
1314         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
1315         * passes.c (init_optimization_passes): Don't call
1316         pass_mark_used_blocks, remove dead code.
1317
1318 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
1319
1320         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
1321         * tree-ssa-live.h (register_ssa_partition): Likewise.
1322
1323 2009-04-26  Michael Matz  <matz@suse.de>
1324
1325         Expand from SSA.
1326         * builtins.c (fold_builtin_next_arg): Handle SSA names.
1327         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
1328         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
1329         SSA names. 
1330         (compare_pairs): Swap cost comparison.
1331         (coalesce_ssa_name): Don't use change_partition_var.
1332         * tree-nrv.c (struct nrv_data): Add modified member.
1333         (finalize_nrv_r): Set it.
1334         (tree_nrv): Use it to update statements.
1335         (pass_nrv): Require PROP_ssa.
1336         * tree-mudflap.c (mf_decl_cache_locals,
1337         mf_build_check_statement_for): Use make_rename_temp.
1338         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
1339         * alias.c (find_base_decl): Handle SSA names.
1340         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
1341         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
1342         * rtl.h (set_reg_attrs_for_parm): Declare.
1343         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
1344         to "optimized", remove unused locals at finish.
1345         (execute_free_datastructures): Make global, call
1346         delete_tree_cfg_annotations.
1347         (execute_free_cfg_annotations): Don't call
1348         delete_tree_cfg_annotations.
1349
1350         * ssaexpand.h: New file.
1351         * expr.c (toplevel): Include ssaexpand.h.
1352         (expand_assignment): Handle SSA names the same as register variables.
1353         (expand_expr_real_1): Expand SSA names.
1354         * cfgexpand.c (toplevel): Include ssaexpand.h.
1355         (SA): New global variable.
1356         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
1357         (SSAVAR): New macro.
1358         (set_rtl): New helper function.
1359         (add_stack_var): Deal with SSA names, use set_rtl.
1360         (expand_one_stack_var_at): Likewise.
1361         (expand_one_stack_var): Deal with SSA names.
1362         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
1363         before unique numbers.
1364         (expand_stack_vars): Use set_rtl.
1365         (expand_one_var): Accept SSA names, add asserts for them, feed them
1366         to above subroutines.
1367         (expand_used_vars): Expand all partitions (without default defs),
1368         then only the local decls (ignoring those expanded already).
1369         (expand_gimple_cond): Remove edges when jumpif() expands an
1370         unconditional jump.
1371         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
1372         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
1373         SSA name.
1374         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
1375         members of SA; deal with PARM_DECL partitions here; expand
1376         all PHI nodes, free tree datastructures and SA.  Commit instructions
1377         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
1378         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
1379         info and statements at start, collect garbage at finish.
1380         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
1381         (VAR_ANN_PARTITION) Remove.
1382         (change_partition_var): Don't declare.
1383         (partition_to_var): Always return SSA names.
1384         (var_to_partition): Only accept SSA names.
1385         (register_ssa_partition): Only check argument.
1386         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
1387         member.
1388         (delete_var_map): Don't free it.
1389         (var_union): Only accept SSA names, simplify.
1390         (partition_view_init): Mark only useful SSA names as used.
1391         (partition_view_fini): Only deal with SSA names.
1392         (change_partition_var): Remove.
1393         (dump_var_map): Use ssa_name instead of partition_to_var member.
1394         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
1395         basic blocks.
1396         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
1397         (struct _elim_graph): New member const_dests; nodes member vector of
1398         ints.
1399         (set_location_for_edge): New static helper.
1400         (create_temp): Remove.
1401         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
1402         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
1403         (new_elim_graph): Allocate const_dests member.
1404         (clean_elim_graph): Truncate const_dests member.
1405         (delete_elim_graph): Free const_dests member.
1406         (elim_graph_size): Adapt to new type of nodes member.
1407         (elim_graph_add_node): Likewise.
1408         (eliminate_name): Likewise.
1409         (eliminate_build): Don't take basic block argument, deal only with
1410         partition numbers, not variables.
1411         (get_temp_reg): New static helper.
1412         (elim_create): Use it, deal with RTL temporaries instead of trees.
1413         (eliminate_phi): Adjust all calls to new signature.
1414         (assign_vars, replace_use_variable, replace_def_variable): Remove.
1415         (rewrite_trees): Only do checking.
1416         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
1417         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
1418         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
1419         contains_tree_r, MAX_STMTS_IN_LATCH,
1420         process_single_block_loop_latch, analyze_edges_for_bb,
1421         perform_edge_inserts): Remove.
1422         (expand_phi_nodes): New global function.
1423         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
1424         functions, initialize new parameter, remember partitions having a
1425         default def.
1426         (finish_out_of_ssa): New global function.
1427         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
1428         don't reset in_ssa_p here, don't disable TER when mudflap.
1429         (pass_del_ssa): Remove.
1430         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
1431         partition members.
1432         (execute_free_datastructures): Declare.
1433         * Makefile.in (SSAEXPAND_H): New variable.
1434         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
1435         * basic-block.h (commit_one_edge_insertion): Declare.
1436         * passes.c (init_optimization_passes): Move pass_nrv and
1437         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
1438         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
1439         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
1440         (redirect_branch_edge): Deal with super block when expanding, split
1441         out jump patching itself into ...
1442         (patch_jump_insn): ... here, new static helper.
1443
1444 2009-04-26  Michael Matz  <matz@suse.de>
1445
1446         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
1447         beyond num_ssa_names.
1448         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
1449         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
1450
1451 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1452
1453         PR inline-asm/39543
1454         * fwprop.c (forward_propagate_asm): New function.
1455         (forward_propagate_and_simplify): Propagate also into __asm, if it
1456         doesn't increase the number of referenced registers.
1457
1458         PR c/39889
1459         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1460
1461 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1462
1463         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1464         note_nonlocal_vla_type for nonlocal VLAs.
1465         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1466         contains_remapped_vars, remap_vla_decls): New functions.
1467         (convert_nonlocal_reference_stmt): If not optimizing, call
1468         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1469         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1470         if it wasn't found in var_map.
1471         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
1472         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1473         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1474         declare_vars.
1475         * gimplify.c (nonlocal_vlas): New variable.
1476         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1477         referenced VLAs.
1478         (gimplify_body): Create and destroy nonlocal_vlas.
1479
1480         * dwarf2out.c (loc_descr_plus_const): New function.
1481         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1482         mem_loc_descriptor, loc_descriptor_from_tree_1,
1483         descr_info_loc, gen_variable_die): Use it.
1484
1485         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1486         !TREE_STATIC VAR_DECLs.
1487         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1488         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1489         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
1490         DECL_BY_REFERENCE is valid.
1491         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1492         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1493         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1494         Copy DECL_BY_REFERENCE.
1495         (struct nesting_copy_body_data): New type.
1496         (nesting_copy_decl): New function.
1497         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1498         if they have variable length.
1499
1500 2009-04-26  Michael Matz  <matz@suse.de>
1501
1502         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1503         mark new temporaries for renaming.
1504
1505 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1506
1507         PR c/39581
1508         * c-decl.c (global_bindings_p): Return negative value.
1509         (c_variable_size): New.  Based on variable_size from
1510         stor-layout.c.
1511         (grokdeclarator): Call c_variable_size not variable_size.
1512
1513 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
1514
1515         * config/i386/i386.c (print_operand) ['z']: Fix typo.
1516
1517 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
1518
1519         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1520         Redefine it to just use mingw/include.
1521         (ASM_SPEC): Rules for -m32 and -m64.
1522         (LINK_SPEC): Use Likewise.
1523         (SPEC_32): New define.
1524         (SPEC_64): Likewise.
1525         (SUB_LINK_SPEC): Likewise.
1526         (MULTILIB_DEFAULTS): New define.
1527         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1528         Add multilib options.
1529         (MULTILIB_DIRNAMES): Likewise.
1530         (MULTILIB_OSDIRNAMES): Likewise.
1531         (LIBGCC): Likewise.
1532         (INSTALL_LIBGCC): Likewise.
1533
1534 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1535
1536         PR c/39556
1537         * c-tree.h (enum c_inline_static_type): New.
1538         (record_inline_static): Declare.
1539         * c-decl.c (struct c_inline_static, c_inline_statics,
1540         record_inline_static, check_inline_statics): New.
1541         (pop_file_scope): Call check_inline_statics.
1542         (start_decl): Call record_inline_static instead of pedwarning
1543         directly for static in inline function.
1544         * c-typeck.c (build_external_ref): Call record_inline_static
1545         instead of pedwarning directly for static referenced in inline
1546         function.
1547
1548 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
1549
1550         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1551         not new but only being rescanned.
1552         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1553         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1554         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1555         record_set_info, compute_set, grealloc): Remove.
1556         (recompute_all_luids): New function.
1557         (gcse_main): Don't compute sets, and don't do related memory
1558         allocations/free-ing.  If something changed before the end of the
1559         pass, update LUIDs using recompute_all_luids.
1560         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
1561         (free_gcse_mem): Don't free it either.
1562         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1563         Use the df insn LUIDs.
1564         (load_killed_in_block): Likewise.
1565         (compute_hash_table_work): Don't compute reg_set_in_block.
1566         (compute_transp): Use DF_REG_DEF_CHAINs.
1567         (local_cprop_pass): Don't use compute_sets and related functions.
1568         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1569         Use get_max_uid() instead of max_cuid.
1570         (insert_insn_end_basic_block, pre_insert_copy_insn,
1571         update_ld_motion_stores): Don't try to
1572         keep reg_set tables up to date.
1573         (pre_insert_copies): Use df insn LUIDs.
1574         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1575         (reg_set_info): Don't use extra bitmap argument.
1576         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
1577         information to compute regs_set_in_block.
1578         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1579         (bypass_jumps): Don't use compute_sets and friends.
1580
1581 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1582
1583         PR testsuite/39710
1584         * opts.c (undocumented_msg): Do not leave blank even with
1585         ENABLE_CHECKING.
1586
1587 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1588
1589         * c-decl.c (build_enumerator): Allow values folding to integer
1590         constants but not integer constant expressions with a pedwarn if
1591         pedantic.
1592
1593 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1594
1595         PR c/39582
1596         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1597         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1598         type is an integer constant.
1599
1600 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1601
1602         PR target/39897
1603         * config/i386/i386.c (print_operand) ['z']: Revert handling of
1604         HImode operands.
1605
1606 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1607
1608         PR c/39564
1609         * c-decl.c (grokdeclarator): Diagnose declarations of functions
1610         with variably modified return type and no storage class
1611         specifiers, except for the case of nested functions.  Distinguish
1612         extern declarations of functions with variably modified return
1613         types from those of objects with variably modified types.
1614
1615 2009-04-25  Jan Hubicka  <jh@suse.cz>
1616
1617         * tree.c (list_equal_p): New function.
1618         * tree.h (list_equal_p): Declare.
1619         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1620         basic_block_def, basic_block, const_basic_block): New.
1621         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1622         (redirect_eh_edge): New function.
1623         (make_eh_edge_update_phi): EH edges are not abnormal.
1624         * except.c: Include tree-flow.h.
1625         (list_match): New function.
1626         (eh_region_replaceable_by_p): New function.
1627         (replace_region): New function.
1628         (hash_type_list): New function.
1629         (hash_eh_region): New function.
1630         (eh_regions_equal_p): New function.
1631         (merge_peers): New function.
1632         (remove_unreachable_regions): Verify EH tree when checking;
1633         merge peers.
1634         (copy_eh_region_1): New function.
1635         (copy_eh_region): New function.
1636         (push_reachable_handler): New function.
1637         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1638         regions without label but with live RESX.
1639         * except.h (redirect_eh_edge_to_label): New.
1640         * tree-flow.h (redirect_eh_edge): New.
1641         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1642         basic_block_def, basic_block, const_basic_block): Remove.
1643         * Makefile.in (except.o): Add dependency on tree-flow.h
1644         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1645         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1646         Remove.
1647
1648 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
1649
1650         PR bootstrap/39645
1651         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1652         on the destination of memcpy.
1653
1654 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
1655
1656         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1657         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1658         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1659
1660 2009-04-25  Jan Hubicka  <jh@suse.cz>
1661
1662         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1663         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1664         to be reached by different label than left.
1665         (update_eh_edges): Update comment; remove edge_to_remove if possible
1666         and return true if suceeded.
1667         (cleanup_empty_eh): Accept sharing map; handle shared regions.
1668         (cleanup_eh): Compute sharing map.
1669         * except.c (remove_eh_handler_and_replace): Add argument if we should
1670         update regions.
1671         (remove_unreachable_regions): Update for label sharing.
1672         (label_to_region_map): Likewise.
1673         (get_next_region_sharing_label): New function.
1674         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1675         prev_try pointers.
1676         (remove_eh_handler): Update.
1677         (remove_eh_region_and_replace_by_outer_of): New function.
1678         * except.h (struct eh_region): Add next_region_sharing_label.
1679         (remove_eh_region_and_replace_by_outer_of,
1680         get_next_region_sharing_label): Declare.
1681         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1682
1683 2009-04-25  Jan Hubicka  <jh@suse.cz>
1684
1685         * tree-cfg.c (split_critical_edges): Split also edges where we can't
1686         insert code even if they are not critical.
1687
1688 2009-04-25  Jan Hubicka  <jh@suse.cz>
1689
1690         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1691         (gimple_can_remove_branch_p): EH edges won't remove branch by
1692         redirection.
1693         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1694         updating of non-abnormal EH edges.
1695         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1696         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1697         (split_critical_edges): Split also edges where emitting code on them
1698         will lead to splitting later.
1699
1700 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1701             H.J. Lu  <hongjiu.lu@intel.com>
1702
1703         PR target/39590
1704         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1705         the configured assembler supports fildq and fistpq mnemonics.
1706         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1707         * configure: Regenerated.
1708         * config.in: Ditto.
1709
1710         * config/i386/i386.c (print_operand): Handle 'Z'.
1711         ['z']: Remove handling of special fild/fist suffixes.
1712         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1713         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1714         suffix of fild insn.
1715         (*floatsi<mode>2_vector_mixed): Ditto.
1716         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1717         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1718         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1719         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1720         * config/i386/gas.h (GAS_MNEMONICS): Remove.
1721
1722 2009-04-25  Ben Elliston  <bje@au.ibm.com>
1723  
1724         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1725         the source of a set operation.
1726
1727 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
1728
1729         * target.h (struct gcc_target): Add case_values_threshold field.
1730         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1731         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1732         * targhooks.c (default_case_values_threshold): New function.
1733         * targhooks.h (default_case_values_threshold): Declare function.
1734         * stmt.c (expand_case): Use case_values_threshold target hook.
1735         * expr.h (case_values_threshold): Remove declartation.
1736         * expr.c (case_values_threshold): Remove function.
1737         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1738
1739         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1740         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1741         (avr_case_values_threshold): Declare as static.
1742         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1743
1744         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1745         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1746         (mn10300_case_values_threshold): New function.
1747
1748 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1749
1750         * ira.c (setup_cover_and_important_classes): Add enum cast.
1751
1752 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1753
1754         * genpreds.c (write_enum_constraint_num): Output definition of
1755         CONSTRAINT_NUM_DEFINED_P macro.
1756         * ira.c (setup_cover_and_important_classes): Use
1757         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1758         
1759 2009-04-24  DJ Delorie  <dj@redhat.com>
1760
1761         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1762         __SH2A_SINGLE_ONLY__ also.
1763
1764 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
1765
1766         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1767         (movdf_internal): Ditto.
1768         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1769         SFmode and DFmode constants.
1770         (ia64_print_operand): Add 'G' format for printing
1771         floating point constants.
1772
1773 2009-04-24  Richard Guenther  <rguenther@suse.de>
1774
1775         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
1776         from unsigned additions.
1777
1778 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
1779
1780         * c-typeck.c (set_init_index): Allow array designators that are
1781         not integer constant expressions with a pedwarn if pedantic.
1782
1783 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1784
1785         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
1786         zero if no overlap in nonzero bits between the operands.
1787
1788 2009-04-24  Ian Lance Taylor  <iant@google.com>
1789
1790         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
1791         (record_dead_and_set_regs): Likewise.
1792         * df.h (struct df_mw_hardreg): Change flags field to int.
1793         (struct df_base_ref): Likewise.
1794         (struct df): Change changeable_flags field to int.
1795         * df-scan.c (df_defs_record): Change clobber_flags to int.
1796         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
1797         constants rather than #define macros.
1798         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
1799         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
1800         (enum dwarf_calling_convention): Likewise.
1801         (enum dwarf_line_number_x_ops): Likewise.
1802         (enum dwarf_call_frame_info): Likewise.
1803         (enum dwarf_source_language): Likewise.
1804         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
1805         (add_calling_convention_attribute): Likewise.
1806         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
1807         (combine_comparisons): Change compcode to int.  Add cast to enum type.
1808         * genrecog.c (maybe_both_true_2): Change c to int.
1809         (write_switch): Likewise.  Add cast to enum type.
1810         * gimplify.c (gimplify_omp_for): Handle return values from
1811         gimplify_expr using MIN rather than bitwise or.
1812         (gimplify_expr): Add cast to enum type.
1813         * ipa-prop.c (update_jump_functions_after_inlining): Change
1814         IPA_BOTTOM to IPA_JF_UNKNOWN.
1815         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
1816         Add casts to enum type.
1817         (setup_cover_and_important_classes): Change cl to int.  Add casts
1818         to enum type.
1819         (setup_class_translate): Change cl and mode to int.
1820         (ira_init_once): Change mode to int.
1821         (free_register_move_costs): Likewise.
1822         (setup_prohibited_mode_move_regs): Add casts to enum type.
1823         * langhooks.c (add_builtin_function_common): Rework assertion that
1824         value fits bitfield.
1825         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
1826         * omega.c (omega_do_elimination): Avoid math on enum types.
1827         * optabs.c (expand_vec_shift_expr): Remove casts to int.
1828         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
1829         int local to handle integral_argment value.
1830         * regmove.c (try_auto_increment): Change PUT_MODE to
1831         PUT_REG_NOTE_KIND.
1832         * reload.c (push_secondary_reload): Add casts to enum type.
1833         (secondary_reload_class, find_valid_class): Likewise.
1834         * reload1.c (emit_input_reload_insns): Likewise.
1835         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
1836         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
1837         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
1838         constant.
1839         * tree.c (build_common_builtin_nodes): Add casts to enum type.
1840         * tree-complex.c (complex_lattice_t): Typedef to int rather than
1841         enum type.
1842         (expand_complex_libcall): Add casts to enum type.
1843         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
1844         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
1845         with ERROR_MARK, not NUM_TREE_CODES.
1846         (vect_create_epilog_for_reduction): Likewise.
1847         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
1848         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
1849         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
1850         enum machine_mode.
1851         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
1852         vect_unused_in_loop.  Change 0 to loop_vect.
1853         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
1854         * var-tracking.c (get_init_value): Change return type to enum
1855         var_init_status.
1856         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
1857         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
1858         arm_fp_model.
1859         (arm_override_options): Add casts to enum type.
1860         (arm_emit_tls_decoration): Likewise.
1861         * config/i386/i386.c (ix86_function_specific_restore): Add casts
1862         to enum type.
1863         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
1864         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
1865         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
1866         enum type.
1867         * config/s390/s390.c (code_for_builtin_64): Change to array of
1868         enum insn_code.
1869         (code_for_builtin_31): Likewise.
1870         (s390_expand_builtin): Change code_for_builtin to enum insn_code
1871         const *.
1872         * config/sparc/sparc.c (sparc_override_options): Change value
1873         field in struct code_model to enum cmodel.  In initializer change
1874         0 to NULL and add cast to enum type.
1875
1876         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
1877         Change all callers.  Issue a -Wc++-compat warning using
1878         lhs_origtype if necessary.
1879         (convert_for_assignment): Issue -Wc++-compat warnings about
1880         invalid conversions to enum type on assignment.
1881         * c-common.h (build_modify_expr): Update declaration.
1882
1883 2009-04-24  Nick Clifton  <nickc@redhat.com>
1884
1885         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
1886         (function_arg_advance): Likewise.
1887         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
1888         5th alternative.
1889
1890 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1891
1892         * config/s390/constraints.md ('I', 'J'): Fix condition.
1893
1894 2009-04-24  Diego Novillo  <dnovillo@google.com>
1895
1896         * gengtype-parse.c (parse_error): Add newline after message.
1897
1898 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1899
1900         * config/i386/sse.md (avxmodesuffixs): Removed.
1901         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
1902         (*avx_pinsr<ssevecsize>): This.
1903
1904 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1905
1906         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
1907         follow chains of regs with a single definition, and allow expressions
1908         that are function_invariant_p.
1909         (simple_rhs_p): Allow expressions that are function_invariant_p.
1910
1911 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
1912
1913         PR middle-end/39867
1914         * fold-const.c (fold_cond_expr_with_comparison): When folding
1915         > and >= to MAX, make sure the MAX uses the same type as the
1916         comparison's operands.
1917
1918 2009-04-24  Nick Clifton  <nickc@redhat.com>
1919
1920         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
1921         addressing for DImode accesses.
1922         (frv_print_operand_address): Handle PLUS case.
1923         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
1924
1925 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
1926
1927         PR rtl-optimization/39794
1928         * alias.c (canon_true_dependence): Add x_addr argument.
1929         * rtl.h (canon_true_dependence): Adjust prototype.
1930         * cse.c (check_dependence): Adjust canon_true_dependence callers.
1931         * cselib.c (cselib_invalidate_mem): Likewise.
1932         * gcse.c (compute_transp): Likewise.
1933         * dse.c (scan_reads_nospill): Likewise.
1934         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
1935         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
1936         canon_base_addr of the group, plus optional offset.
1937         (struct group_info): Rename canon_base_mem to
1938         canon_base_addr.
1939         (get_group_info): Set canon_base_addr to canon_rtx of base, not
1940         canon_rtx of base_mem.
1941
1942 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
1943
1944         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1945         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
1946
1947 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1948
1949         * config/spu/spu-builtins.h: Delete file.
1950
1951         * config/spu/spu.h (enum spu_builtin_type): Move here from
1952         spu-builtins.h.
1953         (struct spu_builtin_description): Likewise.  Add GTY marker.
1954         Do not use enum spu_function_code or enum insn_code.
1955         (spu_builtins): Add extern declaration.
1956
1957         * config/spu/spu.c: Do not include "spu-builtins.h".
1958         (enum spu_function_code, enum spu_builtin_type_index,
1959         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
1960         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
1961         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
1962         unsigned_V2DI_type_node): Move here from spu-builtins.h.
1963         (spu_builtin_types): Make static.  Add GTY marker.
1964         (spu_builtins): Add extern declaration with GTY marker.
1965         Include "gt-spu.h".
1966
1967         * config/spu/spu-c.c: Do not include "spu-builtins.h".
1968         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
1969         Check programmatically whether all parameters are scalar.
1970
1971         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
1972
1973 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1974
1975         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
1976         assignment from the constructor either if the target is volatile.
1977
1978 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
1979
1980         * config/arm/arm.md (insv): Do not share operands[0].
1981
1982 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1983
1984         * config/vxlib-tls.c (active_tls_threads): Delete.
1985         (delete_hook_installed): New.
1986         (tls_delete_hook): Don't delete the delete hook.
1987         (tls_destructor): Delete it here.
1988         (__gthread_set_specific): Adjust installing the delete hook.
1989         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
1990         __gthread_leave_tsd_dtor_context.
1991
1992 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
1993
1994         * c-format.c (gcc_tdiag_char_table): Add support for %E.
1995
1996 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
1997
1998         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
1999         enum type.
2000         (alpha_rtx_costs): Ditto.
2001         (emit_unlikely_jump): Use add_reg_note.
2002         (emit_frame_store_1): Ditto.
2003         (alpha_expand_prologue): Ditto.
2004         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2005         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
2006
2007 2009-04-23  Nick Clifton  <nickc@redhat.com>
2008
2009         * config/v850/v850.md (epilogue): Remove suppressed code.
2010         (return): Rename to return_simple and remove test of frame size.
2011         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
2012         to gen_return_simple.
2013
2014 2009-04-22  Jing Yu  <jingyu@google.com>
2015
2016         PR testsuite/39781
2017         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
2018
2019 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2020
2021         PR C/31499
2022         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
2023         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
2024         value is a VECTOR_CST, the element type is the element type of the
2025         vector.
2026
2027 2009-04-22  DJ Delorie  <dj@redhat.com>
2028
2029         * config/m32c/m32c.h: Update GTY annotations to new syntax.
2030
2031 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
2032
2033         * alias.c (find_base_term): Move around LO_SUM case, so that
2034         CONST falls through into PLUS/MINUS handling.
2035
2036         PR c/39855
2037         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
2038         into 0, use omit_one_operand.
2039
2040 2009-04-23  Ben Elliston  <bje@au.ibm.com>
2041
2042         * config/rs6000/linux-unwind.h (get_regs): Remove type
2043         puns. Change the type of `pc' to an array of unsigned ints and
2044         update all users.  Constify frame24.
2045
2046 2009-04-22  DJ Delorie  <dj@redhat.com>
2047
2048         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
2049         declarations before code.
2050         (current_function_special_page_vector): Likewise.
2051         (m32c_expand_insv): Silence a warning.
2052
2053 2009-04-21  Taras Glek  <tglek@mozilla.com>
2054
2055         * alias.c: Update GTY annotations to new syntax.
2056         * basic-block.h: Likewise.
2057         * bitmap.h: Likewise.
2058         * c-common.h: Likewise.
2059         * c-decl.c: Likewise.
2060         * c-parser.c: Likewise.
2061         * c-pragma.c: Likewise.
2062         * c-tree.h: Likewise.
2063         * cfgloop.h: Likewise.
2064         * cgraph.h: Likewise.
2065         * config/alpha/alpha.c: Likewise.
2066         * config/arm/arm.h: Likewise.
2067         * config/avr/avr.h: Likewise.
2068         * config/bfin/bfin.c: Likewise.
2069         * config/cris/cris.c: Likewise.
2070         * config/darwin.c: Likewise.
2071         * config/frv/frv.c: Likewise.
2072         * config/i386/i386.c: Likewise.
2073         * config/i386/i386.h: Likewise.
2074         * config/i386/winnt.c: Likewise.
2075         * config/ia64/ia64.h: Likewise.
2076         * config/iq2000/iq2000.c: Likewise.
2077         * config/mips/mips.c: Likewise.
2078         * config/mmix/mmix.h: Likewise.
2079         * config/pa/pa.c: Likewise.
2080         * config/pa/pa.h: Likewise.
2081         * config/rs6000/rs6000.c: Likewise.
2082         * config/s390/s390.c: Likewise.
2083         * config/sparc/sparc.c: Likewise.
2084         * config/xtensa/xtensa.c: Likewise.
2085         * cselib.h: Likewise.
2086         * dbxout.c: Likewise.
2087         * dwarf2out.c: Likewise.
2088         * except.c: Likewise.
2089         * except.h: Likewise.
2090         * fixed-value.h: Likewise.
2091         * function.c: Likewise.
2092         * function.h: Likewise.
2093         * gimple.h: Likewise.
2094         * integrate.c: Likewise.
2095         * optabs.c: Likewise.
2096         * output.h: Likewise.
2097         * real.h: Likewise.
2098         * rtl.h: Likewise.
2099         * stringpool.c: Likewise.
2100         * tree-data-ref.c: Likewise.
2101         * tree-flow.h: Likewise.
2102         * tree-scalar-evolution.c: Likewise.
2103         * tree-ssa-address.c: Likewise.
2104         * tree-ssa-alias.h: Likewise.
2105         * tree-ssa-operands.h: Likewise.
2106         * tree.c: Likewise.
2107         * tree.h: Likewise.
2108         * varasm.c: Likewise.
2109         * varray.h: Likewise.
2110         * vec.h: Likewise.
2111         * coretypes.h: Do not define GTY macro if it is already defined.
2112         * doc/gty.texi: Update GTY documentation to new syntax.
2113         * gengtype-lex.l: Enforce attribute-like syntax for GTY
2114         annotations on structs.
2115         * gengtype-parse.c: Likewise.
2116
2117 2009-04-22  Mark Heffernan  <meheff@google.com>
2118
2119         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
2120
2121 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2122
2123         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
2124         where appropriate.
2125
2126 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
2127
2128         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
2129         the same as a PLUS without a shift.  Increase the cost of a
2130         CONST_INT in MULT.
2131
2132 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2133
2134         * Makefile.in: Update dependencies.
2135         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
2136         * errors.h: Remove bogus comment about compatibility.
2137         (warning): Update declaration.
2138         * genautomata.c: Update all calls to warning.
2139         * gimple.c: Do not include errors.h. Include toplev.h.
2140         * tree-ssa-structalias.c: Do not include errors.h.
2141         * omega.c: Likewise.
2142         * tree-ssa-reassoc.c: Likewise.
2143         * config/spu/spu-c.c: Likewise.
2144         * config/spu/t-spu-elf: Update dependencies.
2145
2146 2009-04-22  Richard Guenther  <rguenther@suse.de>
2147
2148         PR tree-optimization/39824
2149         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
2150         make sure the types are compatible.
2151
2152 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2153
2154         PR c++/14875
2155         * c-common.c (c_parse_error): Take a token_flags parameter.
2156         Use token_type for the token type instead.
2157         Pass token_flags to cpp_type2name.
2158         * c-common.h (c_parse_error): Update declaration.
2159         * c-parser.c (c_parser_error): Pass 0 as token flags.
2160
2161 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
2162
2163         PR rtl-optimization/39580
2164         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
2165         
2166 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2167
2168         * function.c (expand_function_end): Do not emit a jump to the "naked"
2169         return label for fall-through returns.
2170         * except.c (sjlj_emit_function_exit): Always place the call to the
2171         unregister function at the location installed by expand_function_end.
2172
2173 2009-04-22  Richard Guenther  <rguenther@suse.de>
2174
2175         PR tree-optimization/39845
2176         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
2177         (gen_inbound_check): Likewise.
2178
2179 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2180
2181         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
2182         padding for PPC.
2183         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
2184         * config/vxlib.c (__gthread_once): Add race guard for PPC.
2185
2186 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2187
2188         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
2189         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
2190         shift counts to avoid out-of-bounds array accesses.
2191
2192 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2193
2194         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
2195         (Pmode): Move above.
2196
2197 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
2198
2199         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
2200         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
2201         GET_CODE macro.  Use IN_RANGE macro where appropriate.
2202         * config/alpha/alpha.h: Ditto.
2203         * config/alpha/alpha.md: Ditto.
2204         * config/alpha/constraints.md: Ditto.
2205         * config/alpha/predicates.md: Ditto.
2206         
2207 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
2208
2209         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
2210         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2211         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2212         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2213         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2214         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2215         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2216         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2217         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2218         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2219         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2220         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2221         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2222         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2223         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2224         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2225         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2226         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2227         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2228         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2229         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2230         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2231         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2232         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2233         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2234         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2235         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
2236
2237 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2238
2239         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
2240         references from comments.
2241         * cfgbuild.c: (count_basic_blocks): Delete.
2242         (find_basic_blocks_1): Delete.
2243         (find_basic_blocks): Delete.
2244         * except.c (finish_eh_generation): Make static.  Move comment from
2245         except.h here.  Remove find_basic_blocks references from comments.
2246         * except.h (finish_eh_generation): Delete.
2247         * basic-block.h (find_basic_blocks): Delete.
2248         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
2249
2250 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
2251
2252         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
2253         (sdbout_parms):  Likewise.
2254
2255 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2256
2257         * config/sh/sh.c (prepare_cbranch_operands): Use
2258         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
2259         (expand_cbranchdi4): Likewise.
2260         (from_compare): Add cast to enum type.
2261         (expand_cbranchsi4): Use add_reg_note.
2262         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
2263         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
2264         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
2265         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2266         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
2267         instead of CODE_FOR_nothing.
2268         (cbranchdi4): Likewise.  Fix the order of arguments for
2269         gen_rtx_fmt_ee.
2270         (push_fpscr): Use add_reg_note.
2271         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
2272         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
2273         
2274 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
2275
2276         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
2277         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2278         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2279         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
2280         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
2281         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
2282         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
2283         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
2284         config/alpha/x-vms, config/arc/t-arc,
2285         config/arm/README-interworking, config/arm/arm-c.c,
2286         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
2287         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
2288         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
2289         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
2290         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
2291         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
2292         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
2293         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
2294         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
2295         config/cris/t-elfmulti, config/crx/t-crx,
2296         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
2297         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
2298         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
2299         config/h8300/t-h8300, config/i386/athlon.md,
2300         config/i386/darwin-libgcc.10.4.ver,
2301         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
2302         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
2303         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
2304         config/i386/t-linux64, config/i386/t-nwld,
2305         config/i386/t-rtems-i386, config/i386/t-sol2-10,
2306         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
2307         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
2308         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
2309         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
2310         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
2311         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
2312         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
2313         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
2314         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
2315         config/m68k/t-uclinux, config/mcore/t-mcore,
2316         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
2317         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
2318         config/mips/crtn.asm, config/mips/irix-crti.asm,
2319         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
2320         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
2321         config/mips/mips-fixed.md, config/mips/sb1.md,
2322         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
2323         config/mips/t-iris6, config/mips/t-isa3264,
2324         config/mips/t-libgcc-mips16, config/mips/t-linux64,
2325         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
2326         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
2327         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
2328         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
2329         config/mn10300/t-linux, config/mn10300/t-mn10300,
2330         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
2331         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
2332         config/picochip/libgccExtras/clzsi2.asm,
2333         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
2334         config/rs6000/darwin-libgcc.10.4.ver,
2335         config/rs6000/darwin-libgcc.10.5.ver,
2336         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
2337         config/rs6000/t-aix43, config/rs6000/t-aix52,
2338         config/rs6000/t-darwin, config/rs6000/t-fprules,
2339         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
2340         config/rs6000/t-lynx, config/rs6000/t-netbsd,
2341         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
2342         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
2343         config/rs6000/t-rtems, config/rs6000/t-spe,
2344         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
2345         config/score/t-score-elf, config/sh/divcost-analysis,
2346         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
2347         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
2348         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
2349         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
2350         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
2351         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
2352         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
2353         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
2354         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
2355         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
2356         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
2357         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
2358         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
2359         limitx.h, version.c, xcoff.h: Add copyright and license notices.
2360         * config/h8300/genmova.sh: Include copyright and license notices
2361         in generated output.
2362         * config/h8300/mova.md: Regenerate.
2363         * doc/install.texi2html: Include word "Copyright" in copyright
2364         notice and use name "Free Software Foundation, Inc.".
2365         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
2366         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
2367         ChangeLog-2007, ChangeLog-2008: Correct dates.
2368
2369 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
2370
2371         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
2372         NE_EXPR operations as well.
2373         * c-parser.c (c_parser_condition): Do not set location information on
2374         the condition.
2375         (c_parser_conditional_expression): Likewise.
2376         (c_parser_binary_expression): Set location information on operators.
2377         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
2378         TRUTH_NOT_EXPR has been folded.
2379         * fold-const.c (fold_truth_not_expr): Copy location information from
2380         the incoming expression to the outgoing one.
2381         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
2382         recursive calls on the LHS of the operator but pass that of the
2383         operator to recursive calls on the RHS of the operator.  Set it
2384         on the COND_EXPR.
2385         (shortcut_cond_expr): Set the locus of the operator on the second
2386         COND_EXPR and that of the expression on the first in degenerate cases.
2387         Pass the locus of the expression to calls to shortcut_cond_r.
2388         Set the locus of the 'then' block on the associated jump, if any.
2389         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
2390         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
2391         expression to call to gimplify_boolean_expr.
2392
2393 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
2394
2395         * config.gcc: Add additional configuration for
2396         i686-w64-mingw* and x86_64-w64-mingw* triplet.
2397         * config/i386/mingw-w64.h: New mingw-w64 specific header.
2398         (CPP_SPEC): Redefine for allowing -municode option.
2399         (STARTFILE_SPEC): Likewise.
2400         * config/i386/t-mingw-w64: New.
2401         * config/i386/mingw-w64.opt: New.
2402         (municode): Add new target option.
2403         * doc/invoke.texi (municode): Add documentation for new option.
2404
2405 2009-04-21  Ian Lance Taylor  <iant@google.com>
2406
2407         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2408         Correct test for number of arguments.
2409         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
2410
2411 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
2412
2413         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
2414         argument of emit_library_call.
2415
2416 2009-04-21  Richard Guenther  <rguenther@suse.de>
2417
2418         PR middle-end/39829
2419         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
2420         inside VIEW_CONVERT_EXPRs.
2421
2422 2009-04-21  Martin Jambor  <mjambor@suse.cz>
2423
2424         * tree-switch-conversion.c (build_constructors): Split a long line.
2425         (constructor_contains_same_values_p): New function.
2426         (build_one_array): Create assigns of constants if possible, do not
2427         call mark_sym_for_renaming, call update_stmt.
2428         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
2429         make_rename_temp.  Do not call mark_symbols_for_renaming, call
2430         update_stmt.
2431         (gen_def_assigns): Do not call mark_symbols_for_renaming or
2432         find_new_referenced_vars, call update_stmt.
2433         (gen_inbound_check): Use create_tmp_var and create ssa names manually
2434         instead of calling make_rename_temp.  Do not call
2435         find_new_referenced_vars or mark_symbols_for_renaming, call
2436         update_stmt.
2437
2438 2009-04-21  Richard Guenther  <rguenther@suse.de>
2439
2440         PR tree-optimization/39827
2441         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2442         (tree_ssa_phiprop): Pass the correct array size.
2443
2444 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
2445
2446         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
2447
2448 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2449
2450         PR 16202
2451         * c-typeck.c (lvalue_p): Move declaration ...
2452         * c-common.h (lvalue_p): ... to here.
2453         * c-common.c (candidate_equal_p): New.
2454         (add_tlist): Use it.
2455         (merge_tlist): Use it.
2456         (warn_for_collisions_1): Likewise.
2457         (warning_candidate_p): Accept more candidates.
2458         (verify_tree): A warning candidate can be an expression. Use
2459         candidate_equal_p.
2460
2461 2009-04-21  Ben Elliston  <bje@au.ibm.com>
2462
2463         PR target/5267
2464         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2465         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2466         options.  Remove -mcall-solaris documentation.
2467
2468 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2469
2470         PR c++/13358
2471         * doc/invoke.texi (-Wlong-long): Update description.
2472         * c-lex (interpret_integer): Only warn if there was no previous
2473         overflow and -Wlong-long is enabled.
2474         * c-decl.c (declspecs_add_type): Drop redundant flags.
2475         * c.opt (Wlong-long): Init to -1.
2476         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2477         and front-end warn_long_long. Wlong-long only depends on other
2478         flags if it is uninitialized.
2479         * c-parser.c (disable_extension_diagnostics): warn_long_long is
2480         the same for CPP and FE.
2481         (restore_extension_diagnostics): Likewise.
2482
2483 2009-04-20  Ian Lance Taylor  <iant@google.com>
2484
2485         Fix enum conversions which are invalid in C++:
2486         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2487         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
2488         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2489         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
2490         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
2491         (dbxout_parms): Likewise.
2492         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
2493         (df_clear_flags): Likewise.
2494         * df-problems.c (df_rd_bb_local_compute_process_def): Change
2495         top_flag parameter to int.
2496         (df_chain_create_bb_process_use): Likewise.
2497         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2498         Remove cast.
2499         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2500         (df_ref_create_structure, df_def_record_1): Likewise.
2501         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2502         (df_notes_rescan): Change 0 to VOIDmode in function call.
2503         (df_get_call_refs, df_insn_refs_collect): Likewise.
2504         (df_bb_regs_collect): Likewise.
2505         (df_entry_block_defs_collect): Likewise.
2506         (df_exit_block_uses_collect): Likewise.
2507         * df.h: Update declarations.
2508         * double-int.c (double_int_divmod): Add cast to enum type.
2509         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2510         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2511         (based_loc_descr): Likewise.
2512         (loc_descriptor_from_tree_1): Change first_op and second_op to
2513         enum dwarf_location_atom.  Add cast to enum type.
2514         * expmed.c (init_expmed): Change 0 to SET in function call.
2515         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
2516         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2517         (do_store_flag): Likewise.
2518         * fixed-value.h (struct fixed_value): Change mode to enum
2519         machine_mode.
2520         * function.c (assign_parms): Change 0 to VOIDmode in function call.
2521         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2522         function call.
2523         (insert_insn_decl, insert_decl, insert_state): Likewise.
2524         (automata_list_finish): Likewise.
2525         * genrecog.c (process_define_predicate): Add cast to enum type.
2526         * gensupport.c (init_predicate_table): Add cast to enum type.
2527         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2528         function call.
2529         (gimple_build_call_1, gimple_build_label): Likewise.
2530         (gimple_build_goto, gimple_build_asm_1): Likewise.
2531         (gimple_build_switch_1, gimple_build_cdt): Likewise.
2532         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
2533         (enum fallback): Rename from enum fallback_t.
2534         (fallback_t): Typedef as int.
2535         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2536         GSI_SAME_STMT in function call.
2537         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2538         enum type.
2539         (setup_reg_class_relations): Likewise.
2540         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
2541         (setup_prohibited_class_mode_regs): Add cast to enum type.
2542         (setup_prohibited_mode_move_regs): Likewise.
2543         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
2544         (record_address_regs): Change i to enum reg_class.
2545         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2546         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2547         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2548         (GET_MODE_2XWIDER_MODE): Likewise.
2549         (GET_CLASS_NARROWEST_MODE): Likewise.
2550         * omp-low.c (expand_omp_for): Add cast to enum type.
2551         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2552         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2553         * postreload.c (reload_cse_simplify_operands): Change rclass local
2554         to enum reg_class.
2555         * predict.c (combine_predictions_for_insn): Change best_predictor
2556         and predictor to enum br_predictor.
2557         (combine_predictions_for_bb): Likewise.
2558         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2559         use SET_PREDICT_EXPR_OUTCOME.
2560         * real.c (real_arithmetic): Change icode to code in function call.
2561         * reginfo.c (init_move_cost): Add casts to enum type.
2562         (init_reg_sets_1, init_fake_stack_mems): Likewise.
2563         * regmove.c (regclass_compatible_p): Change class0 and class1 to
2564         enum reg_class.
2565         * reload.c (find_valid_class): Add casts to enum type.
2566         (push_reload): Change 0 to NO_REGS in function call.
2567         (find_reloads): Change this_alternative to array of enum
2568         reg_class.  Remove some now-unnecessary casts.
2569         (make_memloc): Change 0 to VOIDmode in function call.
2570         * reload1.c (reload): Change 0 to VOIDmode in function call.
2571         (eliminate_regs_1, elimination_effects): Likewise.
2572         (eliminate_regs_in_insn): Likewise.
2573         (emit_input_reload_insns): Add cast to enum type.
2574         (delete_output_reload): Change 0 to VOIDmode in function call.
2575         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2576         to enum type in function call.
2577         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2578         (SET_PREDICT_EXPR_OUTCOME): Define.
2579         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
2580         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2581         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2582         (dump_function): Likewise.
2583         * tree-dump.h: Update declarations.
2584         * tree-pass.h: Update declarations.
2585         * varasm.c (assemble_integer): Change mclass to enum mode_class.
2586         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2587         enum type.
2588         (arm_rtx_costs_1): Correct parenthesization.
2589         (arm_rtx_costs): Add casts to enum type.
2590         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2591         (vfp_emit_fstmd): Use add_rg_note.
2592         (emit_multi_reg_push, emit_sfm): Likewise.
2593         (thumb_set_frame_pointer): Likewise.
2594         (arm_expand_prologue): Likewise.
2595         (arm_regno_class): Change return type to enum reg_class.
2596         (thumb1_expand_prologue): Use add_reg_note.
2597         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2598         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2599         in function call.
2600         * config/arm/gentune.sh: Add cast to enum type.
2601         * config/arm/arm-tune.md: Rebuild.
2602         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2603         (ix86_split_fp_branch, predict_jump): Likewise.
2604         (ix86_expand_multi_arg_builtin): Change sub_code from enum
2605         insn_code to enum rtx_code.
2606         (ix86_builtin_vectorized_function): Add cast to enum type.
2607         * config/i386/i386.md (truncdfsf2): Change slot to enum
2608         ix86_stack_slot.
2609         (truncxf<mode>2, isinf<mode>2): Likewise.
2610         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2611         enum type.
2612         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2613         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2614         (insert_bundle_state): Change 1 to INSERT in function call.
2615         (ia64_add_bundle_selector_before): Likewise.
2616         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2617         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2618         (restore_stack_nonlocal): Likewise.
2619         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2620         function call.
2621         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2622         function call.
2623         (mips_rtx_costs): Likewise.
2624         (mips_override_options): Add casts to enum type.
2625         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2626         in function call.
2627         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2628         (store_reg, set_reg_plus_d): Likewise.
2629         (hppa_expand_prologue, hppa_profile_hook): Likewise.
2630         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2631         cast to enum type.
2632         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2633         function call.
2634         (emit_unlikely_jump): Use add_reg_note.
2635         (rs6000_emit_allocate_stack): Likewise.
2636         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2637         (output_toc): Change 1 to INSERT in function call.
2638         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2639         (rs6000_initialize_trampoline): Likewise.
2640         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2641         function call.
2642         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2643         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2644         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2645         (save_gprs): Use add_reg_note.
2646         (s390_emit_prologue): Likewise.
2647         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2648         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2649         (sparc_fold_builtin): Add cast to enum type.
2650         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2651         enum insn_code.
2652         (spu_expand_prologue): Use add_reg_note.
2653         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
2654
2655 2009-04-20  Ian Lance Taylor  <iant@google.com>
2656
2657         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2658         (c_parser_postfix_expression_after_primary): Get VEC for list of
2659         arguments.  Get original types of arguments.  Call
2660         build_function_call_vec.
2661         (cached_expr_list_1, cached_expr_list_2): New static variables.
2662         (c_parser_expr_list): Change return type to VEC *.  Add
2663         p_orig_types parameter.  Change all callers.
2664         (c_parser_release_expr): New static function.
2665         (c_parser_vec_to_tree_list): New static function.
2666         * c-typeck.c (build_function_call): Rewrite to build a VEC and
2667         call build_function_call_vec.
2668         (build_function_call_vec): New function, based on old
2669         build_function_call.
2670         (convert_arguments): Remove nargs and argarray parameters.  Change
2671         values to a VEC.  Add origtypes parameter.
2672         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
2673         (convert_for_assignment): Add origtype parameter.  Change all
2674         callers.  If warn_cxx_compat, check for conversion to an enum
2675         type when calling a function.
2676         (store_init_value): Add origtype parameter.  Change all callers.
2677         (digest_init): Likewise.
2678         (struct init_node): Add origtype field.
2679         (add_pending_init): Add origtype parameter.  Change all callers.
2680         (output_init_element): Likewise.
2681         (output_pending_init_elements): Pass origtype from init_node to
2682         output_init_element.
2683         (process_init_element): Pass origtype from c_expr to
2684         output_init_element.
2685         (c_finish_return): Add origtype parameter.  Change all callers.
2686         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
2687         caller.
2688         (sync_resolve_params): Likewise.
2689         (sync_resolve_return): Change params to first_param.  Change caller.
2690         (resolve_overloaded_builtins): Change params to VEC *.  Change
2691         callers.  Save first parameter around call to build_function_call_vec.
2692         * c-decl.c (finish_decl): Add origtype parameter.  Change all
2693         callers.  Call build_function_call_vec rather than
2694         build_function_call for cleanup.
2695         * c-tree.h: Update declarations.
2696         * c-common.h: Update declarations.
2697         * stub-objc.c (objc_rewrite_function_call): Change parameter from
2698         params to first_param.
2699         * target.h (struct gcc_target): Change resolve_overloaded_builtin
2700         params parameter from tree to void *.
2701         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2702         Change arglist parameter to have type void *, and to be a pointer
2703         to a VEC.
2704         * config/rs6000/rs6000-protos.h
2705         (altivec_resolve_overloaded_builtin): Update declaration.
2706         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2707         fnargs parameter to have type void *, and to be a pointer to a
2708         VEC.  Call build_function_call_vec instead of
2709         build_function_call.
2710         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
2711
2712 2009-04-20  Joey Ye  <joey.ye@intel.com>
2713             Xuepeng Guo  <xuepeng.guo@intel.com>
2714             H.J. Lu  <hongjiu.lu@intel.com>
2715
2716         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2717
2718         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2719         (IX86_LEA_PRIORITY): Likewise.
2720         (distance_non_agu_define): New function.
2721         (distance_agu_use): Likewise.
2722         (ix86_lea_for_add_ok): Likewise.
2723         (ix86_dep_by_shift_count): Likewise.
2724
2725         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2726         should split for LEA.
2727
2728         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2729         function.
2730         (ix86_dep_by_shift_count): Likewise.
2731
2732 2009-04-20  Richard Guenther  <rguenther@suse.de>
2733
2734         * expr.c (handled_component_p): Move ...
2735         * tree.h (handled_component_p): ... here.
2736         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2737         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2738         and REALPART_EXPR to be in one group.
2739
2740 2009-04-20  Richard Guenther  <rguenther@suse.de>
2741
2742         * basic-block.h (get_all_dominated_blocks): Declare.
2743         * dominance.c (get_all_dominated_blocks): New function.
2744         * tree-cfg.c (get_all_dominated_blocks): Remove.
2745         (remove_edge_and_dominated_blocks): Adjust.
2746         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2747         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
2748         instead of recursing.
2749
2750 2009-04-20  Doug Kwan  <dougkwan@google.com>
2751
2752         * cgraph.h (cgraph_node_ptr): New type for vector functions.
2753         (struct cgraph_node_set_def): New type.
2754         (cgraph_node_set) New type. Also declare vector functions.
2755         (struct cgraph_node_set_element_def): New type.
2756         (cgraph_node_set_element): Ditto.
2757         (cgraph_node_set_iterator): New iterator type.
2758         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2759         cgraph_node_set_remove, dump_cgraph_node_set,
2760         debug_cgraph_node_set): New prototypes.
2761         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2762         cgraph_node_set_size): New inlines.
2763         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2764         including cgraph.h.
2765         (struct ipa_opt_pass): Add struct cgraph_node_set_def
2766         argument to function 'write_summary'.
2767         * ipa.c: Include ggc.h.
2768         (hash_cgraph_node_set_element,
2769         eq_cgraph_node_set_element, cgraph_node_set_new,
2770         cgraph_node_set_add, cgraph_node_set_remove,
2771         cgraph_node_set_find, dump_cgraph_node_set,
2772         debug_cgraph_node_set): New functions.
2773         * Makefile.in (ipa.o): Add dependency on GGC_H.
2774
2775 2009-04-20  Ira Rosen  <irar@il.ibm.com>
2776
2777         PR tree-optimization/39675
2778         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
2779         check of the return code of vect_schedule_slp. Check that
2780         stmt_vec_info still exists for the statement, before checking its
2781         vectorization type.
2782
2783 2009-04-20  Michael Matz  <matz@suse.de>
2784
2785         * Makefile.in (generated_files): Take out $(simple_generated_c).
2786
2787 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
2788
2789         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
2790         (UINTPTR_TYPE):  Likewise.
2791
2792 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2793
2794         PR c/37481
2795         * c-typeck.c (digest_init): Check for initializing an array with a
2796         string literal.
2797
2798 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2799
2800         PR c/19771
2801         * c-semantics.c (pop_stmt_list): Propagate
2802         STATEMENT_LIST_HAS_LABEL to parent statement list.
2803
2804 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
2805
2806         * config/mips/mips.h (mips_tune_attr): New macro.
2807         * config/mips/mips.md (cpu): Use it.
2808
2809 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2810
2811         PR c/38243
2812         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
2813         declaring a tag.
2814
2815 2009-04-19  Diego Novillo  <dnovillo@google.com>
2816
2817         * toplev.c (compile_file): Move call to coverage_finish ...
2818         * cgraphunit.c (ipa_passes): ... here.
2819         Call cgraph_process_new_functions.
2820         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
2821         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
2822
2823 2009-04-19  Jan Hubicka  <jh@suse.cz>
2824
2825         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
2826         cfun.
2827         (dump_cgraph_node): Dump can throw external flag.
2828         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
2829
2830 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2831
2832         PR c/32061
2833         PR c++/36954
2834         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
2835         * common.opt (Wlogical-op): Move from here...
2836         * c.opt (Wlogical-op): ... to here.
2837         * c-typeck.c (parser_build_binary_op): Update call to
2838         warn_logical_operator.
2839         * c-opts.c (c_common_post_options): Enable warn_logical_op with
2840         extra_warnings.
2841         * c-common.c (warn_logical_op): Update.
2842         * c-common.h (warn_logical_op): Update declaration.
2843
2844 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2845
2846         * tree.c (protected_set_expr_location): Fix formatting.
2847
2848 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2849
2850         PR c/27676
2851         * c-typeck.c (readonly_warning): new.
2852         (build_unary_op, build_modify_expr): Use readonly_warning for
2853         storing into something readonly but not const-qualified.
2854
2855 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2856
2857         PR c/22367
2858         * c-typeck.c (build_unary_op): Check for taking address of
2859         expression of type void.
2860
2861 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2862
2863         PR c/35210
2864         * c-typeck.c (build_function_call): Check for calling a function
2865         with qualified void return types.  Call require_complete_type when
2866         generating a trap.
2867
2868 2009-04-18  Jan Hubicka  <jh@suse.cz>
2869
2870         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
2871         Set nothrow flag.
2872         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
2873         can_throw_external flag.
2874         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
2875         * ipa-pure-const.c (ignore_edge): New function.
2876         (propagate): Compute order for NOTHROW computation; set NOTHROWs
2877         only over can_throw_external edges.
2878         (local_pure_const): Add nothrow flag.
2879         * ipa-utils.c (searchc): Add ignore_edge callback.
2880         (ipa_utils_reduced_inorder): Add ignore_edge callback.
2881         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
2882         (set_nothrow_function_flags): Update cgraph.
2883         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
2884
2885 2009-04-18  Richard Guenther  <rguenther@suse.de>
2886
2887         PR middle-end/39804
2888         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
2889         (fold_stmt): ... this and ...
2890         (fold_stmt_inplace): ... this.
2891         (fold_stmt_1): Fold references in calls and asms.
2892         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
2893
2894 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2895
2896         * tree-vrp.c (ssa_name_nonzero_p): Remove.
2897         * tree.h: Remove the prototype for ssa_name_nonzero_p.
2898
2899 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2900
2901         * tree.c (function_args_count): Remove.
2902         * tree.h: Remove the prototype for function_args_count.
2903
2904 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2905
2906         * tree-iterator.c (expr_only): Remove.
2907         * tree.h: Remove the prototype for expr_only.
2908
2909 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2910
2911         * reginfo.c (cannot_change_mode_set_regs): Remove.
2912         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
2913
2914 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
2915
2916         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
2917         whether operands 0 and 1 overlaps.
2918
2919 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2920
2921         PR middle-end/36902
2922         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
2923         pointer. Use warning_at instead of warning.
2924         (search_for_addr_array): Likewise.
2925         (check_array_bounds): Likewise.
2926         (check_all_array_refs): Check that the incoming edge is not in the
2927         list of edges to be removed.
2928         (check_all_array_refs): Avoid the temporal pointer.
2929         (vrp_visit_cond_stmt): Fix typo.
2930         (simplify_switch_using_ranges): Handle the case where the switch
2931         index is an integer constant.
2932
2933 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
2934
2935         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
2936
2937 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2938
2939         * doc/extend.texi, doc/invoke.texi: Fix typos.
2940
2941 2009-04-17  Cary Coutant  <ccoutant@google.com>
2942
2943         * tree-flow-inline.h (get_lineno): Fix inverted test.
2944
2945 2009-04-17  Diego Novillo  <dnovillo@google.com>
2946
2947         * tree-ssa-pre.c (create_expression_by_pieces): Remove
2948         assertion for AVAIL_OUT.
2949
2950 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
2951
2952         PR target/38627
2953         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
2954         * config/sh/linux-atomic.asm: Likewise.
2955
2956 2009-04-17  Diego Novillo  <dnovillo@google.com>
2957
2958         * except.c (debug_eh_tree): New.
2959         (struct eh_region, struct eh_status): Move ...
2960         * except.h: ... here.
2961         (add_type_for_runtime): Declare extern.
2962         (lookup_type_for_runtime): Likewise.
2963         (debug_eh_tree): Declare.
2964         * Makefile.in (GTFILES): List except.h before except.c
2965
2966 2009-04-17  Diego Novillo  <dnovillo@google.com>
2967
2968         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
2969         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2970         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
2971         (find_vars_r): ... here.
2972         * tree-flow.h (find_referenced_vars_in): Declare.
2973         * tree-ssa-pre.c (create_expression_by_pieces): Assert
2974         that AVAIL_OUT exists for BLOCK.
2975         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
2976         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
2977         (tree-parloops.o): Likewise.
2978
2979 2009-04-17  Simon Baldwin  <simonb@google.com>
2980
2981         * toplev.c (default_tree_printer): Add handling for %E format.
2982
2983 2009-04-17  Diego Novillo  <dnovillo@google.com>
2984
2985         * tree-pretty-print.c (dump_generic_node): Add break after
2986         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
2987         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
2988         FUNCTION_TYPE together.  Call print_struct_decl when printing
2989         structures and TDF_SLIM is not given.
2990         (print_struct_decl): Fix logic for detecting recursion.
2991
2992 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
2993
2994         PR 31567
2995         * gcc.c (create_at_file): New.
2996         (compile_input_file_p): New.
2997         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
2998         * main.c (main): Update call to toplev_main.
2999         * toplev.c (toplev_main): Change signature. Call expandargv.
3000         * toplev.h (toplev_main): Change signature.
3001
3002 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3003
3004         * dwarf2out.c (field_byte_offset): Use the type size as the field size
3005         if the latter is not constant.
3006
3007 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
3008
3009         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
3010
3011 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
3012
3013         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
3014         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
3015
3016 2009-04-17  Richard Guenther  <rguenther@suse.de>
3017
3018         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3019         Handle component references view-converting an invariant address.
3020
3021 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
3022
3023         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
3024         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
3025         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
3026         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
3027         Use @deftypevr rather than @deftypevar.
3028
3029 2009-04-17  Richard Guenther  <rguenther@suse.de>
3030
3031         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
3032         (get_prop_source_stmt): Likewise.
3033         (can_propagate_from): Likewise.
3034
3035 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
3036
3037         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
3038         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
3039         (--with-multilib-list): Add default value.
3040         * configure: Regenerate.
3041         * Makefile.in (TM_ENDIAN_CONFIG): Define.
3042         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
3043         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
3044         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
3045         Don't add default cpu to multilib list unnecessarily, but do enable
3046         the relevant compiler option..
3047         Add support for --with-multilib-list=<blank> and
3048         --with-multilib-list=!<somelib> to supress unwanted multilibs.
3049         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
3050         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
3051         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
3052         TM_MULTILIB_CONFIG.
3053         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
3054         (MULTILIB_OSDIRNAMES): New variable.
3055         * config/sh/t-1e: Delete file.
3056         * config/sh/t-mlib-sh1: Delete file.
3057         * config/sh/t-mlib-sh2: Delete file.
3058         * config/sh/t-mlib-sh2a: Delete file.
3059         * config/sh/t-mlib-sh2a-nofpu: Delete file.
3060         * config/sh/t-mlib-sh2a-single: Delete file.
3061         * config/sh/t-mlib-sh2a-single-only: Delete file.
3062         * config/sh/t-mlib-sh2e: Delete file.
3063         * config/sh/t-mlib-sh3e: Delete file.
3064         * config/sh/t-mlib-sh4: Delete file.
3065         * config/sh/t-mlib-sh4-nofpu: Delete file.
3066         * config/sh/t-mlib-sh4-single: Delete file.
3067         * config/sh/t-mlib-sh4-single-only: Delete file.
3068         * config/sh/t-mlib-sh4a: Delete file.
3069         * config/sh/t-mlib-sh4a-nofpu: Delete file.
3070         * config/sh/t-mlib-sh4a-single: Delete file.
3071         * config/sh/t-mlib-sh4a-single-only: Delete file.
3072         * config/sh/t-mlib-sh4al: Delete file.
3073         * config/sh/t-mlib-sh5-32media: Delete file.
3074         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
3075         * config/sh/t-mlib-sh5-64media: Delete file.
3076         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
3077         * config/sh/t-mlib-sh5-compact: Delete file.
3078         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
3079         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
3080         * doc/install.texi (Options specification): Add
3081         --with-multilib-list and --with-endian.
3082
3083 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
3084
3085         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
3086         REVISION_c.
3087         (OBJS-common): Add plugin-version.o.
3088         (plugin-version.o): New.
3089         * gcc-plugin.h (plugin_gcc_version): New.
3090         (plugin_default_version_check): New.
3091         (plugin_init_func, plugin_init): Add version argument.
3092         * plugin-version.c: New.
3093         * plugin.c (str_plugin_gcc_version_name): New.
3094         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
3095         pass it to the init function.
3096         (plugin_default_version_check): New.
3097
3098 2009-04-17  Richard Guenther  <rguenther@suse.de>
3099
3100         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
3101         for decl-vs-decl disambiguation.
3102
3103 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
3104
3105         * config/s390/s390.h (s390_tune_attr): New macro definition.
3106         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
3107
3108 2009-04-17  Richard Guenther  <rguenther@suse.de>
3109
3110         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
3111         (fold_stmt_r): Likewise.
3112         (maybe_fold_reference): New function.
3113         (fold_gimple_assign): Handle cases fold_stmt_r did.
3114         (fold_stmt): Do not use fold_stmt_r.
3115         (fold_stmt_inplace): Likewise.
3116
3117 2009-04-17  Richard Guenther  <rguenther@suse.de>
3118
3119         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
3120         (record_equivalences_from_stmt): Remove useless checks and
3121         simplifications.
3122         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
3123         the type is already suitable.
3124
3125 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
3126
3127         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
3128
3129 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
3130
3131         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
3132         (CMPtype): Define as __gcc_CMPtype.
3133
3134 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
3135
3136         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
3137         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
3138
3139 2009-04-17  Richard Guenther  <rguenther@suse.de>
3140
3141         PR tree-optimization/39746
3142         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
3143         special-casing for builtins and static variable use/def.
3144         (call_may_clobber_ref_p_1): Likewise.
3145
3146 2009-04-16  Ian Lance Taylor  <iant@google.com>
3147
3148         * df.h: Include "timevar.h".
3149         (struct df_problem): Change tv_id field to timevar_id_t.
3150         * tree-pass.h: Include "timevar.h".
3151         (struct opt_pass): Change tv_id field to timevar_id_t.
3152         * timevar.h (timevar_id_t): Define TV_NONE.
3153         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
3154         TV_NONE rather than tv_id != 0.
3155         (execute_one_pass): Likewise.
3156         * Makefile.in (DF_H): Add $(TIMEVAR_H).
3157         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
3158         dependencies to $(TREE_PASS_H).
3159         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
3160         to TV_NONE.
3161         (pass_branch_target_load_optimize2): Likewise.
3162         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
3163         (pass_outof_cfg_layout_mode): Likewise.
3164         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
3165         (pass_rebuild_cgraph_edges): Likewise.
3166         (pass_remove_cgraph_callee_edges): Likewise.
3167         * df-core.c (pass_df_initialize_opt): Likewise.
3168         (pass_df_initialize_no_opt): Likewise.
3169         (pass_df_finish): Likewise.
3170         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
3171         * except.c (pass_set_nothrow_function_flags): Likewise.
3172         (pass_convert_to_eh_region_ranges): Likewise.
3173         * final.c (pass_compute_alignments): Likewise.
3174         * function.c (pass_instantiate_virtual_regs): Likewise.
3175         (pass_init_function): Likewise.
3176         (pass_leaf_regs): Likewise.
3177         (pass_match_asm_constraints): Likewise.
3178         * gimple-low.c (pass_lower_cf): Likewise.
3179         (pass_mark_used_blocks): Likewise.
3180         * init-regs.c (pass_initialize_regs): Likewise.
3181         * integrate.c (pass_initial_value_sets): Likewise.
3182         * ira.c (pass_ira): Likewise.
3183         * jump.c (pass_cleanup_barriers): Likewise.
3184         * omp-low.c (pass_expand_omp): Likewise.
3185         (pass_lower_omp): Likewise.
3186         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
3187         * recog.c (pass_split_all_insns): Likewise.
3188         (pass_split_after_reload): Likewise.
3189         (pass_split_before_regstack): Likewise.
3190         (pass_split_before_sched2): Likewise.
3191         (pass_split_for_shorten_branches): Likewise.
3192         * reginfo.c (pass_reginfo_init): Likewise.
3193         (pass_subregs_of_mode_init): Likewise.
3194         (pass_subregs_of_mode_finish): Likewise.
3195         * passes.c (pass_postreload): Likewise.
3196         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3197         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
3198         (pass_warn_function_return): Likewise.
3199         (pass_warn_function_noreturn): Likewise.
3200         * tree-complex.c (pass_lower_complex): Likewise.
3201         (pass_lower_complex_O0): Likewise.
3202         * tree-if-conv.c (pass_if_conversion): Likewise.
3203         * tree-into-ssa.c (pass_build_ssa): Likewise.
3204         * tree-mudflap.c (pass_mudflap_1): Likewise.
3205         (pass_mudflap_2): Likewise.
3206         * tree-nomudflap.c (pass_mudflap_1): Likewise.
3207         (pass_mudflap_2): Likewise.
3208         * tree-nrv.c (pass_return_slot): Likewise.
3209         * tree-object-size.c (pass_object_sizes): Likewise.
3210         * tree-optimize.c (pass_all_optimizations): Likewise.
3211         (pass_early_local_passes): Likewise.
3212         (pass_all_early_optimizations): Likewise.
3213         (pass_cleanup_cfg): Likewise.
3214         (pass_cleanup_cfg_post_optimizing): Likewise.
3215         (pass_free_datastructures): Likewise.
3216         (pass_free_cfg_annotations): Likewise.
3217         (pass_fixup_cfg): Likewise.
3218         (pass_init_datastructures): Likewise.
3219         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
3220         (pass_late_warn_uninitialized): Likewise.
3221         (pass_update_address_taken): Likewise.
3222         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
3223         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
3224         (pass_cse_sincos): Likewise.
3225         (pass_convert_to_rsqrt): Likewise.
3226         * tree-ssa-structalias.c (pass_build_alias): Likewise.
3227         * tree-stdarg.c (pass_stdarg): Likewise.
3228         * tree-tailcall.c (pass_tail_recursion): Likewise.
3229         (pass_tail_calls): Likewise.
3230         * tree-vect-generic.c (pass_lower_vector): Likewise.
3231         (pass_lower_vector_ssa): Likewise.
3232         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
3233
3234 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
3235
3236         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
3237         XLR entry.
3238         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
3239         Handle -march=xlr.
3240         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
3241         logical and signext.
3242
3243 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
3244
3245         PR target/39767
3246         * config/sh/predicates.md (arith_operand): Check if the operand
3247         of TRUNCATE is a REG.
3248
3249 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3250
3251         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
3252         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
3253
3254 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3255
3256         * tree-iterator.c (tsi_split_statement_list_after,
3257         tsi_split_statement_list_before): Remove.
3258         * tree-iterator.h: Remove the prototypes for
3259         tsi_split_statement_list_after and tsi_split_statement_list_before.
3260
3261 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3262
3263         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
3264         * tree-ssa-propagate.h: Remove the prototype for
3265         stmt_makes_single_load.
3266
3267 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3268
3269         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
3270         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
3271
3272 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3273
3274         * tree-iterator.c (EXPR_LAST_BODY): Remove.
3275
3276 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3277
3278         * except.c (eh_region_outer_p): Remove.
3279         * except.h: Remove the prototype for eh_region_outer_p.
3280
3281 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
3282
3283         * function.c (current_function_assembler_name): Remove.
3284         * function.h: Remove the prototype for
3285         current_function_assembler_name.
3286
3287 2009-04-16  Ian Lance Taylor  <iant@google.com>
3288
3289         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
3290         (add_reg_note): Call alloc_reg_note.
3291         * rtl.h (alloc_reg_note): Declare.
3292         * combine.c (try_combine): Use alloc_reg_note.
3293         (recog_for_combine, move_deaths): Likewise.
3294         (distribute_notes): Use alloc_reg_note and add_reg_note.
3295         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
3296         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
3297         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
3298
3299 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
3300
3301         PR rtl-optimization/39762
3302         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
3303         ira_may_move_out_cost): Add comments about way of their usage.
3304         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
3305
3306         * ira-conflicts.c (process_regs_for_copy): Use function
3307         ira_get_register_move_cost instead of global
3308         ira_register_move_cost.
3309
3310         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
3311         color_pass, move_spill_restore, update_curr_costs): Ditto.
3312
3313         * ira-lives.c (process_single_reg_class_operands): Ditto.
3314
3315         * ira-emit.c (emit_move_list): Ditto.
3316
3317         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
3318         (record_reg_classes): Ditto.  Use functions
3319         ira_get_register_move_cost and ira_get_may_move_cost instead of
3320         global vars ira_register_move_cost, ira_may_move_out_cost and
3321         ira_may_move_in_cost.
3322         (record_address_regs): Don't call ira_init_register_move_cost.
3323         Use function ira_get_may_move_cost instead of global
3324         ira_may_move_in_cost.
3325         (process_bb_node_for_hard_reg_moves): Use function
3326         ira_get_register_move_cost instead of global ira_register_move_cost.
3327         (ira_costs): Don't call ira_init_register_move_cost.
3328
3329 2009-04-16  Richard Guenther  <rguenther@suse.de>
3330
3331         * tree-cfg.c (verify_gimple_assign_binary):
3332         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
3333         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
3334         (create_general_new_stmt): Note that this function is broken.
3335
3336 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3337
3338         * common.opt (fhelp): Add Var(help_flag).
3339         * gcc-plugin.h (plugin_info): Add help.
3340         * plugin.c (plugin_name_args): Add help.
3341         (register_plugin_info): Set plugin->help.
3342         (print_help_one_plugin): New.
3343         (print_plugins_help): New.
3344         * plugin.h (print_plugins_help): New.
3345         * toplev.c (toplev_main): Call print_plugins_help if needed.
3346
3347 2009-04-16  Richard Guenther  <rguenther@suse.de>
3348
3349         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
3350         (gimple_ior_addresses_taken_1): New function.
3351         (gimple_ior_addresses_taken): Likewise.
3352         * gimple.h (struct gimple_statement_with_ops_base): Remove
3353         addresses_taken member.
3354         (gimple_ior_addresses_taken): Declare.
3355         (gimple_addresses_taken, gimple_addresses_taken_ptr,
3356         gimple_set_addresses_taken): Remove.
3357         * ipa-reference.c (mark_address): New function.
3358         (scan_stmt_for_static_refs): Use it for marking addresses taken.
3359         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
3360         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
3361         (gimple_add_to_addresses_taken): Remove.
3362         (get_tmr_operands): Call mark_address_taken.
3363         (get_asm_expr_operands): Likewise.
3364         (get_expr_operands): Likewise.
3365         (build_ssa_operands): Do not clear the addresses_taken bitmap.
3366         (free_stmt_operands): Do not free it.
3367         * tree-ssa.c (delete_tree_ssa): Likewise.
3368         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
3369
3370 2009-04-16  Richard Guenther  <rguenther@suse.de>
3371
3372         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
3373         (walk_stmt_load_store_ops): Likewise.
3374         * gimple.c (get_base_loadstore): New function.
3375         (walk_stmt_load_store_addr_ops): Likewise.
3376         (walk_stmt_load_store_ops): Likewise.
3377         * ipa-pure-const.c (check_op): Simplify.
3378         (check_load, check_store): New functions.
3379         (check_stmt): Use walk_stmt_load_store_ops.
3380         * ipa-reference.c (mark_load): Adjust signature.
3381         (mark_store): Likewise.
3382         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
3383
3384 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3385
3386         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
3387         (plugin_info): New.
3388         * opts.c (common_handle_option): Don't call print_version.
3389         * plugin.c (plugin_name_args): Add version.
3390         (register_plugin_info): New.
3391         (register_callback): Handle PLUGIN_INFO.
3392         (try_init_one_plugin): New.
3393         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
3394         if failed to init.
3395         (finalize_one_plugin): New.
3396         (finalize_plugins): New.
3397         (print_one_plugin): New.
3398         (print_plugins_versions): New.
3399         * plugin.h (print_plugins_versions): New.
3400         (finalize_plugins): New.
3401         * toplev.c (compile_file): Don't call initialize_plugins.
3402         (print_version): Call print_plugins_versions.
3403         (toplev_main): Call initialize_plugins. Print version if needed.
3404         Call finalize_plugins.
3405
3406 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
3407
3408         * common.opt (fversion): New.
3409         * gcc.c (print_version): New.
3410         (process_command): Don't print the version. Just set print_version.
3411         (main): Print version. Call subprocesses if print_version and
3412         verbose_flag are set.
3413         * opts.c (common_handle_option): Handle OPT_fversion.
3414
3415 2009-04-16  Richard Guenther  <rguenther@suse.de>
3416             Ira Rosen  <irar@il.ibm.com>
3417
3418         PR tree-optimization/39698
3419         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
3420         type of the reduction variable.  Only generate the def if
3421         it is needed.
3422
3423         * omp-low.c (expand_omp_for_generic): When converting to a pointer
3424         make sure to first convert to an integer of the same precision.
3425         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
3426         the type of the evolution correctly in computing the new
3427         induction variable base.
3428
3429 2009-04-16  Richard Guenther  <rguenther@suse.de>
3430
3431         PR middle-end/39625
3432         * tree-cfg.c (make_blocks): Split statements with to-be
3433         abnormal SSA names on the lhs.
3434
3435 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
3436
3437         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
3438         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
3439         * c-typeck.c (really_start_incremental_init): Likewise.
3440         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
3441         (TARGET_INITIALIZER): Remove it.
3442         * target.h (struct target): Remove vector_opaque_p.
3443         * tree.c (build_opaque_vector_type): New.
3444         * tree.h (TYPE_VECTOR_OPAQUE): New.
3445         (build_opaque_vector_type): Declare.
3446         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
3447         * config/rs6000/rs6000.c (build_opaque_vector_type,
3448         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
3449         (rs6000_init_builtins): Use build_opaque_vector_type for
3450         opaque_V4SI_type_node.
3451
3452 2009-04-15  Catherine Moore  <clm@codesourcery.com>
3453
3454         * debug.h (set_name):  Declare.
3455         * dwarf2out.c (dwarf2out_set_name): Declare.
3456         (dwarf2_debug_hooks): Add set_name.
3457         (find_AT_string): New.
3458         (add_AT_string): Call find_AT_string.
3459         (dwarf2out_set_name): New.
3460         * cp/decl.c (grokdeclarator): Call set_name.
3461         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3462         * debug.c (do_nothing_debug_hooks):  Likewise.
3463         * dbxout.c (dbx_debug_hooks): Likewise.
3464         * sdbout.c (sdb_debug_hooks): Likewise.
3465
3466 2009-04-15  Michael Eager  <eager@eagercon.com>
3467
3468         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3469         reg for single-precision FPU.
3470         * config/rs6000/rs6000.md (movsi_internal1): Only for
3471         !TARGET_SINGLE_FPU.
3472         (movsi_internal1_single): New. Add pattern to move SI values to/from
3473         single-precision FP regs.
3474
3475 2009-04-15  Richard Guenther  <rguenther@suse.de>
3476
3477         * omp-low.c (lower_rec_input_clauses): Build correct address
3478         expressions.
3479         (expand_omp_for_generic): Fix multiplication type.
3480         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
3481         (generate_memset_zero): Fix types.
3482         * tree-profile.c (prepare_instrumented_value): Correctly
3483         widen a pointer.
3484
3485 2009-04-15  Ian Lance Taylor  <iant@google.com>
3486
3487         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
3488         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3489         for -Wall and for -Wc++-compat.
3490         (c_common_post_options): For C++, set warn_enum_compare if not
3491         already set.
3492         * c-tree.h (struct c_expr): Add field original_type.
3493         (build_external_ref): Update declaration.
3494         * c-parser.c (c_parser_braced_init): Set original_type.
3495         (c_parser_initelt): Likewise.
3496         (c_parser_expr_no_commas): Likewise.
3497         (c_parser_conditional_expression): Likewise.
3498         (c_parser_cast_expression): Likewise.
3499         (c_parser_unary_expression): Likewise.  Pull setting of
3500         original_code to top of function.
3501         (c_parser_sizeof_expression): Set original_type.
3502         (c_parser_alignof_expression): Likewise.
3503         (c_parser_postfix_expression): Likewise.  Pull setting of
3504         original_code to top of function.
3505         (c_parser_postfix_expression_after_paren_type): Set original_type.
3506         (c_parser_postfix_expression_after_primary): Likewise.
3507         (c_parser_expression): Likewise.
3508         * c-typeck.c (build_external_ref): Add type parameter.  Change all
3509         callers.
3510         (c_expr_sizeof_expr): Set original_type field.
3511         (parser_build_unary_op): Likewise.
3512         (parser_build_binary_op): Likewise.  Optionally warn about
3513         comparisons of enums of different types.
3514         (digest_init): Set original_type field.
3515         (really_start_incremental_init): Likewise.
3516         (push_init_level, pop_init_level): Likewise.
3517         * doc/invoke.texi (Warning Options): -Wenum-compare now
3518         supported in C.
3519
3520 2009-04-15  Richard Guenther  <rguenther@suse.de>
3521
3522         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3523         out a necessary conversion.
3524         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3525         names we didn't value number.
3526         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3527
3528 2009-04-15  Richard Guenther  <rguenther@suse.de>
3529
3530         PR tree-optimization/39764
3531         * tree-ssa-ccp.c (get_value): Canonicalize value with
3532         canonicalize_float_value.
3533
3534 2009-04-15  Jan Hubicka  <jh@suse.cz>
3535
3536         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3537         Wrong version of patch.
3538
3539 2009-04-15  Jan Hubicka  <jh@suse.cz>
3540
3541         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3542
3543 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
3544
3545         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3546         our distinct integral and vector types.
3547
3548 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
3549
3550         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3551         * init.c (build_vtbl_address): Remove call to assemble_external.
3552
3553 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
3554
3555         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3556         output for other floating point modes.
3557
3558 2009-04-14  Diego Novillo  <dnovillo@google.com>
3559
3560         * diagnostic.c (diagnostic_report_diagnostic): Do not
3561         warn about loaded plugins for DK_ERROR and DK_WARNING.
3562         * c-decl.c (declspecs_add_type): Move call to
3563         invoke_plugin_callbacks ...
3564         * c-parser.c (c_parser_declspecs): ... here.
3565         * plugin.c (dump_active_plugins): Tidy output.
3566
3567 2009-04-14  Diego Novillo  <dnovillo@google.com>
3568             Le-Chun Wu  <lcwu@google.com>
3569
3570         * configure.ac: Add --enable-plugin support.
3571         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3572         * Makefile.in (PLUGIN_H): Define.
3573         Export ENABLE_PLUGIN and GMPINC to site.exp.
3574         Add PLUGINLIBS to link command.
3575         Add/modify dependencies for plugin.o and files including plugin.h.
3576         (plugin.o): New.
3577         * config.in: Regenerate.
3578
3579         * opts.c (common_handle_option): Handle OPT_fplugin_ and
3580         OPT_fplugin_arg_.
3581
3582 2009-04-14  Le-Chun Wu  <lcwu@google.com>
3583
3584         * tree-pass.h (register_one_dump_file): Add a prototype for
3585         register_one_dump_file.
3586         * toplev.c (compile_file): Call initialize_plugins.
3587         (do_compile): Call invoke_plugin_callbacks.
3588         (toplev_main): Call invoke_plugin_callbacks.
3589         * common.opt: Add -fplugin= and -fplugin-arg-.
3590         * gcc-plugin.h: New public header file for plugins to include.
3591         * plugin.c: New source file.
3592         * plugin.h: New internal header file.
3593         * passes.c (register_one_dump_file): Make it external.
3594
3595         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3596
3597 2009-04-14  Diego Novillo  <dnovillo@google.com>
3598
3599         * doc/plugins.texi: New.
3600         * doc/gccint.texi: Add reference to Plugins chapter.
3601         * doc/invoke.texi: Document -fplugin and -fplugin-arg
3602         * diagnostic.c (diagnostic_report_diagnostic): Warn about
3603         loaded plugins, if any.
3604         * timevar.def (TV_PLUGIN_INIT): Define.
3605         (TV_PLUGIN_RUN): Define.
3606         * plugin.c: Include timevar.h
3607         (plugins_active_p): New.
3608         (dump_active_plugins): New.
3609         (debug_active_plugins): New.
3610
3611 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
3612
3613         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3614         library paths.
3615         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3616
3617 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
3618
3619         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3620         the same as a minus without a shift.
3621
3622 2009-04-14  Nick Clifton  <nickc@redhat.com>
3623
3624         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3625         comparisons with small integers will always produce a short
3626         branch.
3627
3628 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
3629
3630         Merge:
3631         2008-12-19  Diego Novillo  <dnovillo@google.com>
3632
3633         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
3634
3635 2009-04-14  Richard Guenther  <rguenther@suse.de>
3636
3637         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3638         verification.
3639         (verify_gimple_assign_binary): Likewise.  Handle shifts and
3640         rotates correctly.
3641         (verify_gimple_phi): Print the mismatched argument position.
3642         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3643         Fix types.
3644         (vect_update_init_of_dr): Likewise.
3645         * matrix-reorg.c (transform_access_sites): Do what the
3646         comment suggests.
3647         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3648
3649 2009-04-13  Michael Eager  <eager@eagercon.com>
3650
3651         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3652         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3653         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
3654         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
3655         remove duplicate config
3656
3657 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3658
3659         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3660         file_name:line_number type locator of the call site.
3661
3662 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
3663
3664         * genautomata.c: Put blank after comma.
3665         (automaton_decls): New.
3666         (struct unit_usage): Add comments to member next.
3667         (store_alt_unit_usage): Keep the list ordered.
3668         (unit_present_on_list_p, equal_alternatives_p): New.
3669         (check_regexp_units_distribution): Check units distribution
3670         correctness correctly.
3671         (main): Don't write automata if error is found.  Return correct
3672         exit code.
3673
3674         * config/m68k/cf.md (cfv4_ds): Remove.
3675         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3676         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3677
3678         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3679         power4-load-ext, power4-store, power4-store-update,
3680         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3681         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3682         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3683         power4-sqrt, power4-isync): Modify reservation to make correct
3684         unit distribution to automata.
3685
3686         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3687         power5-store-update, power5-two, power5-three, power5-lmul,
3688         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
3689
3690 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
3691
3692         * except.c (pass_set_nothrow_function_flags): Set name and add
3693         TODO_dump_func.
3694         (set_nothrow_function_flags): Mention in the dump file when
3695         changing a function to nothrow.
3696
3697 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
3698
3699         PR/39066
3700         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3701         instead of unsigned long.
3702
3703 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3704
3705         * config/arm/arm.c (return_used_this_function): Remove.
3706         (arm_output_function_prologue): Remove use of
3707         return_used_this_function.
3708         (output_return_instruction): Replace use of
3709         return_used_this_function
3710         by cfun->machine->return_used_this_function.
3711         (arm_output_epilogue): Likewise.
3712         (arm_output_function_epilogue): Likewise.
3713         (thumb_unexpanded_epilogue): Likewise.
3714         * config/arm/arm.h (struct machine_function):
3715         New member return_used_this_function.
3716
3717 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
3718
3719         * doc/install.texi: Correct description of default directory for
3720         --with-gxx-include-dir.
3721
3722 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3723
3724         * fold-const.c (build_range_check): Properly deal with enumeral and
3725         boolean base types.
3726
3727 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
3728
3729         * doc/invoke.texi (max_gcse_passes): Remove documentation.
3730         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3731         * params.h (MAX_GCSE_PASSES): Remove.
3732         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3733         in sequence.  Remove ability to run multiple passes.
3734         (bypass_jumps): Report run as third CPROP pass.
3735
3736 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
3737
3738         PR middle-end/39651
3739         * except.c (can_throw_external): Look at each insn in a SEQUENCE
3740         when deciding whether the whole SEQUENCE can throw.
3741
3742 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
3743
3744         PR target/39740
3745         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
3746         offseted label references.
3747
3748 2009-04-11  Jan Hubicka  <jh@suse.cz>
3749
3750         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
3751
3752 2009-04-11  Richard Guenther  <rguenther@suse.de>
3753
3754         PR middle-end/39732
3755         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
3756         return variables as TREE_ADDRESSABLE.
3757
3758 2009-04-11  Richard Guenther  <rguenther@suse.de>
3759
3760         PR tree-optimization/39713
3761         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
3762         reference trees have SSA_NAME operands.
3763
3764 2009-04-11  Richard Guenther  <rguenther@suse.de>
3765
3766         PR c/39712
3767         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
3768         address expressions.
3769
3770 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3771
3772         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
3773         match changes in Cygwin 1.7
3774         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
3775         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
3776
3777 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3778
3779         PR tree-optimization/39701
3780         * doc/invoke.texi (Optimization Options): Document change in
3781         meaning and initialization of -fdelete-null-pointer-checks.
3782
3783 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
3784
3785         PR middle-end/39701
3786         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
3787
3788         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
3789         here.
3790
3791         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
3792
3793 2009-04-10  Chao-ying Fu  <fu@mips.com>
3794
3795         * doc/tm.texi (Instruction Output): Document
3796         TARGET_ASM_FINAL_POSTSCAN_INSN.
3797         * target.h (final_postscan_insn): New field in asm_out.
3798         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3799         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
3800         * final.c (final_scan_insn): Call
3801         targetm.asm_out.final_postscan_insn after outputting
3802         an asm macro and a normal instruction.
3803
3804         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
3805         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
3806         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
3807         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
3808         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3809
3810 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3811
3812         PR middle-end/39701
3813         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
3814         variables as non-NULL even with -fdelete-null-pointer-checks.
3815
3816 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
3817
3818         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
3819
3820 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
3821
3822         PR target/39678
3823         * config/i386/i386.c (classify_argument): Handle SCmode with
3824         (bit_offset % 64) != 0.
3825
3826 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
3827
3828         * doc/invoke.texi (Optimize Options): Add cross-reference to
3829         -Q --help=optimizers examples.
3830
3831 2009-04-10  Ben Elliston  <bje@au.ibm.com>
3832
3833         PR target/36800
3834         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
3835         regalign for the reg == fpr and TDmode case.
3836
3837 2009-04-09  David Ayers  <ayers@fsfe.org>
3838
3839         PR objc/29200
3840         * objc/objc-act.c (warn_with_method): Remove helper function.
3841         (check_duplicates): Call warning and inform directly.
3842         (really_start_method): Likewise.
3843
3844 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
3845
3846         * expmed.c (expand_divmod): Always use a comparison for a division
3847         by a large unsigned integer.
3848
3849         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
3850         for things others than variables or functions as nonzero.
3851
3852 2009-04-09  Nick Clifton  <nickc@redhat.com>
3853
3854         * unwind-compat.c: Change copyright header to refer to version
3855         3 of the GNU General Public License with version 3.1 of the
3856         GCC Runtime Library Exception and to point readers at the
3857         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
3858         * config/alpha/crtfastmath.c: Likewise.
3859         * config/alpha/linux-unwind.h: Likewise.
3860         * config/alpha/qrnnd.asm: Likewise.
3861         * config/alpha/vms-crt0-64.c: Likewise.
3862         * config/alpha/vms-crt0.c: Likewise.
3863         * config/alpha/vms-dwarf2.asm: Likewise.
3864         * config/alpha/vms-dwarf2eh.asm: Likewise.
3865         * config/alpha/vms-psxcrt0-64.c: Likewise.
3866         * config/alpha/vms-psxcrt0.c: Likewise.
3867         * config/alpha/vms_tramp.asm: Likewise.
3868         * config/arc/initfini.c: Likewise.
3869         * config/arc/lib1funcs.asm: Likewise.
3870         * config/arm/bpabi-v6m.S: Likewise.
3871         * config/arm/bpabi.S: Likewise.
3872         * config/arm/bpabi.c: Likewise.
3873         * config/arm/crti.asm: Likewise.
3874         * config/arm/crtn.asm: Likewise.
3875         * config/arm/ieee754-df.S: Likewise.
3876         * config/arm/ieee754-sf.S: Likewise.
3877         * config/arm/lib1funcs.asm: Likewise.
3878         * config/arm/libunwind.S: Likewise.
3879         * config/arm/linux-atomic.c: Likewise.
3880         * config/arm/mmintrin.h: Likewise.
3881         * config/arm/pr-support.c: Likewise.
3882         * config/arm/unaligned-funcs.c: Likewise.
3883         * config/arm/unwind-arm.c: Likewise.
3884         * config/arm/unwind-arm.h: Likewise.
3885         * config/avr/libgcc.S: Likewise.
3886         * config/bfin/crti.s: Likewise.
3887         * config/bfin/crtlibid.s: Likewise.
3888         * config/bfin/crtn.s: Likewise.
3889         * config/bfin/lib1funcs.asm: Likewise.
3890         * config/bfin/linux-unwind.h: Likewise.
3891         * config/cris/arit.c: Likewise.
3892         * config/cris/cris_abi_symbol.c: Likewise.
3893         * config/darwin-64.c: Likewise.
3894         * config/darwin-crt2.c: Likewise.
3895         * config/darwin-crt3.c: Likewise.
3896         * config/darwin.h: Likewise.
3897         * config/dbxelf.h: Likewise.
3898         * config/dfp-bit.c: Likewise.
3899         * config/dfp-bit.h: Likewise.
3900         * config/elfos.h: Likewise.
3901         * config/fixed-bit.c: Likewise.
3902         * config/fixed-bit.h: Likewise.
3903         * config/fp-bit.c: Likewise.
3904         * config/fp-bit.h: Likewise.
3905         * config/fr30/crti.asm: Likewise.
3906         * config/fr30/crtn.asm: Likewise.
3907         * config/fr30/lib1funcs.asm: Likewise.
3908         * config/freebsd-spec.h: Likewise.
3909         * config/frv/cmovd.c: Likewise.
3910         * config/frv/cmovh.c: Likewise.
3911         * config/frv/cmovw.c: Likewise.
3912         * config/frv/frvbegin.c: Likewise.
3913         * config/frv/frvend.c: Likewise.
3914         * config/frv/lib1funcs.asm: Likewise.
3915         * config/glibc-stdint.h: Likewise.
3916         * config/h8300/clzhi2.c: Likewise.
3917         * config/h8300/crti.asm: Likewise.
3918         * config/h8300/crtn.asm: Likewise.
3919         * config/h8300/ctzhi2.c: Likewise.
3920         * config/h8300/fixunssfsi.c: Likewise.
3921         * config/h8300/lib1funcs.asm: Likewise.
3922         * config/h8300/parityhi2.c: Likewise.
3923         * config/h8300/popcounthi2.c: Likewise.
3924         * config/i386/ammintrin.h: Likewise.
3925         * config/i386/att.h: Likewise.
3926         * config/i386/avxintrin.h: Likewise.
3927         * config/i386/biarch64.h: Likewise.
3928         * config/i386/bmmintrin.h: Likewise.
3929         * config/i386/cpuid.h: Likewise.
3930         * config/i386/cross-stdarg.h: Likewise.
3931         * config/i386/crtfastmath.c: Likewise.
3932         * config/i386/crtprec.c: Likewise.
3933         * config/i386/cygming-crtbegin.c: Likewise.
3934         * config/i386/cygming-crtend.c: Likewise.
3935         * config/i386/cygwin.asm: Likewise.
3936         * config/i386/emmintrin.h: Likewise.
3937         * config/i386/gmm_malloc.h: Likewise.
3938         * config/i386/gthr-win32.c: Likewise.
3939         * config/i386/i386.h: Likewise.
3940         * config/i386/immintrin.h: Likewise.
3941         * config/i386/linux-unwind.h: Likewise.
3942         * config/i386/linux64.h: Likewise.
3943         * config/i386/mm3dnow.h: Likewise.
3944         * config/i386/mmintrin-common.h: Likewise.
3945         * config/i386/mmintrin.h: Likewise.
3946         * config/i386/nmmintrin.h: Likewise.
3947         * config/i386/pmm_malloc.h: Likewise.
3948         * config/i386/pmmintrin.h: Likewise.
3949         * config/i386/smmintrin.h: Likewise.
3950         * config/i386/sol2-c1.asm: Likewise.
3951         * config/i386/sol2-ci.asm: Likewise.
3952         * config/i386/sol2-cn.asm: Likewise.
3953         * config/i386/sol2-gc1.asm: Likewise.
3954         * config/i386/tmmintrin.h: Likewise.
3955         * config/i386/unix.h: Likewise.
3956         * config/i386/w32-unwind.h: Likewise.
3957         * config/i386/wmmintrin.h: Likewise.
3958         * config/i386/x86-64.h: Likewise.
3959         * config/i386/x86intrin.h: Likewise.
3960         * config/i386/xmmintrin.h: Likewise.
3961         * config/ia64/crtbegin.asm: Likewise.
3962         * config/ia64/crtend.asm: Likewise.
3963         * config/ia64/crtfastmath.c: Likewise.
3964         * config/ia64/crti.asm: Likewise.
3965         * config/ia64/crtn.asm: Likewise.
3966         * config/ia64/fde-glibc.c: Likewise.
3967         * config/ia64/lib1funcs.asm: Likewise.
3968         * config/ia64/linux-unwind.h: Likewise.
3969         * config/ia64/quadlib.c: Likewise.
3970         * config/ia64/unwind-ia64.c: Likewise.
3971         * config/linux.h: Likewise.
3972         * config/m32c/m32c-lib1.S: Likewise.
3973         * config/m32c/m32c-lib2-trapv.c: Likewise.
3974         * config/m32c/m32c-lib2.c: Likewise.
3975         * config/m32r/initfini.c: Likewise.
3976         * config/m68hc11/larith.asm: Likewise.
3977         * config/m68hc11/m68hc11-crt0.S: Likewise.
3978         * config/m68k/cf.md: Likewise.
3979         * config/m68k/crti.s: Likewise.
3980         * config/m68k/crtn.s: Likewise.
3981         * config/m68k/lb1sf68.asm: Likewise.
3982         * config/m68k/linux-unwind.h: Likewise.
3983         * config/mcore/crti.asm: Likewise.
3984         * config/mcore/crtn.asm: Likewise.
3985         * config/mcore/lib1.asm: Likewise.
3986         * config/mips/linux-unwind.h: Likewise.
3987         * config/mips/loongson.h: Likewise.
3988         * config/mips/mips16.S: Likewise.
3989         * config/mmix/crti.asm: Likewise.
3990         * config/mmix/crtn.asm: Likewise.
3991         * config/pa/fptr.c: Likewise.
3992         * config/pa/hpux-unwind.h: Likewise.
3993         * config/pa/lib2funcs.asm: Likewise.
3994         * config/pa/linux-atomic.c: Likewise.
3995         * config/pa/linux-unwind.h: Likewise.
3996         * config/pa/milli64.S: Likewise.
3997         * config/pa/quadlib.c: Likewise.
3998         * config/pa/stublib.c: Likewise.
3999         * config/picochip/libgccExtras/adddi3.asm: Likewise.
4000         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
4001         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
4002         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
4003         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
4004         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
4005         * config/picochip/libgccExtras/divmod15.asm: Likewise.
4006         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
4007         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
4008         * config/picochip/libgccExtras/longjmp.asm: Likewise.
4009         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
4010         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
4011         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
4012         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
4013         * config/picochip/libgccExtras/setjmp.asm: Likewise.
4014         * config/picochip/libgccExtras/subdi3.asm: Likewise.
4015         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
4016         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
4017         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
4018         * config/rs6000/750cl.h: Likewise.
4019         * config/rs6000/altivec.h: Likewise.
4020         * config/rs6000/biarch64.h: Likewise.
4021         * config/rs6000/crtresfpr.asm: Likewise.
4022         * config/rs6000/crtresgpr.asm: Likewise.
4023         * config/rs6000/crtresxfpr.asm: Likewise.
4024         * config/rs6000/crtresxgpr.asm: Likewise.
4025         * config/rs6000/crtsavfpr.asm: Likewise.
4026         * config/rs6000/crtsavgpr.asm: Likewise.
4027         * config/rs6000/darwin-asm.h: Likewise.
4028         * config/rs6000/darwin-fallback.c: Likewise.
4029         * config/rs6000/darwin-fpsave.asm: Likewise.
4030         * config/rs6000/darwin-ldouble.c: Likewise.
4031         * config/rs6000/darwin-tramp.asm: Likewise.
4032         * config/rs6000/darwin-unwind.h: Likewise.
4033         * config/rs6000/darwin-vecsave.asm: Likewise.
4034         * config/rs6000/darwin-world.asm: Likewise.
4035         * config/rs6000/e500crtres32gpr.asm: Likewise.
4036         * config/rs6000/e500crtres64gpr.asm: Likewise.
4037         * config/rs6000/e500crtres64gprctr.asm: Likewise.
4038         * config/rs6000/e500crtrest32gpr.asm: Likewise.
4039         * config/rs6000/e500crtrest64gpr.asm: Likewise.
4040         * config/rs6000/e500crtresx32gpr.asm: Likewise.
4041         * config/rs6000/e500crtresx64gpr.asm: Likewise.
4042         * config/rs6000/e500crtsav32gpr.asm: Likewise.
4043         * config/rs6000/e500crtsav64gpr.asm: Likewise.
4044         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
4045         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
4046         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
4047         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
4048         * config/rs6000/eabi-ci.asm: Likewise.
4049         * config/rs6000/eabi-cn.asm: Likewise.
4050         * config/rs6000/eabi.asm: Likewise.
4051         * config/rs6000/linux-unwind.h: Likewise.
4052         * config/rs6000/linux64.h: Likewise.
4053         * config/rs6000/paired.h: Likewise.
4054         * config/rs6000/paired.md: Likewise.
4055         * config/rs6000/ppc64-fp.c: Likewise.
4056         * config/rs6000/ppu_intrinsics.h: Likewise.
4057         * config/rs6000/rs6000.h: Likewise.
4058         * config/rs6000/si2vmx.h: Likewise.
4059         * config/rs6000/sol-ci.asm: Likewise.
4060         * config/rs6000/sol-cn.asm: Likewise.
4061         * config/rs6000/spe.h: Likewise.
4062         * config/rs6000/spu2vmx.h: Likewise.
4063         * config/rs6000/sysv4.h: Likewise.
4064         * config/rs6000/tramp.asm: Likewise.
4065         * config/rs6000/vec_types.h: Likewise.
4066         * config/s390/linux-unwind.h: Likewise.
4067         * config/s390/tpf-unwind.h: Likewise.
4068         * config/score/crti.asm: Likewise.
4069         * config/score/crtn.asm: Likewise.
4070         * config/sh/crt1.asm: Likewise.
4071         * config/sh/crti.asm: Likewise.
4072         * config/sh/crtn.asm: Likewise.
4073         * config/sh/divtab-sh4-300.c: Likewise.
4074         * config/sh/divtab-sh4.c: Likewise.
4075         * config/sh/divtab.c: Likewise.
4076         * config/sh/lib1funcs-4-300.asm: Likewise.
4077         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
4078         * config/sh/lib1funcs.asm: Likewise.
4079         * config/sh/lib1funcs.h: Likewise.
4080         * config/sh/linux-atomic.asm: Likewise.
4081         * config/sh/linux-unwind.h: Likewise.
4082         * config/sh/shmedia.h: Likewise.
4083         * config/sh/sshmedia.h: Likewise.
4084         * config/sh/ushmedia.h: Likewise.
4085         * config/sparc/crtfastmath.c: Likewise.
4086         * config/sparc/linux-unwind.h: Likewise.
4087         * config/sparc/sol2-c1.asm: Likewise.
4088         * config/sparc/sol2-ci.asm: Likewise.
4089         * config/sparc/sol2-cn.asm: Likewise.
4090         * config/spu/divmodti4.c: Likewise.
4091         * config/spu/divv2df3.c: Likewise.
4092         * config/spu/float_disf.c: Likewise.
4093         * config/spu/float_unsdidf.c: Likewise.
4094         * config/spu/float_unsdisf.c: Likewise.
4095         * config/spu/float_unssidf.c: Likewise.
4096         * config/spu/mfc_multi_tag_release.c: Likewise.
4097         * config/spu/mfc_multi_tag_reserve.c: Likewise.
4098         * config/spu/mfc_tag_release.c: Likewise.
4099         * config/spu/mfc_tag_reserve.c: Likewise.
4100         * config/spu/mfc_tag_table.c: Likewise.
4101         * config/spu/multi3.c: Likewise.
4102         * config/spu/spu_internals.h: Likewise.
4103         * config/spu/spu_intrinsics.h: Likewise.
4104         * config/spu/spu_mfcio.h: Likewise.
4105         * config/spu/vec_types.h: Likewise.
4106         * config/spu/vmx2spu.h: Likewise.
4107         * config/stormy16/stormy16-lib2.c: Likewise.
4108         * config/svr4.h: Likewise.
4109         * config/sync.c: Likewise.
4110         * config/v850/lib1funcs.asm: Likewise.
4111         * config/vxlib-tls.c: Likewise.
4112         * config/vxlib.c: Likewise.
4113         * config/vxworks-dummy.h: Likewise.
4114         * config/xtensa/crti.asm: Likewise.
4115         * config/xtensa/crtn.asm: Likewise.
4116         * config/xtensa/ieee754-df.S: Likewise.
4117         * config/xtensa/ieee754-sf.S: Likewise.
4118         * config/xtensa/lib1funcs.asm: Likewise.
4119         * config/xtensa/lib2funcs.S: Likewise.
4120         * config/xtensa/linux-unwind.h: Likewise.
4121         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
4122         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
4123         * coretypes.h: Likewise.
4124         * crtstuff.c: Likewise.
4125         * defaults.h: Likewise.
4126         * dwarf2.h: Likewise.
4127         * emutls.c: Likewise.
4128         * gbl-ctors.h: Likewise.
4129         * gcov-io.h: Likewise.
4130         * ginclude/float.h: Likewise.
4131         * ginclude/iso646.h: Likewise.
4132         * ginclude/stdarg.h: Likewise.
4133         * ginclude/stdbool.h: Likewise.
4134         * ginclude/stddef.h: Likewise.
4135         * ginclude/stdfix.h: Likewise.
4136         * ginclude/stdint-gcc.h: Likewise.
4137         * ginclude/tgmath.h: Likewise.
4138         * gthr-aix.h: Likewise.
4139         * gthr-dce.h: Likewise.
4140         * gthr-gnat.c: Likewise.
4141         * gthr-gnat.h: Likewise.
4142         * gthr-lynx.h: Likewise.
4143         * gthr-mipssde.h: Likewise.
4144         * gthr-nks.h: Likewise.
4145         * gthr-posix.c: Likewise.
4146         * gthr-posix.h: Likewise.
4147         * gthr-posix95.h: Likewise.
4148         * gthr-rtems.h: Likewise.
4149         * gthr-single.h: Likewise.
4150         * gthr-solaris.h: Likewise.
4151         * gthr-tpf.h: Likewise.
4152         * gthr-vxworks.h: Likewise.
4153         * gthr-win32.h: Likewise.
4154         * gthr.h: Likewise.
4155         * libgcc2.c: Likewise.
4156         * libgcc2.h: Likewise.
4157         * libgcov.c: Likewise.
4158         * tsystem.h: Likewise.
4159         * typeclass.h: Likewise.
4160         * unwind-c.c: Likewise.
4161         * unwind-compat.h: Likewise.
4162         * unwind-dw2-fde-compat.c: Likewise.
4163         * unwind-dw2-fde-darwin.c: Likewise.
4164         * unwind-dw2-fde-glibc.c: Likewise.
4165         * unwind-dw2-fde.c: Likewise.
4166         * unwind-dw2-fde.h: Likewise.
4167         * unwind-dw2.c: Likewise.
4168         * unwind-dw2.h: Likewise.
4169         * unwind-generic.h: Likewise.
4170         * unwind-pe.h: Likewise.
4171         * unwind-sjlj.c: Likewise.
4172         * unwind.inc: Likewise.
4173         * config/arm/neon-gen.ml: Change generated copyright header to
4174         refer to version 3 of the GNU General Public License with
4175         version 3.1 of the GCC Runtime Library Exception and to point
4176         readers at the COPYING3 and COPYING3.RUNTIME files and the
4177         FSF's license web page.
4178         * config/arm/arm_neon.h: Regenerate.
4179
4180 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
4181
4182         * config/cris/cris.md: Change copyright header to refer to version
4183         3 of the GNU General Public License.
4184         * doc/install.texi2html: Change copyright header to refer to version
4185         3 of the GNU General Public License and to point readers at the
4186         COPYING3 file and the FSF's license web page.
4187         * config/vax/linux.h: Likewise.
4188
4189 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
4190
4191         * config/i386/i386.md (cmpcc): New.
4192         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
4193         (sync_compare_and_swap_cc*): Delete.
4194
4195         * config/s390/s390.c (s390_compare_emitted): Remove.
4196         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
4197         s390_compare_emitted used to be handled.  Assert that modes match.
4198         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
4199         refer to sync_compare_and_swap_ccsi.
4200         * config/s390/s390.h (s390_compare_emitted): Remove.
4201         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
4202         instead of s390_compare_emitted.
4203         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
4204         instead of s390_compare_emitted.
4205         * config/s390/s390.md (cmpcc): New.
4206         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
4207         CC_REGNUM, do not pretend it's set.
4208         (sync_compare_and_swap_cc*): Delete.
4209         * config/s390/predicates.md (cc_reg_operand): New.
4210
4211         * expr.c (sync_compare_and_swap_cc): Delete.
4212         * optabs.h (sync_compare_and_swap_cc): Delete.
4213         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
4214         is being used with can_compare_p.
4215         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
4216         (find_cc_set): New.
4217         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
4218         look for a MODE_CC set instead.  Use emit_store_flag.
4219         (expand_compare_and_swap_loop): Likewise, with some additional
4220         complication to avoid a force_reg when useless.  Use
4221         emit_cmp_and_jump_insns.
4222         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
4223         * doc/md.texi (sync_compare_and_swap_cc): Merge with
4224         sync_compare_and_swap documentation.
4225
4226 2009-04-09  Jan Hubicka  <jh@suse.cz>
4227
4228         * except.c (find_prev_try): Break out from ....
4229         (duplicate_eh_regions): ... here; properly update prev_try pointers
4230         when duplication part of tree.
4231         (dump_eh_tree): Improve dumping.
4232         (verify_eh_region): New.
4233         (verify_eh_tree): Use it.
4234
4235 2009-04-06  Richard Guenther  <rguenther@suse.de>
4236
4237         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
4238         &ARRAY addresses by adjusting their types and prepending
4239         a conversion.
4240         * tree-cfg.c (verify_gimple_assign_single): Verify that
4241         addresses are correct.
4242
4243 2009-04-09  Richard Guenther  <rguenther@suse.de>
4244
4245         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
4246         indices into an array reference if possible.
4247         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
4248         Fold POINTER_PLUS_EXPR statements with invariant address.
4249
4250 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
4251
4252         PR target/39634
4253         * config.gcc (powerpc64-*-linux*): Always build biarch.
4254
4255 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
4256
4257         PR c/39613
4258         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
4259         it and pedwarn if this results in an INTEGER_CST.
4260
4261 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4262
4263         * doc/install.texi: Update minimum GMP version.  Remove obsolete
4264         text in MPFR section.
4265
4266 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
4267
4268         * dwarf2out.c (class_scope_p): New static inline.
4269         (class_or_namespace_scope_p): Use it.
4270         (gen_variable_die): Use DW_TAG_member tag for static data member
4271         declarations instead of DW_TAG_variable.
4272
4273         PR middle-end/39573
4274         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
4275         variables.
4276
4277 2009-04-08  Richard Guenther  <rguenther@suse.de>
4278
4279         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
4280         valueize random data.
4281
4282 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
4283
4284         * config.gcc (aix tm_file):  Add aix-stdint.h.
4285         (aix tm clause use_gcc_stdint):  Set to wrap.
4286         * config/rs6000/aix-stdint.h:  New file.
4287
4288 2009-04-08  Richard Guenther  <rguenther@suse.de>
4289
4290         PR middle-end/36291
4291         * tree-dfa.c (add_referenced_var): Do not recurse into
4292         global initializers.
4293         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
4294         exposed variables.
4295         (fold_const_aggregate_ref): Likewise.
4296
4297 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4298
4299         * recog.c (ordered_comparison_operator): New.
4300         * gensupport.c (std_preds): Add it.
4301         * doc/md.texi (Machine-Independent Predicates): Document it.
4302
4303 2009-04-08  Jan Hubicka  <jh@suse.cz>
4304
4305         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
4306         * function.h (rtl_eh): Remove exception_handler_label_map.
4307         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
4308         remove_exception_handler_label, for_each_eh_label_1): Remove.
4309         (rtl_remove_unreachable_regions): Remove.
4310         (convert_from_eh_region_ranges): Do not remove unreachable regions.
4311         (find_exception_handler_labels): Don't build the hashtable.
4312         (maybe_remove_eh_handler): Remove.
4313         (for_each_eh_label): Rewrite to walk the tree.
4314         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
4315         * except.h (maybe_remove_eh_handler): Remove.
4316         * passes.c (init_optimization_passes): Schedule second EH cleanup
4317         before out-of-ssa.
4318         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
4319         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
4320
4321 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
4322
4323         * genoutput.c (validate_optab_operands): New.
4324         (gen_insn, gen_expand): Call it.
4325
4326         * genflags.c (gen_insn): Detect misused iterators.
4327         (main): Pass line_no to gen_insn, exit with status 1 on error.
4328
4329         * genextract.c (line_no): Make global.
4330         (VEC_safe_set_locstr): Change assertion to error message.
4331         (main): Exit with status 1 on error.
4332
4333 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
4334
4335         PR c/39614
4336         PR c/39673
4337         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
4338         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
4339         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
4340         * c-convert.c (convert): Do not call fold on results of conversion
4341         functions when the result is a C_MAYBE_CONST_EXPR.
4342         * c-parser.c (c_parser_postfix_expression): Do not fold condition
4343         of __builtin_choose_expr.
4344         * c-typeck.c (remove_c_maybe_const_expr): New.
4345         (build_unary_op, build_conditional_expr, build_compound_expr,
4346         build_binary_op, c_objc_common_truthvalue_conversion): Call
4347         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
4348         integer operands.
4349
4350 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
4351
4352         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
4353         CODE to produce a new one. Add a prototype to use fold_convert_const
4354
4355 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
4356
4357         PR bootstrap/39660
4358         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
4359         mix declarations and code.
4360
4361 2009-04-08  Ben Elliston  <bje@au.ibm.com>
4362
4363         * gcc.c: Replace `CC' with `GCC' throughout.
4364
4365 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
4366
4367         * doc/invoke.texi: Document Atom support.
4368
4369 2009-04-07  Jason Merrill  <jason@redhat.com>
4370
4371         PR c++/25185
4372         * c-common.h, c-common.c: Add flag_pretty_templates.
4373         * c-opts.c (c_common_handle_option): Set it.
4374         * c.opt: Add -fno-pretty-templates.
4375         * doc/invoke.texi (C++ Dialect Options): Likewise.
4376
4377 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
4378
4379         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4380         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
4381         (ia64_expand_builtin): Likewise.
4382
4383 2009-04-07  Martin Jambor  <mjambor@suse.cz>
4384
4385         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
4386         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
4387         ADDR_EXPRS are include too.
4388
4389 2009-04-07  Richard Guenther  <rguenther@suse.de>
4390
4391         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
4392         decls are only used if passes as parameters or if they are
4393         local statics and the call is not to a builtin.
4394         (call_may_clobber_ref_p_1): Likewise.
4395
4396 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4397
4398         * expr.c (do_store_flag): Remove last argument.  Simplify code
4399         to avoid duplication of tests already done by can_compare_p.
4400         (expand_expr_real_1): Adjust caller.
4401
4402 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4403
4404         * optabs.c (can_compare_p): Test the predicate of a
4405         cbranch and cstore pattern.
4406
4407 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4408
4409         * expr.c (convert_move): Use emit_store_flag instead of
4410         "emulating" it.
4411
4412 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
4413
4414         * config/i386/i386.c (ix86_compare_emitted): Remove.
4415         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
4416         ix86_compare_op0 like ix86_compare_emitted used to be handled.
4417         * config/i386/i386.h (ix86_compare_emitted): Remove.
4418         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
4419         instead of ix86_compare_emitted.
4420         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
4421
4422 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
4423
4424         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
4425         Add t-sysroot-suffix to tmake_file.
4426         * config/print-sysroot-suffix.sh: New file.
4427         * config/t-sysroot-suffix: New file.
4428
4429 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4430
4431         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
4432         as the latter produces a warning when the target does not support
4433         infinity.
4434
4435 2009-04-07  Ben Elliston  <bje@au.ibm.com>
4436
4437         * dfp.c: Replace type punning assignments with memcpy throughout.
4438         * Makefile.in (dfp.o-warn): Remove.
4439
4440 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
4441
4442         PR target/39634
4443         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
4444         Include soft-fp/t-softfp after rs6000/t-linux64.
4445
4446 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
4447
4448         * stor-layout.c (set_sizetype): Use the full precision of their
4449         machine mode for bitsize types.
4450
4451 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
4452
4453         * config/i386/i386.md: Revert 2 accidental checkins.
4454
4455 2009-04-06  Joey Ye  <joey.ye@intel.com>
4456             Xuepeng Guo  <xuepeng.guo@intel.com>
4457             H.J. Lu  <hongjiu.lu@intel.com>
4458
4459         Atom pipeline model, tuning and insn selection.
4460         * config.gcc (atom): Add atom config options and target.
4461
4462         * config/i386/atom.md: New.
4463
4464         * config/i386/i386.c (atom_cost): New cost.
4465         (m_ATOM): New macro flag.
4466         (initial_ix86_tune_features): Set m_ATOM.
4467         (x86_accumulate_outgoing_args): Likewise.
4468         (x86_arch_always_fancy_math_387): Likewise.
4469         (processor_target): Add Atom cost.
4470         (cpu_names): Add Atom cpu name.
4471         (override_options): Set Atom ISA.
4472         (ix86_issue_rate): New case PROCESSOR_ATOM.
4473         (ix86_adjust_cost): Likewise.
4474
4475         * config/i386/i386.h (TARGET_ATOM): New target macro.
4476         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
4477         (TARGET_OPT_AGU): New target option.
4478         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
4479         (processor_type): Add PROCESSOR_ATOM.
4480
4481         * config/i386/i386.md (cpu): Add new value "atom".
4482         (use_carry, movu): New attr.
4483         (atom.md): Include atom.md.
4484         (adddi3_carry_rex64): Set attr "use_carry".
4485         (addqi3_carry): Likewise.
4486         (addhi3_carry): Likewise.
4487         (addsi3_carry): Likewise.
4488         (*addsi3_carry_zext): Likewise.
4489         (subdi3_carry_rex64): Likewise.
4490         (subqi3_carry): Likewise.
4491         (subhi3_carry): Likewise.
4492         (subsi3_carry): Likewise.
4493         (x86_movdicc_0_m1_rex64): Likewise.
4494         (*x86_movdicc_0_m1_se): Likewise.
4495         (x86_movsicc_0_m1): Likewise.
4496         (*x86_movsicc_0_m1_se): Likewise.
4497         (*adddi_1_rex64): Emit add insn as much as possible.
4498         (*addsi_1): Likewise.
4499         (return_internal): Set atom_unit.
4500         (return_internal_long): Likewise.
4501         (return_pop_internal): Likewise.
4502         (*rcpsf2_sse): Set atom_sse_attr attr.
4503         (*qrt<mode>2_sse): Likewise.
4504         (*prefetch_sse): Likewise.
4505
4506         * config/i386/i386-c.c (ix86_target_macros_internal): New case
4507         PROCESSOR_ATOM.
4508         (ix86_target_macros_internal): Likewise.
4509
4510         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
4511         (*prefetch_sse_rex): Likewise.
4512         (sse_rcpv4sf2): Likewise.
4513         (sse_vmrcpv4sf2): Likewise.
4514         (sse_sqrtv4sf2): Likewise.
4515         (<sse>_vmsqrt<mode>2): Likewise.
4516         (sse_ldmxcsr): Likewise.
4517         (sse_stmxcsr): Likewise.
4518         (*sse_sfence): Likewise.
4519         (sse2_clflush): Likewise.
4520         (*sse2_mfence): Likewise.
4521         (*sse2_lfence): Likewise.
4522         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
4523         (<sse>_movup<ssemodesuffixf2c>): Likewise.
4524         (avx_movdqu<avxmodesuffix>): Likewise.
4525         (avx_lddqu<avxmodesuffix>): Likewise.
4526         (sse2_movntv2di): Change attr "type" to "ssemov".
4527         (sse2_movntsi): Likewise.
4528         (rsqrtv8sf2): Change attr "type" to "sseadd".
4529         (sse3_addsubv2df3): Set attr "atom_unit".
4530         (sse3_h<plusminus_insn>v4sf3): Likewise.
4531         (*sse2_pmaddwd): Likewise.
4532         (*vec_extractv2di_1_rex64): Likewise.
4533         (*vec_extractv2di_1_avx): Likewise.
4534         (sse2_psadbw): Likewise.
4535         (ssse3_phaddwv8hi3): Likewise.
4536         (ssse3_phaddwv4hi3): Likewise.
4537         (ssse3_phadddv4si3): Likewise.
4538         (ssse3_phadddv2si3): Likewise.
4539         (ssse3_phaddswv8hi3): Likewise.
4540         (ssse3_phaddswv4hi3): Likewise.
4541         (ssse3_phsubwv8hi3): Likewise.
4542         (ssse3_phsubwv4hi3): Likewise.
4543         (ssse3_phsubdv4si3): Likewise.
4544         (ssse3_phsubdv2si3): Likewise.
4545         (ssse3_phsubswv8hi3): Likewise.
4546         (ssse3_phsubswv4hi3): Likewise.
4547         (ssse3_pmaddubsw128): Likewise.
4548         (sse3_pmaddubsw: Likewise.
4549         (ssse3_palignrti): Likewise.
4550         (ssse3_palignrdi): Likewise.
4551
4552 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
4553
4554         * doc/install.texi (Specific): Fix two cross-references to MinGW.
4555
4556 2009-04-06  Richard Guenther  <rguenther@suse.de>
4557
4558         PR tree-optimization/28868
4559         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
4560         of which PHI results we inserted.
4561         (insert_into_preds_of_block): Record inserted PHIs.
4562         (eliminate): Eliminate redundant PHI nodes.
4563         (init_pre): Init inserted_phi_names.
4564
4565 2009-04-06  Richard Guenther  <rguenther@suse.de>
4566
4567         PR tree-optimization/39643
4568         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
4569         IMAGPART_EXPRs of complex constants.
4570         (execute_fold_all_builtins): If we folded a call queue
4571         TODO_update_address_taken.
4572
4573 2009-04-06  Jan Hubicka  <jh@suse.cz>
4574
4575         PR middle-end/39659
4576         * except.c (remove_unreachable_regions): Propagate may_contain_throw
4577         flag.
4578
4579 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
4580
4581         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
4582         delay slot.
4583         (ic_invalidate_array): Likewise.
4584
4585 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
4586
4587         * calls.c (emit_library_call_value_1): Fix a problem with parameter
4588         alignment for library calls.
4589
4590 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
4591
4592         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
4593         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
4594         * config/i386/mingw-stdint.h:  New file.
4595
4596 2009-04-05  Richard Guenther  <rguenther@suse.de>
4597
4598         PR tree-optimization/39648
4599         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
4600         our &A vs. &A[0] IL deficiencies.
4601
4602 2009-04-04  Jan Hubicka  <jh@suse.cz>
4603
4604         * except.c (sjlj_find_directly_reachable_regions): Be ready for
4605         removed toplevel regions.
4606         (sjlj_mark_call_sites): Likewise.
4607
4608 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
4609
4610         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
4611         (cygwin tm clause use_gcc_stdint):  Set to wrap.
4612         * config/i386/cygwin-stdint.h:  New file.
4613
4614 2009-04-04  Richard Guenther  <rguenther@suse.de>
4615
4616         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
4617         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
4618         single-argument PHIs if we are in loop-closed SSA form.
4619         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
4620         for the pre-condition.
4621         (slpeel_tree_peel_loop_to_edge): Likewise.
4622         (vect_build_loop_niters): Take an optional sequence to append stmts.
4623         (vect_generate_tmps_on_preheader): Likewise.
4624         (vect_do_peeling_for_loop_bound): Take extra guards for the
4625         pre-condition.
4626         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
4627         the cost model check.
4628         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
4629         guards if we are going to peel.  Do not apply versioning in that case.
4630         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
4631         (vect_do_peeling_for_loop_bound): Likewise.
4632         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
4633         loop bound only record extra pre-conditions, do not apply loop
4634         versioning.
4635
4636 2009-04-04  Richard Guenther  <rguenther@suse.de>
4637
4638         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
4639         renaming code.
4640
4641 2009-04-04  Jan Hubicka  <jh@suse.cz>
4642
4643         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
4644         last_basic_block for size of bb->index indexed array.
4645         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
4646         compute_out, link_btr_uses, build_btr_def_use_webs,
4647         build_btr_def_use_webs, migrate_btr_defs): Likewise.
4648
4649 2009-04-04  Jan Hubicka  <jh@suse.cz>
4650
4651         * except.c (remove_eh_handler_and_replace): Break out from ...
4652         (remove_eh_handler): ... here.
4653         (bring_to_root): New function.
4654         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
4655         handled ones, bring others to root of tree.
4656
4657 2009-04-04  Jan Hubicka  <jh@suse.cz>
4658
4659         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
4660         (all_phis_safe_to_merge): New function.
4661         (update_info): New structure.
4662         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
4663         (cleanup_empty_eh): Update SSA if possible.
4664
4665 2009-04-04  Richard Guenther  <rguenther@suse.de>
4666
4667         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
4668         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
4669         (append_vuse): Likewise.
4670
4671 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
4672
4673         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
4674         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
4675         instead of REG_UNSAVED for DW_CFA_undefined.
4676         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
4677         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
4678         outermost frame.
4679
4680 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
4681
4682         PR target/39501
4683         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
4684         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
4685         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
4686
4687 2009-04-04  Richard Guenther  <rguenther@suse.de>
4688
4689         PR tree-optimization/8781
4690         PR tree-optimization/37892
4691         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
4692         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
4693         (valueize_refs): Call it for *& valueizations.
4694         (shared_reference_ops_from_ref): Rename to ...
4695         (valueize_shared_reference_ops_from_ref): ... this and valueize.
4696         (shared_reference_ops_from_call): Rename to ...
4697         (valueize_shared_reference_ops_from_call): ... this and valueize.
4698         (vn_reference_lookup): Update.
4699         (visit_reference_op_call): Likewise.
4700         * tree-ssa-pre.c (phi_translate_1): Fold *&.
4701         (eliminate): Value-replace the call address in call statements.
4702
4703 2009-04-04  Richard Guenther  <rguenther@suse.de>
4704
4705         PR tree-optimization/39636
4706         * tree-ssa-forwprop.c
4707         (forward_propagate_addr_into_variable_array_index): Check for
4708         GIMPLE_ASSIGN before accessing the rhs code.
4709
4710 2009-04-03  Jason Merrill  <jason@redhat.com>
4711
4712         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
4713
4714 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
4715
4716         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
4717         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
4718         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
4719         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
4720         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
4721         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
4722         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
4723         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
4724         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
4725         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
4726         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
4727         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
4728         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
4729         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
4730         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
4731         Use fr_reg_or_fp01_operand instead of fr_register_operand
4732
4733         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
4734         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
4735         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
4736
4737 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
4738
4739         PR rtl-optimization/39607
4740         PR rtl-optimization/39631
4741
4742         Revert:
4743
4744         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4745         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4746         instead of DF_LR_OUT.
4747         * ira-lives.c (process_bb_node_lives): Ditto.
4748         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4749         instead of DF_LR_{OUT,IN}.
4750         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4751         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4752
4753 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
4754
4755         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
4756         (execute_lower_omp): Always run but take the short way out if -fopenmp
4757         is not given.
4758         (gate_lower_omp): Remove, forcing the pass manager to always run the
4759         pass and always set PROP_gimple_lomp.
4760         (pass_lower_omp): Remove gate function.
4761         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
4762         PROP_trees.  Instead, require it.
4763         * ipa-cp.c (pass_ipa_cp): Likewise.
4764         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
4765         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
4766         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
4767         and PROP_gimple_leh.
4768
4769 2009-04-03  Richard Guenther  <rguenther@suse.de>
4770
4771         PR middle-end/13146
4772         PR tree-optimization/23940
4773         PR tree-optimization/33237
4774         PR middle-end/33974
4775         PR middle-end/34093
4776         PR tree-optimization/36201
4777         PR tree-optimization/36230
4778         PR tree-optimization/38049
4779         PR tree-optimization/38207
4780         PR tree-optimization/38230
4781         PR tree-optimization/38301
4782         PR tree-optimization/38585
4783         PR middle-end/38895
4784         PR tree-optimization/38985
4785         PR tree-optimization/39299
4786         * tree-ssa-structalias.h: Remove.
4787         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
4788         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
4789         (struct vuse_element_d): Remove.
4790         (struct vuse_vec_d): Likewise.
4791         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
4792         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
4793         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
4794         VUSE_ELEMENT_VAR): Likewise.
4795         (struct voptype_d): Likewise.
4796         (NUM_VOP_FREE_BUCKETS): Likewise.
4797         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
4798         (struct stmt_operands_d): Remove.
4799         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
4800         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
4801         VDEF_NUM, VDEF_VECT): Likewise.
4802         (copy_virtual_operands): Remove.
4803         (operand_build_cmp): Likewise.
4804         (create_ssa_artificial_load_stmt): Likewise.
4805         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
4806         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
4807         vuse_index and mayuse_index members.  Pack and move done and iter_type
4808         members to the front.
4809         (SSA_OP_VMAYUSE): Remove.
4810         (SSA_OP_VIRTUAL_USES): Adjust.
4811         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
4812         (unlink_stmt_vdef): Declare.
4813         (add_to_addressable_set): Remove.
4814         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
4815         (vrp_visit_stmt): Likewise.
4816         * doc/tree-ssa.texi (Alias analysis): Update.
4817         * doc/invoke.texi (max-aliased-vops): Remove docs.
4818         (avg-aliased-vops): Likewise.
4819         * tree-into-ssa.c (syms_to_rename): Remove.
4820         (need_to_update_vops_p): Likewise.
4821         (need_to_initialize_update_ssa_p): Rename to ...
4822         (update_ssa_initialized_fn): ... this.  Track function we are
4823         initialized for.
4824         (symbol_marked_for_renaming): Simplify.
4825         (add_new_name_mapping): Do not set need_to_update_vops_p.
4826         (dump_currdefs): Use SYMS_TO_RENAME.
4827         (rewrite_update_stmt): Always walk all uses/defs.
4828         (dump_update_ssa): Adjust.
4829         (init_update_ssa): Take function argument.  Track what we are
4830         initialized for.
4831         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
4832         (create_new_def_for): Initialize for cfun, assert we are initialized
4833         for cfun.
4834         (mark_sym_for_renaming): Simplify.
4835         (mark_set_for_renaming): Do not initialize update-ssa.
4836         (need_ssa_update_p): Simplify.  Take function argument.
4837         (name_mappings_registered_p): Assert we ask for the correct function.
4838         (name_registered_for_update_p): Likewise.
4839         (ssa_names_to_replace): Likewise.
4840         (release_ssa_name_after_update_ssa): Likewise.
4841         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
4842         (dump_decl_set): Do not print a newline.
4843         (debug_decl_set): Do it here.
4844         (dump_update_ssa): And here.
4845         * tree-ssa-loop-im.c (move_computations): Adjust.
4846         (movement_possibility): Likewise.
4847         (determine_max_movement): Likewise.
4848         (gather_mem_refs_stmt): Likewise.
4849         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
4850         or NAME_MEMORY_TAG.
4851         * tree-complex.c (update_all_vops): Remove.
4852         (expand_complex_move): Adjust.
4853         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
4854         Simplify test for memory referencing statement.  Exclude
4855         non-invariant ADDR_EXPRs.
4856         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
4857         * tree-loop-distribution.c (generate_memset_zero): Adjust.
4858         (rdg_flag_uses): Likewise.
4859         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
4860         related code.
4861         (tree_optimize_tail_calls_1): Also split the
4862         edge from the entry block if we have degenerate PHI nodes in
4863         the first basic block.
4864         * tree.c (init_ttree): Remove memory-tag related code.
4865         (tree_code_size): Likewise.
4866         (tree_node_structure): Likewise.
4867         (build7_stat): Re-write to be build6_stat.
4868         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
4869         (SSA_VAR_P): Adjust.
4870         (struct tree_memory_tag): Remove.
4871         (struct tree_memory_partition_tag): Likewise.
4872         (union tree_node): Adjust.
4873         (build7): Re-write to be build6.
4874         * tree-pass.h (pass_reset_cc_flags): Remove.
4875         (TODO_update_address_taken): New flag.
4876         (pass_simple_dse): Remove.
4877         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
4878         * params.h (MAX_ALIASED_VOPS): Remove.
4879         (AVG_ALIASED_VOPS): Likewise.
4880         * omp-low.c (expand_omp_taskreg): Update SSA form.
4881         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
4882         aliases the lhs in a copy stmt.
4883         * tree-ssa-dse.c (struct address_walk_data): Remove.
4884         (memory_ssa_name_same): Likewise.
4885         (memory_address_same): Likewise.
4886         (get_kill_of_stmt_lhs): Likewise.
4887         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
4888         unused stores.  Look through PHI nodes into post-dominated regions.
4889         (dse_optimize_stmt): Simplify.  Properly remove stores.
4890         (tree_ssa_dse): Compute dominators.
4891         (execute_simple_dse): Remove.
4892         (pass_simple_dse): Likewise.
4893         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
4894         gimple_loaded_syms and gimple_stored_syms computation.
4895         * toplev.c (dump_memory_report): Dump alias and pta stats.
4896         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
4897         (vn_reference_eq): Likewise.
4898         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
4899         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
4900         valueize_vuses): Remove.
4901         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
4902         (get_def_ref_stmt_vuse): ... this.
4903         (vn_reference_lookup_2): New function.
4904         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
4905         walking equivalent vuses.  Simplify.
4906         (vn_reference_lookup): Likewise.
4907         (vn_reference_insert): Likewise.
4908         (vn_reference_insert_pieces): Likewise.
4909         (visit_reference_op_call): Simplify.
4910         (visit_reference_op_load): Likewise.
4911         (visit_reference_op_store): Likewise.
4912         (init_scc_vn): Remove shared_lookup_vuses initialization.
4913         (free_scc_vn): Remove shared_lookup_vuses freeing.
4914         (sort_vuses, sort_vuses_heap): Remove.
4915         (get_ref_from_reference_ops): Export.
4916         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
4917         vector with single vuse pointer.
4918         (vn_reference_lookup_pieces, vn_reference_lookup,
4919         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
4920         (shared_vuses_from_stmt): Remove.
4921         (get_ref_from_reference_ops): Declare.
4922         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
4923         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4924         memory-tag related code.
4925         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
4926         (likely_value): Add comment, skip static-chain of call statements.
4927         (surely_varying_stmt_p): Adjust.
4928         (gimplify_and_update_call_from_tree): Likewise.
4929         (execute_fold_all_builtins): Do not rebuild alias info.
4930         (gimplify_and_update_call_from_tree): Properly update VOPs.
4931         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
4932         (copy_ref_info): Remove memory-tag related code.
4933         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
4934         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
4935         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
4936         computation.
4937         * tree-ssa-dom.c (gimple_p): Remove typedef.
4938         (eliminate_redundant_computations): Adjust.
4939         (record_equivalences_from_stmt): Likewise.
4940         (avail_expr_hash): Likewise.
4941         (avail_expr_eq): Likewise.
4942         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
4943         (stmt_makes_single_load): Likewise.
4944         (stmt_makes_single_store): Likewise.
4945         * tree-ssa-alias.c: Rewrite completely.
4946         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
4947         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
4948         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
4949         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
4950         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
4951         Remove public functions.
4952         (pass_reset_cc_flags): Remove.
4953         (pass_build_alias): Move ...
4954         * tree-ssa-structalias.c (pass_build_alias): ... here.
4955         * tree-ssa-alias.c (may_be_aliased): Move ...
4956         * tree-flow-inline.h (may_be_aliased): ... here.
4957         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
4958         count_uses_and_derefs): Move ...
4959         * gimple.c: ... here.
4960         * gimple.h (count_uses_and_derefs): Declare.
4961         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
4962         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
4963         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
4964         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
4965         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
4966         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
4967         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
4968         New functions.
4969         * tree-dfa.c (refs_may_alias_p): Move ...
4970         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
4971         * tree-ssa-alias.h: New file.
4972         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
4973         (statement_sink_location): Likewise.
4974         * opts.c (decode_options): Do not adjust max-aliased-vops or
4975         avg-aliased-vops values.
4976         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
4977         (TV_CALL_CLOBBER): Likewise.
4978         (TV_FLOW_SENSITIVE): Likewise.
4979         (TV_FLOW_INSENSITIVE): Likewise.
4980         (TV_MEMORY_PARTITIONING): Likewise.
4981         (TV_ALIAS_STMT_WALK): New timevar.
4982         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
4983         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
4984         (get_address_description): Remove memory-tag related code.
4985         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
4986         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
4987         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
4988         and immediate uses in statements.  Document.
4989         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
4990         (dump_symbols): Remove.
4991         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
4992         * alias.c (get_deref_alias_set): New function split out from ...
4993         (get_alias_set): ... here.
4994         * alias.h (get_deref_alias_set): Declare.
4995         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
4996         type parameter.  Remove restrict pointer handling.  Create a
4997         ref-all pointer in case type-based alias sets do not conflict.
4998         (vect_analyze_data_refs): Remove SMT related code.
4999         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
5000         (vectorizable_load): Likewise.
5001         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
5002         (DR_SYMBOL_TAG, DR_VOPS): Remove.
5003         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
5004         Ignore vops and SMTs.
5005         (dr_analyze_alias): Likewise..
5006         (free_data_ref): Likewise.
5007         (create_data_ref): Likewise.
5008         (analyze_all_data_dependences): Likewise.
5009         (get_references_in_stmt): Adjust.
5010         * tree-flow-inline.h (gimple_aliases_computed_p,
5011         gimple_addressable_vars, gimple_call_clobbered_vars,
5012         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
5013         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
5014         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
5015         gimple_mem_ref_stats): Remove.
5016         (gimple_vop): New function.
5017         (op_iter_next_use): Remove vuses and mayuses cases.
5018         (op_iter_next_def): Remove vdefs case.
5019         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
5020         (clear_and_done_ssa_iter): Do not set removed fields.
5021         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
5022         Assert we are not iterating over vuses or vdefs if not also
5023         iterating over uses or defs.
5024         (op_iter_init_use): Likewise.
5025         (op_iter_init_def): Likewise.
5026         (op_iter_next_vdef): Remove.
5027         (op_iter_next_mustdef): Likewise.
5028         (op_iter_init_vdef): Likewise.
5029         (compare_ssa_operands_equal): Likewise.
5030         (link_use_stmts_after): Handle vuse operand.
5031         (is_call_used): Use is_call_clobbered.
5032         (is_call_clobbered): Global variables are always call clobbered,
5033         query the call-clobbers bitmap.
5034         (mark_call_clobbered): Ignore global variables.
5035         (clear_call_clobbered): Likewise.
5036         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
5037         virtual operands sanity check.
5038         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
5039         Remove.
5040         (TARGET_MEM_REF): Remove TMR_TAG operand.
5041         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
5042         Remove call-clobber related code.
5043         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
5044         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
5045         partitions or escape reason.
5046         (get_single_def_stmt, get_single_def_stmt_from_phi,
5047         get_single_def_stmt_with_phi): Remove.
5048         (dump_referenced_vars): Tidy.
5049         (get_ref_base_and_extent): Allow bare decls.
5050         (collect_dfa_stats): Adjust.
5051         * graphite.c (rename_variables_in_stmt): Adjust.
5052         (graphite_copy_stmts_from_block): Likewise.
5053         (translate_clast): Likewise.
5054         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
5055         (EXPR_DIES): New.
5056         (translate_vuse_through_block): Use the oracle.
5057         (phi_translate_1): Adjust.
5058         (value_dies_in_block_x): Use the oracle.  Cache the outcome
5059         in EXPR_DIES.
5060         (valid_in_sets): Check if the VUSE for
5061         a REFERENCE is available.
5062         (eliminate): Do not remove stmts during elimination,
5063         instead queue and remove them afterwards.
5064         (do_pre): Do not rebuild alias info.
5065         (pass_pre): Run TODO_rebuild_alias before PRE.
5066         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
5067         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
5068         (mark_all_v_defs_stmt): Remove.
5069         (mark_all_v_defs_seq): Adjust.
5070         (sra_replace): Likewise.
5071         (scalarize_use): Likewise.
5072         (scalarize_copy): Likewise.
5073         (scalarize_init): Likewise.
5074         (scalarize_ldst): Likewise.
5075         (todoflags): Remove.
5076         (tree_sra): Do not rebuild alias info.
5077         (tree_sra_early): Adjust.
5078         (pass_sra): Run TODO_update_address_taken before SRA.
5079         * tree-predcom.c (set_alias_info): Remove.
5080         (prepare_initializers_chain): Do not call it.
5081         (mark_virtual_ops_for_renaming): Adjust.
5082         (mark_virtual_ops_for_renaming_list): Remove.
5083         (initialize_root_vars): Adjust.
5084         (initialize_root_vars_lm): Likewise.
5085         (prepare_initializers_chain): Likewise.
5086         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
5087         (may_propagate_copy_into_stmt): Likewise.
5088         (merge_alias_info): Do nothing for now.
5089         (propagate_tree_value_into_stmt): Adjust.
5090         (stmt_may_generate_copy): Likewise.
5091         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
5092         not mark symbols for renaming.
5093         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
5094         with the same statement, make sure to update the new pointed-to one.
5095         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
5096         call statements, do not mark symbols for renaming.
5097         (mark_operand_necessary): Dump something.
5098         (ref_may_be_aliased): New function.
5099         (mark_aliased_reaching_defs_necessary_1): New helper function.
5100         (mark_aliased_reaching_defs_necessary): Likewise.
5101         (mark_all_reaching_defs_necessary_1): Likewise.
5102         (mark_all_reaching_defs_necessary): Likewise.
5103         (propagate_necessity): Do not process virtual PHIs.  For
5104         non-aliased loads mark all reaching definitions as necessary.
5105         For aliased loads and stores mark the immediate dominating
5106         aliased clobbers as necessary.
5107         (visited): New global static.
5108         (perform_tree_ssa_dce): Free visited bitmap after propagating
5109         necessity.
5110         (remove_dead_phis): Perform simple dead virtual PHI removal.
5111         (remove_dead_stmt): Properly unlink virtual operands when
5112         removing stores.
5113         (eliminate_unnecessary_stmts): Schedule PHI removal after
5114         stmt removal.
5115         * tree-ssa-ter.c (is_replaceable_p): Adjust.
5116         (process_replaceable): Likewise.
5117         (find_replaceable_in_bb): Likewise.
5118         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
5119         based on the single gimple vop.
5120         (verify_flow_insensitive_alias_info): Remove.
5121         (verify_flow_sensitive_alias_info): Likewise.
5122         (verify_call_clobbering): Likewise.
5123         (verify_memory_partitions): Likewise.
5124         (verify_alias_info): Likewise.
5125         (verify_ssa): Adjust..
5126         (execute_update_addresses_taken): Export.  Update SSA
5127         manually.  Optimize only when optimizing.  Use a local bitmap.
5128         (pass_update_address_taken): Remove TODO_update_ssa, add
5129         TODO_dump_func.
5130         (pass_update_address_taken): Just use TODO_update_address_taken.
5131         (init_tree_ssa): Do not initialize addressable_vars.
5132         (verify_ssa): Verify new VUSE / VDEF properties.
5133         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
5134         Do not call verify_alias_info.
5135         (delete_tree_ssa): Clear the VUSE, VDEF operands.
5136         Do not free the loaded and stored syms bitmaps.  Reset the escaped
5137         and callused solutions.  Do not free addressable_vars.
5138         Remove memory-tag related code.
5139         (warn_uninitialized_var): Aliases are always available.
5140         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
5141         * lambda-code.c (can_put_in_inner_loop): Adjust.
5142         (can_put_after_inner_loop): Likewise.
5143         (perfect_nestify): Likewise.
5144         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
5145         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
5146         (vectorizable_conversion): Do not mark symbols for renaming.
5147         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
5148         (expand_call_inline): Unlink the calls virtual operands before
5149         replacing it.
5150         (tree_function_versioning): Do not call update_ssa if we are not
5151         updating clones.  Simplify.
5152         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
5153         (propagate_with_phi): Likewise..
5154         * tree-outof-ssa.c (create_temp): Remove memory tag and call
5155         clobber code.  Assert we are not aliased or global.
5156         * tree-flow.h: Include tree-ssa-alias.h
5157         (enum escape_type): Remove.
5158         (struct mem_sym_stats_d): Likewise.
5159         (struct mem_ref_stats_d): Likewise.
5160         (struct gimple_df): Add vop member.  Remove global_var,
5161         call_clobbered_vars, call_used_vars, addressable_vars,
5162         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
5163         escaped and callused members.
5164         (struct ptr_info_def): Remove all members, add points-to solution
5165         member pt.
5166         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
5167         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
5168         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
5169         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
5170         (tree-ssa-alias.o): Likewise.
5171         (toplev.o): Add tree-ssa-alias.h
5172         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
5173         * gimple.c (gimple_set_bb): Fix off-by-one error.
5174         (is_gimple_reg): Do not handle memory tags.
5175         (gimple_copy): Also copy virtual operands.
5176         Delay updating the statement.  Do not reset loaded and stored syms.
5177         (gimple_set_stored_syms): Remove.
5178         (gimple_set_loaded_syms): Likewise.
5179         (gimple_call_copy_skip_args): Copy the virtual operands
5180         and mark the new statement modified.
5181         * tree-ssa-structalias.c (may_alias_p): Remove.
5182         (set_uids_in_ptset): Take the alias set to prune with as
5183         parameter.  Fold in the alias test of may_alias_p.
5184         (compute_points_to_sets): Compute whether a ptr is dereferenced
5185         in a local sbitmap.
5186         (process_constraint): Deal with &ANYTHING on the lhs, reject all
5187         other ADDRESSOF constraints on the lhs.
5188         (get_constraint_for_component_ref): Assert that we don't get
5189         ADDRESSOF constraints from the base of the reference.
5190         Properly generate UNKNOWN_OFFSET for DEREF if needed.
5191         (struct variable_info): Remove collapsed_to member.
5192         (get_varinfo_fc): Remove.
5193         (new_var_info): Do not set collapsed_to.
5194         (dump_constraint): Do not follow cycles.
5195         (dump_constraint_graph): Likewise.
5196         (build_pred_graph): Likewise.
5197         (build_succ_graph): Likewise.
5198         (rewrite_constraints): Likewise.
5199         (do_simple_structure_copy): Remove.
5200         (do_rhs_deref_structure_copy): Remove.
5201         (do_lhs_deref_structure_copy): Remove.
5202         (collapse_rest_of_var): Remove.
5203         (do_structure_copy): Re-implement.
5204         (pta_stats): New global variable.
5205         (dump_pta_stats): New function.
5206         (struct constraint_expr): Make offset signed.
5207         (UNKNOWN_OFFSET): Define special value.
5208         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
5209         (solution_set_expand): New helper function split out from ...
5210         (do_sd_constraint): ... here.
5211         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
5212         (do_ds_constraint): Likewise.
5213         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
5214         and CALLUSED = *CALLUSED.
5215         (set_union_with_increment): Make inc argument signed.
5216         (type_safe): Remove.
5217         (get_constraint_for_ptr_offset): Handle unknown and negative
5218         constant offsets.
5219         (first_vi_for_offset): Handle offsets before start.  Bail
5220         out early for offsets beyond the variable extent.
5221         (first_or_preceding_vi_for_offset): New function.
5222         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
5223         Together with ESCAPED = *ESCAPED this properly computes reachability.
5224         (find_what_var_points_to): New function.
5225         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
5226         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
5227         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
5228         pt_solutions_intersect): New functions.
5229         (compute_call_used_vars): Remove.
5230         (compute_may_aliases): New main entry into PTA computation.
5231         * gimple.h (gimple_p): New typedef.
5232         (struct gimple_statement_base): Remove references_memory_p.
5233         (struct gimple_statement_with_memory_ops_base): Remove
5234         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
5235         members.
5236         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
5237         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
5238         gimple_set_references_memory): Remove.
5239         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
5240         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
5241         New functions.
5242         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
5243         (verify_expr): Allow RESULT_DECL.
5244         (gimple_duplicate_bb): Do not copy virtual operands.
5245         (gimple_duplicate_sese_region): Adjust.
5246         (gimple_duplicate_sese_tail): Likewise.
5247         (mark_virtual_ops_in_region): Remove.
5248         (move_sese_region_to_fn): Do not call it.
5249         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
5250         and pass_simple_dse.
5251         (execute_function_todo): Handle TODO_update_address_taken,
5252         call execute_update_addresses_taken for TODO_rebuild_alias.
5253         (execute_todo): Adjust.
5254         (execute_one_pass): Init dump files early.
5255         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
5256         call-clobbered.
5257         (create_general_new_stmt): Clear vops.
5258         * tree-ssa-reassoc.c (get_rank): Adjust.
5259         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
5260         symbols for renaming.
5261         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
5262         (PARAM_AVG_ALIASED_VOPS): Likewise.
5263         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
5264         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
5265         * tree-ssa-operands.c: Simplify for new virtual operand representation.
5266         (operand_build_cmp, copy_virtual_operands,
5267         create_ssa_artificial_load_stmt, add_to_addressable_set,
5268         gimple_add_to_addresses_taken): Remove public functions.
5269         (unlink_stmt_vdef): New function.
5270
5271 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5272
5273         * config.gcc (powerpc-*-linux*): Merge variants.
5274
5275 2009-04-02  Chao-ying Fu  <fu@mips.com>
5276             James Grosbach  <james.grosbach@microchip.com>
5277
5278         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
5279         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
5280         cop0_sp_offset.
5281         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
5282         keep_interrupts_masked_p, use_debug_exception_return_p.
5283         (mips_attribute_table): Add interrupt, use_shadow_register_set,
5284         keep_interrupts_masked, use_debug_exception_return.
5285         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
5286         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
5287         New functions.
5288         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
5289         (mips_print_operand): Process COP0 registers to print $0 .. $31
5290         correctly for GAS to process.
5291         (mips_interrupt_extra_call_saved_reg_p): New function.
5292         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
5293         extra registers.
5294         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5295         (mips_compute_frame_info): Add supports for interrupt context that
5296         includes doubleword accumulators and COP0 registers.
5297         (mips_for_each_saved_acc): New function.
5298         (mips_for_each_saved_gpr_and_fpr): Change the function name from
5299         mips_for_each_saved_reg.
5300         (mips_save_reg): Save accumulators.
5301         (mips_kernel_reg_p): A new for_each_rtx callback.
5302         (mips_expand_prologue): Support interrupt handlers.
5303         (mips_restore_reg): Restore accumulators.
5304         (mips_expand_epilogue): Support interrupt handlers.
5305         (mips_can_use_return_insn): Return false for interrupt handlers.
5306         (mips_epilogue_uses): New function.
5307         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
5308         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
5309         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
5310         cop0_move): New instructions.
5311         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
5312         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
5313         defines.
5314         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
5315         New defines.
5316         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
5317         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
5318         interrupt handlers, we use K0 as the temporary register.
5319         (EPILOGUE_USES): Change to a function call.
5320         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
5321         handlers, we use K0 as the temporary register.
5322
5323         * doc/extend.texi (Function Attributes): Document interrupt,
5324         use_shadow_register_set, keep_interrupts_masked,
5325         use_debug_exception_return for MIPS attributes.
5326
5327 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
5328
5329         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
5330         Remove a number of t-files from tmake_file.
5331         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
5332         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
5333         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5334         target_prototype, not TARGET_PROTOTYPE.
5335         (LINK_OS_GNU_SPEC): Define.
5336         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
5337         and darwin-ldoubdle.c.
5338
5339 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5340
5341         PR driver/39293
5342         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
5343         (cpp_options): Ditto.
5344         (default_compilers): Ditto.
5345         (display_help): Ditto.
5346         (process_command): Ditto.
5347         (do_spec_1): Ditto.
5348         (set_input): Use lbasename instead of duplicate code.
5349         (save_temps_prefix): New static for -save-temps=obj.
5350         (save_temps_length): Ditto.
5351
5352         * doc/invoke.texi (-save-temps=obj): Document new variant to
5353         -save-temps switch.
5354
5355 2009-04-02  Jeff Law  <law@redhat.com>
5356
5357         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
5358         variable.
5359
5360 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5361
5362         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
5363         * configure: Regenerated.
5364
5365 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5366
5367         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
5368         share the argument list.
5369
5370 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5371
5372         Merge
5373
5374         2009-02-12  Diego Novillo  <dnovillo@google.com>
5375
5376         * varpool.c (debug_varpool): New.
5377         * cgraph.h (debug_varpool): Declare.
5378
5379 2009-04-02  Jan Hubicka  <jh@suse.cz>
5380
5381         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
5382         pass.
5383
5384 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5385
5386         * config/i386/i386.c (ix86_abi): Move initialization to ...
5387         (override_options): Here.
5388
5389 2009-04-02  Christian Bruel  <christian.bruel@st.com>
5390
5391         * config/sh/sh.c (sh_dwarf_register_span): New function.
5392         (TARGET_DWARF_REGISTER_SPAN): Define.
5393         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
5394
5395 2009-04-02  Ira Rosen  <irar@il.ibm.com>
5396
5397         PR tree-optimization/39595
5398         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
5399         interleaved loads group is not  greater than the SLP group size.
5400
5401 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
5402
5403         * builtins.c (is_builtin_name): New.
5404         (called_as_built_in): Use is_builtin_name.
5405         * tree.h (is_builtin_name): New.
5406         * varasm.c (incorporeal_function_p): Use is_builtin_name
5407
5408 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
5409
5410         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
5411
5412 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
5413
5414         PR c++/26693
5415         * c-decl.c (clone_underlying_type): Move this ...
5416         * c-common.c (set_underlying_type): ... here.
5417         Also, make sure the function properly sets TYPE_STUB_DECL() on
5418         the newly created typedef variant type.
5419         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
5420         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
5421         points.
5422
5423 2009-04-02  Richard Guenther  <rguenther@suse.de>
5424
5425         PR tree-optimization/37221
5426         * tree-flow.h (degenerate_phi_result): Declare.
5427         * tree-ssa-dom.c (degenerate_phi_result): Export.
5428         * tree-scalar-evolution.c (analyze_initial_condition): If
5429         the initial condition is defined by a degenerate PHI node
5430         use the degenerate value.
5431
5432 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
5433
5434         PR rtl-optimization/39588
5435         * combine.c (merge_outer_ops): Do not set the constant when this
5436         is not necessary.
5437         (simplify_shift_const_1): Do not modify it either in this case.
5438
5439 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
5440
5441         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
5442         tuning is deprecated if -mtune value is set to an Itanium1 variant.
5443
5444 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
5445
5446         PR c/29027
5447         * c-lex.c (interpret_float): Default (no suffix) is double.
5448
5449 2009-04-1  Xinliang David Li  <davidxl@google.com>
5450
5451         * config/i386/i386.c (legitimate_constant_p): Recognize
5452         all one vector constant.
5453
5454 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5455
5456         * config/vax/vax.c: Add #includes to silence warnings.
5457         Change #include order to silence two warnings.
5458
5459 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5460
5461         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
5462         (ASM_SPEC): Pass -k to the assembler for PIC code.
5463
5464 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5465
5466         * config.gcc: Add vax-*-linux* to the switch.
5467         * config/vax/linux.h: New file. (TARGET_VERSION,
5468         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
5469
5470 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5471
5472         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
5473         Use predicate macros instead of GET_CODE() == foo.
5474         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
5475         ashlsi3, rotrsi3, <unnamed>): Likewise.
5476
5477 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5478
5479         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
5480         jbbccihi, jbbccisi): Remova trailing whitespace.
5481         * config/vax/constraints.md: Likewise.
5482         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5483         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
5484         * config/vax/predicates.md: Likewise.
5485         * config/vax/vax.c (print_operand_address, vax_output_int_move,
5486         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
5487         * config/vax/vax.h: Likewise.
5488         * config/vax/vax.md (nonlocal_goto): Likewise.
5489
5490 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5491
5492         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
5493         (indirectable_address_p, adjacent_operands_p): Add spaces around
5494         braces.
5495         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
5496
5497 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5498
5499         * config/vax/vax.c (legitimate_constant_address_p,
5500         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
5501         index_term_p, reg_plus_index_p, legitimate_address_p,
5502         vax_mode_dependent_address_p): Update comments to match functions
5503         modified by the recent int->bool conversion.
5504
5505 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5506
5507         * config/vax/builtins.md: Update copyright message.
5508         * config/vax/constraints.md: Likewise.
5509         * config/vax/netbsd-elf.h: Likewise.
5510         * config/vax/predicates.md: Likewise.
5511         * config/vax/vax-protos.h: Likewise.
5512         * config/vax/vax.c: Likewise.
5513         * config/vax/vax.h: Likewise.
5514         * config/vax/vax.md: Likewise.
5515         * config/vax/vax.opt: Likewise.
5516
5517 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5518
5519         * config/vax/builtins.md (ffssi2, ffssi2_internal,
5520         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
5521         * config/vax/constraints.md (B, R): Likewise.
5522         * config/vax/predicates.md (external_memory_operand,
5523         nonimmediate_addsub_di_operand): Likewise.
5524         * config/vax/vax.c (vax_output_int_add): Likewise.
5525         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
5526         untyped_call): Likewise.
5527
5528 2009-04-01  Matt Thomas  <matt@3am-software.com>
5529
5530         * config/vax/predicates.md: New file.
5531         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
5532         external_const_operand, nonsymbolic_operand, external_memory_operand,
5533         indirect_memory_operand, indexed_memory_operand,
5534         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
5535         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
5536         predicate.
5537         * config/vax/constraints.md: New file.
5538         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
5539         New constraint.
5540         * config/vax/builtins.md: New file.
5541         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
5542         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
5543         jbbccisi): Define.
5544         * config/vax/vax.opt (mqmath): Add option.
5545         * config/vax/vax.md (isfx): Extend with DI.
5546         (VAXintQH, VAXintQHSD): Define.
5547         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
5548         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
5549         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
5550         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
5551         (movdi): Update constraints and use vax_output_int_move().
5552         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
5553         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
5554         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
5555         nonlocal_goto): New.
5556         (mov<mode>): Extend accepted operand types.
5557         (subdi3_old): Rename from subdi3, change update constraints and use
5558         a new implementation.
5559         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
5560         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
5561         MOVE_RATIO, CLEAR_RATIO): Define.
5562         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
5563         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5564         (PRINT_OPERAND): Redefine using a function instead of inlined code.
5565         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5566         (split_quadword_operands): Make static and really allow variable
5567         splitting.
5568         (print_operand_address): Update for PIC generation.
5569         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
5570         indexable_address_p, fixup_mathdi_operand,
5571         vax_expand_addsub_di_operands, adjacent_operands_p): New.
5572         (vax_float_literal, legitimate_constant_p,
5573         indirectable_constant_address_p, index_term_p,
5574         reg_plus_index_p): Return bool instead of int.
5575         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
5576         where needed.
5577         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
5578         generation.
5579         (vax_output_conditional_branch): Indent.
5580         (legitimate_constant_address_p, indirectable_constant_address_p,
5581         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
5582         vax_mode_dependent_address_p): Return bool instead of int, update for
5583         PIC generation.
5584         * config/vax/vax-protos.h (legitimate_constant_address_p,
5585         legitimate_constant_p, legitimate_address_p,
5586         vax_mode_dependent_address_p): Change declaration to bool.
5587         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
5588         vax_expand_addsub_di_operands, vax_output_int_subtract,
5589         vax_output_movmemsi): Declare.
5590         (split_quadword_operands, vax_float_literal): Delete declaration.
5591         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
5592         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
5593         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
5594         ASM_OUTPUT_DWARF_PCREL): Define.
5595         (ASM_SPEC): Change definition to allow PIC generation.
5596
5597 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
5598
5599         * doc/sourcebuild.texi: Update front-end requirements.
5600
5601 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5602
5603         PR target/39226
5604         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
5605         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
5606         (booldi3_internal3): Use boolean_or_operator instead of
5607         boolean_operator.
5608
5609 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
5610
5611         PR c/39605
5612         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
5613         declarator whose size is not an integer constant expression but
5614         folds to an integer constant, then treat it as a constant
5615         subsequently.
5616
5617 2009-04-01  Richard Guenther  <rguenther@suse.de>
5618
5619         * fold-const.c (fold_plusminus_mult_expr): Do not fold
5620         i * 4 + 2 to (i * 2 + 1) * 2.
5621
5622 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5623
5624         PR c/37772
5625         * c-parser.c (c_parser_asm_statement): Skip until close paren and
5626         return if c_parser_asm_string_literal returned NULL.
5627
5628 2009-04-01  Nick Clifton  <nickc@redhat.com>
5629
5630         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
5631         already defined.
5632         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
5633         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
5634         other typedefs to avoid conflicts with libgcc2.c.  Define labels
5635         to gain 16-bit bit-manipulation functions from libgcc2.c and then
5636         include it.
5637         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
5638         to gain 16-bit trapping arithmetic functions from libgcc2.c and
5639         then include it.
5640
5641 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
5642
5643         * varasm.c (default_function_rodata_section): Declare DOT as
5644         const char*.
5645
5646 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
5647             Andrey Galkin  <agalkin@hypercom.com>
5648
5649         PR/39492
5650         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
5651         Make object_name unique for each process.
5652
5653 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5654
5655         PR other/39591
5656         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
5657         addressable variables in the parallel that could go out of scope while
5658         running queued tasks.
5659
5660 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
5661
5662         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
5663         (CASE_VALUES_THRESHOLD): Redefine.
5664         * config/avr/avr.c (avr_override_options): Remove initialization of
5665         avr_case_values_threshold variable.
5666         (avr_case_values_threshold): Remove variable. Add new function.
5667         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
5668         * config/avr/avr.opt (mno-tablejump): Remove option.
5669         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
5670
5671 2009-04-01  DJ Delorie  <dj@redhat.com>
5672
5673         * varasm.c (default_function_rodata_section): Don't assume
5674         anything about where the first '.' in the section name is.
5675
5676 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
5677
5678         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
5679         rs6000_emit_stack_tie.
5680
5681 2009-03-31  Ian Lance Taylor  <iant@google.com>
5682
5683         * tree-eh.c (tree_remove_unreachable_handlers): Compare
5684         gimple_code with GIMPLE_RESX, not RESX.
5685
5686 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5687
5688         * c-common.c (c_get_ident): New.
5689         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
5690
5691 2009-04-01  Ben Elliston  <bje@au.ibm.com>
5692
5693         * config/rs6000/sysv4.opt (msdata): Improve option description.
5694
5695 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
5696
5697         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
5698         (divdf3_internal_lat): Remove.
5699         (divxf3_internal_lat): Remove.
5700         (divxf3_internal_thr): Remove.
5701         (divxf): Use divxf3_internal.
5702         * config/ia64/div.md (divsf3_internal_lat): New.
5703         (divdf3_internal_lat): New.
5704         (divxf3_internal): New.
5705
5706 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5707
5708         PR c/448
5709         * Makefile.in (USE_GCC_STDINT): Define.
5710         (stmp-int-hdrs): Install stdint.h if applicable.
5711         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
5712         if known.
5713         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
5714         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
5715         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5716         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5717         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5718         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5719         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5720         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5721         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5722         (c_common_nodes_and_builtins): Initialize
5723         underlying_wchar_type_node.  Do not initialize
5724         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
5725         nodes for new types.
5726         (c_stddef_cpp_builtins): Define macros for new types.
5727         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
5728         Remove.
5729         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
5730         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
5731         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
5732         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
5733         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
5734         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
5735         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
5736         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
5737         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
5738         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
5739         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
5740         int16_type_node, int32_type_node, int64_type_node,
5741         uint8_type_node, uint16_type_node, c_uint32_type_node,
5742         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
5743         int_least32_type_node, int_least64_type_node,
5744         uint_least8_type_node, uint_least16_type_node,
5745         uint_least32_type_node, uint_least64_type_node,
5746         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
5747         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
5748         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
5749         uintptr_type_node): Define.
5750         * c-cppbuiltin.c (builtin_define_constants,
5751         builtin_define_type_minmax): New.
5752         (builtin_define_stdint_macros): Define more macros.
5753         (c_cpp_builtins): Define more limit macros.
5754         (type_suffix): New.
5755         (builtin_define_type_max): Define in terms of
5756         builtin_define_type_minmax.  Remove is_long parameter.  All
5757         callers changed.
5758         * config.gcc (use_gcc_stdint): Define.
5759         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
5760         Add newlib-stdint.h for generic targets.
5761         * config/glibc-stdint.h, config/newlib-stdint.h,
5762         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
5763         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
5764         * config/score/score.h (UINTPTR_TYPE): Define.
5765         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5766         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5767         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5768         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5769         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5770         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5771         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5772         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5773         * config/spu/spu.h (STDINT_LONG32): Define.
5774         * configure.ac (use_gcc_stdint): Substitute.
5775         * configure: Regenerate.
5776         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
5777         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
5778         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
5779         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
5780         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
5781         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
5782         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
5783         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
5784         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
5785         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
5786         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
5787         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
5788         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
5789         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
5790         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
5791         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
5792         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
5793         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
5794         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
5795         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
5796         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
5797         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
5798         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5799         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5800         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5801         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5802         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5803         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5804         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
5805
5806 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
5807
5808         * loop-iv.c (suitable_set_for_replacement): Renamed from
5809         simplify_using_assignment; changed to return bool and to accept new
5810         args DEST and SRC.  Return true iff we find a source/destination pair
5811         that can be used to make a replacement, and fill SRC and DEST if so.
5812         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
5813         changed.
5814         (simplify_using_initial_values): Deal with altered regs here and track
5815         more precisely the effect they have on the validity of our expression.
5816
5817         * loop-iv.c (simplify_using_condition): A condition of the form
5818         (EQ REG CONST) can be used to simply make a substitution.
5819         (simplify_using_initial_values): Keep track of conditions we have seen
5820         and keep using them to simplify new expressions, while applying the
5821         same substitutions to them as to the expression.
5822
5823         * simplify-rtx.c (simplify_relational_operation_1): Simplify
5824         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
5825         GEU/LTU reversed.
5826
5827         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
5828         changed.  Use this when trying to improve the upper bound.
5829         Generate the comparison by using simplify_gen_relational.
5830
5831         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
5832
5833         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
5834         functions.
5835         (simplify_using_assignment, simplify_using_initial_values): Call
5836         replace_in_expr to make replacements.  Call replace_single_def_regs
5837         once on the initial version of the expression.
5838
5839 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5840
5841         PR target/27237
5842         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
5843
5844 2009-03-31  Richard Guenther  <rguenther@suse.de>
5845
5846         PR middle-end/31029
5847         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
5848         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
5849
5850 2009-03-31  Richard Guenther  <rguenther@suse.de>
5851
5852         * tree.h (div_if_zero_remainder): Declare.
5853         * fold-const.c (div_if_zero_remainder): Export.
5854         * tree-ssa-forwprop.c
5855         (forward_propagate_addr_into_variable_array_index): Handle
5856         constant array index addition outside of the variable index.
5857
5858 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5859
5860         PR target/39592
5861         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
5862         define_splits, floatunssi<mode>2): Require x87 conversions from
5863         DImode to be permitted.
5864
5865 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5866
5867         PR preprocessor/15638
5868         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
5869
5870 2009-03-31  Richard Guenther  <rguenther@suse.de>
5871
5872         PR middle-end/23401
5873         PR middle-end/27810
5874         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
5875         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
5876         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
5877         a separate statement.
5878         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
5879         (lookup_tmp_var): Likewise.
5880         (is_gimple_formal_tmp_or_call_rhs): Remove.
5881         (is_gimple_reg_or_call_rhs): Rename to ...
5882         (is_gimple_reg_rhs_or_call): ... this.
5883         (is_gimple_mem_or_call_rhs): Rename to ...
5884         (is_gimple_mem_rhs_or_call): ... this.
5885         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
5886         DECL_GIMPLE_REG_P only if is_formal is true.
5887         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
5888         for non-proper post-modify expression gimplification.
5889         (gimplify_self_mod_expr): For post-modify expressions gimplify
5890         the lvalue to a minimal lvalue.
5891         (rhs_predicate_for): Remove formal temp case.
5892         (gimplify_modify_expr_rhs): Likewise.
5893         (gimplify_addr_expr): Use is_gimple_reg.
5894         (gimplify_expr): Remove formal temp cases.
5895         (gimple_regimplify_operands): Likewise.
5896         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
5897         and FILTER_EXPR like constants.
5898         * gimple.c (walk_gimple_op): Fix val_only initialization, use
5899         is_gimple_reg.
5900         (is_gimple_formal_tmp_rhs): Remove.
5901         (is_gimple_reg_rhs): Remove special casing.
5902         (is_gimple_mem_rhs): Fix.
5903         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
5904         (is_gimple_formal_tmp_var): Remove.
5905         (is_gimple_formal_tmp_reg): Likewise.
5906         (is_gimple_min_lval): Allow invariant component ref parts.
5907         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
5908         is_gimple_formal_tmp_reg): Remove declarations.
5909         * tree-cfg.c (verify_expr): Verify that variables with address
5910         taken do not have DECL_GIMPLE_REG_P set.
5911         * tree-mudflap.c (mf_build_check_statement_for): Use
5912         force_gimple_operand instead of gimplify_expr.
5913
5914 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
5915
5916         * modulo-sched.c (sms_schedule_by_order): Pass the actual
5917         schedulable rows to compute_split_row.
5918
5919 2009-03-31  Ben Elliston  <bje@au.ibm.com>
5920
5921         PR target/31635
5922         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
5923         OPT_mvrsave.
5924
5925 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
5926
5927         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
5928         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
5929         * configure: Regenerate.
5930         * config.in: Regenerate.
5931         * config/rs6000/rs6000.opt (mtls-markers): Add.
5932         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
5933         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
5934         (tls_ld_aix, tls_ld_sysv): Likewise.
5935         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
5936         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
5937
5938 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
5939
5940         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
5941
5942 2009-03-30  Jan Hubicka  <jh@suse.cz>
5943
5944         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
5945         out of RESX.
5946         (tree_remove_unreachable_handlers): Cleanup EH predecestor
5947         detection and label handling.
5948
5949 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5950
5951         * ira-int.h (ira_allocno): Rename left_conflicts_num to
5952         left_conflicts_size.
5953         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
5954         ALLOCNO_LEFT_CONFLICTS_SIZE.
5955
5956         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
5957         remove_allocno_from_bucket_and_push,
5958         allocno_spill_priority_compare, push_allocnos_to_stack,
5959         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
5960         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
5961         (setup_allocno_left_conflicts_num): Ditto.  Rename to
5962         setup_allocno_left_conflicts_size.
5963         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
5964         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
5965         setup_allocno_left_conflicts_size instead of
5966         setup_allocno_left_conflicts_num.
5967
5968         * ira-build.c (ira_create_allocno): Use
5969         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
5970         ALLOCNO_LEFT_CONFLICTS_NUM.
5971
5972 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5973
5974         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5975         instead of DF_LR_OUT.
5976
5977         * ira-lives.c (process_bb_node_lives): Ditto.
5978
5979         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5980         instead of DF_LR_{OUT,IN}.
5981
5982         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5983
5984         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5985
5986 2009-03-30  Jan Hubicka  <jh@suse.cz>
5987
5988         * except.c (label_to_region_map): Fix thinko.
5989
5990 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
5991
5992         PR middle-end/38237
5993         * tree.h (tree_find_value): New declaration.
5994         * tree.c (tree_find_value): New function.
5995         * varasm.c (assemble_external): Avoid duplicate entries on lists.
5996
5997 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
5998
5999         PR debug/39563
6000         * c-decl.c (struct c_binding): Add locus field.
6001         (bind): Add locus argument, set locus field from it.
6002         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
6003         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
6004         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
6005         implicitly_declare, undeclared_variable, lookup_label,
6006         declare_label, c_make_fname_decl, c_builtin_function,
6007         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
6008         bind callers.
6009
6010 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
6011
6012         PR target/38781
6013         * config/i386/i386.c (classify_argument): Check total size of
6014         structure.
6015
6016 2009-03-30  Martin Jambor  <mjambor@suse.cz>
6017
6018         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
6019         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
6020         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
6021         respectively.
6022
6023         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
6024         seen_variable_array_ref while also traversing a union.
6025
6026         * tree-inline.c (optimize_inline_calls): Do not call
6027         cgraph_node_remove_callees.
6028         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
6029         (pass_remove_cgraph_callee_edges): New variable.
6030         * passes.c (init_optimization_passes): Add
6031         pass_remove_cgraph_callee_edges after early inlining and before all
6032         late intraprocedural passes.
6033
6034         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
6035
6036 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6037
6038         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
6039         Fix typos in names.
6040
6041 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6042
6043         * combine.c (simplify_comparison): Use have_insn_for.
6044         * dojump.c (do_jump): Likewise.
6045
6046 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6047
6048         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
6049         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
6050         sparc_compare_op0 like sparc_compare_emitted used to be handled.
6051         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
6052         instead of sparc_compare_emitted.
6053         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
6054         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
6055         instead of sparc_compare_emitted.
6056
6057 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6058
6059         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
6060         enter/exit cfglayout mode.
6061         (pass_partition_block): Require it.
6062         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
6063         (combine_instructions): Track basic blocks instead of labels.
6064         (update_cfg_for_uncondjump): New.
6065         (try_combine): Use it.  Update jumps after rescanning.
6066         (pass_combine): Require PROP_cfglayout.
6067         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
6068
6069 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6070
6071         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
6072         Provide/destroy PROP_cfglayout respectively.
6073         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
6074         * tree-pass.h (PROP_cfglayout): New.
6075
6076 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
6077
6078         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
6079         fold_convert_const_fixed_from_fixed,
6080         fold_convert_const_fixed_from_int,
6081         fold_convert_const_fixed_from_real, fold_negate_const): Do not
6082         set TREE_CONSTANT_OVERFLOW.
6083         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
6084         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
6085
6086 2009-03-30  Ira Rosen  <irar@il.ibm.com>
6087
6088         * tree-vect-loop-manip.c: New file.
6089         * tree-vectorizer.c: Update documentation and included files.
6090         (vect_loop_location): Make extern.
6091         (rename_use_op): Move to tree-vect-loop-manip.c
6092         (rename_variables_in_bb, rename_variables_in_loop,
6093         slpeel_update_phis_for_duplicate_loop,
6094         slpeel_update_phi_nodes_for_guard1,
6095         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
6096         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
6097         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
6098         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
6099         find_loop_location): Likewise.
6100         (new_stmt_vec_info): Move to tree-vect-stmts.c.
6101         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
6102         get_vectype_for_scalar_type, vect_is_simple_use,
6103         supportable_widening_operation, supportable_narrowing_operation):
6104         Likewise.
6105         (bb_in_loop_p): Move to tree-vect-loop.c.
6106         (new_loop_vec_info, destroy_loop_vec_info,
6107         reduction_code_for_scalar_code, report_vect_op,
6108         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
6109         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
6110         (vect_supportable_dr_alignment): Likewise.
6111         * tree-vectorizer.h (tree-data-ref.h): Include.
6112         (vect_loop_location): Declare.
6113         Reorganize function declarations according to the new file structure.
6114         * tree-vect-loop.c: New file.
6115         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
6116         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
6117         * tree-vect-data-refs.c: New file.
6118         * tree-vect-patterns.c (timevar.h): Don't include.
6119         * tree-vect-stmts.c: New file.
6120         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
6121         tree-vect-slp.c, tree-vect-loop.c.
6122         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
6123         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
6124         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
6125         (tree-vect-analyze.o): Remove.
6126         (tree-vect-transform.o): Likewise.
6127         (tree-vect-data-refs.o): Add rule.
6128         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
6129         tree-vect-slp.o): Likewise.
6130         (tree-vect-patterns.o): Remove redundant dependencies.
6131         (tree-vectorizer.o): Likewise.
6132         * tree-vect-slp.c: New file.
6133
6134 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6135
6136         * optc-gen.awk: Warn if an option flag has multiple different
6137         help strings.
6138
6139 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
6140
6141         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
6142         -floop-block): Document dependences on PPL, CLooG and Graphite.
6143
6144 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6145
6146         PR rtl-optimization/323
6147         * c-common.c (c_fully_fold, convert_and_check,
6148         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
6149         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
6150         * c-common.def (EXCESS_PRECISION_EXPR): New.
6151         * c-cppbuiltin.c (builtin_define_float_constants): Define
6152         constants with enough digits for long double.
6153         * c-lex.c (interpret_float): Interpret constant with excess
6154         precision where appropriate.
6155         * c-opts.c (c_common_post_options): Set
6156         flag_excess_precision_cmdline.  Give an error for
6157         -fexcess-precision=standard for C++ for processors where the
6158         option is significant.
6159         * c-parser.c (c_parser_conditional_expression): Handle excess
6160         precision in condition.
6161         * c-typeck.c (convert_arguments): Handle arguments with excess
6162         precision.
6163         (build_unary_op): Move excess precision outside operation.
6164         (build_conditional_expr): Likewise.
6165         (build_compound_expr): Likewise.
6166         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
6167         (build_modify_expr): Handle excess precision in RHS.
6168         (convert_for_assignment): Handle excess precision in converted
6169         value.
6170         (digest_init, output_init_element, process_init_element): Handle
6171         excess precision in initializer.
6172         (c_finish_return): Handle excess precision in return value.
6173         (build_binary_op): Handle excess precision in operands and add
6174         excess precision as needed for operation.
6175         * common.opt (-fexcess-precision=): New option.
6176         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
6177         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6178         For standard excess precision, output explicit conversion to and
6179         truncation from XFmode.
6180         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
6181         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
6182         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
6183         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
6184         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
6185         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
6186         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
6187         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
6188         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
6189         define_splits, sqrt<mode>2): Disable where appropriate for
6190         standard excess precision.
6191         * convert.c (convert_to_real): Do not shorten arithmetic to type
6192         for which excess precision would be used.
6193         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
6194         * doc/invoke.texi (-fexcess-precision=): Document option.
6195         (-mfpmath=): Correct index entry.
6196         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
6197         flag_excess_precision): New.
6198         * langhooks.c (lhd_post_options): Set
6199         flag_excess_precision_cmdline.
6200         * opts.c (common_handle_option): Handle -fexcess-precision=.
6201         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
6202         init_excess_precision): New.
6203         (lang_dependent_init_target): Call init_excess_precision.
6204         * tree.c (excess_precision_type): New.
6205         * tree.h (excess_precision_type): Declare.
6206
6207 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
6208
6209         PR c/35235
6210         * c-typeck.c (build_component_ref): Do not copy qualifiers from
6211         non-lvalue to component.
6212
6213 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6214
6215         PR preprocessor/34695
6216         * Makefile.in (c-opts.o): Depend on c-tree.h.
6217         * c-common.c: Move down include of diagnostic.h.
6218         (done_lexing, c_cpp_error): New.
6219         * c-common.h (done_lexing): Declare.
6220         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
6221         (parse_in).
6222         * c-opts.c: Include c-tree.h.
6223         (c_common_init_options): Set preprocessor error callback.
6224         (c_common_handle_option): Do not set preprocessor
6225         inhibit_warnings, warnings_are_errors, warn_system_headers,
6226         pedantic_errors or inhibit_warnings flags.
6227         (c_common_post_options): Do not check cpp_errors (parse_in).
6228         (c_common_finish): Do not output dependencies if there were
6229         errors.  Do not check return value of cpp_finish.
6230         * c-ppoutput.c (pp_file_change): Set input_location.
6231         * c-tree.h (c_cpp_error): Declare.
6232         * diagnostic.c (diagnostic_set_info_translated): Also initialize
6233         override_column.
6234         (diagnostic_build_prefix): Check override_column.
6235         * diagnostic.h (diagnostic_info): Add override_column field.
6236         (diagnostic_override_column): Define.
6237
6238 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
6239
6240         * c-common.c (c_expand_expr, c_staticp): Remove.
6241         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
6242         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
6243         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
6244         * c-gimplify.c (gimplify_compound_literal_expr,
6245         optimize_compound_literals_in_ctor): Remove.
6246         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
6247         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
6248         * c-semantics.c (emit_local_var): Remove.
6249
6250         * langhooks-def.h (lhd_expand_expr): Remove.
6251         * langhooks.c (lhd_expand_expr): Remove.
6252         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
6253
6254         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
6255         handling from c-semantics.c; don't call into langhook.
6256         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
6257         * gimplify.c (gimplify_compound_literal_expr,
6258         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
6259         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
6260         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
6261         as was done in c-gimplify.c.
6262         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
6263         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
6264         Move from c-common.h.
6265         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
6266
6267         * tree.c (staticp): Do not call langhook.
6268         * langhooks.c (lhd_staticp): Delete.
6269         * langhooks-def.h (lhd_staticp): Delete prototype.
6270         (LANG_HOOKS_STATICP): Delete.
6271         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
6272
6273         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
6274         instead of DECL_STMTs.
6275
6276 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
6277
6278         PR c/456
6279         PR c/5675
6280         PR c/19976
6281         PR c/29116
6282         PR c/31871
6283         PR c/35198
6284         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
6285         void_type_node.
6286         (fold_call_expr): Return a NOP_EXPR from folding rather than the
6287         contained expression.
6288         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
6289         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
6290         conditional expressions for C.
6291         (decl_constant_value_for_optimization): Move from
6292         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
6293         whether optimizing and that the expression is a VAR_DECL not of
6294         array type instead of doing such checks in the caller.  Do not
6295         check pedantic.  Call gcc_unreachable for C++.
6296         * c-common.def (C_MAYBE_CONST_EXPR): New.
6297         * c-common.h (c_fully_fold, c_save_expr,
6298         decl_constant_value_for_optimization): New prototypes.
6299         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6300         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6301         EXPR_INT_CONST_OPERANDS): Define.
6302         * c-convert.c (convert): Strip nops from expression.
6303         * c-decl.c (groktypename): Take extra parameters expr and
6304         expr_const_operands.  Update call to grokdeclarator.
6305         (start_decl): Update call to grokdeclarator.  Add statement for
6306         expressions used in type of decl.
6307         (grokparm): Update call to grokdeclarator.
6308         (push_parm_decl): Update call to grokdeclarator.
6309         (build_compound_literal): Add parameter non_const and build a
6310         C_MAYBE_COSNT_EXPR if applicable.
6311         (grokdeclarator): Take extra parameters expr and
6312         expr_const_operands.  Track expressions used in declaration
6313         specifiers and declarators.  Fold array sizes and track whether
6314         they are constant expressions and whether they are integer
6315         constant expressions.
6316         (parser_xref_tag): Set expr and expr_const_operands fields in
6317         return value.
6318         (grokfield): Update call to grokdeclarator.
6319         (start_function): Update call to grokdeclarator.
6320         (build_null_declspecs): Set expr and expr_const_operands fields in
6321         return value.
6322         (declspecs_add_type): Handle expressions in typeof specifiers.
6323         * c-parser.c (c_parser_declspecs): Set expr and
6324         expr_const_operands fields for declaration specifiers.
6325         (c_parser_enum_specifier): Likewise.
6326         (c_parser_struct_or_union_specifier): Likewise.
6327         (c_parser_typeof_specifier): Likewise.  Update call to
6328         groktypename.  Fold expression as needed.  Return expressions with
6329         type instead of adding statements.
6330         (c_parser_attributes): Update calls to c_parser_expr_list.
6331         (c_parser_statement_after_labels): Fold expression before passing
6332         to objc_build_throw_stmt.
6333         (c_parser_condition): Fold expression.
6334         (c_parser_asm_operands): Fold expression.
6335         (c_parser_conditional_expression): Use c_save_expr.  Update call
6336         to build_conditional_expr.
6337         (c_parser_alignof_expression): Update call to groktypename.
6338         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
6339         original_code.  Fold expression argument of va_arg.  Create
6340         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
6341         argument to va_arg.  Update calls to groktypename.  Fold array
6342         index for offsetof.  Verify that first argument to
6343         __builtin_choose_expr has integer type.
6344         (c_parser_postfix_expression_after_paren_type): Update calls to
6345         groktypename and build_compound_literal.  Handle expressions with
6346         side effects in type name.
6347         (c_parser_postfix_expression_after_primary): Update call to
6348         c_parser_expr_list.  Set original_code for calls to
6349         __builtin_constant_p.
6350         (c_parser_expr_list): Take extra parameter fold_p.  Fold
6351         expressions if requested.
6352         (c_parser_objc_type_name): Update call to groktypename.
6353         (c_parser_objc_synchronized_statement): Fold expression.
6354         (c_parser_objc_receiver): Fold expression.
6355         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
6356         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
6357         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
6358         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
6359         (struct c_typespec): Add elements expr and expr_const_operands.
6360         (struct c_declspecs): Add elements expr and expr_const_operands.
6361         (groktypename, build_conditional_expr, build_compound_literal):
6362         Update prototypes.
6363         (in_late_binary_op): Declare.
6364         * c-typeck.c (note_integer_operands): New function.
6365         (in_late_binary_op): New variable.
6366         (decl_constant_value_for_broken_optimization): Move to c-common.c
6367         and rename to decl_constant_value_for_optimization.
6368         (default_function_array_conversion): Do not strip nops.
6369         (default_conversion): Do not call
6370         decl_constant_value_for_broken_optimization.
6371         (build_array_ref): Do not fold result.
6372         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
6373         result when operand is a VLA.
6374         (c_expr_sizeof_type): Update call to groktypename.  Handle
6375         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
6376         result when operand names a VLA type.
6377         (build_function_call): Update call to build_compound_literal.
6378         Only fold result for calls to __builtin_* functions.  Strip
6379         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
6380         the function designator.
6381         (convert_arguments): Fold arguments.  Update call to
6382         convert_for_assignment.
6383         (build_unary_op): Handle increment and decrement of
6384         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
6385         decrement earlier.  Fold operand of increment and decrement.
6386         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
6387         built for integer operand.  Wrap returns that are INTEGER_CSTs
6388         without being integer constant expressions or that have integer
6389         constant operands without being INTEGER_CSTs.
6390         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
6391         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
6392         result is an integer constant expression or can be used in
6393         unevaluated parts of one and avoid folding and wrap as
6394         appropriate.  Fold operands before possibly doing -Wsign-compare
6395         warnings.
6396         (build_compound_expr): Wrap result for C99 if operands can be used
6397         in integer constant expressions.
6398         (build_c_cast): Update call to digest_init.  Do not ignore
6399         overflow from casting floating-point constants to integers.  Wrap
6400         results that could be confused with integer constant expressions,
6401         null pointer constants or floating-point constants.
6402         (c_cast_expr): Update call to groktypename.  Handle expressions
6403         included in type name.
6404         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
6405         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
6406         Update calls to convert_for_assignment.
6407         (convert_for_assignment): Take new parameter
6408         null_pointer_constant.  Do not strip nops or call
6409         decl_constant_value_for_broken_optimization.  Set
6410         in_late_binary_op for conversions to boolean.
6411         (store_init_value): Update call to digest_init.
6412         (digest_init): Take new parameter null_pointer_constant.  Do not
6413         call decl_constant_value_for_broken_optimization.  pedwarn for
6414         initializers not constant expressions.  Update calls to
6415         convert_for_assignment.
6416         (constructor_nonconst): New.
6417         (struct constructor_stack): Add nonconst element.
6418         (really_start_incremental_init, push_init_level, pop_init_level):
6419         Handle constructor_nonconst and nonconst element.
6420         (set_init_index): Call constant_expression_warning for array
6421         designators.
6422         (output_init_element): Fold value.  Set constructor_nonconst as
6423         applicable.  pedwarn for initializers not constant expressions.
6424         Update call to digest_init.  Call constant_expression_warning
6425         where constant initializers are required.
6426         (process_init_element): Use c_save_expr.
6427         (c_finish_goto_ptr): Fold expression.
6428         (c_finish_return): Fold return value.  Update call to
6429         convert_for_assignment.
6430         (c_start_case): Fold switch expression.
6431         (c_process_expr_stmt): Fold expression.
6432         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
6433         ensure statement expression is not evaluated in constant expression.
6434         (build_binary_op): Track whether results are integer constant
6435         expressions or may occur in such, disable folding and wrap results
6436         as applicable.  Fold operands for -Wsign-compare warnings unless
6437         in_late_binary_op.
6438         (c_objc_common_truthvalue_conversion): Handle results folded to
6439         integer constants that are not integer constant expressions.
6440         * doc/extend.texi: Document when typeof operands are evaluated,
6441         that condition of __builtin_choose_expr is an integer constant
6442         expression, and more about use of __builtin_constant_p in
6443         initializers.
6444
6445 2009-03-29  Richard Guenther  <rguenther@suse.de>
6446
6447         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
6448         propagate addresses of array references.
6449
6450 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
6451
6452         * regmove.c (perhaps_ends_bb_p): Remove.
6453         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
6454         from INSN and check that the main loop stays within that basic block.
6455         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
6456         (regmove_forward_pass): Split out from regmove_optimize.  Use
6457         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
6458         (regmove_backward_pass): Split out from regmove_optimize.  Use
6459         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
6460         (regmove_optimize): Simplify.
6461
6462 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6463
6464         PR target/39545
6465         * config/i386/i386.c (classify_argument): Ignore flexible array
6466         member in struct and warn ABI change.
6467
6468 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6469
6470         * config/i386/i386-protos.h (ix86_agi_dependent): New.
6471
6472         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
6473         (ix86_adjust_cost): Updated.
6474
6475 2009-03-29  Jan Hubicka  <jh@suse.cz>
6476
6477         PR middle-end/28850
6478         * tree-pass.h (pass_cleanup_eh): New function.
6479         (remove_unreachable_regions): Break code handling RTL
6480         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
6481         that can not be reached by runtime.
6482         (can_be_reached_by_runtime): New function.
6483         (label_to_region_map): New function.
6484         (num_eh_regions): New function.
6485         (rtl_remove_unreachable_regions): New function.
6486         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
6487         (remove_eh_region): New function.
6488         * except.h: Include sbitmap and vecprim.
6489         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
6490         num_eh_regions): Declare.
6491         * passes.c (init_optimization_passes): Schedule cleanup_eh.
6492         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
6493         * tree-eh.c (tree_remove_unreachable_handlers): New function.
6494         (tree_empty_eh_handler_p): New function.
6495         (cleanup_empty_eh): New function.
6496         (cleanup_eh): New function.
6497         (pass_cleanup_eh): New function.
6498
6499 2009-03-29  Jan Hubicka  <jh@suse.cz>
6500
6501         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
6502         for removed regions.
6503
6504 2009-03-29  Jan Hubicka  <jh@suse.cz>
6505
6506         * except.c (dump_eh_tree): Dump all datastructures.
6507
6508 2009-03-29  Jan Hubicka  <jh@suse.cz>
6509
6510         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
6511         (duplicate_eh_regions_1): Likewise.
6512         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
6513         vector; call EH verification.
6514         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6515         Be ready for region being removed.
6516
6517 2009-03-29  Jan Hubicka  <jh@suse.cz>
6518
6519         * bitmap.c (bitmap_last_set_bit): New function.
6520         * bitmap.h (bitmap_last_set_bit): Declare.
6521
6522 2009-03-29  David Ayers  <ayers@fsfe.org>
6523
6524         PR objc/27377
6525         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
6526         by calling objc_compare_types and surpress warnings about
6527         incompatible C pointers that are compatible ObjC pointers.
6528
6529 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
6530
6531         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
6532         call initialize_inline_failed.
6533         (initialize_inline_failed): Move it from here ...
6534         * cgraph.c (initialize_inline_failed): ... to here.
6535         (cgraph_create_edge): Call initialize_inline_failed rather than
6536         setting inline_failed directly.
6537
6538 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6539
6540         PR target/32542
6541         * sysv4.opt (msdata): Improve comment.
6542         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
6543         * sysv4.h (SVR4_ASM_SPEC): Likewise.
6544
6545 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6546
6547         PR target/30451
6548         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
6549         load and store attributes.
6550
6551 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6552
6553         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
6554         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
6555         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
6556         * doc/extend.texi (X86 Built-in Functions): Add index entries for
6557         __builtin_infq and __builtin_huge_valq.
6558
6559 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
6560
6561         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
6562         atmega8m1 devices.
6563         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6564         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
6565
6566 2009-03-28  Xinliang David Li  <davidxl@google.com>
6567
6568         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
6569         (do_dbg_cnt): New function.
6570
6571 2009-03-28  Jan Hubicka  <jh@suse.cz>
6572
6573         Merge from pretty-ipa:
6574
6575         2009-03-27  Jan Hubicka  <jh@suse.cz>
6576
6577         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6578         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
6579         * passes.c (function_called_by_processed_nodes_p): New.
6580         * ipa-pure-const.c (check_call): Fix handling of operands.
6581         (analyze_function): Dump debug output for skipped bodies.
6582         (local_pure_const): Use function_called_by_processed_nodes_p.
6583         * dwarf2out.c (reference_to_unused): Use output.
6584         * passes.c (do_per_function_toporder): Likewise.
6585
6586         2008-11-12  Jan Hubicka  <jh@suse.cz>
6587
6588         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
6589         * ipa-pure-const.c (funct_state_d): Add can throw field; make
6590         state_set_in_source enum
6591         (check_decl): Ignore memory tags; do not set fake looping flags;
6592         dump diagnostics.
6593         (check_operand, check_tree, check_rhs_var, check_lhs_var,
6594         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
6595         (check_call, analyze_function): Rewrite.
6596         (check_stmt): New.
6597         (add_new_function): Update call of analyze_function.
6598         (generate_summary): Add call of analyze_function.
6599         (propagate): Propagate can_throw; handle state_set_in_source correctly.
6600         (local_pure_const): New function.
6601         (pass_local_pure_const): New pass.
6602         * ipa-inline.c (inline_transform): Set after_inlining.
6603         * tree-eh.c (stmt_can_throw_external): New.
6604         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
6605         work with aliasing built.
6606         * tree-flow.h (stmt_can_throw_external): New.
6607         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
6608         and local pure/const pass in early and late optimization queue.
6609
6610 2009-03-28  Martin Jambor  <mjambor@suse.cz>
6611
6612         * fold-const.c (get_pointer_modulus_and_residue): New parameter
6613         allow_func_align.
6614         (fold_binary): Allow function decl aligment consideration is the
6615         second argument is integer constant one.
6616         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
6617         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
6618         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
6619
6620 2009-03-28  Jan Hubicka  <jh@suse.cz>
6621
6622         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
6623         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
6624         * function.h (rtl_data): Add nothrow flag.
6625         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
6626         set DECL_NOTHROW for AVAILABLE functions.
6627
6628 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
6629
6630         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
6631         following vector keyword has expansion starting with pixel or bool
6632         keyword, expand vector to __vector and pixel or bool to __pixel or
6633         __bool.
6634
6635         PR c++/39554
6636         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
6637         warn_if_disallowed_function_p): Removed.
6638         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
6639         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
6640         warning_if_disallowed_function_p.
6641         * flags.h (warn_if_disallowed_function_p,
6642         warn_disallowed_functions): Removed.
6643         * common.opt (Wdisallowed-function-list=): Removed.
6644         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
6645
6646 2009-03-28  Richard Guenther  <rguenther@suse.de>
6647
6648         PR tree-optimization/38723
6649         * tree-ssa-pre.c (compute_avail): Add all default definitions to
6650         the entry block.
6651
6652 2009-03-28  Jan Hubicka  <jh@suse.cz>
6653
6654         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
6655         test introduced by my previous patch.
6656
6657 2009-03-28  Richard Guenther  <rguenther@suse.de>
6658
6659         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
6660         the PHIs value undefined.
6661
6662 2009-03-28  Jan Hubicka  <jh@suse.cz>
6663
6664         * tree-pass.h (pass_fixup_cfg): New pass.
6665         * ipa-inline.c (inline_transform): Set
6666         always_inline_functions_inlined/after_inlining.
6667         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
6668         (pass_fixup_cfg): New pass.
6669         * passes.c (init_optimization_passes): Add fixup_cfg.
6670
6671 2009-03-28  Richard Guenther  <rguenther@suse.de>
6672
6673         PR tree-optimization/38458
6674         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
6675         argument use the arguments copy-of value.
6676
6677 2009-03-28  Richard Guenther  <rguenther@suse.de>
6678
6679         PR tree-optimization/38180
6680         * tree-ssa-ccp.c (get_default_value): Simplify.
6681         (likely_value): Likewise.
6682         (surely_varying_stmt_p): Properly handle VOP case.
6683         (ccp_initialize): Likewise.
6684         (ccp_fold): Handle propagating through *&.
6685         (fold_const_aggregate_ref): Also handle decls.
6686
6687 2009-03-28  Jan Hubicka  <jh@suse.cz>
6688
6689         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6690         * cgraph.h (cgraph_node): Likewise.
6691         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
6692         (cgraph_reset_node): Use process flag.
6693         (cgraph_mark_functions_to_output): Likewise.
6694         (cgraph_expand_function): Likewise.
6695         (cgraph_expand_all_functions): Likewise.
6696         (cgraph_output_in_order): Likewise.
6697         * dwarf2out.c (reference_to_unused): Likewise.
6698         * passes.c do_per_function_toporder): Likewise.
6699
6700 2009-03-28  Jan Hubicka  <jh@suse.cz>
6701
6702         Bring from lto-branch:
6703
6704         2008-09-03  Doug Kwan  <dougkwan@google.com>
6705
6706         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
6707         enums instead of reason strings.
6708         * cgraph.c (cgraph_create_edge): Same.
6709         (cgraph_inline_failed_string): New function.
6710         * cgraph.h (cgraph_inline_failed_t): New enum type.
6711         (cgraph_inline_failed_string): New prototype.
6712         (struct cgraph_edge): Change type of INLINED_FAILED from constant
6713         char pointer to cgraph_inline_failed_t.
6714         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
6715         (cgraph_default_inline_p): Ditto.
6716         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
6717         to cgraph_inline_failed_t pointer.
6718         * cif-code.def: New file.
6719         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
6720         reason string.
6721         (cgraph_check_inline_limits): Change type of REASON to pointer to
6722         cgraph_inline_failed_t.  Replace reason strings with enums.
6723         (cgraph_default_inline_p): Ditto.
6724         (cgraph_recursive_inlining_p): Ditto.
6725         (update_caller_keys): Change type of FAILED_REASON to
6726         cgraph_inline_failed_t.
6727         (cgraph_set_inline_failed): Change type of REASON to pointer to
6728         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
6729         convert enums to strings for text output.
6730         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
6731         to be of type cgraph_inline_failed_t.  Replace reason strings with
6732         enums.  Call cgraph_inline_failed_string to covert enums
6733         to strings for text output.
6734         (cgraph_decide_inlining): Replace reason strings with enums.
6735         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
6736         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
6737         for text output.
6738         * tree-inline.c (expand_call_inline): Change type of REASON
6739         to cgraph_inline_failed_t.  Replace reason strings with enums.
6740         Call cgraph_inline_failed_string for text output.
6741         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
6742         (cgraph.o): Ditto.
6743
6744 2009-03-28  Jan Hubicka  <jh@suse.cz>
6745
6746         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
6747         cgraph_clone_node): Remove master clone handling.
6748         (cgraph_is_master_clone, cgraph_master_clone): Remove.
6749         * cgraph.h (master_clone): Remove.
6750         (cgraph_is_master_clone, cgraph_master_clone): Remove.
6751         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
6752         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
6753
6754 2009-03-28  Jan Hubicka  <jh@suse.cz>
6755
6756         * cgraph.c (cgraph_function_body_availability): Functions declared
6757         inline are always safe to assume that it is not going to be replaced.
6758
6759 2009-03-28  Richard Guenther  <rguenther@suse.de>
6760
6761         PR tree-optimization/38513
6762         * tree-ssa-pre.c (eliminate): Remove redundant stores.
6763         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6764         EXC_PTR_EXPR and FILTER_EXPR.
6765         (get_ref_from_reference_ops): Likewise.
6766
6767 2009-03-28  Richard Guenther  <rguenther@suse.de>
6768
6769         PR tree-optimization/38968
6770         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
6771         Use FLOOR_MOD_EXPR to compute misalignment.
6772
6773 2009-03-28  Richard Guenther  <rguenther@suse.de>
6774
6775         PR tree-optimization/37795
6776         * tree.h (combine_comparisons): Declare.
6777         * fold-const.c (combine_comparisons): Export.
6778         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
6779         comparisons.
6780         (ifcombine_iforif): Use combine_comparisons.
6781
6782 2009-03-28  Jan Hubicka  <jh@suse.cz>
6783
6784         * tree-eh.c (inlinable_call_p): New function.
6785         (make_eh_edges): Use it.
6786         (verify_eh_edges): Use it.
6787         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
6788         * except.c (reachable_next_level): Add inlinable_function argument
6789         (sjlj_find_directly_reachable_regions): Update.
6790         (add_reachable_handler): Do not set saw_any_handlers.
6791         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
6792         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6793         Add new inlinable call parameter.
6794         (can_throw_internal, can_throw_external): Update.
6795         * except.h (can_throw_internal_1, can_throw_external_1,
6796         foreach_reachable_handler): Update declaration.
6797
6798 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
6799
6800         * config/arm/t-arm-coff, config/h8300/coff.h,
6801         config/i386/i386-aout.h, config/i386/i386-coff.h,
6802         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
6803         config/pdp11/2bsd.h, config/rs6000/aix41.h,
6804         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
6805         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
6806         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
6807         sys-types.h: Remove.
6808         * Makefile.in: Remove protoize and fixproto support and references
6809         in comments.
6810         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
6811         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
6812         Remove.
6813         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
6814         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
6815         unprotoize$(exeext).
6816         (rest.encap): Don't depend on $(STMP_FIXPROTO)
6817         (.PHONY): Don't depend on proto.
6818         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
6819         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
6820         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
6821         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
6822         build/gen-protos.o, build/scan.o, xsys-protos.h,
6823         build/fix-header$(build_exeext), build/fix-header.o,
6824         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
6825         stmp-install-fixproto): Remove.
6826         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
6827         SYSCALLS.c or fixproto files.
6828         (install-common): Don't install protoize.
6829         (install-headers-tar, install-headers-cpio, install-headers-cp):
6830         Don't depend on $(STMP_FIXPROTO).
6831         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
6832         install fixproto files or write out fixproto settings.
6833         (uninstall): Don't uninstall protoize.
6834         * config.gcc (use_fixproto): Remove.
6835         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
6836         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
6837         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
6838         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
6839         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
6840         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
6841         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
6842         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
6843         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
6844         * config/t-vxworks (STMP_FIXPROTO): Remove.
6845         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
6846         STMP_FIXPROTO): Remove.
6847         * config.in, configure: Regenerate.
6848         * crtstuff.c (gid_t, uid_t): Don't undefine.
6849         * doc/install.texi: Change m68k-coff to m68k-elf in example.
6850         (arm-*-coff, arm-*-aout: Remove target entries.
6851         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
6852         Remove mention of AIX 4.1.
6853         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
6854         * doc/invoke.texi (Running Protoize): Remove.
6855         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
6856         (Protoize Caveats): Remove.
6857         * tsystem.h: Update comments on headers assumed to exist.
6858
6859 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
6860
6861         * genautomata.c: Add a new year to the copyright.  Add a new
6862         reference.
6863         (struct insn_reserv_decl): Add comments for member bypass_list.
6864         (find_bypass): Remove.
6865         (insert_bypass): New.
6866         (process_decls): Use insert_bypass.
6867         (output_internal_insn_latency_func): Output all bypasses with the
6868         same input insn in one switch case.
6869
6870         * rtl.def (define_bypass): Describe bypass choice.
6871         * doc/md.texi (define_bypass): Ditto.
6872
6873 2009-03-27  Richard Guenther  <rguenther@suse.de>
6874
6875         * gimplify.c (mark_addressable): Export.
6876         * tree-flow.h (mark_addressable): Declare.
6877         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
6878         * tree-ssa.c (verify_phi_args): Verify that address taken
6879         variables have TREE_ADDRESSABLE set.
6880
6881 2009-03-27  Richard Guenther  <rguenther@suse.de>
6882
6883         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
6884         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
6885         Do not mark decls TREE_ADDRESSABLE.
6886         (build_fold_addr_expr): Adjust.
6887         (fold_addr_expr): Remove.
6888         (fold_unary): Use build_fold_addr_expr.
6889         (fold_comparison): Likewise.
6890         (split_address_to_core_and_offset): Likewise.
6891         * coverage.c (tree_coverage_counter_addr): Mark the array decl
6892         TREE_ADDRESSABLE.
6893         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
6894         (gimplify_modify_expr_to_memcpy): Mark source and destination
6895         addressable.
6896         * omp-low.c (create_omp_child_function): Mark the object decl
6897         TREE_ADDRESSABLE.
6898         (lower_rec_input_clauses): Mark the var we take the address of
6899         TREE_ADDRESSABLE.
6900         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
6901
6902 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6903
6904         PR middle-end/39315
6905         * cfgexpand.c (expand_one_stack_var_at): Change alignment
6906         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
6907
6908 2009-03-27  Richard Guenther  <rguenther@suse.de>
6909
6910         PR tree-optimization/39120
6911         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
6912         constraints.
6913         (handle_lhs_call): Process return constraints.  Add escape
6914         constraints if necessary.
6915         (handle_const_call): Fill out return constraints.  Make nested
6916         case more precise.  Avoid consttmp if possible.
6917         (handle_pure_call): Fill out return constraints.  Avoid
6918         callused if possible.
6919         (find_func_aliases): Simplify call handling.
6920
6921 2009-03-27  Richard Guenther  <rguenther@suse.de>
6922
6923         PR tree-optimization/39120
6924         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
6925         as a representative.
6926         (solve_graph): Do propagate CALLUSED.
6927         (handle_pure_call): Use a scalar constraint from CALLUSED for
6928         the return value.
6929         (find_what_p_points_to): CALLUSED shall not appear in poins-to
6930         solutions.
6931
6932 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6933
6934         PR c/39323
6935         * c-common.c (handle_aligned_attribute): Properly check alignment
6936         overflow.  Use (1U << i) instead of (1 << i).
6937
6938         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
6939
6940         * expr.h (get_mem_align_offset): Updated.
6941
6942         * tree.h (tree_decl_common): Change align to "unsigned int" and
6943         move it before pointer_alias_set.
6944
6945 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6946             Jakub Jelinek  <jakub@redhat.com>
6947
6948         PR target/38034
6949         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
6950         gr_register_operand with gr_reg_or_0_operand.
6951         (cmpxchg_rel_di): Likewise.
6952         (sync_lock_test_and_set<mode>): Likewise.
6953
6954 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6955
6956         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
6957         (true_regnum): Likewise.
6958
6959         * rtlanal.c (subreg_info): Moved to ...
6960         * rtl.h (subreg_info): Here.  New.
6961         (subreg_get_info): New.
6962
6963         * rtlanal.c (subreg_get_info): Make it extern.
6964
6965 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6966
6967         PR target/39472
6968         * config/i386/i386.c (ix86_abi): New.
6969         (override_options): Handle -mabi=.
6970         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
6971         (ix86_call_abi_override): Likewise.
6972         (init_cumulative_args): Likewise.
6973         (function_arg_advance): Likewise.
6974         (function_arg_64): Likewise.
6975         (function_arg): Likewise.
6976         (ix86_pass_by_reference): Likewise.
6977         (ix86_function_value_regno_p): Likewise.
6978         (ix86_build_builtin_va_list_abi): Likewise.
6979         (setup_incoming_varargs_64): Likewise.
6980         (is_va_list_char_pointer): Likewise.
6981         (ix86_init_machine_status): Likewise.
6982         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
6983         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
6984         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
6985         (ix86_function_abi): Make it static and return enum calling_abi.
6986         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
6987         with ix86_abi.
6988         (ix86_fn_abi_va_list): Updated.
6989
6990         * config/i386/i386.h (ix86_abi): New.
6991         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
6992         (CONDITIONAL_REGISTER_USAGE): Likewise.
6993         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
6994         (machine_function): Likewise.
6995
6996         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
6997         with ix86_abi.
6998         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
6999         (STACK_BOUNDARY): Likewise.
7000         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
7001
7002         * config/i386/i386.opt (mabi=): New.
7003
7004         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
7005         return enum calling_abi.
7006         (ix86_function_type_abi): Likewise.
7007         (ix86_function_abi): Removed.
7008
7009         * doc/invoke.texi: Document -mabi= option for x86.
7010
7011 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7012
7013         * builtins.c (real_dconstp): Delete.
7014         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
7015
7016 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
7017             Jakub Jelinek  <jakub@redhat.com>
7018
7019         PR debug/37959
7020         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
7021         (gen_subprogram_die): When a function is explicit, generate the
7022         DW_AT_explicit attribute.
7023         * langhooks.h (struct lang_hooks_for_decls): Add
7024         function_decl_explicit_p langhook.
7025         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
7026         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
7027
7028 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
7029
7030         * builtins.c (fold_builtin_memory_op): Optimize memmove
7031         into memcpy if we can prove source and destination don't overlap.
7032
7033         * tree-inline.c: Include gt-tree-inline.h.
7034         (clone_fn_id_num): New variable.
7035         (clone_function_name): New function.
7036         (tree_function_versioning): Use it.
7037         * Makefile.in (GTFILES): Add tree-inline.c.
7038
7039 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
7040
7041         * BASE-VER: Change to 4.5.0.
7042
7043 2009-03-27  Xinliang David Li  <davidxl@google.com>
7044
7045         PR tree-optimization/39557
7046         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
7047
7048 2009-03-27  Xinliang David Li  <davidxl@google.com>
7049
7050         PR tree-optimization/39548
7051         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
7052         candidate check.
7053
7054 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7055
7056         * c-common.c (pointer_int_sum): Use %wd on return from
7057         tree_low_cst.
7058
7059 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
7060
7061         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
7062         on return from tree_low_cst.
7063
7064 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7065
7066         PR c++/36799
7067         * ginclude/stdarg.h (va_copy): Define also for
7068         __GXX_EXPERIMENTAL_CXX0X__.
7069
7070 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7071
7072         PR c++/35652
7073         * builtins.h (c_strlen): Do not warn here.
7074         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7075         * c-common.c (pointer_int_sum): Take an explicit location.
7076         Warn about offsets out of bounds.
7077         * c-common.h (pointer_int_sum): Adjust declaration.
7078
7079 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7080
7081         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
7082         markup glitch.
7083
7084 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
7085
7086         PR c++/39554
7087         * opts.c (warn_if_disallowed_function_p): Don't assume
7088         get_callee_fndecl must return non-NULL.
7089
7090 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
7091
7092         PR rtl-optimization/39522
7093         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
7094         when reg_reloaded_valid is set.
7095
7096 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7097
7098         * config/spu/divv2df3.c: New file.
7099         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
7100         (DPBIT_FUNCS): Filter out _div_df.
7101
7102 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
7103
7104         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
7105         a jump insn, count that jump in the distance to the loop start.
7106
7107 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7108
7109         PR target/39523
7110         * config/sh/sh.c (calc_live_regs): Fix condition for global
7111         registers except PIC_OFFSET_TABLE_REGNUM.
7112
7113 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
7114
7115         PR/39518
7116         * doc/invoke.texi (-mconsole): New.
7117         (-mcygwin): New.
7118         (-mno-cygwin): New.
7119         (-mdll): New.
7120         (-mnop-fun-dllimport): New.
7121         (-mthread): New.
7122         (-mwin32): New.
7123         (-mwindows): New.
7124         (sub section "i386 and x86-64 Windows Options"): New.
7125
7126 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
7127
7128         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
7129         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
7130
7131 2009-03-25  Richard Guenther  <rguenther@suse.de>
7132
7133         PR middle-end/39497
7134         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
7135         of -Wno-error.
7136
7137 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
7138
7139         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
7140         neither of haifa/selective schedulers are working.
7141
7142 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7143
7144         * doc/invoke.texi (Debugging Options): Fix description of
7145         -fno-merge-debug-strings.
7146
7147 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
7148
7149         * config/cris/libgcc.ver: New version-script.
7150         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
7151
7152         * configure.ac <GAS features, nop mnemonic>: Add pattern
7153         crisv32-*-* for "nop".
7154         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
7155         * configure: Regenerate.
7156
7157 2009-03-24  Ira Rosen  <irar@il.ibm.com>
7158
7159         PR tree-optimization/39529
7160         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
7161         mark_sym_for_renaming for the tag copied to the new vector
7162         pointer.
7163
7164 2009-03-24  Arthur Loiret  <aloiret@debian.org>
7165
7166         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
7167         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
7168         EXTRA_SPEC_FUNCTIONS.
7169         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
7170         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
7171         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
7172         -march and -mtune options.
7173
7174 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
7175
7176         * config/m68k/t-rtems: Add m5329 multilib.
7177
7178 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
7179             Jakub Jelinek  <jakub@redhat.com>
7180
7181         PR debug/39524
7182         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
7183         nodes.
7184
7185 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7186
7187         PR c/39495
7188         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
7189         instead of c_parser_expression_conv, if original_code isn't one of the
7190         4 allowed comparison codes, fail.
7191
7192 2009-03-23  Richard Guenther  <rguenther@suse.de>
7193
7194         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
7195         * tree.h (struct tree_type): Likewise.
7196         * reload.h (struct insn_chain): Likewise.
7197         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
7198         * function.h (struct function): Likewise.
7199         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
7200
7201 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
7202
7203         PR tree-optimization/39516
7204         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
7205
7206 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
7207
7208         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
7209         should be set true if BITS_PER_WORD of target is bigger than 32
7210
7211 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
7212
7213         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
7214         Translate -B-options to -rpath-link.  Correct existing
7215         rpath-link and conditionalize on !nostdlib.
7216
7217 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7218
7219         * doc/extend.texi (Function Attributes, Variable Attributes):
7220         Fix typos.
7221         * doc/invoke.texi (Debugging Options, Optimize Options)
7222         (i386 and x86-64 Options, MCore Options): Likewise.
7223
7224 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
7225
7226         PR debug/37890
7227         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
7228         it for block local namespace aliases.
7229         (gen_decl_die): Pass context_die to gen_namespace_die.
7230
7231 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7232
7233         PR c/39495
7234         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
7235         minimum or maximum value.
7236
7237 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
7238
7239         * reginfo.c (globalize_reg): Recompute derived reg sets.
7240
7241 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
7242
7243         PR target/39063
7244         * libgcc2.c (mprotect): Do not use signed arguments for
7245         VirtualProtect, use DWORD arguments.  Also fix the 'may
7246         be used uninitialized' warning for the np variable.
7247
7248 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
7249
7250         PR target/39496
7251         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
7252         functions using regparm calling conventions when not optimizing.
7253         (ix86_function_sseregparm): Similarly for sseregparm calling
7254         conventions.
7255
7256 2009-03-19  Li Feng  <nemokingdom@gmail.com>
7257
7258         PR middle-end/39500
7259         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
7260         dependence if the first conflict is after niter iterations.
7261
7262 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
7263
7264         PR middle-end/38609
7265         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
7266         functions with dynamic stack-pointer adjustments.
7267
7268 2009-03-19  Ben Elliston  <bje@au.ibm.com>
7269
7270         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
7271         option; change to -msdata=data.
7272
7273 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7274
7275         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
7276         and -fopenmp.
7277
7278 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
7279
7280         PR target/35180
7281         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
7282
7283 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
7284
7285         * doc/invoke.texi (Code Gen Options): Expand discussion of
7286         -fno-common.
7287
7288 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
7289
7290         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
7291         * matrix-reorg.c (struct matrix_info): Likewise.
7292         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
7293         * rtl.h (struct mem_attrs): Likewise.
7294         * df.h (struct df): Likewise.
7295         * tree-data-ref.h (struct data_dependence_relation): Likewise.
7296         * ira-int.h (struct ira_allocno): Likewise.
7297         * df-scan.c (struct df_collection_rec): Likewise.
7298         * ira.c (struct equivalence): Likewise.
7299         * function.c (struct temp_slot): Likewise.
7300         * cfgloop.h (struct loop): Likewise.
7301
7302         PR debug/39485
7303         * function.c (use_register_for_decl): When not optimizing, disregard
7304         register keyword for variables with types containing methods.
7305
7306 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
7307
7308         PR middle-end/39447
7309         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
7310         (is_simple_operand): Call contains_component_ref_p before calling data
7311         reference analysis that would fail on COMPONENT_REFs.
7312
7313         * tree-vrp.c (search_for_addr_array): Fix formatting.
7314
7315 2009-03-18  Richard Guenther  <rguenther@suse.de>
7316
7317         * tree-vect-transform.c (vect_loop_versioning): Fold the
7318         generated comparisons.
7319         * tree-vectorizer.c (set_prologue_iterations): Likewise.
7320         (slpeel_tree_peel_loop_to_edge): Likewise.
7321
7322 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7323
7324         PR middle-end/37805
7325         * opts.c (print_specific_help): In addition to `undocumented',
7326         accept `separate' and `joined' flags if passed alone.  Describe
7327         output by the first matched one of those.
7328         (common_handle_option): Skip over empty strings.
7329         * gcc.c (display_help): Fix help string for `--help='.
7330         * doc/invoke.texi (Option Summary, Overall Options): With
7331         `--help=', classes and qualifiers can both be repeated, but
7332         only the latter can be negated.  One should not pass only
7333         negated qualifiers.  Fix markup and examples.
7334
7335         Revert
7336         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
7337         PR middle-end/37805
7338         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
7339         and -fhelp=separate.
7340
7341 2009-03-17  Jing Yu  <jingyu@google.com>
7342
7343         PR middle-end/39378
7344         * function.h (struct rtl_data): Move is_thunk from here...
7345         (struct function): ...to here.
7346         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
7347         * varasm.c (assemble_start_function): Change is_thunk from crtl to
7348         cfun.
7349         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
7350         cfun.
7351         (alpha_does_function_need_gp, alpha_start_function): Likewise.
7352         (alpha_output_function_end_prologue): Likewise.
7353         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
7354         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
7355         (rs6000_output_function_epilogue): Likewise.
7356         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
7357
7358 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
7359
7360         PR target/39482
7361         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
7362         from different units in a single alternative.
7363         (*truncdfsf_i387): Ditto.
7364         (*truncxfsf2_mixed): Ditto.
7365         (*truncxfdf2_mixed): Ditto.
7366
7367 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
7368
7369         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
7370         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
7371
7372         PR debug/39474
7373         * tree-ssa-live.c (remove_unused_locals): Don't remove local
7374         unused non-artificial variables when not optimizing.
7375
7376         PR debug/39471
7377         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
7378         DW_TAG_imported_module even if decl is IMPORTED_DECL with
7379         NAMESPACE_DECL in its DECL_INITIAL.
7380
7381         PR middle-end/39443
7382         * optabs.c (set_user_assembler_libfunc): New function.
7383         * expr.h (set_user_assembler_libfunc): New prototype.
7384         * c-common.c: Include libfuncs.h.
7385         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
7386         for memcmp, memset, memcpy, memmove and abort.
7387         * Makefile.in (c-common.o): Depend on libfuncs.h.
7388
7389         PR debug/39412
7390         * dwarf2out.c (gen_inlined_enumeration_type_die,
7391         gen_inlined_structure_type_die, gen_inlined_union_type_die,
7392         gen_tagged_type_instantiation_die): Removed.
7393         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
7394         do nothing.
7395
7396 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
7397
7398         PR testsuite/38526
7399         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
7400         its use.
7401         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
7402         (check-parallel-%): Ditto.
7403         (check-consistency): Ditto.
7404
7405 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
7406
7407         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
7408         local variable rhs by NULL_TREE.
7409
7410 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7411
7412         PR target/39477
7413         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
7414
7415 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7416
7417         PR target/39476
7418         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
7419
7420 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7421
7422         PR target/39473
7423         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
7424         for ms->sysv ABI calls only in 64bit mode.
7425
7426         * config/i386/i386.md (untyped_call): Support 32bit.
7427
7428 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
7429
7430         * doc/extend.texi: Replace x86_65 with x86_64.
7431
7432 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
7433
7434         PR tree-optimization/39455
7435         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
7436         mismatches for POINTER_TYPE_P (type).
7437         (number_of_iterations_le): Likewise.
7438
7439 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7440
7441         * config/picochip/picochip.c: Removed profiling support.
7442         * config/picochip/picochip.md: Removed profiling instruction.
7443         * config/picochip/picochip.h: Removed profiling builtin.
7444
7445 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
7446
7447         * doc/install.texi (--with-host-libstdcxx): Document.
7448
7449 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
7450
7451         PR target/34299
7452         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
7453         generate a warning if the function name does not begin with
7454         "__vector" and the function has either the 'signal' or 'interrupt'
7455         attribute, from here to ...
7456         (avr_declare_function_name): ...here. New function.
7457         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
7458         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
7459
7460 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
7461
7462         PR bootstrap/39454
7463         * cse.c (fold_rtx): Don't modify original const_arg1 when
7464         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
7465         separate variable instead.
7466         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
7467         from out of range shift counts.
7468         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
7469
7470 2009-03-13  Catherine Moore  <clm@codesourcery.com>
7471
7472         * config/i386/x-mingw32 (host-mingw32.o): Replace
7473         diagnostic.h with $(DIAGNOSTIC_H).
7474
7475 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
7476
7477         PR target/39431
7478         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
7479         predicate.
7480         * config/i386/sync.md (sync_compare_and_swap<mode>,
7481         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
7482         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
7483         into a register.
7484         (sync_double_compare_and_swapdi_pic,
7485         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
7486         cmpxchg8b_pic_memory_operand instead of just memory_operand.
7487
7488 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7489
7490         PR target/39445
7491         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7492
7493 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7494
7495         PR target/39327
7496         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7497         (avx_addsubv4df3): Likewise.
7498         (*avx_addsubv4sf3): Likewise.
7499         (sse3_addsubv4sf3): Likewise.
7500
7501 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7502
7503         PR target/38824
7504         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
7505
7506 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
7507
7508         PR debug/39432
7509         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
7510         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7511         registers for allocnos created from user-defined variables.
7512
7513 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7514
7515         PR target/39181
7516         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
7517         of non-integer mode as well.
7518
7519 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
7520
7521         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
7522         for functions for which the parameter types are unknown.
7523
7524 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
7525
7526         PR target/39137
7527         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
7528         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
7529         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
7530         * config/i386/i386.c (ix86_local_alignment): For
7531         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
7532         long long variables on the stack to avoid dynamic realignment.
7533         Allow the first argument to be a decl rather than type.
7534         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
7535
7536 2009-03-11  Nick Clifton  <nickc@redhat.com>
7537
7538         PR target/5362
7539         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
7540         options.
7541         Add description to mno-lsim option.
7542         * config/mcore/mcore.h: Remove comment about deprecated m4align
7543         option.
7544         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
7545         * doc/invoke.texi: Add description of mno-lsim and
7546         mstack-increment options.
7547
7548         * config/fr30/fr30.opt: Document the -mno-lsim option.
7549         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
7550         and -mno-lsim options.
7551
7552 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7553
7554         * fold-const.c (fold_comparison): Only call fold_inf_compare
7555         if the mode supports infinities.
7556
7557 2009-03-11  Jason Merrill  <jason@redhat.com>
7558
7559         PR debug/39086
7560         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
7561         end already did.  Notice GIMPLE_CALL modifications of the result.
7562         Don't copy debug information from an ignored decl or a decl from
7563         another function.
7564
7565 2009-03-10  Richard Guenther  <rguenther@suse.de>
7566             Nathan Froyd  <froydnj@codesourcery.com>
7567
7568         PR middle-end/37850
7569         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
7570         (__divMODE3): Likewise.
7571
7572 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
7573
7574         PR tree-optimization/39394
7575         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
7576         DECL_SIZE_UNIT of variable length FIELD_DECLs.
7577
7578 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7579
7580         * recog.c (verfiy_changes): Disallow renaming of hard regs in
7581         inline asms for register asm ("") declarations.
7582
7583 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
7584
7585         * fold-const.c (fold_unary): Fix comment.
7586
7587 2009-03-07  Jan Hubicka  <jh@suse.cz>
7588
7589         PR target/39361
7590         * tree-inline.c (setup_one_parameter): Do replacement of const
7591         argument by constant in SSA form.
7592
7593 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7594
7595         PR middle-end/38028
7596         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
7597         determine alignment passed to assign_stack_local.
7598         (assign_parms_unsplit_complex): Likewise.
7599         * except.c (sjlj_build_landing_pads): Likewise.
7600
7601 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7602
7603         PR middle-end/39360
7604         * tree-flow.h (add_referenced_var): Return bool instead of void.
7605         * tree-dfa.c (add_referenced_var): Return result of
7606         referenced_var_check_and_insert call.
7607         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
7608         of referenced_var_check_and_insert.
7609
7610         PR debug/39372
7611         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
7612         (gen_variable_die): Emit DW_AT_location on abstract static variable's
7613         DIE, don't emit it if abstract origin already has it.
7614         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
7615         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
7616
7617 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7618
7619         * genpreds.c (needs_variable): Fix parentheses at variable name
7620         detection.
7621         (write_tm_constrs_h): Indent generated code.
7622
7623 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7624
7625         * doc/extend.texi (Function Attributes): Add documentation
7626         for isr attributes.
7627
7628 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7629
7630         PR debug/39387
7631         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
7632         take locus from its DECL_SOURCE_LOCATION instead of input_location.
7633
7634 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
7635
7636         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
7637         the loop as bad.
7638
7639 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
7640
7641         PR debug/39379
7642         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
7643         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
7644
7645 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
7646
7647         * config/i386/i386.md (R8_REG, R9_REG): New constants.
7648         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
7649         constants instead of magic numbers.
7650         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
7651         (QI_REG_P): Ditto.
7652         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
7653         (x86_64_ms_abi_int_parameter_registers): Ditto.
7654         (x86_64_int_return_registers): Ditto.
7655         (ix86_maybe_switch_abi): Ditto.
7656         (ix86_expand_call): Ditto for clobbered_registers array.
7657         (ix86_hard_regno_mode_ok): Ditto.
7658         (x86_extended_QIreg_mentioned_p): Ditto.
7659
7660 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
7661
7662         PR tree-optimization/39349
7663         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
7664
7665         * combine.c (gen_lowpart_for_combine): Use omode when generating
7666         clobber.
7667
7668 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
7669
7670         PR rtl-optimization/39235
7671         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
7672
7673 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
7674
7675         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
7676
7677 2009-03-04  Richard Guenther  <rguenther@suse.de>
7678
7679         PR tree-optimization/39362
7680         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
7681         that occur in abnormal PHIs should be varying.
7682
7683 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
7684
7685         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
7686         Extend comments.
7687         (simple_iv):  Take loop as an argument instead of statement.
7688         * tree-scalar-evolution.h (simple_iv): Declaration changed.
7689         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
7690         to simple_iv.
7691         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
7692         Ditto.
7693         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
7694         * matrix-reorg.c (analyze_transpose): Ditto.
7695         * tree-data-ref.c (dr_analyze_innermost): Ditto.
7696         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
7697         * tree-predcom.c (ref_at_iteration): Ditto.
7698         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
7699
7700 2009-03-04  Richard Guenther  <rguenther@suse.de>
7701
7702         PR tree-optimization/39358
7703         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
7704         escaped_id and callused_id.
7705         (solve_graph): Likewise.
7706
7707 2009-03-04  Richard Guenther  <rguenther@suse.de>
7708
7709         PR tree-optimization/39339
7710         * tree-sra.c (try_instantiate_multiple_fields): Make it
7711         no longer ICE on the above.
7712
7713 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
7714
7715         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
7716         that fits within Pmode.
7717
7718 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
7719
7720         PR middle-end/10109
7721         * tm.texi (LIBCALL_VALUE): Update description.
7722
7723 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
7724
7725         PR middle-end/34443
7726         * doc/extend.texi (section): Update description.
7727
7728 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
7729
7730         PR middle-end/39345
7731         * tree-inline.c (remapped_type): New.
7732         (can_be_nonlocal): Call remapped_type instead of remap_type.
7733
7734 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
7735
7736         PR fortran/39354
7737         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
7738         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
7739
7740 2009-03-03  Richard Guenther  <rguenther@suse.de>
7741
7742         PR middle-end/39272
7743         * tree.c (tree_nonartificial_location): New function.
7744         * tree.h (tree_nonartificial_location): Declare.
7745         * builtins.c (expand_builtin_memory_chk): Provide location
7746         of the call location for artificial function pieces.
7747         (maybe_emit_chk_warning): Likewise.
7748         (maybe_emit_sprintf_chk_warning): Likewise.
7749         (maybe_emit_free_warning): Likewise.
7750         * expr.c (expand_expr_real_1): Likewise.
7751
7752 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
7753
7754         PR tree-optimization/39343
7755         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
7756         COMPONENT_REF t has ARRAY_TYPE.
7757
7758 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7759
7760         PR middle-end/39335
7761         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
7762         when the type precision of the induction variable should be
7763         larger than the type precision of nit.
7764         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
7765         * graphite.c (graphite_loop_normal_form): Same.
7766         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
7767
7768 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
7769
7770         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
7771         (*call_1_rex64_ms_sysv): Use named constants instead of magic
7772         numbers to describe clobbered registers.
7773         (*call_value_0_rex64_ms_sysv): Ditto.
7774         * config/i386/mmx.md (mmx_emms): Ditto.
7775         (mmx_femms): Ditto.
7776
7777 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
7778
7779         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
7780         of ABI_64.
7781
7782 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7783
7784         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
7785         (spu_section_type_flags): New function.
7786
7787 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
7788
7789         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
7790         reg_class_contents of FLOAT_REGS into a temporary.
7791
7792 2009-03-02  Richard Guenther  <rguenther@suse.de>
7793             Ira Rosen  <irar@il.ibm.com>
7794
7795         PR tree-optimization/39318
7796         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
7797         information to the vectorized statement.
7798
7799 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
7800
7801         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
7802         variable.  Use defined names instead of magic constants for REX SSE
7803         registers.
7804
7805 2009-03-01  Richard Guenther  <rguenther@suse.de>
7806
7807         PR tree-optimization/39331
7808         * omp-low.c (lower_send_shared_vars): Do not receive new
7809         values for the reference of DECL_BY_REFERENCE parms or results.
7810
7811 2009-03-01  Jan Hubicka  <jh@suse.cz>
7812
7813         PR debug/39267
7814         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
7815         BLOCK_NONLOCALIZED_VAR): New macros.
7816         (tree_block): Add nonlocalized_vars.
7817         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
7818         gen_decl_die): Add origin argument.  Allow generation of die with
7819         origin at hand only.
7820         (gen_member_die, gen_type_die_with_usage, force_decl_die,
7821         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
7822         of gen_*.
7823         (gen_block_die): Fix checking for unused blocks.
7824         (process_scope_var): Break out from .... ; work with origins only.
7825         (decls_for_scope) ... here; process nonlocalized list.
7826         (dwarf2out_ignore_block): Look for nonlocalized vars.
7827         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
7828         vars.
7829         (dump_scope_block): Dump them.
7830         * tree-inline.c (remap_decls): Handle nonlocalized vars.
7831         (remap_block): Likewise.
7832         (can_be_nonlocal): New predicate.
7833         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
7834
7835 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7836
7837         * configure: Regenerate.
7838
7839 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7840
7841         * optc-gen.awk: No need to duplicate option flags twice.
7842         Reuse help texts for duplicate options which do not have any.
7843
7844         * gcc.c (display_help): Document --version.
7845
7846         * gcc.c (main): If print_help_list and verbose_flag, ensure
7847         driver output comes before subprocess output.
7848
7849         * optc-gen.awk: Assign all remaining fields to help string,
7850         space-separated, for multi-line help in *.opt.
7851
7852         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
7853         -Wno-pedantic-ms-format is for MinGW targets only.
7854
7855         * doc/options.texi (Option file format): Fix bad indentation,
7856         restoring dropped sentence.
7857
7858 2009-02-28  Jan Hubicka  <jh@suse.cz>
7859
7860         * tree-inline.c (tree_function_versioning): Output debug info.
7861
7862 2009-02-28  Jan Hubicka  <jh@suse.cz>
7863
7864         PR debug/39267
7865         * tree-inline.c (setup_one_parameter): Do not copy propagate
7866         arguments when not optimizing.
7867
7868 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
7869
7870         PR target/39327
7871         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7872         (avx_addsubv4df3): Likewise.
7873         (*avx_addsubv4sf3): Likewise.
7874         (sse3_addsubv4sf3): Likewise.
7875         (*avx_addsubv2df3): Likewise.
7876         (sse3_addsubv2df3): Likewise.
7877         (avx_unpckhps256): Correct item selectors.
7878         (avx_unpcklps256): Likewise.
7879         (avx_unpckhpd256): Likewise.
7880         (avx_unpcklpd256): Likewise.
7881
7882 2009-02-28  Jan Hubicka  <jh@suse.cz>
7883
7884         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
7885         static vars.
7886         (copy_arguments_for_versioning): If var is declared don't declare it.
7887         (tree_function_versioning): First setup substitutions and then copy
7888         args.
7889
7890 2009-02-27  Jan Hubicka  <jh@suse.cz>
7891
7892         PR debug/39267
7893         * cgraph.h (varpool_output_debug_info): Remove.
7894         * cgraphunit.c (varpool_output_debug_info): Remove.
7895         * dwarf2out.c (deferred_locations_struct): New struct
7896         (deferred_locations): New type.
7897         (deferred_locations_list): New static var.
7898         (deffer_location): New function.
7899         (gen_variable_die): Use it.
7900         (decls_for_scope): Output info on local static vars.
7901         (dwarf2out_finish): Process deferred locations.
7902         * varpool.c (varpool_output_debug_info): Remove.
7903
7904 2009-02-27  Jan Hubicka  <jh@suse.cz>
7905
7906         PR debug/39267
7907         * tree.h (TREE_PROTECTED): Fix comment.
7908         (BLOCK_HANDLER_BLOCK): Remove.
7909         (struct tree_block): Remove handler_block add body_block.
7910         (inlined_function_outer_scope_p): New.
7911         (is_body_block): Remove.
7912         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
7913         * dwarf2out.c (is_inlined_entry_point): Remove.
7914         (add_high_low_attributes): Use inlined_function_outer_scope_p.
7915         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
7916         code.
7917         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
7918         * gimplify.c (gimplify_expr): Gimplify body blocks.
7919         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
7920         block with multiple subblocks.
7921         (dump_scope_block): Prettier output; dump more flags and info.
7922         (dump_scope_blocks): New.
7923         (remove_unused_locals): Use dump_scope_blocks.
7924         * tree-flow.h (dump_scope_blocks): Declare.
7925         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
7926         * stmt.c (is_body_block): Remove.
7927         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
7928         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
7929
7930 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
7931
7932         PR middle-end/39308
7933         * graphite.c (graphite_loop_normal_form): Do not call
7934         number_of_iterations_exit from a gcc_assert.
7935
7936 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7937
7938         * config/s390/s390.c (s390_swap_cmp): Look for conditional
7939         jumps if COND is NULL.
7940         (find_cond_jump): New function.
7941         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
7942         * config/s390/s390.md: Remove z10_cobra attribute value.
7943
7944 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
7945
7946         * config/alpha/alpha.h (alpha_expand_mov): Return false if
7947         force_const_mem returns NULL_RTX.
7948
7949 2009-02-26  Jan Hubicka  <jh@suse.cz>
7950
7951         PR debug/39267
7952         * cgraph.h (varpool_output_debug_info): Remove.
7953         * cgraphunit.c (varpool_output_debug_info): Remove.
7954         * dwarf2out.c (deferred_locations_struct): New struct
7955         (deferred_locations): New type.
7956         (deferred_locations_list): New static var.
7957         (deffer_location): New function.
7958         (gen_variable_die): Use it.
7959         (decls_for_scope): Output info on local static vars.
7960         (dwarf2out_finish): Process deferred locations.
7961         * varpool.c (varpool_output_debug_info): Remove.
7962
7963 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
7964
7965         PR rtl-optimization/39241
7966         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
7967         to subreg_offset_representable_p.
7968
7969 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
7970
7971         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
7972         execute function prototype.  Get f and nregs from max_reg_num
7973         and get_insns.  Remove the first backward pass as it's dead,
7974         guard the forward pass by flag_expensive_optimizations.
7975         (rest_of_handle_regmove): Delete.
7976         (pass_regmove): Replace it with regmove_optimize.
7977
7978 2009-02-25  Martin Jambor  <mjambor@suse.cz>
7979
7980         PR tree-optimization/39259
7981         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
7982         calls_alloca function flags.
7983         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
7984         calls are detected.
7985
7986 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
7987
7988         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
7989         flags_set_1_rtx, flags_set_1_set): Delete.
7990         (regmove_optimize): Do not call mark_flags_life_zones.
7991
7992 2009-02-24  Julian Brown  <julian@codesourcery.com>
7993
7994         PR target/35965
7995         * config/arm/arm.c (require_pic_register): Only set
7996         cfun->machine->pic_reg once per function.
7997
7998 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
7999
8000         * doc/invoke.texi (Link Options): Document an easier way to pass
8001         options that take arguments to the GNU linker using -Xlinker and -Wl.
8002
8003 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
8004
8005         PR target/33785
8006         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
8007
8008 2009-02-24  Richard Guenther  <rguenther@suse.de>
8009
8010         PR debug/39285
8011         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
8012
8013 2009-02-24  Richard Guenther  <rguenther@suse.de>
8014             Zdenek Dvorak  <ook@ucw.cz>
8015
8016         PR tree-optimization/39233
8017         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
8018         from converting them to a generic type.
8019
8020 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
8021
8022         PR tree-optimization/39260
8023         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
8024         contains a condition with a real type.
8025         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
8026
8027 2009-02-23  Jason Merrill  <jason@redhat.com>
8028
8029         PR c++/38880
8030         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
8031         narrowing_initializer_constant_valid_p.
8032         (narrowing_initializer_constant_valid_p): Don't return
8033         null_pointer_node for adding a pointer to itself.
8034
8035 2009-02-23  Jan Hubicka  <jh@suse.cz>
8036
8037         PR c/12245
8038         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
8039         resizing.
8040
8041 2009-02-23  Jan Hubicka  <jh@suse.cz>
8042
8043         PR tree-optimization/37709
8044         * tree.c (block_ultimate_origin): Move here from dwarf2out.
8045         * tree.h (block_ultimate_origin): Declare.
8046         * dwarf2out.c (block_ultimate_origin): Move to tree.c
8047         * tree-ssa-live.c (remove_unused_scope_block_p):
8048         Eliminate blocks containig no instructions nor live variables nor
8049         nested blocks.
8050         (dump_scope_block): New function.
8051         (remove_unused_locals): Enable removal of dead blocks by default;
8052         enable dumping at TDF_DETAILS.
8053
8054 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8055
8056         * config/i386/i386.c (classify_argument): Don't allow COImode
8057         and OImode.
8058         (function_arg_advance_32): Don't allow OImode.
8059         (function_arg_32): Likewise.
8060         (function_value_32): Likewise.
8061         (return_in_memory_32): Likewise.
8062         (function_arg_64): Remove OImode comment.
8063
8064 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8065
8066         PR target/39261
8067         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
8068         ix86_expand_vector_set for V4DImode in 64bit mode only.
8069         (ix86_expand_vector_init_one_var): Likewise.
8070
8071 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
8072
8073         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
8074
8075 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8076
8077         PR bootstrap/39257
8078         * loop-iv.c: Revert last change.
8079         * emit-rtl.c: Likewise.
8080
8081 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
8082
8083         PR target/39256
8084         * config/i386/i386.c (type_natural_mode): Remove an extra
8085         space in the warning message.
8086         (function_value_32): Handle 32-byte vector modes.
8087         (return_in_memory_32): Likewise.
8088
8089 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
8090
8091         * loop-iv.c (truncate_value): New function.
8092         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
8093         of lowpart_subreg.
8094         (lowpart_subreg): Move to...
8095         * emit-rtl.c: ...here.
8096
8097 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
8098
8099         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
8100         accidental and undocumented change at revision 140860.
8101
8102 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
8103
8104         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
8105         take gimple_seq * arguments.
8106         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
8107         types_compatible_p langhook.
8108
8109 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
8110             Joseph Myers  <joseph@codesourcery.com>
8111
8112         * config/arm/arm.c (arm_builtin_va_list): New function.
8113         (arm_expand_builtin_va_start): Likewise.
8114         (arm_gimplify_va_arg_expr): Likewise.
8115         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
8116         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
8117         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
8118         (va_list_type): New variable.
8119         (arm_mangle_type): Mangle va_list_type appropriately.
8120
8121 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8122
8123         PR middle-end/39157
8124         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
8125         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
8126         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
8127         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
8128         parameter to 1000 for -O1 by default.
8129         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
8130         parameter.
8131         * loop-invariant.c: Include params.h.
8132         (move_loop_invariants): Don't call move_single_loop_invariants on
8133         very large loops.
8134
8135 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
8136
8137         * calls.c (emit_library_call_value_1): Use slot_offset instead of
8138         offset when calculating bounds for indexing stack_usage_map.  Fixes
8139         a buffer overflow with certain target setups.
8140
8141 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
8142
8143         PR target/39240
8144         * calls.c (expand_call): Clear try_tail_call if caller and callee
8145         disagree in promotion of function return value.
8146
8147 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
8148
8149         PR target/39175
8150         * c-common.c (c_determine_visibility): If visibility changed and
8151         DECL_RTL has been already set, call make_decl_rtl to update symbol
8152         flags.
8153
8154 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8155
8156         PR c++/39188
8157         * varasm.c (assemble_variable): Don't check DECL_NAME when
8158         globalizing a variable.
8159
8160 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
8161
8162         PR c/38483
8163         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
8164         expression before any __builtin_trap call.
8165         * c-typeck.c (build_function_call): Convert and check function
8166         arguments before generating a call to a trap.  Evaluate the
8167         function arguments before the trap.
8168
8169 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
8170
8171         PR target/39228
8172         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
8173         (UNSPEC_FXAM_MEM): New unspec.
8174         (fxam<mode>2_i387_with_temp): New insn and split pattern.
8175         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
8176         memory using fxam<mode>2_i387_with_temp to remove excess precision.
8177
8178 2009-02-19  Richard Guenther  <rguenther@suse.de>
8179
8180         PR tree-optimization/39207
8181         PR tree-optimization/39074
8182         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
8183         storedanything_tree): New.
8184         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
8185         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
8186         (build_succ_graph): Add edges from STOREDANYTHING to all
8187         non-direct nodes.
8188         (init_base_vars): Initialize STOREDANYTHING.
8189         (compute_points_to_sets): Free substitution info after
8190         building the succ graph.
8191         (ipa_pta_execute): Likewise.
8192
8193         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
8194         field.
8195         (do_ds_constraint): Do not add to special var or non-pointer
8196         field solutions.
8197         (type_could_have_pointers): Split out from ...
8198         (could_have_pointers): ... here.  For arrays use the element type.
8199         (create_variable_info_for): Initialize may_have_pointers.
8200         (new_var_info): Likewise.
8201         (handle_lhs_call): Make the HEAP variable unknown-sized.
8202         (intra_create_variable_infos): Use a type with pointers for
8203         PARM_NOALIAS, make it unknown-sized.
8204
8205 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8206
8207         PR target/39224
8208         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
8209
8210 2009-02-18  Jason Merrill  <jason@redhat.com>
8211
8212         PR target/39179
8213         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
8214         value if DECL_EXTERNAL.
8215         * tree-sra.c (sra_walk_gimple_assign): Likewise.
8216         * target.h (gcc_target::binds_local_p): Clarify "module".
8217         * tree.h (TREE_PUBLIC): Clarify "module".
8218
8219 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
8220
8221         PR target/38891
8222         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
8223         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
8224
8225 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
8226
8227         PR target/39082
8228         * c.opt (Wabi): Support C and ObjC.
8229         (Wpsabi): New.
8230
8231         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
8232
8233         * config/i386/i386.c (classify_argument): Warn once about the ABI
8234         change when passing union with long double.
8235
8236         * doc/invoke.texi: Update -Wabi for warning psABI changes.
8237
8238 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
8239
8240         PR c/35447
8241         * c-parser.c (c_parser_compound_statement): Always enter and leave
8242         a scope.
8243
8244 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8245
8246         PR target/34587
8247         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
8248
8249 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
8250
8251         PR tree-optimization/36922
8252         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
8253         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
8254         Likewise.
8255
8256 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8257
8258         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8259         to 0 for EABI64.
8260
8261 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8262
8263         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
8264
8265 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
8266
8267         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
8268         tree sharing.
8269
8270 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
8271             Richard Sandiford  <rdsandiford@googlemail.com>
8272
8273         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
8274         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
8275         (loongson_biadd): ...this.
8276
8277 2009-02-17  Richard Guenther  <rguenther@suse.de>
8278
8279         PR tree-optimization/39202
8280         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
8281         a var make sure to follow existing collapses.
8282
8283 2009-02-17  Richard Guenther  <rguenther@suse.de>
8284
8285         PR middle-end/39214
8286         * langhooks.c (lhd_print_error_function): Check for NULL block.
8287
8288 2009-02-17  Richard Guenther  <rguenther@suse.de>
8289
8290         PR tree-optimization/39204
8291         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
8292         of the PHI arg.
8293
8294 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
8295
8296         * config/soft-fp/double.h: Update from glibc CVS.
8297
8298 2009-02-17  Richard Guenther  <rguenther@suse.de>
8299
8300         PR tree-optimization/39207
8301         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
8302         strict-aliasing warnings for pointers pointing to NULL.
8303
8304 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
8305
8306         PR c/35446
8307         * c-parser.c (c_parser_braced_init): Call pop_init_level when
8308         skipping until next close brace.
8309
8310 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
8311
8312         PR target/37049
8313         * config/i386/i386.c (ix86_expand_push): Set memory alignment
8314         to function argument boundary.
8315
8316 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8317
8318         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
8319         in the lea_add. Reload eventually constraints it properly.
8320         * config/picochip/constraints.md : Remove the target constraint
8321         "b", since it is not needed anymore.
8322
8323 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
8324
8325         * gthr-dce.h: Uglify function parameter and local variable names.
8326         * gthr-gnat.h: Likewise.
8327         * gthr-mipssde.h: Likewise.
8328         * gthr-nks.h: Likewise.
8329         * gthr-posix95.h: Likewise.
8330         * gthr-posix.h: Likewise.
8331         * gthr-rtems.h: Likewise.
8332         * gthr-single.h: Likewise.
8333         * gthr-solaris.h: Likewise.
8334         * gthr-tpf.h: Likewise.
8335         * gthr-vxworks.h: Likewise.
8336         * gthr-win32.h: Likewise.
8337
8338 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
8339
8340         PR target/39196
8341         * config/i386/i386.md: Restrict the new peephole2 to move
8342         between MMX/SSE registers.
8343
8344 2009-02-15  Richard Guenther  <rguenther@suse.de>
8345
8346         Revert
8347         2009-02-13  Richard Guenther  <rguenther@suse.de>
8348
8349         * configure.ac: Enable LFS.
8350         * configure: Re-generate.
8351         * config.in: Likewise.
8352
8353 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8354
8355         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
8356         spu_srqwbyte, spu_srqwbytebc): Define.
8357         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
8358         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
8359         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
8360         "shrqby_<mode>"): New insn-and-split patterns.
8361         * config/spu/spu.c (expand_builtin_args): Determine and return
8362         number of operands using spu_builtin_description data.
8363         (spu_expand_builtin_1): Use it.
8364
8365 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
8366
8367         PR target/38056
8368         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
8369         TARGET_CONST_GP.
8370
8371 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8372
8373         PR target/39149
8374         * config/i386/i386.c (override_options): Correct warning
8375         messages for -malign-loops, -malign-jumps and -malign-functions.
8376
8377 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8378
8379         PR target/39152
8380         * config/i386/i386.md: Restrict the new peephole2 to move
8381         between the general purpose registers.
8382
8383 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8384
8385         PR target/39162
8386         * config/i386/i386.c (type_natural_mode): Add a new argument.
8387         Return the original mode and warn ABI change if vector size is 32byte.
8388         (function_arg_advance): Updated.
8389         (function_arg): Likewise.
8390         (ix86_function_value): Likewise.
8391         (ix86_return_in_memory): Likewise.
8392         (ix86_sol10_return_in_memory): Likewise.
8393         (ix86_gimplify_va_arg): Likewise.
8394         (function_arg_32): Don't warn ABX ABI change here.
8395         (function_arg_64): Likewise.
8396
8397 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8398
8399         * loop-iv.c (implies_p): In the final case, test that operands 0
8400         of the two comparisons match.
8401
8402         * config/bfin/bfin.c (find_prev_insn_start): New function.
8403         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
8404         (find_next_insn_start): Move.
8405
8406 2009-02-13  Richard Guenther  <rguenther@suse.de>
8407
8408         * configure.ac: Enable LFS.
8409         * configure: Re-generate.
8410         * config.in: Likewise.
8411
8412 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
8413
8414         PR c/35444
8415         * c-parser.c (c_parser_parms_list_declarator): Discard pending
8416         sizes on syntax error after some arguments have been parsed.
8417
8418 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8419
8420         * doc/invoke.texi (-fira): Remove.
8421
8422 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8423
8424         * caller-save.c: Replace regclass.c with reginfo.c in comments.
8425         * recog.c: Likewise.
8426         * rtl.h: Likewise.
8427
8428 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
8429
8430         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
8431         (umul_ppmm): Likewise.
8432         (count_leading_zeros): Likewise.
8433         (count_trailing_zeros): Likewise.
8434         (UMUL_TIME): Likewise.
8435
8436 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8437
8438         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
8439         soft-fp/t-softfp to tmake_file.
8440
8441         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
8442         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
8443         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
8444         IA64_BUILTIN_INFQ]: New.
8445         (ia64_init_builtins): Initialize __builtin_infq,
8446         __builtin_fabsq and __builtin_copysignq if not HPUX.
8447         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
8448         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
8449
8450         * config/ia64/lib1funcs.asm (__divtf3): Define only if
8451         SHARED is defined.
8452         (__fixtfti): Likewise.
8453         (__fixunstfti): Likewise.
8454         (__floattitf): Likewise.
8455
8456         * config/ia64/libgcc-glibc.ver: New.
8457         * config/ia64/t-fprules-softfp: Likewise.
8458         * config/ia64/sfp-machine.h: Likewise.
8459
8460         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
8461         (LIBGCC2_TF_CEXT): Likewise.
8462         (TF_SIZE): Likewise.
8463         (TARGET_INIT_LIBFUNCS): Likewise.
8464
8465         * config/ia64/t-glibc (SHLINB_MAPFILES):
8466         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8467
8468 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8469
8470         * config/i386/i386.c (construct_container): Rewrite processing
8471         BLKmode with X86_64_SSE_CLASS.
8472
8473 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
8474
8475         PR target/39152
8476         * config/i386/i386.md: Replace simplify_replace_rtx with
8477         replace_rtx in the new peephole2.
8478
8479 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
8480
8481         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
8482         loop unrolling do not happen at -O2.
8483
8484 2009-02-12  Michael Matz  <matz@suse.de>
8485
8486         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
8487
8488 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8489
8490         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
8491         for -g3.
8492
8493 2009-02-12  Ben Elliston  <bje@au.ibm.com>
8494
8495         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
8496         patterns when updating the back chain.  Missed in the 2009-02-10
8497         change.
8498
8499 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
8500
8501         * doc/extend.texi (Decimal Floating Types): Update identifier of
8502         draft TR and list of missing support.
8503
8504 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
8505
8506         PR middle-end/39154
8507         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
8508         bit to variable length decl's flags, add it also to its
8509         pointer replacement variable.
8510
8511 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
8512             Jakub Jelinek  <jakub@redhat.com>
8513
8514         PR target/39118
8515         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
8516         (memory_blockage): New expander.
8517         (*memory_blockage): New insn pattern.
8518         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
8519         instead of general blockage at the end of function prologue when
8520         frame pointer is used to access red zone area.  Do not emit blockage
8521         when profiling, it is emitted in generic code.
8522         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
8523         function epilogue when frame pointer is used to access red zone area.
8524
8525 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
8526
8527         PR target/38824
8528         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
8529         by arithmetic with memory operands.
8530         * config/i386/predicates.md (commutative_operator): New.
8531
8532 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
8533
8534         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
8535         bulleted lists.
8536
8537 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8538
8539         * alias.h (record_alias_subset): Declare.
8540         * alias.c (record_alias_subset): Make global.
8541
8542 2009-02-10  Nick Clifton  <nickc@redhat.com>
8543
8544         * tree-parloops.c: Change license to GPLv3.
8545         * ipa-struct-reorg.c: Change license to GPLv3.
8546         * ipa-struct-reorg.h: Change license to GPLv3.
8547
8548 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
8549
8550         PR c/39084
8551         * c-decl.c (start_struct): Return NULL on error.
8552
8553 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
8554
8555         PR middle-end/39124
8556         * cfgloopmanip.c (remove_path): Call remove_bbs after
8557         cancel_loop_tree, not before it.
8558
8559         PR target/39139
8560         * function.h (struct function): Add has_local_explicit_reg_vars bit.
8561         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
8562         VAR_DECLs were seen.
8563         * tree-ssa-live.c (remove_unused_locals): Recompute
8564         cfun->has_local_explicit_reg_vars.
8565         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
8566         copies or clearings if cfun->has_local_explicit_reg_vars.
8567
8568 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
8569
8570         PR target/39118
8571         * config/i386/i386.c (expand_prologue): Emit blockage at the end
8572         of function prologue when frame pointer is used to access
8573         red zone area.
8574
8575 2009-02-10  Richard Guenther  <rguenther@suse.de>
8576
8577         PR middle-end/39127
8578         * gimplify.c (gimple_regimplify_operands): Always look if
8579         we need to create a temporary.
8580
8581 2009-02-10  Richard Guenther  <rguenther@suse.de>
8582
8583         PR tree-optimization/39132
8584         * tree-loop-distribution.c (todo): New global var.
8585         (generate_memset_zero): Trigger TODO_rebuild_alias.
8586         (tree_loop_distribution): Return todo.
8587
8588 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
8589
8590         PR target/39119
8591         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
8592         (x86_64_reg_class_name): Removed.
8593         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
8594         first one isn't X86_64_SSE_CLASS or any other ones aren't
8595         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
8596         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
8597         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
8598         and 3 X86_64_SSEUP_CLASS.
8599         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
8600         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
8601
8602 2009-02-10  Ben Elliston  <bje@au.ibm.com>
8603
8604         * config/rs6000/rs6000.md (allocate_stack): Always use an update
8605         form instruction to update the stack back chain word, even if the
8606         user has disabled the generation of update instructions.
8607         (movdi_<mode>_update_stack): New.
8608         (movsi_update_stack): Likewise.
8609         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
8610         always use an update form instruction to update the stack back
8611         chain word.
8612
8613 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
8614
8615         PR middle-end/38953
8616         * graphite.c (if_region_set_false_region): After moving a region in
8617         the false branch of a condition, remove the empty dummy basic block.
8618         (gloog): Remove wrong fix for PR38953.
8619
8620 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8621
8622         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
8623         generation due to implicit sign extension.
8624
8625 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8626
8627         PR middle-end/38981
8628         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
8629         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
8630
8631 2009-02-09  Richard Guenther  <rguenther@suse.de>
8632
8633         PR middle-end/35202
8634         * convert.c (convert_to_real): Disable (float)fn((double)x)
8635         to fnf(x) conversion if errno differences may occur and
8636         -fmath-errno is set.
8637
8638 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
8639
8640         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
8641         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8642         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8643
8644 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
8645
8646         PR c/35434
8647         * c-common.c (handle_alias_attribute): Disallow attribute for
8648         anything not a FUNCTION_DECL or VAR_DECL.
8649
8650 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
8651
8652         PR c/39035
8653         * real.c (do_compare): Special-case compare of zero against
8654         decimal float value.
8655
8656 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
8657
8658         PR c/36432
8659         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
8660         as indicating flexible array members unless the field itself is
8661         being declarared as the incomplete array.
8662
8663 2009-02-06  Jan Hubicka  <jh@suse.cz>
8664
8665         PR tree-optimization/38844
8666         * ipa-inline.c (try_inline): Stop inlining recursion when edge
8667         is already inlined.
8668
8669 2009-02-06  Richard Guenther  <rguenther@suse.de>
8670
8671         PR middle-end/38977
8672         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
8673         fork because we may expand it as __gcov_fork.
8674
8675 2009-02-06  Nick Clifton  <nickc@redhat.com>
8676
8677         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8678
8679 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
8680
8681         PR tree-optimization/35659
8682         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
8683         vn_phi_eq): Shortcut if hashcode does not match.
8684         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
8685         NULL operands.
8686         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
8687         and avoid iterative_hash_expr.
8688         (FOR_EACH_VALUE_ID_IN_SET): New.
8689         (value_id_compare): Remove.
8690         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
8691         sort expressions by value id.
8692
8693 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
8694
8695         PR target/38991
8696         * config/sh/predicates.md (general_movsrc_operand): Don't check
8697         the subreg of system registers here.
8698
8699 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
8700
8701         PR c++/39106
8702         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
8703         on the copied decl.
8704
8705 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
8706
8707         PR rtl-optimization/39110
8708         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
8709         addresses, not aligned ones.
8710
8711 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
8712             Richard Guenther  <rguenther@suse.de>
8713
8714         PR tree-optimization/39100
8715         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
8716         comment says and add edges.
8717
8718 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
8719
8720         PR c/35435
8721         * c-common.c (handle_tls_model_attribute): Ignore attribute for
8722         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
8723
8724 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
8725
8726         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
8727         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
8728         register_bb_in_sese, new_sese, free_sese): Moved.
8729         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
8730         outermost_loop_in_scop, build_scop_iteration_domain,
8731         expand_scalar_variables_ssa_name, get_vdef_before_scop,
8732         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
8733         Use loop_in_sese_p instead of loop_in_scop_p.
8734         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
8735         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
8736         (scopdet_basic_block_info): Fix bug in scop detection.
8737         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
8738         eq_loop_to_cloog_loop): Remove.
8739         (nb_loops_around_loop_in_scop, nb_loop
8740         ref_nb_loops): Moved here...
8741         * graphite.h (ref_nb_loops): ... from here.
8742         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
8743         (loop_domain_dim, loop_iteration_vector_dim): Remove.
8744         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
8745         * testsuite/gcc.dg/graphite/scop-19.c: New
8746
8747 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
8748             Hans-Peter Nilsson  <hp@axis.com>
8749
8750         PR rtl-optimization/37889
8751         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
8752         Move offset handling from PLUS to before the switch.  Use new
8753         arguments when considering SYMBOL_REFs too.
8754         (rtx_addr_can_trap_p): Pass dummy offset and size.
8755         (enum may_trap_p_flags): Remove.
8756         (may_trap_p_1): Pass size from MEM_SIZE.
8757
8758         PR rtl-optimization/38921
8759         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
8760         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
8761         * rtlanal.c (may_trap_after_code_motion_p): Delete.
8762         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
8763
8764 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
8765
8766         AVX Programming Reference (January, 2009)
8767         * config/i386/sse.md (*vpclmulqdq): New.
8768
8769 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
8770
8771         PR tree-optimization/38977
8772         PR gcov-profile/38292
8773         * calls.c (special_function_p): Disregard __builtin_ prefix.
8774
8775 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
8776
8777         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
8778         non-indexable addresses even before reload.
8779
8780 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
8781
8782         PR c/29129
8783         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
8784         as having variable size.  Do not give an error for unnamed
8785         parameters with [*] declarators.  Give a warning for type names
8786         with [*] declarators and mark them as variable size.
8787         * c-parser.c (c_parser_sizeof_expression): Do not give an error
8788         for sizeof applied to [*] type names.
8789
8790 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8791
8792         PR C++/36607
8793         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
8794
8795 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
8796
8797         * gcc.c (process_command): Update copyright notice dates.
8798         * gcov.c (print_version): Likewise.
8799         * gcov-dump.c (print_version): Likewise.
8800         * mips-tfile.c (main): Likewise.
8801         * mips-tdump.c (main): Likewise.
8802
8803 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
8804
8805         PR c/35433
8806         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
8807         for composite type involving a zero-length array type.
8808
8809 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
8810
8811         PR target/35318
8812         * function.c (match_asm_constraints_1): Skip over
8813         initial optional % in the constraint.
8814
8815         PR inline-asm/39059
8816         * c-parser.c (c_parser_postfix_expression): If fixed point is not
8817         supported, don't accept FIXED_CSTs.
8818         * c-decl.c (finish_declspecs): Error if fixed point is not supported
8819         and _Sat is used without _Fract/_Accum.  Set specs->type to
8820         integer_type_node for cts_fract/cts_accum if fixed point is not
8821         supported.
8822
8823 2009-02-02  Catherine Moore  <clm@codesourcery.com>
8824
8825         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
8826
8827 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
8828
8829         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
8830         (ABI_HAS_64BIT_SYMBOLS): Use it.
8831         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
8832
8833 2009-02-02  Paul Brook  <paul@codesourcery.com>
8834
8835         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
8836
8837 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
8838
8839         PR inline-asm/39058
8840         * recog.h (asm_operand_ok): Add constraints argument.
8841         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
8842         recurse on matching constraint.
8843         (check_asm_operands): Pass constraints as 3rd argument to
8844         asm_operand_ok.  Don't look up matching constraint here.
8845         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
8846         to asm_operand_ok.
8847
8848 2009-02-02  Ben Elliston  <bje@au.ibm.com>
8849
8850         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
8851         TARGET_NARROW_VOLATILE_BITFIELD macro names.
8852
8853 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8854
8855         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
8856         information.  Remove some obsolete information.  Reorganize.
8857
8858         * config/pa/fptr.c: Revert license to GPL 2.
8859         * config/pa/milli64.S: Likewise.
8860
8861 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
8862
8863         PR target/38904
8864         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
8865         LIBRARY name in, instead of hard-coding it.
8866         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
8867         extra target make frag to tmake_files according to EH model.
8868         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
8869         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
8870         frags that define makefile variable EH_MODEL appropriately.
8871         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
8872         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
8873         to "-sjlj" according to type of EH configured.
8874         (LIBGCC_SONAME):  Concatenate it to shared library base name.
8875         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
8876         to "_sjlj" according to type of EH configured.
8877         (LIBGCC_SONAME):  Concatenate it to shared library base name.
8878         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
8879         (SHLIB_LINK):  Add missing semicolon to if-else construct.
8880         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
8881         string value of "pe_dll" command-line option.
8882         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
8883         (SHLIB_SONAME):  Use it when overriding t-cygming default.
8884         (SHLIB_IMPLIB):  Override t-cygming default.
8885         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
8886         string value of "pe_dll" command-line option.
8887
8888 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
8889
8890         PR target/38952
8891         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
8892         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8893
8894 2009-01-31  Richard Guenther  <rguenther@suse.de>
8895
8896         PR tree-optimization/38937
8897         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
8898         computing the transitive closure.
8899
8900 2009-01-30  Richard Guenther  <rguenther@suse.de>
8901
8902         PR tree-optimization/39041
8903         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
8904         Propagate variable indices only if the types match for this stmt.
8905
8906 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
8907
8908         PR target/39013
8909         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
8910         inline but never defined.
8911
8912 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
8913
8914         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
8915         (*insv_h_di_reg_extimm): New insn.
8916         (*insv_l<mode>_reg_extimm): New insn.
8917
8918 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
8919
8920         * config/picochip/picochip.c (flag_conserve_stack): set
8921         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
8922         fconserve-stack. Reduce call-overhead used by inliner.
8923
8924 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
8925
8926         PR/38157
8927         * common.opt (flag_conserve_stack): Initialised to zero.
8928
8929 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
8930
8931         PR/39002
8932         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
8933         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
8934         method.
8935
8936 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
8937
8938         * ira-color.c (allocno_reload_assign): Update comments.
8939         * regmove.c (regmove_optimize): Likewise.
8940
8941         * ra.h: Removed.
8942
8943 2009-01-29  Robert Millan  <rmh@aybabtu.com>
8944
8945         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
8946         * config/i386/kopensolaris-gnu.h: New file.  Undefine
8947         `MD_UNWIND_SUPPORT'.
8948         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
8949
8950 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
8951
8952         PR tree-optimization/39007
8953         * tree-loop-distribution.c (generate_builtin): Use
8954         recompute_dominator to compute the immediate dominator of the
8955         basic block just after the loop.
8956
8957 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8958
8959         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
8960         (ASM_OUTPUT_DWARF_PCREL): Define.
8961
8962 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
8963
8964         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
8965         * doc/passes.texi: Remove entries about regclass, local-alloc, and
8966         global.  Modify entries about regmove and IRA.
8967
8968         * ra-conflict.c: Remove the file.
8969
8970         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
8971
8972         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
8973         (pass_regclass_init): Rename to pass_reginfo_init.
8974
8975         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
8976
8977         * toplev.h (flag_ira): Remove.
8978
8979         * caller-save.c (setup_save_areas): Remove flag_ira.
8980
8981         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
8982
8983         * global.c: Remove the file.
8984
8985         * opts.c (decode_options): Remove flag_ira.
8986
8987         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
8988
8989         * regmove.c: Modify file description.
8990         (find_use_as_address, try_auto_increment): Define them only if
8991         AUTO_INC_DEC is defined.
8992         (replacement_quality, replace_in_call_usage, fixup_match_1,
8993         stable_and_no_regs_but_for_p): Remove.
8994         (reg_set_in_bb): Make it static.
8995         (regmove_optimize): Remove flag_ira and code which worked for
8996         !flag_ira.
8997
8998         * local-alloc.c: Remove the file.
8999
9000         * common.opt (fira): Remove.
9001
9002         * ira.c: Include except.h.
9003         (eliminable_regset): Move from global.c.
9004         (mark_elimination): Ditto.  Remove flag_ira.
9005         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
9006         equiv_mem_modified, validate_equiv_mem_from_store,
9007         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
9008         contains_replace_regs, memref_referenced_p, memref_used_between_p,
9009         no_equiv, recorded_label_ref): Move from local-alloc.c.
9010         (update_equiv_regs): Ditto.  Make it static.
9011         (print_insn_chain, print_insn_chains): Move it from global.c.
9012         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
9013         (build_insn_chain): Ditto.  Make it static.
9014         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
9015         Rename to init_live_subregs.
9016         (gate_ira): Remove flag_ira.
9017
9018         * regclass.c: Rename reginfo.c.  Change file description.
9019         (FORBIDDEN_INC_DEC_CLASSES): Remove.
9020         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
9021         (init_reg_sets_1): Remove code for evaluation of
9022         reg_class_superclasses and losing_caller_save_reg_set.
9023         (init_regs): Remove init_reg_autoinc.
9024         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
9025         ok_for_base_p_nonstrict): Remove.
9026         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
9027         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
9028         corresponding entries.
9029         (dump_regclass, record_operand_costs, scan_one_insn,
9030         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
9031         record_address_regs, auto_inc_dec_reg_p): Remove.
9032         (gt-regclass.h): Rename to gt-reginfo.h.
9033
9034         * rtl.h (dump_global_regs, retry_global_alloc,
9035         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
9036
9037         * Makefile.in (RA_H): Remove.
9038         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
9039         Rename regclass.o to reginfo.o.
9040         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
9041         gt-reginfo.h.
9042         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
9043         (GTFILES): Rename regclass.c to reginfo.c.
9044
9045         * passes.c (init_optimization_passes): Remove pass_local_alloc and
9046         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
9047
9048         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9049         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
9050         Remove flag_ira.
9051         (finish_spills): Ditto.  Remove code for !flag_ira.
9052
9053 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
9054
9055         PR middle-end/35854
9056         * doc/invoke.texi (rtl debug options): Complete rewrite.
9057         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
9058         to auto_inc_dec".
9059         * mode-switching.c (pass_mode_switching): Rename pass from
9060         "mode-sw" to "mode_sw".
9061         * except.c (pass_convert_to_eh_ranges): Rename pass from
9062         "eh-ranges" to "eh_ranges".
9063         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
9064         to "subreg1".
9065
9066
9067 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
9068             Alexander Monakov  <amonakov@ispras.ru>
9069
9070         PR middle-end/38857
9071         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
9072         register.
9073         (move_exprs_to_boundary): Change return type and pass through
9074         should_move from move_op.  Relax assert.  Update usage ...
9075         (schedule_expr_on_boundary): ... here.  Use should_move instead of
9076         cant_move.
9077         (move_op_orig_expr_found): Indicate that insn was disconnected from
9078         stream.
9079         (code_motion_process_successors): Do not call after_merge_succs
9080         callback if original expression was not found when traversing any of
9081         the branches.
9082         (code_motion_path_driver): Change return type.  Update prototype.
9083         (move_op): Update comment.  Add a new parameter (should_move).  Update
9084         prototype.  Set *should_move based on indication provided by
9085         move_op_orig_expr_found.
9086
9087 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9088
9089         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
9090         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
9091         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
9092         * config/rs6000/rs6000.c (rs6000_override_options): Default
9093         avoid-indexed-addresses on for Power6, off for everything else.
9094         (avoiding_indexed_address_p): New function.
9095         (rs6000_legitimize_address): Use it.
9096         (rs6000_legitimate_address): Likewise.
9097         * config/rs6000/rs6000.md (movXX_updateX): Likewise
9098
9099 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
9100
9101         PR tree-optimization/38997
9102         * tree-loop-distribution.c (generate_memset_zero): Use
9103         POINTER_PLUS_EXPR for a pointer addition.
9104
9105 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
9106
9107         * config/s390/s390.md (bswap<mode>2): New pattern added.
9108
9109 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9110
9111         * config/s390/s390.md (*tls_load_31): Added type attribute.
9112
9113 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9114
9115         * config/s390/s390.md: Fix a few comments.
9116
9117 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
9118
9119         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
9120         (*tm<mode>_full): Fixed z10prop attribute.
9121         (*tst<mode>_extimm): Fixed z10prop attribute.
9122         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
9123         (*tstqiCCT_cconly): Fixed z10prop attribute.
9124         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
9125         (*movsi_larl): Fixed z10prop attribute.
9126         (*movsi_zarch): Fixed z10prop attribute.
9127         (*movsi_eas): Fixed z10prop attribute.
9128         (*movhi): Fixed z10prop attribute.
9129         (*movqi): Fixed z10prop attribute.
9130         (*movstrictqi): Fixed z10prop attribute.
9131         (*mov<mode>): Fixed z10prop attribute.
9132         (*movcc): Fixed z10prop attribute.
9133         (*sethighpartdi_64): Fixed z10prop attribute.
9134         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
9135         (*negdi2_sign_cc): Fixed z10prop attribute.
9136         (*negdi2_sign): Fixed z10prop attribute.
9137         (*absdi2_sign_cc): Fixed z10prop attribute.
9138         (*absdi2_sign): Fixed z10prop attribute.
9139         (*negabsdi2_sign_cc): Fixed z10prop attribute.
9140         (*negabsdi2_sign): Fixed z10prop attribute.
9141         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
9142         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
9143         (doloop_si64): Fixed z10prop attribute.
9144         (doloop_si31): Fixed z10prop attribute.
9145         (doloop_long): Fixed z10prop attribute.
9146         (indirect_jump): Fixed z10prop attribute.
9147         (nop): Fixed z10prop attribute.
9148         (main_base_64): Fixed z10prop attribute.
9149         (reload_base_64): Fixed z10prop attribute.
9150
9151 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9152
9153         PR rtl-optimization/38740
9154         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
9155         if !optimize.
9156         * config/mips/mips.c (mips_reorg): Likewise.
9157
9158 2009-01-28  Richard Guenther  <rguenther@suse.de>
9159
9160         PR tree-optimization/38926
9161         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
9162         with the correct value id to a value.
9163         (do_regular_insertion): Use the value number of edoubleprime
9164         for the value number of the expr.
9165
9166         Revert
9167         2008-08-21  Richard Guenther  <rguenther@suse.de>
9168
9169         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
9170         a PHI ask VN if it is already available.
9171         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
9172         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
9173
9174 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
9175
9176         PR middle-end/38934
9177         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
9178         set to varying whenever max has TREE_OVERFLOW set, similarly
9179         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
9180
9181 2009-01-28  Richard Guenther  <rguenther@suse.de>
9182
9183         PR middle-end/38908
9184         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
9185         uninitialized aggregate uses in call arguments.
9186
9187 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
9188
9189         PR tree-optimization/38984
9190         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
9191         the nothing_id variable if -fno-delete-null-pointer-checks.
9192
9193 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
9194
9195         PR target/38988
9196         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
9197         (set_got_offset_rex64): Ditto.
9198
9199 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9200
9201         PR target/38941
9202         * doc/extend.texi: Improve local variable with asm reg.
9203
9204 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
9205
9206         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
9207         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
9208         was not supplied then set warn_packed_bitfield_compat to the
9209         default value of 1.
9210         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
9211         against 1.
9212
9213 2009-01-27  Richard Guenther  <rguenther@suse.de>
9214
9215         PR tree-optimization/38503
9216         * cfgexpand.c (expand_gimple_basic_block): Ignore
9217         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
9218         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
9219         variables that cannot have TBAA applied.
9220         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
9221         statements.
9222
9223 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
9224
9225         PR middle-end/38969
9226         * calls.c (initialize_argument_information): Do not wrap complex
9227         arguments in SAVE_EXPR.
9228
9229 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
9230
9231         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
9232         (INSTALL_LIBGCC): Revert typo commit.
9233
9234 2009-01-26  Richard Guenther  <rguenther@suse.de>
9235
9236         PR tree-optimization/38745
9237         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
9238         from special handling.
9239
9240 2009-01-26  Richard Guenther  <rguenther@suse.de>
9241
9242         PR tree-optimization/38745
9243         * tree-ssa.c (execute_update_addresses_taken): Do not include
9244         variables that cannot possibly be a register in not_reg_needs.
9245         Do not clear TREE_ADDRESSABLE on vars that may not become
9246         registers.
9247         * tree-ssa.c (update_alias_info_1): Include those in the set
9248         of addressable vars.
9249
9250 2009-01-26  Richard Guenther  <rguenther@suse.de>
9251
9252         PR middle-end/38851
9253         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
9254         * tree-ssa-dse.c: Include langhooks.h
9255         (execute_simple_dse): Remove stores with zero size.
9256
9257 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
9258
9259         PR c/38957
9260         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
9261         as PLUS_EXPR.
9262
9263 2009-01-24  Julian Brown  <julian@codesourcery.com>
9264
9265         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
9266         config/arm/linux-atomic.c.
9267         * config/arm/linux-atomic.c: New.
9268
9269 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
9270
9271         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
9272         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
9273         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
9274
9275 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9276
9277         PR c/38938
9278         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
9279         properly.
9280
9281 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
9282
9283         PR tree-optimization/38953
9284         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
9285         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
9286         (gloog): Split the exit of the scop when the scop exit is a loop exit.
9287         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
9288         changed the CFG.
9289
9290 2009-01-24  Paul Brook  <paul@codesourcery.com>
9291
9292         * config/arm/neon.md (neon_type): Move to arm.md.
9293         (neon_mov<VSTRUCT>): Add neon_type attribute.
9294         * config/arm/arm.md (neon_type): Move to here.
9295         (conds): Add "unconditioal" and use as default for NEON insns.
9296
9297 2009-01-24  Ben Elliston  <bje@au.ibm.com>
9298
9299         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
9300         void *' warning from -Wc++-compat.
9301         * Makefile.in (dominance.o-warn): Remove.
9302
9303 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
9304
9305         PR tree-optimization/38932
9306         * fold-const.c (fold_unary_ignore_overflow): New.
9307         * tree.h (fold_unary_ignore_overflow): Declare.
9308         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
9309         * tree-ssa-sccvn.c (visit_reference_op_load,
9310         simplify_unary_expression): Likewise.
9311
9312 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
9313
9314         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
9315         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
9316         regardless of their type.
9317         * c-common.c (handle_packed_attribute): Don't ignore packed on
9318         bitfields.
9319         * c.opt (Wpacked-bitfield-compat): New warning option.
9320         * stor-layout.c (place_field): Warn if offset of a field changed.
9321         * doc/extend.texi (packed): Mention the ABI change.
9322         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
9323         (Warning Options): Add it to the list.
9324
9325 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9326
9327         * c-opts.c (c_common_post_options): Fix a typo in comments.
9328
9329 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
9330
9331         PR middle-end/38615
9332         * gimplify.c (gimplify_init_constructor): Fix promotion of const
9333         variables to static.
9334         * doc/invoke.texi (-fmerge-all-constants): Update description.
9335
9336 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
9337
9338         PR target/38931
9339         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
9340         (*movdi_1_rex64): Use type "mmx" for alternative 5.
9341
9342 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
9343
9344         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
9345         a word boundary.
9346         (LOCAL_ALIGNMENT): Similarly.
9347
9348 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9349             Joseph Myers  <joseph@codesourcery.com>
9350
9351         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
9352         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
9353         * config/arm/arm-tune.md: Regenerate.
9354         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
9355         -march=iwmmxt2.
9356
9357 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
9358
9359         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
9360         version number to five.
9361
9362 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
9363
9364         PR c++/38930
9365         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
9366         * c-common.c (set_underlying_type): Likewise.
9367         (is_typedef_decl ): Likewise
9368         * tree.h: Likewise
9369         (set_underlying_type): Likewise.
9370         (is_typedef_type): Likewise.
9371
9372 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9373
9374         PR middle-end/38587
9375         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
9376         crossing setjmps.
9377
9378 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
9379
9380         PR bootstrap/37660
9381         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
9382         (LIBGCC_SPEC):  Don't define.
9383         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
9384
9385 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
9386
9387         PR rtl-optimization/38879
9388         * alias.c (base_alias_check): Unaligned access via AND address can
9389         alias all surrounding object types except those with sizes equal
9390         or wider than the size of unaligned access.
9391
9392 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
9393
9394         PR c++/26693
9395         * c-decl.c (clone_underlying_type): Move this ...
9396         * c-common.c (set_underlying_type): ... here.
9397         Also, make sure the function properly sets TYPE_STUB_DECL() on
9398         the newly created typedef variant type.
9399         (is_typedef_decl ): New entry point.
9400         * tree.h: Added a new member member_types_needing_access_check to
9401         struct tree_decl_non_common.
9402         (set_underlying_type): New entry point.
9403         (is_typedef_type): Likewise.
9404
9405 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
9406
9407         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
9408         Check whether two instructions have memory references that
9409         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
9410         are helper functions for traversing.
9411         * alias.h (insn_alias_sets_confilict_p): New prototypes.
9412         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
9413         not to draw dependency edge for instructions with non-conflicting
9414         alias sets.
9415
9416 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
9417
9418         PR other/38758
9419         * longlong.h: Update copyright years.  Use soft-fp license notice.
9420         Sync __clz_tab declaration with glibc.
9421
9422 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
9423
9424         PR target/30687
9425         * doc/extend.texi (syscall_linkage): New.
9426         (version_id): Modify.
9427
9428 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9429             Richard Guenther  <rguenther@suse.de>
9430
9431         PR tree-optimization/38747
9432         PR tree-optimization/38748
9433         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
9434         conversion if the base address is an indirect reference and the
9435         aliasing sets could cause issues.
9436
9437 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9438
9439         * common.opt (fgraphite, fgraphite-identity): Add comment for
9440         explaining why these options are not documented.
9441
9442 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
9443
9444         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
9445         gimple_call_lhs is NULL.
9446
9447 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
9448
9449         PR target/38868
9450         * emit-rtl.c (adjust_address_1): Make sure memref is never
9451         overwritten.
9452
9453 2009-01-20  Ben Elliston  <bje@au.ibm.com>
9454
9455         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9456         const qualifier from arg parameter. Remove unnecessary cast to char *.
9457         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9458         const qualifier from arg 2.
9459
9460 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
9461
9462         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
9463
9464 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
9465
9466         PR c/38869
9467         * rtl.h (reinit_regs): New prototype.
9468         * regclass.c: Include ira.h.
9469         (reinit_regs): New.
9470         * Makefile.in (regclass.o): Add ira.h.
9471         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
9472
9473 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
9474
9475         PR target/38736
9476         * c-common.c (handle_aligned_attribute): Use
9477         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
9478         default alignment value.
9479
9480         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
9481
9482         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
9483         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
9484
9485         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
9486         __BIGGEST_ALIGNMENT__.
9487
9488         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
9489
9490 2009-01-18  Richard Guenther  <rguenther@suse.de>
9491
9492         PR tree-optimization/38819
9493         * tree-flow.h (operation_could_trap_helper_p): Declare.
9494         * tree-eh.c (operation_could_trap_helper_p): Export.
9495         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
9496         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
9497         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
9498         are about to insert a possibly trapping instruction and fail
9499         in this case.
9500
9501 2009-01-18  Andreas Schwab  <schwab@suse.de>
9502
9503         * doc/install.texi (Configuration): Remove obsolete paragraph
9504         about use of --with-gnu-ld with --with-gnu-as.
9505
9506 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
9507
9508         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
9509         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
9510         Follow spelling conventions.
9511
9512 2009-01-18  Ben Elliston  <bje@au.ibm.com>
9513
9514         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
9515         C++ warning about implicit conversion from void * to struct
9516         bitmap_head_def *.
9517         (bitmap_obstack_free): Likewise for bitmap_element *.
9518         * Makefile.in (bitmap.o-warn): Remove.
9519
9520 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9521
9522         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
9523
9524 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
9525             Tobias Grosser  <tobi.grosser@amd.com>
9526
9527         * graphite.c (graphite_trans_scop_block): Do not block single
9528         nested loops.
9529
9530 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
9531
9532         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
9533         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
9534         test with assertion.
9535
9536 2009-01-16  Richard Guenther  <rguenther@suse.de>
9537
9538         PR tree-optimization/38835
9539         PR middle-end/36227
9540         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
9541         and INT + PTR -> (INT)(PTR p+ INT) folding.
9542         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
9543
9544 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
9545
9546         PR target/38554
9547         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
9548         the subreg from a lowpart subreg if it is also casting the value.
9549
9550 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9551             Tobias Grosser  <tobi.grosser@amd.com>
9552
9553         * graphite.c (compare_prefix_loops): New.
9554         (build_scop_canonical_schedules): Rewritten.
9555         (graphite_transform_loops): Move build_scop_canonical_schedules
9556         after build_scop_iteration_domain.
9557
9558 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9559             Tobias Grosser  <tobi.grosser@amd.com>
9560
9561         * graphite.c (add_conditions_to_domain): Add the loops to
9562         the dimension of the iteration domain.  Do copy the domain
9563         only when it exists.
9564         (build_scop_conditions_1): Do not call add_conditions_to_domain.
9565         (add_conditions_to_constraints): New.
9566         (can_generate_code_stmt, can_generate_code): Removed.
9567         (gloog): Do not call can_generate_code.
9568         (graphite_transform_loops): Call add_conditions_to_constraints
9569         after building the iteration domain.
9570
9571 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
9572
9573         PR tree-optimization/38789
9574         * tree-ssa-threadedge.c
9575         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
9576         __builtin_constant_p.
9577
9578 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
9579
9580         * dce.c (delete_unmarked_insns): Reversed the order that insns are
9581         examined before deleting them.
9582
9583 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
9584
9585         * function.c (aggregate_value_p): Correctly extract the function
9586         type from CALL_EXPR_FN lookup.
9587
9588 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9589
9590         * config/picochip/picochip.c (picochip_override_options): Revert
9591         CFI asm flag disable commited previously.
9592
9593 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
9594             Tobias Grosser  <tobi.grosser@amd.com>
9595             Jan Sjodin  <jan.sjodin@amd.com>
9596
9597         * graphite.c (scan_tree_for_params): On substractions negate
9598         all the coefficients of the term.
9599         (clast_to_gcc_expression_red): New.  Handle reduction expressions
9600         of more than two operands.
9601         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
9602         (get_vdef_before_scop): Handle also the case of default definitions.
9603
9604 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
9605
9606         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
9607         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
9608         Also use them when walking CALL_INSN_FUNCTION_USAGE.
9609
9610 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
9611             Joey Ye  <joey.ye@intel.com>
9612
9613         PR middle-end/37843
9614         * cfgexpand.c (expand_stack_alignment): Don't update stack
9615         boundary nor check incoming stack boundary here.
9616         (gimple_expand_cfg): Update stack boundary and check incoming
9617         stack boundary here.
9618
9619 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
9620
9621         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
9622
9623 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
9624
9625         PR rtl-optimization/38245
9626         * calls.c (expand_call): Add stack arguments to
9627         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9628         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
9629         in regs and partially in memory or BLKmode arguments.
9630         (emit_library_call_value_1): Add stack arguments to
9631         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9632         ACCUMULATE_OUTGOING_ARGS).
9633         * dce.c: Include tm_p.h.
9634         (find_call_stack_args): New function.
9635         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
9636         argument.
9637         (mark_insn): Call find_call_stack_args for CALL_Ps.
9638         (prescan_insns_for_dce): Walk insns backwards in bb rather than
9639         forwards.  Allocate and free arg_stores bitmap if needed, pass it
9640         down to deletable_insn_p, don't mark stores set in arg_stores
9641         bitmap, clear the bitmap at the beginning of each bb.
9642         * Makefile.in (dce.o): Depend on $(TM_P_H).
9643
9644 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
9645
9646         PR target/22599
9647         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
9648         to make sure the insn is a conditional test (bug 22599).  Reformat a
9649         few long lines.
9650
9651 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
9652
9653         PR middle-end/38431
9654         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
9655         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
9656         (gloog): Do not call cleanup_tree_cfg.
9657         (graphite_transform_loops): Call cleanup_tree_cfg after all
9658         scops have been code generated.
9659
9660 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
9661         * doc/gty.texi (Invoking the garbage collector): Added new node
9662         and section documenting ggc_collect.
9663
9664 2009-01-14  Richard Guenther  <rguenther@suse.de>
9665
9666         PR tree-optimization/38826
9667         PR middle-end/38477
9668         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
9669         initialization notes only if we actually emitted a warning.
9670         (intra_create_variable_infos): Add constraints for a result decl
9671         that is passed by hidden reference.
9672         (build_pred_graph): Mark all related variables non-direct on
9673         address-taking.
9674
9675 2009-01-14  Nick Clifton  <nickc@redhat.com>
9676
9677         * ira-conflicts.c: Include addresses.h for the definition of
9678         base_reg_class.
9679         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
9680         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9681
9682 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
9683
9684         PR target/38811
9685         * Makefile.in (ira-lives.o): Add except.h.
9686
9687         * ira-lives.c: Include except.h.
9688         (process_bb_node_lives): Process can_throw_internal.
9689
9690 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
9691
9692         PR rtl-optimization/38774
9693         * combine.c (simplify_set): When undoing cc_use change, don't do
9694         PUT_CODE on the newly created comparison, but instead put back the
9695         old comparison.
9696
9697 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
9698
9699         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
9700         values.  Remove duplicate arm8 entry.
9701
9702 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
9703
9704         PR tree-optimization/38786
9705         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
9706         the SSA_NAME case of expand_scalar_variables_expr.
9707         Set the type of an expression to the type of its assign statement.
9708         (expand_scalar_variables_expr): Also gather the scalar computation
9709         used to index the memory access.  Do not pass loop_p.
9710         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
9711         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
9712         the gimple_stmt_iterator where it inserts new code.
9713         Do not pass loop_p.
9714         (copy_bb_and_scalar_dependences): Do not pass loop_p.
9715         (translate_clast): Update call to copy_bb_and_scalar_dependences.
9716
9717 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
9718
9719         * graphite.h (debug_value): Removed.
9720         * graphite.c (debug_value): Removed.
9721
9722 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
9723
9724         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
9725         ldrd/strd with two 32-bit instructions.
9726
9727 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
9728
9729         * config/arm/arm.c (struct processors): Pass for speed down into
9730         cost helper functions.
9731         (const_ok_for_op): Handle COMPARE and inequality nodes.
9732         (arm_rtx_costs_1): Rewrite.
9733         (arm_size_rtx_costs): Update prototype.
9734         (arm_rtx_costs): Pass speed down to helper functions.
9735         (arm_slowmul_rtx_costs): Rework cost calculations.
9736         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
9737         (arm_9e_rtx_costs): Likewise.
9738
9739 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
9740
9741         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
9742         relocations of local symbols wider than UNITS_PER_WORD are not valid.
9743         (alpha_legitimize_address): Do not split local symbols wider than
9744         UNITS_PER_WORD into HIGH/LO_SUM parts.
9745
9746 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
9747
9748         PR bootstrap/38580
9749         * gcc.c (process_command): Replace call to execvp with calls
9750         to pex_one and exit.
9751
9752 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
9753
9754         PR target/29141
9755         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
9756         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
9757         variant for devices with 3-byte PC.
9758         (__tablejump_elpm__): New.
9759
9760 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
9761
9762         PR c/32041
9763         * c-parser.c (c_parser_postfix_expression): Allow `->' in
9764         offsetof member-designator, handle it as `[0].'.
9765
9766 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9767
9768         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
9769         function when not using named sections on targets with named sections
9770         if branch distance is less than 262132.
9771
9772 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
9773
9774         * combine.c (combine_instructions):  Recompute
9775         optimize_this_for_speed_p  for each BB in the main combine loop.
9776
9777 2009-01-12  Tomas Bily  <tbily@suse.cz>
9778
9779         PR middlend/38385
9780         * tree-loop-distribution.c (prop_phis): New function.
9781         (generate_builtin): Call prop_phis.
9782         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
9783
9784 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
9785
9786         PR tree-optimization/38807
9787         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
9788         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
9789
9790 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
9791
9792         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
9793         subreg of op0 to the original op0.
9794
9795 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
9796
9797         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
9798
9799 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
9800
9801         PR debug/7055
9802         * mips-tfile.c (parse_def): Fix parsing of def strings
9803         starting with digits.
9804
9805 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
9806
9807         PR target/38695
9808         * config/arm/arm.c (arm_is_long_call_p): Don't call
9809         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
9810
9811 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
9812
9813         * regrename.c (regrename_optimize): Fix dumping.
9814         (find_oldest_value_reg): Preserve REG_POINTER.
9815         (copy_hardreg_forward_1): Likewise.
9816
9817 2009-01-09  Diego Novillo  <dnovillo@google.com>
9818
9819         * gimple.h (struct gimple_statement_base) <uid>: Document
9820         the restrictions on its use.
9821         (gimple_uid): Tidy.
9822         (gimple_set_uid): Tidy.
9823
9824 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
9825
9826         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
9827         zero guard even if align_bytes != 0 and count is smaller than
9828         size_needed.
9829
9830 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
9831
9832         PR rtl-optimization/38495
9833         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
9834         (add_range_and_copies_from_move_list): Print all added ranges.
9835         Add ranges to memory optimized destination.
9836
9837 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
9838
9839         PR target/38686
9840         PR target/38708
9841         * config/i386/i386.c (override_options): Reject
9842         -mstringop-strategy=rep_8byte with -m32.
9843         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
9844         to 1.  Do count comparison against epilogue_size_needed at compile
9845         time even when count_exp was constant forced into register.  For
9846         size_needed don't jump to epilogue, instead just avoid aligning
9847         and invoke the body algorithm.  If need_zero_guard, add zero guard
9848         even if count is non-zero, but smaller than size_needed + number of
9849         bytes that could be stored for alignment.
9850         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
9851         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
9852         but smaller than size_needed + number of bytes that could be stored
9853         for alignment.  Compare size_needed with epilogue_size_needed instead
9854         of desired_align - align, don't adjust size_needed, pass
9855         epilogue_size_needed to the epilogue expanders.
9856
9857         PR c/35742
9858         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
9859
9860 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9861
9862         * pa.c (last_address): Change to unsigned.
9863         (update_total_code_bytes): Change argument to unsigned.  Don't
9864         check if insn addresses are set.
9865         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
9866         addresses are not set.
9867         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
9868
9869 2009-01-09  Nick Clifton  <nickc@redhat.com>
9870
9871         * config/sh/symbian.c: Replace uses of DECL_INLINE with
9872         DECL_DECLARED_INLINE_P.
9873
9874 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
9875
9876         PR middle-end/38347
9877         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
9878         GET_MODE (op0) in operand_subword_force calls.
9879
9880         PR middle-end/38771
9881         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
9882         fold_convert arg0 operands to TREE_TYPE (op0) first.
9883
9884 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
9885
9886         * params.def (ira-max-conflict-table-size): Decrease default value
9887         to 1000.
9888
9889 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
9890
9891         PR tree-optimization/37031
9892         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
9893         on parameter_set.
9894         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
9895         allocate it using gc instead of heap, use VEC_quick_push instead of
9896         VEC_safe_push.
9897         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
9898         instead of heap, use VEC_quick_push instead of VEC_safe_push.
9899         * tree-data-ref.h (struct access_matrix): Change matrix to gc
9900         allocated vector from heap allocated.
9901         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
9902         * tree-loop-linear.c (linear_transform_loops): Allocate nest
9903         vector only after perfect_loop_nest_depth call.
9904
9905 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
9906             Jan Sjodin  <jan.sjodin@amd.com>
9907
9908         PR tree-optimization/38559
9909         * graphite.c (debug_value, copy_constraint,
9910         swap_constraint_variables, scale_constraint_variable, ): New.
9911         (get_lower_bound, get_upper_bound): Removed.
9912         (graphite_trans_bb_strip_mine): Clean up this code that works
9913         only for constant number of iterations.  Fully copy upper and
9914         lower bound constraints, not only the constant part of them.
9915         * graphite.h (debug_value): Declared.
9916
9917 2009-01-08  Ira Rosen  <irar@il.ibm.com>
9918
9919         PR tree-optimization/37194
9920         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
9921         Don't add the cost of cost model guard in prologue to scalar
9922         outside cost in case of known number of iterations.
9923
9924 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
9925             Alan Modra  <amodra@bigpond.net.au>
9926
9927         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
9928         non-word-aligned REG+CONST addressing.
9929
9930 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
9931
9932         PR target/38706
9933         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
9934         free_after_compilation when outputting a thunk.
9935         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
9936         Do not call free_after_compilation here.
9937
9938 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
9939
9940         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
9941         (ix86_valid_target_attribute_inner_p): Ditto.
9942
9943 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
9944
9945         PR tree-optimization/38492
9946         PR tree-optimization/38498
9947         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
9948         * tree-chrec.h (scev_is_linear_expression): Declared.
9949         * graphite.c (graphite_cannot_represent_loop_niter): New.
9950         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
9951         (graphite_loop_normal_form): Use gcc_assert.
9952         (scan_tree_for_params): Use CASE_CONVERT.
9953         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
9954         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
9955         Use gcc_assert.  Discard scops that contain unhandled cases.
9956         (build_scop_conditions): Return a boolean status for unhandled cases.
9957         (strip_mine_profitable_p): Print the loop number, not its depth.
9958         (is_interchange_valid): Pass the depth of the loop nest, don't
9959         recompute it wrongly.
9960         (graphite_trans_bb_block): Same.
9961         (graphite_trans_bb_block): Print tentative of loop blocking.
9962         (graphite_trans_scop_block): Do not print that the loop has been
9963         blocked.
9964         (graphite_transform_loops): Do not handle scops that contain condition
9965         scalar phi nodes.
9966
9967 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
9968
9969         AVX Programming Reference (December, 2008)
9970         * config/i386/avxintrin.h (_mm256_stream_si256): New.
9971         (_mm256_stream_pd): Likewise.
9972         (_mm256_stream_ps): Likewise.
9973
9974         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
9975         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
9976         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
9977         (bdesc_special_args): Add __builtin_ia32_movntdq256,
9978         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
9979         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
9980         (ix86_expand_special_args_builtin): Likewise.
9981
9982         * config/i386/sse.md (AVXMODEDI): New.
9983         (avx_movnt<mode>): Likewise.
9984         (avx_movnt<mode>): Likewise.
9985         (<sse>_movnt<mode>): Remove AVX support.
9986         (sse2_movntv2di): Likewise.
9987
9988 2009-01-07  Richard Guenther  <rguenther@suse.de>
9989
9990         PR middle-end/38751
9991         * fold-const.c (extract_muldiv): Remove obsolete comment.
9992         (fold_plusminus_mult_expr): Undo MINUS_EXPR
9993         to PLUS_EXPR canonicalization for the canonicalization.
9994
9995 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
9996
9997         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
9998         hosted cross-compilers generating less efficient code.
9999
10000 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10001
10002         * function.h (rtl_data): Add a dbr_scheduled_p field.
10003         * reorg.c (dbr_schedule): Set it.
10004         (gate_handle_delay_slots): Check it.
10005         * config/mips/mips.c (mips_base_delayed_branch): Delete.
10006         (mips_reorg): Check flag_delayed_branch instead of
10007         mips_base_delayed_branch.
10008         (mips_override_options): Don't set mips_base_delayed_branch
10009         or flag_delayed_branch.
10010
10011 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
10012
10013         PR rtl-optimization/38426.
10014         * ira.c (ira): Set current_function_is_leaf earlier.
10015
10016 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
10017
10018         PR rtl-optimization/38722
10019         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
10020         too early, only set a flag and modify after last possible
10021         undo_all point.
10022
10023 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
10024
10025         PR c/34252
10026         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
10027         * real.c (decimal_single_format): Correct values of emin and emax.
10028         (decimal_double_format): Ditto.
10029         (decimal_quad_format): Ditto.
10030         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
10031         computation of DECnn_MIN and DECnn_MAX for corrected values of
10032         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
10033         __DECnn_MIN__, and adjust its computation for the corrected value
10034         of emin.
10035
10036 2009-01-06  Jan Hubicka  <jh@suse.cz>
10037
10038         PR target/38744
10039         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
10040
10041 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
10042
10043         * doc/contrib.texi (Contributors): Slightly adjust the end note.
10044         Add Robert Clark to the list of testers.
10045
10046 2009-01-06  Jan Hubicka  <jh@suse.cz>
10047             Kai Tietz  <kai.tietz@onevision.com>
10048
10049         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
10050         * config/i386/i386.c (ix86_expand_call): Add clobbers.
10051
10052 2009-01-06  Jan Hubicka  <jh@suse.cz>
10053             Kai Tietz  <kai.tietz@onevision.com>
10054
10055         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
10056         for w64 ABI.
10057         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
10058         (ix86_nsaved_regs): Count only general purpose regs.
10059         (ix86_nsaved_sseregs): New.
10060         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
10061         to 16 for w64; compute padding and size of sse reg save area.
10062         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
10063         general purpose regs.
10064         (ix86_emit_save_sse_regs_using_mov): New.
10065         (ix86_expand_prologue): Save SSE regs if needed.
10066         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
10067         (ix86_emit_restore_sse_regs_using_mov): New.
10068         (ix86_expand_epilogue): Save SSE regs if needed.
10069
10070 2009-01-06  Jan Hubicka  <jh@suse.cz>
10071             Kai Tietz  <kai.tietz@onevision.com>
10072
10073         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
10074         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
10075         functions when accumulate outgoing args is off.
10076
10077 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10078
10079         PR bootstrap/38742
10080         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
10081         before using pseudos_have_intersected_live_ranges_p.
10082
10083         * ira-int.h (ira_assert): Always define.
10084
10085 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
10086
10087         AVX Programming Reference (December, 2008)
10088         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
10089         (_mm256_permute2_pd): Likewise.
10090         (_mm_permute2_ps): Likewise.
10091         (_mm256_permute2_ps): Likewise.
10092         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
10093         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
10094
10095         * config/i386/i386.c (ix86_builtins): Remove
10096         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
10097         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
10098         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
10099         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
10100         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
10101         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
10102         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
10103         __builtin_ia32_vpermil2ps256.
10104         (ix86_init_mmx_sse_builtins): Updated.
10105         (ix86_expand_args_builtin): Likewise.
10106
10107 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10108
10109         * pa.c (output_call): Relocate non-jump insns in the delay slot of
10110         long absolute calls when generating PA 2.0 code.
10111
10112 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
10113
10114         PR rtl-optimization/38583
10115         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
10116
10117         * params.def (ira-max-conflict-table-size): New.
10118
10119         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
10120
10121         * ira.h (ira_conflicts_p): New external definition.
10122
10123         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
10124         table.  Report this.  Return result of building.
10125         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
10126         building conflict table.
10127
10128         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
10129         (ira_color): Use ira_conflicts_p.
10130
10131         * global.c: Include ira.h.
10132         (pseudo_for_reload_consideration_p, build_insn_chain): Use
10133         ira_conflicts_p.
10134
10135         * Makefile.in (global.o): Add ira.h.
10136
10137         * ira-build.c (mark_all_loops_for_removal,
10138         propagate_some_info_from_allocno): New.
10139         (remove_unnecessary_allocnos): Call
10140         propagate_some_info_from_allocno.
10141         (remove_low_level_allocnos): New.
10142         (remove_unnecessary_regions): Add parameter.  Call
10143         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
10144         parameter to remove_unnecessary_regions.
10145         (ira_build): Remove all regions but root if the conflict table was
10146         not built.  Update conflict hard regs for allocnos crossing calls.
10147
10148         * ira.c (ira_conflicts_p): New global.
10149         (ira): Define and use ira_conflicts_p.
10150
10151         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10152         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
10153         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
10154
10155 2009-01-06  Ben Elliston  <bje@au.ibm.com>
10156
10157         * gengtype-lex.l (YY_NO_INPUT): Define.
10158
10159 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10160
10161         PR c/34911
10162         * c-common.c (handle_vector_size_attribute): Also reject
10163         BOOLEAN_TYPE types.
10164
10165 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
10166
10167         PR tree-optimization/38492
10168         * graphite.c (rename_map_elt, debug_rename_elt,
10169         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
10170         rename_map_elt_info, eq_rename_map_elts,
10171         get_new_name_from_old_name, bb_in_sese_p): Moved around.
10172         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
10173         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
10174         (sese_build_livein_liveouts): New.
10175         (new_sese, free_sese): New.
10176         (new_scop): Call new_sese.
10177         (free_scop): Call free_sese.
10178         (rename_variables_from_edge, rename_phis_end_scop): Removed.
10179         (register_old_new_names): Renamed register_old_and_new_names.
10180         (register_scop_liveout_renames, add_loop_exit_phis,
10181         insert_loop_close_phis, struct igp,
10182         default_liveout_before_guard, add_guard_exit_phis,
10183         insert_guard_phis, copy_renames): New.
10184         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
10185         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
10186         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
10187         (scop_adjust_phis_for_liveouts): New.
10188         (gloog): Call scop_adjust_phis_for_liveouts.
10189
10190         * graphite.h (struct sese): Documented.  Added fields liveout,
10191         num_ver and livein.
10192         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
10193         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
10194         (struct scop): Added field liveout_renames.
10195         (SCOP_LIVEOUT_RENAMES): New.
10196
10197 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10198
10199         PR tree-optimization/38510
10200         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
10201         (translate_clast): Call recompute_all_dominators before
10202         graphite_verify.
10203         (gloog): Call recompute_all_dominators before graphite_verify.
10204
10205 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
10206             Jan Sjodin  <jan.sjodin@amd.com>
10207
10208         PR tree-optimization/38500
10209         * graphite.c (create_sese_edges): Call fix_loop_structure after
10210         splitting blocks.
10211
10212 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
10213
10214         * config.gcc: Add m32r*-*-rtems*.
10215         * config/m32r/rtems.h: New file.
10216
10217 2009-01-05  Ben Elliston  <bje@au.ibm.com>
10218
10219         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
10220         (.po.pox): Likewise.
10221         (po/gcc.pot): Likewise.
10222
10223 2009-01-04  David S. Miller  <davem@davemloft.net>
10224
10225         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
10226         (STARTING_FRAME_OFFSET): Always set to zero.
10227
10228 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10229
10230         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
10231         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
10232         fixed-point types, and vectors of the same.
10233
10234 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
10235
10236         * config/mips/sync.md (*mb_barrier): Rename to...
10237         (*memory_barrier): ...this.
10238
10239 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
10240
10241         * doc/extend.texi (Function Attributes): Move @cindex after @item
10242         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
10243         and put in alphabetical order. Fix 'target' name and put in order.
10244         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
10245         typos.
10246
10247 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
10248
10249         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
10250         (memory_barrier): Expand as unspec instead of unspec_volatile.
10251         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10252         (*memory_barrier): Define as unspec instead of unspec_volatile.
10253         Use (match_dup 0) as input operand.
10254
10255         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
10256         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
10257         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
10258         scratch register.  Remove operand 1.
10259         (*stbar): Define as unspec instead of unspec_volatile.
10260         Use (match_dup 0) as input operand, remove (const_int 8).
10261         (*membar): Define as unspec instead of unspec_volatile.
10262         Use (match_dup 0) as input operand, remove input operand 2.
10263
10264         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
10265         (memory_barrier): Expand as unspec instead of unspec_volatile.
10266         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10267         (*memory_barrier): Define as unspec instead of unspec_volatile.
10268         Use (match_dup 0) as input operand.
10269
10270         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
10271         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10272         Set volatile flag on operand 0.
10273         (*memory_barrier): New insn pattern.
10274
10275         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
10276         insn operands.
10277         (*memory_barrier): Use (match_dup 0) as input operand.
10278
10279         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
10280         Remove mem:BLK from insn operands.  Use Pmode scratch register.
10281         Set volatile flag on operand 0.
10282         (*mb_internal): New insn pattern.
10283
10284         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
10285
10286 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10287
10288         PR middle-end/38586
10289         * function.c (struct temp_slot): Move to the section of the file
10290         that deals with temp slots.  Remove field 'address'.
10291         (temp_slot_address_table): New hash table of address -> temp slot.
10292         (struct temp_slot_address_entry): New struct, items for the table.
10293         (temp_slot_address_compute_hash, temp_slot_address_hash,
10294         temp_slot_address_eq, insert_temp_slot_address): Support functions
10295         for the new table.
10296         (find_temp_slot_from_address): Rewrite to use the new hash table.
10297         (remove_unused_temp_slot_addresses): Remove addresses of temp
10298         slots that have been made available.
10299         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
10300         worker function for remove_unused_temp_slot_addresses.
10301         (assign_stack_temp_for_type): Don't clear the temp slot address list.
10302         Add the temp slot address to the address -> temp slot map.
10303         (update_temp_slot_address): Update via insert_temp_slot_address.
10304         (free_temp_slots): Call remove_unused_temp_slot_addresses.
10305         (pop_temp_slots): Likewise.
10306         (init_temp_slots): Allocate the address -> temp slot map, or empty
10307         the map if it is already allocated.
10308         (prepare_function_start): Initialize temp slot processing.
10309
10310 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
10311
10312         PR middle-end/38584
10313         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
10314         Calculate the size of all stack vars assuming no packing of stack
10315         vars will happen, replacing a quadratic algorithm with a linear one.
10316
10317 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10318
10319         PR target/38707
10320         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
10321         can't be used.
10322
10323 2009-01-03  Diego Novillo  <dnovillo@google.com>
10324
10325         * doc/contrib.texi: Update contributions.
10326
10327 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
10328
10329         PR c++/38705
10330         * builtins.c (fold_builtin_memory_op): Give up if either operand
10331         is volatile.  Set srctype or desttype to non-qualified version
10332         of the other type.
10333
10334         PR c/38700
10335         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
10336         and FUNCTION_DECLs.
10337
10338 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
10339
10340         PR rtl-optimization/35805
10341         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
10342         problem if fast dce is able to remove any instructions.
10343         * dce.c (dce_process_block): Fix dump message.
10344
10345 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
10346
10347         PR 33649
10348         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
10349
10350 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
10351
10352         PR middle-end/38690
10353         * tree-flow.h (op_code_prio, op_prio): New prototypes.
10354         * tree-pretty-print.c (op_code_prio): New function.
10355         (op_prio): No longer static.  Use op_code_prio.
10356         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
10357         Use op_prio and op_code_prio to determine if () should be
10358         printed around operand(s) or not.
10359
10360         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
10361         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
10362         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
10363         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
10364         pp_character instead of pp_string for single letter printing.
10365
10366 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
10367
10368         * doc/extend.texi: Fix '#pragma GCC option' typo.
10369
10370 2009-01-02  Richard Guenther  <rguenther@suse.de>
10371
10372         * doc/install.texi (--enable-checking): Mention different
10373         default for stage1.
10374         (--enable-stage1-checking): Document.
10375
10376 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
10377
10378         PR middle-end/30142
10379         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
10380         case to be an error.
10381
10382 2009-01-02  Ben Elliston  <bje@au.ibm.com>
10383
10384         * config/fp-bit.h (pack_d): Constify argument.
10385         * config/fp-bit.c (makenan): Constify return type. Remove casts.
10386         (isnan): Constify argument.
10387         (isinf): Likewise.
10388         (iszero): Likewise.
10389         (pack_d): Likewise.
10390         (_fpadd_parts): Constify return type.
10391         (_fpmul_parts): Likewise.
10392         (_fpdiv_parts): Likewise.
10393
10394 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
10395
10396         PR c/36489
10397         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
10398         warn about overwriting initializer with side-effects or
10399         -Woverride-init if !IMPLICIT.
10400         (output_init_element): Likewise.  Pass IMPLICIT down to
10401         add_pending_init.
10402         (process_init_element): Add IMPLICIT argument.  Pass it down
10403         to output_init_element.
10404         (push_init_element, pop_init_level, set_designator): Adjust
10405         process_init_element callers.
10406         (set_nonincremental_init, set_nonincremental_init_from_string):
10407         Adjust add_pending_init callers.
10408         (output_pending_init_elements): Adjust output_init_element callers.
10409         * c-tree.h (process_init_element): Adjust prototype.
10410         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
10411         process_init_element callers.
10412
10413 \f
10414 Copyright (C) 2009 Free Software Foundation, Inc.
10415
10416 Copying and distribution of this file, with or without modification,
10417 are permitted in any medium without royalty provided the copyright
10418 notice and this notice are preserved.