OSDN Git Service

PR driver/40144
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2
3         PR driver/40144
4         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
5
6 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
7
8         * store-motion.c: Do not include params.h
9         * Makefile.in: Fix dependencies for various files.
10
11 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
12
13         * auto-inc-dec.c: Fix pass description, remove apparent
14         accidental duplication.
15
16 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
17
18         PR middle-end/40147
19         * ipa-utils.h (memory_identifier_string): Moved to ...
20         * tree.h (memory_identifier_string): Here.  Add GTY(()).
21
22 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
23
24         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
25         in the former documentation of...
26         (GO_IF_LEGITIMATE_ADDRESS): ... this.
27         * ira-conflicts.c (get_dup_num): Use address_operand.
28         * targhooks.c (default_legitimate_address_p): New.
29         * targhooks.h (default_legitimate_address_p): New.
30         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
31         Call hook.
32         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
33         * target.h (struct target): Add legitimate_address_p.
34         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
35         (TARGET_INITIALIZER): Include it.
36
37         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
38         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
39         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
40         (TARGET_LEGITIMATE_ADDRESS_P): New.
41
42         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
43         (REG_OK_STRICT_P): Delete.
44         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
45         (frv_legitimate_address_p_1): ... this.
46         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
47         (frv_legitimate_address_p_1): ... the renamed old
48         frv_legitimate_address_p.
49         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
50         (TARGET_LEGITIMATE_ADDRESS_P): New.
51
52         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
53         * config/s390/s390-protos.h (legitimate_address_p): Remove.
54         * config/s390/s390.c (legitimate_address_p): Rename to...
55         (s390_legitimate_address_p): ... this, make static.
56         (legitimize_address): Adjust call.
57         (TARGET_LEGITIMATE_ADDRESS_P): New.
58         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
59
60         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
61         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
62         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
63         (TARGET_LEGITIMATE_ADDRESS_P): New.
64
65         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
66         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
67         * config/spu/spu.c (spu_legitimate_address): Rename to...
68         (spu_legitimate_address_p): ... this, make static.
69         (TARGET_LEGITIMATE_ADDRESS_P): New.
70
71         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
72         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
73         * config/sparc/sparc.c (legitimate_address_p): Rename to...
74         (sparc_legitimate_address_p): ... this, make static and return bool.
75         (legitimize_address): Adjust call.
76         (TARGET_LEGITIMATE_ADDRESS_P): New.
77
78         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
79         * config/i386/i386-protos.h (legitimate_address_p): Remove.
80         * config/i386/i386.c (legitimate_address_p): Rename to...
81         (ix86_legitimate_address_p): ... this, make static.
82         (constant_address_p): Move after it, adjust call.
83         (TARGET_LEGITIMATE_ADDRESS_P): New.
84
85         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
86         * config/avr/avr-protos.h (legitimate_address_p): Remove.
87         * config/avr/avr.c (legitimate_address_p): Rename to...
88         (avr_legitimate_address_p): ... this, make static.
89         (legitimize_address): Adjust call.
90         (TARGET_LEGITIMATE_ADDRESS_P): New.
91
92         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
93         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
94         * config/crx/crx.c (crx_legitimate_address_p): Make static.
95         (TARGET_LEGITIMATE_ADDRESS_P): New.
96
97         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
98         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
99         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
100         (TARGET_LEGITIMATE_ADDRESS_P): New.
101
102         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
103         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
104         Remove.
105         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
106         Make static.
107         (TARGET_LEGITIMATE_ADDRESS_P): New.
108
109         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
110         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
111         Remove.
112         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
113         Rename to...
114         (m68hc11_legitimate_address_p): ... this, make static.
115         (go_if_legitimate_address_internal): Rename to...
116         (m68hc11_legitimate_address_p_1): ... this.
117         (legitimize_address): Adjust call.
118         (TARGET_LEGITIMATE_ADDRESS_P): New.
119
120         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
121         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
122         Remove.
123         * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
124         Make static.
125         (TARGET_LEGITIMATE_ADDRESS_P): New.
126
127         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
128         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
129         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
130         (mn10300_legitimate_address_p): ... this, make static.
131         (TARGET_LEGITIMATE_ADDRESS_P): New.
132
133         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
134         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
135         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
136         (TARGET_LEGITIMATE_ADDRESS_P): New.
137
138         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
139         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
140         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
141         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
142         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
143         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
144         (rs6000_legitimate_address_p): ... this, make static.
145         (TARGET_LEGITIMATE_ADDRESS_P): New.
146         (REG_MODE_OK_FOR_BASE_P): Delete.
147         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
148
149         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
150         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
151         Delete.
152         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
153         static, adjust types.
154         (TARGET_LEGITIMATE_ADDRESS_P): New.
155
156         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
157         * config/score/score.c (score_address_p): Rename to...
158         (score_legitimate_address_p): ... this.
159         (TARGET_LEGITIMATE_ADDRESS_P): New.
160         * config/score/score3.c (score3_address_p): Rename to...
161         (score3_legitimate_address_p): ... this.
162         * config/score/score7.c (score7_address_p): Rename to...
163         (score7_legitimate_address_p): ... this.
164
165         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
166         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
167         GO_IF_LEGITIMATE_ADDRESS): Delete.
168         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
169         thumb2_legitimate_address_p): Delete.
170         (arm_legitimate_address_p): Rename to...
171         (arm_legitimate_address_outer_p): ... this.
172         * config/arm/constraints.md ("Uq"): Adjust call.
173         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
174         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
175         (arm_legitimate_address_outer_p): ... this.
176         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
177         (TARGET_LEGITIMATE_ADDRESS_P): New.
178
179         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
180         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
181         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
182         (TARGET_LEGITIMATE_ADDRESS_P): New.
183
184         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
185         * config/vax/vax-protos.h (legitimate_address_p): Remove.
186         * config/vax/vax.c (legitimate_address_p): Rename to...
187         (vax_legitimate_address_p): ... this, make static.
188         (TARGET_LEGITIMATE_ADDRESS_P): New.
189
190         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
191         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
192         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
193         (TARGET_LEGITIMATE_ADDRESS_P): New.
194
195         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
196         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
197         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
198         (mmix_legitimate_address_p): ... this, make static.
199         (TARGET_LEGITIMATE_ADDRESS_P): New.
200
201         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
202         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
203         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
204         (TARGET_LEGITIMATE_ADDRESS_P): New.
205
206 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
207
208         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
209         of MODE_COMPLEX_INT.
210
211 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
212
213         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
214         LCT_NORMAL in function call.
215         * mips-tdump.c (print_file_desc): Add cast to enum type.
216         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
217         (mark_stabs): Add casts to enum types.
218         (parse_stabs_common): Add casts to enum types.
219         
220 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
221
222         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
223         Check for invalid values of LETTER.
224
225 2009-05-13  Taras Glek  <tglek@mozilla.com>
226
227        * attribs.c moved out attribute registration into register_attribute
228        * doc/plugins.texi Documented register_attribute and PLUGIN_ATTRIBUTES
229        * gcc-plugin.h Added forward decl for register_attribute
230        * plugin.c Added PLUGIN_ATTRIBUTES boilerplate
231        * plugin.h Added PLUGIN_ATTRIBUTES
232
233 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
234
235         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
236         values even in sentinel and empty entries.
237         (ms_printf_flag_specs):  Likewise.
238         (ms_scanf_flag_specs):  Likewise.
239         (ms_strftime_flag_specs):  Likewise.
240         (ms_print_char_table):  Likewise.
241         (ms_scan_char_table):  Likewise.
242         (ms_time_char_table):  Likewise.
243
244 2009-05-13  Doug Kwan  <dougkwan@google.com>
245
246         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
247
248 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
249
250         * config/mips/mips.md (store): Add attributes for QI and HI.
251         Update comment.
252         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
253         (truncdi<mode>2): ... this new pattern.
254
255 2009-05-13  Brad Hards  <bradh@kde.org>
256
257         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
258
259 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
260             Ben Elliston <bje@au.ibm.com>
261
262         PR middle-end/40035
263         * dse.c (check_mem_read_rtx): Guard against width == -1.
264
265 2009-05-13  Michael Matz  <matz@suse.de>
266
267         PR middle-end/39976
268         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
269         (trivially_conflicts_p): New function.
270         (insert_backedge_copies): Use it.
271
272 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
273
274         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
275         (handle_stdc_pragma): Use new enum constant names.
276         (handle_pragma_float_const_decimal64): Ditto.
277
278 2009-05-13  Ian Lance Taylor  <iant@google.com>
279
280         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
281         tree.def.
282
283 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
284
285         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
286         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
287         multilibs.
288         * config/m68k/m68k.h (FL_UCLINUX): Define.
289
290 2009-05-13  Jan Hubicka  <jh@suse.cz>
291
292         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
293
294 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
295
296         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
297         unless -fschedule-insns is specified.
298
299 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
300
301         PR target/39561
302         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
303         TARGET_EXPAND_CBRANCHDI4.
304         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
305         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
306         (cmpeqdi): Fix comment.
307
308 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
309
310         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
311         (sh_legitimate_address_p): Likewise.
312         * config/sh/sh.c (sh_legitimate_index_p): New.
313         (sh_legitimate_address_p): Likewise.
314         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
315         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
316         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
317         (MAYBE_BASE_REGISTER_RTX_P): New macro.
318         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
319         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
320         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
321         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
322         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
323
324 2009-05-12  Jan Hubicka  <jh@suse.cz>
325
326         * tree-inline.c (estimate_operator_cost): Add operands;
327         when division happens by constant, it is cheap.
328         (estimate_num_insns): Loads and stores are not having cost of 0;
329         EH magic stuff is cheap; when computing runtime cost of switch,
330         use log2 base of amount of its cases; builtin_expect has cost of 0;
331         compute cost for moving return value of call.
332         (init_inline_once): Initialize time_based flags.
333         * tree-inline.h (eni_weights_d): Add time_based flag.
334
335 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
336
337         * df-core.c: Update head documentation.
338
339 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
340
341         PR bootstrap/40118
342         * rs6000.c (rs6000_generate_compare): Use op1b instead of
343         shadowing exisiting variable op1.
344
345 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
346
347         PR target/37179
348         * config/i386/driver-i386.c (processor_signatures): New enum.
349         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
350         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
351         processor signature to detect geode processor.
352
353 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
354
355         Revert:
356
357         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
358
359         * optabs.c (prepare_cmp_insn): Temporarily disable test that
360         causes spurious differences between trunk and cond-optab branch.
361
362 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
363
364         * dojump.c (compare_from_rtx): Delete.
365         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
366         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
367         if the comparison does not satisfy the predicate; test predicates for
368         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
369         further if one existing pattern fails.
370         * expr.h (compare_from_rtx): Delete.
371         (prepare_operand): Declare it.
372         * optabs.c: Change "lib call" to "libcall" throughout.
373         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
374         HAVE_conditional_trap, emit_cmp_insn): Delete.
375         (can_compare_p): Delete cmp_optab case.
376         (prepare_float_lib_cmp): Return an rtx and a machine mode.
377         Accept other parameters by value.
378         (prepare_operand): Make non-static.
379         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
380         other parameters by value.  Try to widen operands here based on
381         an optab_methods argument and looking at cbranch_optab.
382         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
383         loop.  Use cbranch_optab directly.
384         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
385         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
386         assertion.
387         (emit_conditional_move, emit_conditional_add): Inline what's needed
388         of compare_from_rtx, using new prepare_cmp_insn for the rest.
389         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
390         with COMPARE.  Move cmov_optab and cstore_optab above
391         with cbranch_optab, move cmp_optab down with ucmp_optab,
392         remove tst_otpab.  Do not initialize trap_rtx.
393         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
394         for trap code.  Do not check HAVE_conditional_trap.  Use
395         prepare_cmp_insn.  Accept no predicate for operand 3.
396         * optabs.h (OTI_cmp): Mark as used only for libcalls.
397         (OTI_ctrap, ctrap_optab): New.
398         (tst_optab): Delete.
399         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
400         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
401         with lookup of ctrap_optab.
402         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
403         setcc_gen_code): Delete.
404         (ctrap_optab): New.
405
406         * combine.c (combine_simplify_rtx, simplify_set): Do not
407         special case comparing against zero for cc0 machines.
408         * simplify-rtx.c (simplify_binary_operation_1): Never remove
409         COMPARE on cc0 machines.
410         (simplify_relational_operation): Return a new expression when
411         a COMPARE could be removed.
412         * final.c (final_scan_insn): Compare cc_status values
413         against LHS of a (compare FOO (const_int 0)) cc0 source.
414         Also check if cc_status.value is the full compare.
415
416         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
417         (cstoreMM4): Document.
418         (conditional_trap): Document ctrapMM4 instead.
419         (sync_compare_and_swapMM): Refer to cbranchcc4.
420         (Dependent Patterns): Eliminate obsolete information referring to
421         the old jump optimization phase.
422         (Canonicalization): Include cbranchcc4 case, omit canonicalization
423         of compares with 0 on cc0 machines.
424         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
425         avoiding references to cc0.  Remove text about storing operands
426         in cmpMM.
427         * doc/tm.texi (Condition Codes): Include blurb on different
428         condition code representations, separate into subsections for
429         CC0, MODE_CC and conditional execution.
430
431         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
432         alpha_emit_setcc): Accept operands and a machine mode.
433         * config/alpha/alpha.c (alpha_emit_conditional_branch):
434         Get code/op0/op1 from operands, use machine mode argument
435         instead of alpha_compare.fp_p.  Emit the branch here.
436         (alpha_emit_setcc): Likewise, and return boolean.
437         (alpha_emit_conditional_move): Likewise.  Assert that
438         cmp_op_mode == cmp_mode, and simplify accordingly.
439         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
440         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
441         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
442         Delete.
443         (stack probe test): Use cbranchdi4.
444         * config/alpha/predicates.md (alpha_cbranch_operator): New.
445
446         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
447         * config/arc/arc.h (movsicc, movsfcc): Use it.
448         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
449         (cbranchsi4, cstoresi4): New.
450         (cmpsi, bCC and sCC expanders): Remove. 
451
452         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
453         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
454         * config/arm/predicates.md (arm_comparison_operator): Only include
455         floating-point operators if there is a hardware floating-point unit.
456         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
457         deferring to cbranch_cc and cstore_cc respectively.
458         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
459         cbranch_cc, cstore_cc): New.
460         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
461         arm_compare_op1.
462         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
463
464         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
465         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
466         as an argument.
467         (adjust_insn_length): Adjust calls.
468         (avr_reorg): Handle (compare (foo) (const_int 0)).
469         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
470         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
471         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
472         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
473         (bCC): Remove.
474         (cbranchqi4, cbranchhi4, cbranchsi4): New.
475         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
476
477         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
478         (cbranchsi4, cstorebi4, cstoresi4): New.
479         (movbisi): This insn is duplicate, split it to zero_extend.
480         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
481         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
482         (bfin_optimize_loop): Use cbranch expander.
483         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
484         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
485         (bfin_bimode_comparison_operator): ... this.
486         (bfin_direct_comparison_operator): New.
487  
488         * config/cris/cris.c (cris_normal_notice_update_cc): Look
489         inside (compare FOO (const_int 0)).
490         (cris_rtx_costs): Handle ZERO_EXTRACT.
491         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
492         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
493         (*tstdi_v32): Delete.
494         (*cmpdi_non_v32): Add M alternative for operand 1.
495         (cmpsi, cmp<mode>): Make private.
496         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
497         with COMPARE.
498         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
499
500         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
501         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
502         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
503         (cc_reg_operand): New.
504         (any_cond): Delete.
505         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
506         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
507         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
508         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
509         crx_expand_scond): Delete.
510
511         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
512         (cbranchsi4): New.
513         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
514         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
515
516         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
517         cstoresi4, cstoresf4, cstoredf4): New.
518         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
519         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
520         Receive the entire operands array.
521         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
522         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
523         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
524         Get test/op0/op1 from the operands array.
525         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
526
527         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
528         (h8300_expand_store): New.
529         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
530         (const_int 0)).
531         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
532         (h8300_expand_store): New.
533         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
534         or do not try to produce (set (cc0) REG).
535         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
536         change a compare into a move to a scratch register.  Disable some
537         peepholes when comparing with zero.
538         (tstsi, tsthi, tstsi, cmpqi): Make private.
539         (cmphi): Delete.
540         (bCC, sCC): Delete.
541         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
542         cstoresi4): New.
543
544         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
545         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
546         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
547         (ix86_emit_i387_log1p): Use cbranchxf2.
548         (ix86_expand_setcc): Return void.
549         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
550         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
551         cmp<MODEF>, cmpcc): Remove.
552         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
553         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
554         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
555         (sCC and bCC expanders): Remove.
556         (stack_protect_test): Use cbranchcc4.
557
558         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
559         Delete.
560         (ia64_expand_compare): Accept three rtx by reference and return void.
561         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
562         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
563         from *expr.  Update *expr with the BImode comparison to do.
564         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
565         cmptf, bCC, sCC, conditional_trap): Delete.
566         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
567         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
568         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
569         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
570         * config/ia64/predicates.md (ia64_cbranch_operator): New.
571
572         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
573         type of last argument.
574         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
575         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
576         use machine mode argument instead of branch_type.  Remove dead
577         code for floating-point comparisons.
578         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
579         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
580         Remove.
581         (cbranchsi4, cstoresi4): New.
582         * config/iq2000/predicates.md (reg_or_const_operand): New.
583
584         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
585         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
586         (b<code>_op): Rewrite to...
587         (bcc_op): ... this, using match_operator.
588         (s<code>_op): Rewrite to...
589         (scc_op): ... this, using match_operator.
590         (s<code>_24_op): Rewrite to...
591         (scc_op_24): ... this, using match_operator.
592         (s<code>_<mode>): Rewrite to...
593         (cstore<mode>4): ... this, using match_operator.
594         (s<code>_<mode>_24): Rewrite to...
595         (cstore<mode>4_24): ... this, using match_operator.
596         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
597         m32c_unpend_compare, m32c_expand_scc): Delete.
598         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
599         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
600         (m32c_expand_movcc): Change NE to EQ if necessary.
601         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
602
603         * config/m32r/m32r-protos.h (gen_cond_store): New.
604         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
605         (gen_cond_store): New, from sCC patterns.
606         (m32r_expand_block_move): Use cbranchsi4.
607         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
608         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
609         (cbranchsi4, cstoresi4): New.
610         
611         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
612         Delete.
613         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
614         (m68hc11_notice_update_cc): Look into a compare with 0.
615         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
616         Delete.
617         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
618         cmphi, cmpqi, bCC): Delete.
619         (cbranchsi4, cbranchhi4, cbranchqi4): New.
620         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
621         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
622         sets with COMPARE.
623
624         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
625         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
626         * config/m68k/constraints.md (H): New.
627         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
628         the define_insn below.
629         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
630         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
631         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
632         patterns): Wrap RHS with COMPARE.
633         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
634         (*cmpdi_internal): Name this pattern.
635         (cmpdi): Change to define_insn.
636         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
637         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
638         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
639         predicate.
640         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
641         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
642         (conditional_trap): Change to...
643         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
644         (*conditional_trap): Use the ordered_comparison_operator and
645         const1_operand predicates.
646         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
647         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
648         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
649         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
650
651         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
652         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
653         (mcore_gen_compare): New. 
654         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
655         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
656         (mcore_gen_compare): ... this.
657         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
658         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
659         (stack probe pattern): Use cbranchsi4.
660
661         * config/mips/predicates.md (mips_cstore_operator): New.
662         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
663         * config/mips/mips.md (any_cond): Delete.
664         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
665         always succeed.
666         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
667         fixuns_truncsfdi2): Use cbranch patterns.
668         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
669         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
670         Adjust call to mips_expand_conditional_branch.
671         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
672         cstore<GPR:mode>4.
673         * config/mips/mips-protos.h (mips_expand_conditional_branch,
674         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
675         * config/mips/mips.c (cmp_operands): Delete.
676         (mips_emit_compare): Get comparison operands from *op0/*op1.
677         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
678         that it succeeds.  Use op0/op1 instead of cmp_operands.
679         (mips_expand_conditional_branch, mips_expand_conditional_move,
680         mips_expand_conditional_trap): Likewise.
681         (mips_block_move_loop): Use cbranch patterns. 
682         * config/mips/mips.h (cmp_operands): Delete.
683
684         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
685         (mmix_gen_compare_reg): Just return a register in the right CC mode.
686         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
687         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
688         (*cmpcc_folded): Rename to...
689         (*cmpdi_folded): this.
690         (*cmpcc): Rename to...
691         (*cmps): ... this.
692         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
693         (bCC): Remove.
694         (cbranchdi4): New.
695         (cbranchdf4): New.  Handle invalid comparisons here.
696         * config/mmix/predicates.md (float_comparison_operator): New.
697
698         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
699         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
700         * config/mn10300/mn10300.md (tst): Delete.
701         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
702         Name these patterns and wrap RHS in a compare.
703         (*cmpsi): Make this pattern private.  Include tst.
704         (*cmpsf): Make this pattern private.
705         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
706         (compare with zero peepholes): Likewise.
707         (bCC): Remove.
708         (cbranchsi4, cbranchsf4): New.
709         (casesi): Use cbranchsi4.
710
711         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
712         hppa_branch_type): Delete.
713         (return_addr_rtx): Use cbranchsi4.
714         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
715         Emit CCFPmode comparison here.
716         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
717         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
718         hppa_branch_type): Delete.
719         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
720         (movsicc, movdicc): Remove references to hppa_compare_op0,
721         hppa_compare_op1 and compare_from_rtx.
722         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
723         (casesi): Use cbranchsi4.
724
725         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
726         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
727         * config/pdp11/pdp11.md (register_or_const0_operand): New.
728         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
729         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
730         (bCC): Delete.
731         (cbranchdf4, cbranchhi4, cbranchqi4): New.
732         (*branch, *branch_inverted): New.
733
734         * config/picochip/picochip.md (cbranchhi4): Use
735         ordered_comparison_operator.
736         (cmphi, bCC): Remove.
737
738         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
739         (trap_comparison_operator): Delete.
740         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
741         rs6000_emit_cbranch): Accept mode and operands.
742         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
743         rs6000_compare_fp_p): Delete.   
744         (rs6000_generate_compare): Accept mode and comparison.  Extract code
745         and op0/op1 from there.  Replace references to rs6000_compare_op0
746         and rs6000_compare_op1.
747         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
748         extract result from passed operands.
749         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
750         extract loc from passed operands.
751         (rs6000_emit_cmove): Likewise.
752         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
753         rs6000_compare_fp_p): Delete.
754         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
755         (cbranch<GPR>4, cbranch<FP>4): New.
756         (cstore<mode>4): New.  Consolidate here all choices about when to use
757         portable or specialized sCC sequences.
758         (stack_protect_test): Use cbranchsi4.
759         (conditional_trap): Replace with ctrap<GPR>4.
760         (conditional trap insn): Replace trap_comparison_operator with
761         ordered_comparison_operator. 
762
763         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
764         (s390_emit_prologue): Use ctrap.
765         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
766         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
767         New predicates replacing...
768         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
769         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
770         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
771         (add<mode>cc): Do not use s390_compare_op0/op1.
772         (s<code>): Change to...
773         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
774         (seq): Change to...
775         (cstorecc4): ... this.  Handle EQ or NE equally.
776         (*sne): Un-privatize for use in cstorecc4.
777         (b<code>): Change to...
778         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
779         (conditional_trap): Replace with...
780         (ctrap<GPR>4, ctrap<FP>4): ... these.
781         (stack_protect): Use cbranchcc4.
782
783         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
784         * config/score/score-protos.h (score_gen_cmp): Delete.
785         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
786         (score_block_move-loop): Use cbranchsi4.
787         * config/score/score.md (cbranchsi4): New.
788         (cmpsi, bCC): Delete.
789         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
790         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
791         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
792         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
793         * config/score/score3.h (score3_gen_cmp): Delete.
794         * config/score/score7.h (score7_gen_cmp): Delete.
795
796         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
797         (sh_emit_scc_to_t): ... this.  Return void.
798         (from_compare): Rename to...
799         (sh_emit_compare_and_branch): ... this.
800         (sh_emit_compare_and_set): New.
801         (sh_expand_t_scc): Accept operands.
802         * config/sh/predicates.md (sh_float_comparison_operator): New.
803         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
804         (prepare_scc_operands): Rename to...
805         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
806         arguments.
807         (sh_emit_cheap_store_flag): New.
808         (sh_emit_set_t_insn): New.
809         (from_compare): Rename to...
810         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
811         handling of TARGET_SH2E floating point to avoid recursive call.
812         Generate branch here.
813         (sh_emit_compare_and_set): New.
814         (sh_expand_t_scc): Get op0/op1 from arguments.
815         (sh_emit_cheap_store_flag): New.
816         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
817         cases.
818         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
819         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
820         (movsicc, movdicc): Do nothing when it recreated operands from
821         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
822         prepare_scc_operands (now sh_emit_scc_to_t).
823         (udivdi3): Use cstoresi4.
824         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
825         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
826         (cbranchint4_media, cbranchfp4_media): New.
827         (casesi): Use cbranchdi4.
828         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
829         Delete.
830         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
831         (movnegt): Remove second operand.
832         (cbranchsf4, cbranchdf4): New.
833         (stack_protect): Use cbranchdi4/cbranchsi4.
834
835         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
836         (gen_compare_reg): Accept comparison, extract part of it to...
837         (gen_compare_reg_1): ... this. 
838         (gen_compare_operator): Delete.
839         (gen_v9_scc): Accept separate destination, comparison code and arms.
840         Do not use sparc_compare_op0/sparc_compare_op1.
841         (emit_scc_insn, emit_conditional_branch_insn): New.
842         (emit_v9_brxx): Make static.  Remove useless assertion.
843         (sparc_emit_float_lib_cmp): Return RTL instead of calling
844         emit_cmp_insn.
845         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
846         * config/sparc/sparc-protos.h (gen_compare_reg,
847         sparc_emit_float_lib_cmp): Adjust prototype.
848         (emit_scc_insn, emit_conditional_branch_insn): New.
849         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
850         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
851         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
852         iterators to the top.
853         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
854         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
855         snedi_special_trunc): Delete.
856         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
857         and snedi_special_trunc.
858         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
859         cbranchdi4, cbranch<F:mode>4): New.
860         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
861         here.  Use gen_compare_reg instead of gen_compare_operator.
862         (conditional_trap): Replace with...
863         (ctrapsi4, ctrapdi4): ... this.
864         (stack_protect_test): Use cbranchcc4.
865
866         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
867         argument to rtx.
868         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
869         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
870         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
871         from operands[0] or operands[3] depending on is_set.
872         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
873         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
874         cmpdf, bCC), sCC: Remove.
875         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
876         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
877         cstoredf4): New.
878         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
879         spu_emit_branch_or_set.
880
881         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
882         Add two arguments.
883         * config/stormy16/stormy16.h (xstormy16_compare_op0,
884         xstormy16_compare_op1): Delete.
885         * config/stormy16/stormy16.c (xstormy16_compare_op0,
886         xstormy16_compare_op1): Delete. 
887         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
888         Adjust calls.
889         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
890         (cmphi, cmpsi, bCC): Remove.
891
892         * config/v850/v850.md (tstsi, cmpsi): Fold into...
893         (*cmpsi): ... this one.
894         (cbranchsi4, cstoresi4): New.
895         (bCC expanders): Delete.
896         (sCC insns): Fold into...
897         (*setcc): ... this one.
898         (casesi): Do not use gen_cmpsi and gen_bgtu. 
899         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
900         (movsicc): Simplify.
901         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
902
903         * config/vax/vax-protos.h (cond_name): New.
904         (vax_output_conditional_branch): Remove.
905         * config/vax/vax.c (cond_name): New.
906         (vax_output_conditional_branch): Remove.
907         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
908         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
909         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
910         (bit<VAXint>): Wrap source with (compare).
911         (b<code> and following unnamed pattern): Rename to *branch and
912         *branch_reversed.  Change macroization to match_operator.
913         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
914
915         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
916         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
917         Change last argument to machine_mode.
918         (xtensa_expand_scc): Add machine_mode argument.
919         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
920         (gen_conditional_move, xtensa_expand_conditional_branch,
921         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
922         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
923         Adjust operand numbers.
924         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
925         Delete.
926         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
927         (cmpsi, cmpsf, b<code>, s<code>): Delete.
928         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
929
930 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
931
932         * optabs.c (prepare_cmp_insn): Temporarily disable test that
933         causes spurious differences between trunk and cond-optab branch.
934
935 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
936
937         PR target/37137
938         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
939
940 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
941
942         * tree.c (iterative_hash_pointer): Delete.
943         (iterative_hash_expr): Short-circuit handling of NULL pointer.
944         Hash UIDs and versions of SSA names.  Don't special-case built-in
945         function declarations.
946
947 2009-05-11  Ian Lance Taylor  <iant@google.com>
948
949         PR bootstrap/40103
950         * graphite.c: Force -Wc++-compat to only be a warning before
951         #including "cloog/cloog.h".
952
953 2009-05-11  Martin Jambor  <mjambor@suse.cz>
954
955         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
956         
957 2009-05-11  Jan Hubicka  <jh@suse.cz>
958
959         * tree-ssa-loop-ivcanon.c: Include target.h
960         (struct loop_size): new structure.
961         (constant_after_peeling): New predicate.
962         (tree_estimate_loop_size): New function.
963         (estimated_unrolled_size): Rewrite for new estimates.
964         (try_unroll_loop_completely): Use new estimates.
965         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
966
967 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
968
969         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
970         libcpp interface change.
971         (spu_macro_to_expand): Likewise.
972
973 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
974
975         PR tree-optimization/40026
976         * gimplify.c (gimplify_init_constructor): Change initial conditional
977         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
978         optimize_compound_literals_in_ctor.
979
980 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
981
982         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
983         New devices.
984         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
985
986 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
987
988         * tree-vect-data-refs.c (vect_analyze_group_access): Use
989         HOST_WIDE_INT for gap.
990
991 2009-05-11  Ira Rosen  <irar@il.ibm.com>
992
993         PR tree-optimization/40074
994         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
995         account in group size and step comparison.
996
997 2009-05-11  Richard Guenther  <rguenther@suse.de>
998
999         * passes.c (init_optimization_passes): Strip now incorrect comment.
1000         (execute_function_todo): Do not set PROP_alias.
1001         * tree-pass.h (PROP_alias): Remove.
1002         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
1003         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
1004         * tree-nrv.c (pass_return_slot): Likewise.
1005         * tree-object-size.c (pass_object_sizes): Likewise.
1006         * tree-ssa-dom.c (pass_dominator): Likewise.
1007         (pass_phi_only_cprop): Likewise.
1008         * tree-ssa-dse.c (pass_dse): Likewise.
1009         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1010         (pass_cselim): Likewise.
1011         * tree-ssa-pre.c (pass_pre): Likewise.
1012         (pass_fre): Likewise.
1013         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
1014         * tree-ssa-sink.c (pass_sink_code): Likewise.
1015         * tree-stdarg.c (pass_stdarg): Likewise.
1016         * tree-tailcall.c (pass_tail_calls): Likewise.
1017         * tree-vrp.c (pass_vrp): Likewise.
1018
1019 2009-05-10  Ian Lance Taylor  <iant@google.com>
1020
1021         * basic-block.h (enum profile_status): Break out of struct
1022         control_flow_graph.
1023         * cgraph.h (struct inline_summary): Break out of struct
1024         cgraph_local_info.
1025         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1026         of struct cgraph_order_sort.
1027         * combine.c (enum undo_kind): New enum, broken out of struct undo.
1028         * cse.c (struct branch_path): Break out of struct
1029         cse_basic_block_data.
1030         * except.h (enum eh_region_type): Break out of struct eh_region.
1031         * gcc.c (enum add_del): Break out of struct modify_target.
1032         * genrecog.c (enum decision_type): Break out of struct decision_test.
1033         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1034         ggc_pch_data.
1035         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1036         * regmove.c (enum match_use): New enum, broken out of struct match.
1037         * sched-int.h (enum post_call_group): New enum, broken out of
1038         struct deps.
1039         (struct deps_reg): Break out of struct deps.
1040         * target.h (struct asm_int_op): Break out of struct gcc_target.
1041         * tree-eh.c (struct goto_queue_node): Break out of struct
1042         leh_tf_state.
1043         * tree-inline.h (enum copy_body_cge_which): Break out of
1044         copy_body_data.
1045         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1046
1047         * c-decl.c (in_struct, struct_types): New static variables.
1048         (pushtag): Add loc parameter.  Change all callers.
1049         (lookup_tag): Add ploc parameter.  Change all callers.
1050         (check_compound_literal_type): New function.
1051         (parser_xref_tag): Add loc parameter.  Change all callers.  If
1052         -Wc++-compat, warn about struct/union/enum types defined within a
1053         struct or union.
1054         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1055         and loc parameters.  Change all callers.  Change error calls to
1056         error_at, using loc.  For a redefinition, if the location of the
1057         original definition is known, report it.  Set in_struct and
1058         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
1059         (finish_struct): Add new parameters enclosing_in_struct and
1060         enclosing_struct_types.  Change all callers.  Set
1061         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1062         in the struct.  If in a struct, add this struct to struct_types.
1063         (start_enum): Add loc parameter.  Change all callers.  Use
1064         error_at for errors, using loc.  For a redefinition, if the
1065         location of the original definition is known, report it.  If in a
1066         struct, add this enum type to struct_types.  If -Wc++-compat warn
1067         if in sizeof, typeof, or alignof.
1068         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1069         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
1070         (c_parser_enum_specifier): Get enum location for start_enum.
1071         (c_parser_struct_or_union_specifier): Get struct location for
1072         start_struct.  Save in_struct and struct_types status between
1073         start_struct and finish_struct.
1074         (c_parser_cast_expression): Get location of cast.
1075         (c_parser_alignof_expression): Get location of type.
1076         (c_parser_postfix_expression): Likewise.
1077         (c_parser_postfix_expression_after_paren_type): Add type_loc
1078         parameter.  Change all callers.  Call check_compound_literal_type.
1079         Use type_loc for error about variable size type.
1080         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1081         of an enum constant from an enum type defined in a struct or union.
1082         (c_cast_expr): Add loc parameter.  Change all callers.  If
1083         -Wc++-compat, warn about defining a type in a cast.
1084         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1085         (start_enum, start_struct, finish_struct): Update declarations.
1086         (parser_xref_tag, c_cast_expr): Update declarations.
1087         (check_compound_literal_type): Declare.
1088
1089 2009-05-11  Ben Elliston  <bje@au.ibm.com>
1090
1091         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1092         for recent libcpp interface change.
1093         (rs6000_macro_to_expand): Likewise.
1094
1095 2009-05-10  Michael Matz  <matz@suse.de>
1096
1097         PR target/40031
1098         * config/arm/arm.c (require_pic_register): Emit on entry edge,
1099         not at entry of function.
1100
1101 2009-05-10  Richard Guenther  <rguenther@suse.de>
1102
1103         PR tree-optimization/40081
1104         Revert
1105         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1106         using the main variant of the element type.  Do not fiddle with
1107         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1108
1109         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1110         structs with volatile fields.
1111
1112 2009-05-10  Jan Hubicka  <jh@suse.cz>
1113
1114         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
1115         (estimate_move_cost): Assert that it does not get called for
1116         VOID_TYPE_P.
1117         (estimate_num_insns): Skip VOID types in argument handling.
1118         (optimize_inline_calls): Delete unreachable blocks and verify that
1119         callgraph is valid.
1120
1121 2009-05-10  Jan Hubicka  <jh@suse.cz>
1122
1123         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1124         * cgraph.c (cgraph_mark_address_taken_node): New function.
1125         (dump_cgraph_node): Dump new flag.
1126         * cgraph.h (struct cgraph_node): Add address_taken.
1127         (cgraph_mark_address_taken_node): New function.
1128         * ipa.c (cgraph_postorder): Prioritize functions with address taken
1129         since new direct calls can be born.
1130
1131 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1132
1133         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1134         tok->val.node.node.
1135
1136 2009-05-10  Jan Hubicka  <jh@suse.cz>
1137
1138         PR middle-end/40084
1139         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1140         argument; rewrite.
1141         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1142         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1143         * tree-inline.c (copy_bb): Set frequency correctly.
1144         (fold_marked_statements): Update call to
1145         cgraph_update_edges_for_call_stmt.
1146
1147 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1148
1149         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1150         identifiers in diagnostics.
1151         * config/arm/arm.c (arm_handle_fndecl_attribute,
1152         arm_handle_isr_attribute): Likewise.
1153         * config/avr/avr.c (avr_handle_progmem_attribute,
1154         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1155         Likewise.
1156         * config/bfin/bfin.c (handle_int_attribute,
1157         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1158         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1159         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1160         Likewise.
1161         * config/darwin.c (darwin_handle_kext_attribute,
1162         darwin_handle_weak_import_attribute): Likewise.
1163         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1164         h8300_handle_eightbit_data_attribute,
1165         h8300_handle_tiny_data_attribute): Likewise.
1166         * config/i386/i386.c (ix86_handle_cconv_attribute,
1167         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1168         Likewise.
1169         * config/i386/winnt.c (ix86_handle_shared_attribute,
1170         ix86_handle_selectany_attribute): Likewise.
1171         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1172         * config/m32c/m32c.c (function_vector_handler): Likewise.
1173         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1174         m68hc11_handle_fntype_attribute): Likewise.
1175         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1176         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1177         * config/mips/mips.c (mips_insert_attributes,
1178         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1179         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1180         rs6000_handle_struct_attribute): Likewise.
1181         * config/sh/sh.c (sh_insert_attributes,
1182         sh_handle_resbank_handler_attribute,
1183         sh_handle_interrupt_handler_attribute,
1184         sh2a_handle_function_vector_handler_attribute,
1185         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1186         Likewise.
1187         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1188         * config/spu/spu.c (spu_handle_fndecl_attribute,
1189         spu_handle_vector_attribute): Likewise.
1190         * config/stormy16/stormy16.c
1191         (xstormy16_handle_interrupt_attribute): Likewise.
1192         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1193         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1194
1195 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1196
1197         * pretty-print.h (struct pretty_print_info): Add
1198         translate_identifiers.
1199         (pp_translate_identifiers): New.
1200         (pp_identifier): Only conditionally translate identifier to locale
1201         character set.
1202         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1203         (pp_base_tree_identifier): Only conditionally translate identifier
1204         to locale character set.
1205         * c-pretty-print.c (M_): Define.
1206         (pp_c_type_specifier, pp_c_primary_expression): Mark English
1207         fragments for conditional translation with M_.
1208         * tree-pretty-print.c (maybe_init_pretty_print): Disable
1209         identifier translation.
1210
1211 2009-05-10  Richard Guenther  <rguenther@suse.de>
1212
1213         PR tree-optimization/40081
1214         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1215         using the main variant of the element type.  Do not fiddle with
1216         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1217
1218 2009-05-09  Jan Hubicka  <jh@suse.cz>
1219
1220         PR middle-end/40080
1221         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1222         indirect calls; verify cgraph afterwards.
1223
1224 2009-05-09  Jan Hubicka  <jh@suse.cz>
1225
1226         PR bootstrap/40082
1227         * ipa.c (update_inlined_to_pointer): New function.
1228         (cgraph_remove_unreachable_nodes): Use it.
1229
1230 2009-05-09  Jan Hubicka  <jh@suse.cz>
1231
1232         * tree-eh.c (struct leh_state): Remove prev_try.
1233         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1234         not track prev_try.
1235         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
1236         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1237         remove_eh_handler_and_replace, foreach_reachable_handler,
1238         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1239         * except.h (struct eh_region): Remove eh_region_u_cleanup.
1240         (gen_eh_region_cleanup): Update prototype.
1241
1242 2009-05-09  Jan Hubicka  <jh@suse.cz>
1243
1244         PR middle-end/40043
1245         * except.c (copy_eh_region): Always set prev_try.
1246         (redirect_eh_edge_to_label): Find outer try.
1247         (foreach_reachable_handler): When looking for prev try
1248         handle case where previous try is not going to be taken.
1249
1250 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1251
1252         PR tree-optimization/40049
1253         * tree-vect-stmts.c (vectorizable_operation): If the machine has
1254         only vector/vector shifts, convert the type of the constant to the
1255         appropriate type to avoid building incorrect trees, which
1256         eventually have problems with garbage collection.
1257
1258 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1259
1260         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1261         -1 for complex floating-point types if honoring signed zeros.
1262
1263 2009-05-08  Jan Hubicka  <jh@suse.cz>
1264
1265         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1266         argument; handle correctly when profile is absent.
1267         (build_cgraph_edges): Update.
1268         (rebuild_cgraph_edges): Update.
1269         * cgraph.c: Do not include varray.h.
1270         (cgraph_set_call_stmt_including_clones): New function.
1271         (cgraph_create_edge_including_clones): Likewise
1272         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
1273         (cgraph_update_edges_for_call_stmt): Handle clones.
1274         (cgraph_remove_node): Handle clone tree.
1275         (cgraph_remove_node_and_inline_clones): New function.
1276         (dump_cgraph_node): Dump clone tree.
1277         (cgraph_clone_node): Handle clone tree.
1278         (clone_function_name): Bring here from tree-inline.c.
1279         (cgraph_create_virtual_clone): New function.
1280         * cgraph.h (ipa_replace_map): Move here from ipa.h.
1281         (cgraph_clone_info): New function.
1282         (strut cgraph_node): Add clone_info and new clone tree pointers.
1283         (cgraph_remove_node_and_inline_clones,
1284         cgraph_set_call_stmt_including_clones,
1285         cgraph_create_edge_including_clones,
1286         cgraph_create_virtual_clone): Declare.
1287         (cgraph_function_versioning): Use VEC argument.
1288         (compute_call_stmt_bb_frequency): Update prototype.
1289         (cgraph_materialize_all_clones): New function.
1290         * ipa-cp.c (ipcp_update_cloned_node): Remove.
1291         (ipcp_create_replace_map): Update to VECtors.
1292         (ipcp_update_callgraph): Use virtual clones.
1293         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1294         (ipcp_update_profiling): Do not update local profiling.
1295         (ipcp_insert_stage): Use VECtors and virtual clones.
1296         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1297         (clone_of_p): New function.
1298         (cgraph_preserve_function_body_p): Use clone tree.
1299         (cgraph_optimize): Materialize clones.
1300         (cgraph_function_versioning): Update for VECtors.
1301         (save_inline_function_body): Use clone tree.
1302         (cgraph_materialize_clone): New function.
1303         (cgraph_materialize_all_clones): Likewise.
1304         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1305         * ipa.c: Include gimple.h.
1306         (cgraph_remove_unreachable_nodes): Use clone tree.
1307         * ipa-prop.c (ipa_note_param_call): Update call to
1308         compute_call_stmt_bb_frequencycall.
1309         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
1310         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
1311         (copy_bb): Handle updating of clone tree; add new edge when new call
1312         appears.
1313         (expand_call_inline): Be strict about every call having edge.
1314         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1315         (delete_unreachable_blocks_update_callgraph): New function.
1316         (tree_function_versioning): Use VECtors; always remove unreachable
1317         blocks and fold conditionals.
1318         * tree-inline.h: Do not include varray.h.
1319         (tree_function_versioning): Remove.
1320         * Makefile.in (GTFILES): Remove tree-inline.c
1321         * passes.c (do_per_function): Do only functions having body.
1322         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1323         tree.
1324
1325 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
1326             Andrew Morrow  <acm@google.com>
1327
1328         PR c/36892
1329         * c-common.c (c_common_attribute_table): Permit deprecated
1330         attribute to take an optional argument.
1331         (handle_deprecated_attribute): If the optional argument to
1332         __attribute__((deprecated)) is not a string ignore the attribute
1333         and emit a warning.
1334
1335         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1336         * c-typeck.c (build_component_ref): Likewise.
1337         (build_external_ref): Likewise.
1338
1339         * toplev.c (warn_deprecated_use): Add an attribute argument.
1340         Emit the message associated with __attribute__((deprecated)).
1341
1342         * toplev.h (warn_deprecated_use): Updated.
1343
1344         * doc/extend.texi: Document new optional parameter to
1345         __attribute__((deprecated))
1346
1347 2009-05-08  Michael Eager <eager@eagercon.com>
1348
1349         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1350         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1351
1352 2009-05-08  Richard Guenther  <rguenther@suse.de>
1353
1354         PR tree-optimization/40062
1355         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1356         Avoid exponential behavior.
1357
1358 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1359
1360         PR rtl-optimization/33928
1361         PR 26854
1362         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1363         process_uses, build_single_def_use_links): New.
1364         (update_df): Update use_def_ref.
1365         (forward_propagate_into): Use get_def_for_use instead of use-def
1366         chains.
1367         (fwprop_init): Call build_single_def_use_links and let it initialize
1368         dataflow.
1369         (fwprop_done): Free use_def_ref.
1370         (fwprop_addr): Eliminate duplicate call to df_set_flags.
1371         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
1372         df_rd_simulate_one_insn): New.
1373         (df_rd_bb_local_compute_process_def): Update head comment.
1374         (df_chain_create_bb): Use the new RD simulation functions.
1375         * df.h (df_rd_simulate_artificial_defs_at_top, 
1376         df_rd_simulate_one_insn): New.
1377         * opts.c (decode_options): Enable fwprop at -O1.
1378         * doc/invoke.texi (-fforward-propagate): Document this.
1379
1380 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1381
1382         PR c/24581
1383         * c-typeck.c (build_binary_op): Handle arithmetic between one real
1384         and one complex operand specially.
1385         * tree-complex.c (some_nonzerop): Do not identify a real value as
1386         zero if flag_signed_zeros.
1387
1388 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1389
1390         PR rtl-optimization/33928
1391         * loop-invariant.c (record_use): Fix && vs. || mishap.
1392
1393 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1394
1395         PR rtl-optimization/33928
1396         * loop-invariant.c (struct use): Add addr_use_p.
1397         (struct def): Add n_addr_uses.
1398         (struct invariant): Add cheap_address.
1399         (create_new_invariant): Set cheap_address.
1400         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
1401         (record_uses): Pass df_ref to record_use.
1402         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1403         used only as such.
1404
1405 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1406
1407         * config/sh/sh.c: Do not include c-pragma.h.
1408
1409 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1410
1411         * config/spu/spu.c: Remove include of c-common.h.
1412
1413 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
1414
1415         PR c/39037
1416         * c-common.h (mark_valid_location_for_stdc_pragma,
1417         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1418         clear_float_const_decimal64, float_const_decimal64_p): New.
1419         * c.opt (Wunsuffixed-float-constants): New.
1420         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1421         unsuffixed float constant, handle new warning.
1422         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1423         * c-decl.c (c_scope): New flag float_const_decimal64.
1424         (set_float_const_decimal64, clear_float_const_decimal64,
1425         float_const_decimal64_p): New.
1426         (push_scope): Set new flag.
1427         * c-parser.c (c_parser_translation_unit): Mark when it's valid
1428         to use STDC pragmas.
1429         (c_parser_external_declaration): Ditto.
1430         (c_parser_compound_statement_nostart): Ditto.
1431         * c-pragma.c (valid_location_for_stdc_pragma,
1432         mark_valid_location_for_stdc_pragma,
1433         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1434         handle_pragma_float_const_decimal64): New.
1435         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1436         * cp/semantics.c (valid_location_for_stdc_pragma_p,
1437         set_float_const_decimal64, clear_float_const_decimal64,
1438         float_const_decimal64_p): New dummy functions.
1439         * doc/extend.texi (Decimal Float): Remove statement that the
1440         pragma, and suffix for double constants, are not supported.
1441         * doc/invoke.texi (Warning Options): List new option.
1442         (-Wunsuffixed-float-constants): New.
1443
1444 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
1445
1446         * config/i386/i386.c: Do not include c-common.h.
1447
1448 2009-05-07  Mark Heffernan  <meheff@google.com>
1449
1450         * doc/invoke.texi (Debugging Options): Document change of debugging
1451         dump location.
1452         * opts.c (decode_options): Make dump_base_name relative to
1453         aux_base_name directory.
1454
1455 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
1456
1457         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1458         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1459
1460 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
1461
1462         * Makefile.in (install-plugin): Simplify a bit.
1463
1464 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
1465
1466         * Makefile.in (OBJS-common): Add regcprop.o.
1467         (regcprop.o): New.
1468         * timevar.def (TV_CPROP_REGISTERS): New.
1469         * regrename.c (regrename_optimize): Return 0.
1470         (rest_of_handle_regrename): Delete.
1471         (pass_rename_registers): Point to regrename_optimize.
1472         (struct value_data_entry, struct value_data, 
1473         kill_value_one_regno, kill_value_regno, kill_value,
1474         set_value_regno, init_value_data, kill_clobbered_value,
1475         kill_set_value, kill_autoinc_value, copy_value,
1476         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1477         replace_oldest_value_reg, replace_oldest_value_addr,
1478         replace_oldest_value_mem, copyprop_hardreg_forward_1,
1479         debug_value_data, validate_value_data): Move...
1480         * regcprop.c: ... here.
1481         (rest_of_handle_cprop): Delete.
1482         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1483
1484 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
1485
1486         PR middle-end/40057
1487         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1488         GEN_INT for 1 << bitnum.
1489         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1490         build_int_cst_type.
1491
1492 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
1493
1494         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
1495         Remove wrong description of "nand" operation.
1496
1497 2009-05-06  Richard Guenther  <rguenther@suse.de>
1498             Adam Nemet  <anemet@caviumnetworks.com>
1499
1500         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1501         comment.  Add that if LHS is not a gimple register, then RHS1 has
1502         to be a single object (GIMPLE_SINGLE_RHS).
1503
1504 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
1505
1506         * expr.c (get_def_for_expr): Move it up in the file.
1507         (store_field): When expanding a bit-field store, look at the
1508         defining gimple stmt for the masking conversion.
1509
1510 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
1511
1512         PR middle-end/39986
1513         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1514         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1515         32-bit memcpy into long.
1516
1517 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
1518
1519         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1520         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1521         new_reg_loc_descr.
1522         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1523         instead of appending DW_OP_deref*.
1524
1525 2009-05-06  Michael Matz  <matz@suse.de>
1526
1527         PR middle-end/40021
1528         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1529         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1530
1531 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
1532
1533         * Makefile.in (install-plugin): Fix srcdir handling.
1534
1535 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
1536
1537         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1538         when processing for not_regs_needed bitmap.
1539         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1540         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
1541         handling it for rhs. 
1542
1543 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1544
1545         * config/i386/i386.md (unnamed inc/dec peephole): Use
1546         optimize_insn_for_size_p instead of optimize_size.
1547         * config/i386/predicates.md (incdec_operand): Likewise.
1548         (aligned_operand): Likewise.
1549         * config/i386/sse.md (divv8sf3): Likewise.
1550         (sqrtv8sf2): Likewise.
1551
1552 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1553
1554         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1555
1556         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1557
1558 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1559
1560         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1561         ssemodesuffixf2c with avxmodesuffixf2c.
1562
1563 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
1564
1565         PR c/40032
1566         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1567
1568 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
1569
1570         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1571         (struct tree_base): Adjust spacing for 8 bit boundaries.
1572         (struct tree_decl_common): Add decl_by_reference_flag bit.
1573         (DECL_BY_REFERENCE): Adjust.
1574         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1575         print DECL_BY_REFERENCE bit.
1576         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1577         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1578         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1579         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
1580         unconditionally.
1581
1582         PR middle-end/39666
1583         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1584         range of the type, but default label is missing, add it with one
1585         of the existing labels instead of adding a new label for it.
1586
1587 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
1588
1589         * dwarf.h: Remove.
1590
1591 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
1592
1593         * Makefile.in (enable_plugin, plugin_includedir): New.
1594         (install): Depend on install-plugin.
1595         (PLUGIN_HEADERS): New.
1596         (install-plugin): New.
1597         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1598
1599 2009-05-05  Richard Guenther  <rguenther@suse.de>
1600
1601         PR tree-optimization/40022
1602         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1603         the only vuse.
1604         (phivn_valid_p): Fix tuplification error, simplify.
1605         (phiprop_insert_phi): Add dumps.
1606         (propagate_with_phi): Simplify.
1607
1608 2009-05-05  Richard Guenther  <rguenther@suse.de>
1609
1610         PR middle-end/40023
1611         * builtins.c (gimplify_va_arg_expr): Properly build the address.
1612
1613 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
1614
1615         * tree.h (strip_float_extensions): Remove duplicate declaration.
1616         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1617         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1618         block_ultimate_origin): Rearrange the declarations line to match the
1619         comment that indicates the .c file which the functions are defined.
1620         (dwarf2out_*, set_decl_rtl): Add comment.
1621         (get_base_address): Adjust comment.
1622         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1623         declarations line and add comment.
1624         (is_builtin_name): Add blank after function name, for clarity.
1625
1626 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1627
1628         * attribs.c (decl_attributes): Use %qE for identifiers in
1629         diagnostics.
1630         * cgraphunit.c (verify_cgraph_node): Translate function names to
1631         locale character set in diagnostics.
1632         * coverage.c (get_coverage_counts): Use %qE for identifiers in
1633         diagnostics.
1634         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1635         Document that functions are named in UTF-8.
1636         * expr.c (expand_expr_real_1): Translate function names to locale
1637         character set in diagnostics.
1638         * gimplify.c (omp_notice_variable, omp_is_private,
1639         gimplify_scan_omp_clauses): Use %qE for identifiers in
1640         diagnostics.
1641         * langhooks.c (lhd_print_error_function): Translate function names
1642         to locale character set.
1643         * langhooks.h (decl_printable_name): Document that return value is
1644         in internal character set.
1645         * stmt.c: Include pretty-print.h
1646         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1647         diagnostics.
1648         (resolve_operand_name_1): Translate named operand name to locale
1649         character set.
1650         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1651         diagnostics.
1652         * toplev.c (announce_function): Translate function names to locale
1653         character set.
1654         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1655         (default_tree_printer): Use pp_identifier or translate identifiers
1656         to locale character set.  Mark "<anonymous>" for translation.
1657         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1658         for identifiers in diagnostics.
1659         * tree.c (handle_dll_attribute): Use %qE for identifiers in
1660         diagnostics.
1661         * varasm.c (output_constructor): Use %qE for identifiers in
1662         diagnostics.
1663
1664 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
1665
1666         * configure.ac: use ` ` instead of $()
1667         * configure: Regenerate.
1668
1669 2009-05-05  Ben Elliston  <bje@au.ibm.com>
1670
1671         * config/pa/linux-atomic.c: Eliminate conditional include of
1672         errno.h on non-LP64 systems to simplify build requirements.
1673
1674 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1675
1676         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1677         diagnostics.
1678         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1679         and pass value to identifier_to_locale.
1680         (warn_variable_length_array): Make name a tree.
1681         (grokdeclarator): Separate diagnostic texts for named and unnamed
1682         declarators.  Use %qE for named declarators.
1683         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1684         diagnostics.
1685         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1686         identifiers in diagnostics.
1687         * c-typeck.c (push_member_name, start_init): Pass identifiers to
1688         identifier_to_locale.  Mark "anonymous" strings for translation.
1689
1690 2009-05-04  Michael Eager <eager@eagercon.com>
1691
1692         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
1693         address for DImode/DFmode only if double-precision FP regs.
1694
1695 2009-05-04  Michael Eager <eager@eagercon.com>
1696
1697         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1698         TARGET_SINGLE_FLOAT check.
1699
1700 2009-05-04  Michael Eager <eager@eagercon.com>
1701
1702         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1703
1704 2009-05-04  Michael Eager <eager@eagercon.com>
1705
1706         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1707         * config/rs6000/t-xilinx: New
1708
1709 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
1710
1711         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
1712         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1713         * gcc/explow.c (memory_address): Use target hook.
1714         * gcc/targhooks.c (default_legitimize_address): New.
1715         * gcc/targhooks.h (default_legitimize_address): New.
1716         * gcc/target.h (legitimize_address): New.
1717         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1718         (TARGET_INITIALIZER): Include it.
1719         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1720
1721         * config/bfin/bfin-protos.h (legitimize_address): Remove.
1722         * config/bfin/bfin.c (legitimize_address): Remove.
1723         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
1724         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1725         Remove.
1726         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1727         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1728
1729         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1730         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1731         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1732         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1733         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1734         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1735         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1736         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1737         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1738         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1739         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1740         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1741         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1742         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1743         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1744         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1745         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1746         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1747         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1748         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1749         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1750         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1751         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1752
1753         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1754         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1755         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1756         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1757         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1758         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1759         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1760         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1761         (thumb_legitimize_address): Delete.
1762         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1763         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1764         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1765         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1766         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
1767         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1768         Delete.
1769         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1770         Delete.
1771
1772         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1773         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1774         * config/m32r/m32r.c (m32r_legitimize_address): New.
1775         * config/m68k/m68k.c (m68k_legitimize_address): New.
1776         * config/score/score.c (score_legitimize_address): Standardize.
1777         * config/score/score3.c (score3_legitimize_address): Standardize.
1778         * config/score/score3.h (score3_legitimize_address): Adjust.
1779         * config/score/score7.c (score7_legitimize_address): Standardize.
1780         * config/score/score7.h (score7_legitimize_address): Adjust.
1781         * config/sh/sh.c (sh_legitimize_address): New.
1782         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1783
1784         * gcc/config/s390/s390.c (legitimize_address): Rename to...
1785         (s390_legitimize_address): ... this.
1786         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1787         (sparc_legitimize_address): ... this.
1788         * gcc/config/i386/i386.c (legitimize_address): Rename to...
1789         (ix86_legitimize_address): ... this.
1790         * gcc/config/avr/avr.c (legitimize_address): Rename to...
1791         (avr_legitimize_address): ... this.
1792         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1793         (mn10300_legitimize_address): ... this.
1794         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1795         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1796         (alpha_expand_mov): Adjust call.
1797
1798         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1799         * config/spu/spu.c (spu_legitimize_address): Likewise.
1800         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1801         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1802
1803 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1804
1805         * intl.c (locale_encoding, locale_utf8): New.
1806         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1807         * intl.h (locale_encoding, locale_utf8): Declare.
1808         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
1809         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1810         New.
1811         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1812         argument.
1813         (pp_tree_identifier): Define to call pp_base_tree_identifier.
1814         (pp_base_tree_identifier): Declare as function.
1815         (identifier_to_locale): Declare.
1816         * Makefile.in (pretty-print.o): Update dependencies.
1817         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
1818
1819 2009-05-04  Richard Guenther  <rguenther@suse.de>
1820
1821         PR middle-end/40015
1822         * builtins.c (fold_builtin_memory_op): Do not decay to element
1823         type if the size matches the whole array.
1824
1825 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
1826
1827         * expmed.c (synth_mult): When trying out a shift, pass the result
1828         of a signed shift.
1829
1830 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
1831
1832         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1833         (shiftsub1_cost): New.
1834         (init_expmed): Compute shiftsub1_cost.
1835         (synth_mult): Optimize multiplications by constants of the form
1836         -(2^^m-1) for some constant positive integer m.
1837
1838 2009-05-03  Richard Guenther  <rguenther@suse.de>
1839
1840         PR c/39983
1841         * c-typeck.c (array_to_pointer_conversion): Do not built
1842         ADDR_EXPRs of arrays of pointer-to-element type.
1843         * c-gimplify.c (c_gimplify_expr): Revert change fixing
1844         up wrong ADDR_EXPRs after-the-fact.
1845         * c-common.c (strict_aliasing_warning): Strip pointer
1846         conversions for obtaining the original type.
1847         * builtins.c (fold_builtin_memset): Handle array types.
1848         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1849         and array types
1850
1851 2009-05-03  Richard Guenther  <rguenther@suse.de>
1852
1853         PR middle-end/23329
1854         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1855         Do not lose casts from array types with unknown extent to array
1856         types with known extent.
1857         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1858         alias set compatibility.
1859
1860 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1861
1862         * flags.h (extra_warnings): Delete.
1863         * toplev.c (process_options): Handle Wuninitialized here.
1864         * opts.c (extra_warnings): Delete.
1865         (set_Wextra): Delete.
1866         (common_handle_option): -Wextra can be handled automatically.
1867         * c-opts.c (c_common_handle_option): Delete obsolete code.
1868         (c_common_post_options): Simplify comment.
1869         * common.opt (W): Add Var.
1870         (Wextra): Add Var.
1871         (Wuninitialized): Initialize to -1.
1872
1873 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
1874             Richard Guenther  <rguenther@suse.de>
1875
1876         * expr.c (get_def_for_expr): New function.
1877         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
1878         SSA rather than trees.
1879         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
1880         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
1881         
1882 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
1883
1884         * c-common.c (reswords): Add _Imaginary.
1885         * c-common.c (enum rid): Add RID_IMAGINARY.
1886
1887 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
1888
1889         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
1890         Patch by Richard Guenther.
1891
1892 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
1893
1894         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
1895         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1896         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
1897         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
1898         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
1899         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
1900         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
1901         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
1902         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
1903         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
1904         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
1905         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
1906         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
1907         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
1908         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
1909         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
1910         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
1911         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
1912
1913 2009-05-02  Richard Guenther  <rguenther@suse.de>
1914
1915         PR tree-optimization/39940
1916         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
1917         doing so.
1918
1919 2009-05-02  Richard Guenther  <rguenther@suse.de>
1920
1921         PR middle-end/40001
1922         * tree-ssa.c (execute_update_addresses_taken): Properly check
1923         if we can mark a variable DECL_GIMPLE_REG_P.
1924         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
1925         back to the end of the function.
1926         (is_gimple_reg_type): Remove complex type special casing.
1927         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
1928         if not optimizing.
1929
1930 2009-05-02  Ben Elliston  <bje@au.ibm.com>
1931
1932         * doc/collect2.texi (Collect2): Document search path behaviour
1933         when configured with --with-ld.
1934
1935 2009-05-02  Jan Hubicka  <jh@suse.cz>
1936
1937         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
1938         parameter; update callers.
1939         (coalesce_cost_edge): EH edges are costier because they needs
1940         splitting even if not critical and even more costier when there are
1941         multiple EH predecestors.
1942
1943 2009-05-02  Jan Hubicka  <jh@suse.cz>
1944
1945         * except.c (remove_eh_handler_and_replace): Handle updating after
1946         removing TRY blocks.
1947
1948 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
1949
1950         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1951
1952 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
1953
1954         * varasm.c: Do not include c-pragma.h.
1955         * attribs.c: Do not incude c-common.h.
1956
1957 2009-05-01  Michael Matz  <matz@suse.de>
1958
1959         * calls.c (initialize_argument_information): Handle SSA names like
1960         decls with a non MEM_P DECL_RTL.
1961
1962 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
1963
1964         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1965         * ipa-utils.c: Likewise.
1966         * ipa-type-escape.c: Likewise.
1967         * cgraphunit.c Do not include c-common.h.
1968         * ipa-pure-const.c: Likewise.
1969         * tree-if-conv.c: Likewise.
1970         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1971         * ipa-struct-reorg.c: Likewise.
1972         * tree-nomudflap.c: Likewise.
1973         * tree-ssa-structalias.c: Likewise.
1974
1975 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
1976
1977         * store-motion.c: Many cleanups to make this pass a first-class
1978         citizen instead of an appendix to gcse load motion.  Add TODO list
1979         to make this pass faster/cleaner/better.
1980
1981         (struct ls_expr): Post gcse.c-split cleanups.
1982         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
1983         "stores" field to "avail_stores".
1984         (pre_ldst_mems): Rename to store_motion_mems.
1985         (pre_ldst_table): Rename to store_motion_mems_table.
1986         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
1987         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1988         (ldst_entry): Rename to st_expr_entry, update users.
1989         (free_ldst_entry): Rename to free_st_expr_entry, update users.
1990         (free_ldst_mems): Rename to free_store_motion_mems, update users.
1991         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1992         update caller.
1993         (first_ls_expr): Rename to first_st_expr, update users.
1994         (next_ls_expr): Rename to next_st_expr, update users.
1995         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
1996         fields properly for store motion instead of names inherited from load
1997         motion in gcse.c.
1998         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1999         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
2000         are done with it.
2001
2002         (ae_kill): Rename to st_kill, update users.
2003         (ae_gen): Rename to st_avloc, update users.
2004         (transp): Rename to st_transp, update users.
2005         (pre_insert_map): Rename to st_insert_map, update users.
2006         (pre_delete_map): Rename to st_delete_map, update users.
2007         (insert_store, build_store_vectors, free_store_memory,
2008         one_store_motion_pass): Update for abovementioned changes.
2009
2010         (gcse_subst_count, gcse_create_count): Remove.
2011         (one_store_motion_pass): New statistics counters "n_stores_deleted"
2012         and "n_stores_created", local variables.
2013
2014         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
2015         use for_each_rtx.
2016
2017         (regvec, compute_store_table_current_insn): Remove.
2018         (reg_set_info, reg_clear_last_set): Remove.
2019         (compute_store_table): Use DF caches instead of local dataflow
2020         solvers.
2021
2022 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
2023
2024         * c-objc-common.c (c_tree_printer): Print identifiers with
2025         pp_identifier, not pp_string.  Mark "({anonymous})" for
2026         translation.
2027         * c-pretty-print.c (pp_c_ws_string): New.
2028         (pp_c_cv_qualifier, pp_c_type_specifier,
2029         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2030         pp_c_storage_class_specifier, pp_c_function_specifier,
2031         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2032         pp_c_primary_expression, pp_c_postfix_expression,
2033         pp_c_unary_expression, pp_c_shift_expression,
2034         pp_c_relational_expression, pp_c_equality_expression,
2035         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2036         use pp_string and pp_c_ws_string in place of pp_identifier and
2037         pp_c_identifier for non-identifiers.  Mark English strings for
2038         translation.
2039         * c-pretty-print.h (pp_c_ws_string): Declare.
2040
2041 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
2042             Roland McGrath <roland@redhat.com>
2043
2044         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
2045         (ENABLE_LD_BUILDID): New configuration option.
2046         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2047         (LINK_BUILDID_SPEC): New macro.
2048         (init_spec): If defined, prepend it between LINK_EH_SPEC and
2049         link_spec.
2050         * doc/install.texi: Document --enable-linker-build-id option.
2051         * configure: Rebuild.
2052         * config.in: Rebuild.
2053
2054 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
2055
2056         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2057         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2058         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
2059         MIPS_GP_SAVE_AREA_SIZE.
2060         * config/mips/mips.c (struct mips_frame_info): Update comment
2061         before arg_pointer_offset and hard_frame_pointer_offset.
2062         (mips_compute_frame_info): Update diagram before function: to
2063         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2064         indicate the position of frame_pointer_rtx with -fstack-protector and
2065         to show args_size.  Don't allocate cprestore area for leaf functions
2066         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
2067         cprestore_size.
2068         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2069
2070 2009-04-30  Michael Matz  <matz@suse.de>
2071
2072         PR tree-optimization/39955
2073         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
2074
2075 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2076
2077         * ira.c (setup_cover_and_important_classes):  Use safe macro
2078         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2079         directly.
2080         * genpreds.c (write_tm_preds_h):  Output suitable definition of
2081         REG_CLASS_FOR_CONSTRAINT.
2082
2083 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2084
2085         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2086         instead of an int.
2087         * bitmap.c (bitmap_descriptor): Likewise.
2088         * ggc-common.c (loc_descriptor): Likewise.
2089         * varray.c (varray_descriptor): Likewise.
2090         * vec.c (vec_descriptor): Likewise.
2091
2092 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2093
2094         * Makefile.in (dce.o): Add $(EXCEPT_H).
2095         * dce.c: Include except.h and delete redundant vector definitions.
2096         (deletable_insn_p): Return false for non-call insns that can throw
2097         if DF is running.
2098
2099 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2100
2101         * gcse.c (ae_gen): Remove.
2102         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2103         and make non-static function to make it available in store-motion.c.
2104         Update call sites with search-and-replace.
2105         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2106         extract_mentioned_regs, extract_mentioned_regs_helper,
2107         find_moveable_store, compute_store_table, load_kills_store, find_loads,
2108         store_killed_in_insn, store_killed_after, store_killed_before,
2109         build_store_vectors, insert_insn_start_basic_block, insert-store,
2110         remove_reachable_equiv_notes, replace_store_insn, delete_store,
2111         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2112         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2113         * store-motion.c: ...new file.  Also copy data structures from gcse.c
2114         and clean up to remove parts not used by store motion.
2115         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2116         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2117
2118 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2119
2120         PR target/38571
2121         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2122         when optimizing for size.
2123
2124 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
2125
2126         * gcse.c (gcse_constant_p): Fix typo in last change.
2127
2128 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2129
2130         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2131
2132 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2133
2134         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2135
2136 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
2137
2138         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2139         CONST_HIGH_PART result.
2140
2141 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
2142
2143         * config/avr/avr.c (initial_elimination_offset): Rename to
2144         avr_initial_elimination_offset.
2145         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2146         change return type to bool.
2147         (avr_can_eliminate): New function.
2148         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2149         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2150         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
2151         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
2152         avr_initial_elimination_offset.
2153         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2154         (avr_initial_elimination_offset): Define.
2155
2156 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
2157             Steven Bosscher  <steven@gcc.gnu.org>
2158
2159         PR rtl-optimization/39938
2160         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2161         * cfgrtl.c: Include insn-attr.h.
2162         (rest_of_pass_free_cfg): New function.
2163         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2164         * resource.c (init_resource_info): Remove call to df_analyze.
2165
2166 2009-04-29  Richard Guenther  <rguenther@suse.de>
2167
2168         PR target/39943
2169         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2170         allow conversion to signed integers.
2171
2172 2009-04-29  Richard Guenther  <rguenther@suse.de>
2173
2174         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2175         shifts of floating point vectors if the shift amount is
2176         a constant multiple of the element size.
2177
2178 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2179             Michael Matz  <matz@suse.de>
2180
2181         PR middle-end/39927
2182         PR bootstrap/39929
2183         * tree-outof-ssa.c (emit_partition_copy): New function.
2184         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2185         insert_part_to_rtx_on_edge): Perform the partition base var
2186         copy using emit_partition_copy.
2187         (insert_value_copy_on_edge): Convert constants to the right mode.
2188         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2189         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2190
2191 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2192
2193         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2194         scan backwards to try to find a constant to initialize it.
2195
2196         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2197         insn before the loop_end instruction, don't look past labels.
2198
2199 2009-04-29  Richard Guenther  <rguenther@suse.de>
2200
2201         PR middle-end/39937
2202         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2203         loose type conversions.
2204         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
2205         stmts only if there are no uses of its definition.
2206
2207 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2208
2209         * config/bfin/bfin.h (splitting_loops): Declare.
2210         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2211         Reorder bit definitions to be ascending.
2212         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2213         * config/bfin/bfin.c (splitting_loops): New variable.
2214         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2215         (struct loop_info): Remove members INIT and LOOP_INIT.
2216         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
2217         the LSETUP sequence.  Allow LC to be loaded from any register, but
2218         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
2219         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2220         set to 1.
2221         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2222         of reload_completed.
2223
2224         From Jie Zhang:
2225         * config/bfin/bfin.md (movsi_insn): Refine constraints.
2226
2227 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
2228
2229         * Makefile.in (PLUGIN_VERSION_H): New.
2230         (OBJS-common): Remove plugin-version.o.
2231         (plugin.o): Depend on (PLUGIN_VERSION_H).
2232         (plugin-version.o): Remove.
2233         * configure: Regenerate
2234         * configure.ac: Create plugin-version.h.
2235         * gcc-plugin.h (plugin_gcc_version): Remove.
2236         (plugin_default_version_check): Change signature.
2237         * plugin-version.c: Remove.
2238         * plugin.c: Include plugin-version.h.
2239         (str_plugin_gcc_version_name): Remove.
2240         (try_init_one_plugin): Pass gcc version to plugin_init.
2241         (plugin_default_version_check): Both gcc and plugin versions are now
2242         arguments.
2243
2244 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2245         
2246         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2247         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
2248         Remove special case testing for last insn of inner loops. Don't fail
2249         if the loop ends with a jump, emit an extra nop instead.
2250
2251         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2252         DREGS rather than comparing directly.  Remove code that tries to
2253         account for latencies.
2254
2255 2009-04-29  Richard Guenther  <rguenther@suse.de>
2256
2257         PR tree-optimization/39941
2258         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2259         eliminating an indirect call.
2260
2261 2009-04-29  Richard Guenther  <rguenther@suse.de>
2262
2263         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2264         parameter.  Allow invariants as base if !require_lvalue.
2265         (verify_gimple_assign_single): Adjust.
2266
2267 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2268
2269         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2270         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
2271         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2272         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
2273         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2274         a VEC_SELECT.
2275         * config/bfin/bfin.c (bfin_expand_builtin,
2276         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
2277
2278 2009-04-28  Richard Guenther  <rguenther@suse.de>
2279
2280         * tree-vect-loop.c (get_initial_def_for_induction): Use
2281         correct types for pointer increment.
2282
2283 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2284
2285         * toplev.c (print_version): Update GMP version string calculation.
2286
2287 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2288
2289         PR rtl-optimization/39938
2290         * resource.c (init_resource_info): Add call to df_analyze.
2291
2292 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2293
2294         * config/alpha/alpha.md (usegp): Cast the result of
2295         alpha_find_lo_sum_using_gp to enum attr_usegp.
2296         * config/alpha/alpha.c (override_options): Remove end-of-structure
2297         marker element from cpu_table.  Use array size of cpu_table to handle
2298         -mcpu and -mtune options.
2299         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2300
2301 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
2302
2303         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2304         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
2305         tune_32 and tune_64.
2306         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2307         support on PowerPC.
2308         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2309         * config/rs6000/option-defaults.h: ... here.  New file.
2310         (OPT_64, OPT_32): Define.
2311         (MASK_64BIT): Define to 0 if not already defined.
2312         (OPT_ARCH64, OPT_ARCH32): Define.
2313         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2314         and tune_64.
2315
2316 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2317
2318         * config/arm/arm.c (arm_override_options): Emit error on using
2319         fpa with AAPCS.
2320
2321 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2322
2323         PR rtl-optimization/39914
2324         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2325         registers for allocnos created from user-defined variables only
2326         when not optimizing.
2327
2328 2009-04-28  Richard Guenther  <rguenther@suse.de>
2329
2330         PR middle-end/39937
2331         * fold-const.c (fold_binary): Use distribute_real_division only
2332         on float types.
2333
2334 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
2335
2336         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2337         add hpux-stdint.h to tm_file.
2338         (hppa[12]*-*-hpux11*): Ditto.
2339         (ia64*-*-hpux*): Ditto.
2340         * config/hpux-stdint.h: New.
2341         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
2342         __STDC_EXT__ for all compiles.
2343         * config/pa/pa-hpux.h: Ditto.
2344         * config/pa/pa-hpux10.h: Ditto.
2345         * config/pa/pa-hpux11.h: Ditto.
2346
2347 2009-04-28  Catherine Moore  <clm@codesourcery.com>
2348
2349         * debug.h (set_name): Add comment.
2350
2351 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
2352
2353         PR target/39929
2354         * config/darwin.c (machopic_gen_offset): Check
2355         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2356         * config/arm/arm.c (require_pic_register): Likewise.
2357
2358 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
2359
2360         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2361         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2362         m32c_promote_prototypes): Delete.
2363
2364 2009-04-28  Michael Matz  <matz@suse.de>
2365
2366         PR middle-end/39922
2367         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2368         constants.
2369
2370 2009-04-28  Richard Guenther  <rguenther@suse.de>
2371
2372         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
2373
2374 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2375
2376         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2377         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2378         * config/arm/arm-tune.md: Regenerate.
2379
2380 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
2381
2382         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2383         block if there are complex incoming edges.
2384         (sel_merge_blocks): Remove useless assert.
2385         (sel_redirect_edge_and_branch): Check that edge was redirected.
2386         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2387         (sel_find_rgns): Delete declaration.
2388         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2389         the region when it is not a preheader.
2390
2391 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2392
2393         PR c/39323
2394         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2395
2396 2009-04-28  Richard Guenther  <rguenther@suse.de>
2397
2398         * tree.h (SSA_NAME_VALUE): Remove.
2399         (struct tree_ssa_name): Remove value_handle member.
2400         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2401         array for jump threading.
2402         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2403         SSA_NAME_VALUEs.
2404         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2405         * tree-flow.h (threadedge_initialize_values): Declare.
2406         (threadedge_finalize_values): Likewise.
2407         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2408         (SSA_NAME_VALUE): Define.
2409         (threadedge_initialize_values): New function.
2410         (threadedge_finalize_values): Likewise.
2411         * tree-ssa-dom.c (ssa_name_values): New global variable.
2412         (SSA_NAME_VALUE): Define.
2413         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
2414
2415 2009-04-28  Ira Rosen  <irar@il.ibm.com>
2416
2417         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2418         Use REPORT_VECTORIZED_LOCATIONS instead 
2419         REPORT_VECTORIZED_LOOPS.
2420         * tree-vectorizer.c (vect_verbosity_level): Make static.
2421         (vect_loop_location): Rename to vect_location.
2422         (vect_set_verbosity_level): Update comment.
2423         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2424         and vect_location.
2425         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2426         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2427         instead REPORT_UNVECTORIZED_LOOPS.
2428         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2429         and vect_loop_def to vect_external_def and vect_internal_def.
2430         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
2431         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
2432         REPORT_UNVECTORIZED_LOCATIONS.
2433         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2434         and vect_used_in_loop and to vect_unused_in_scope and 
2435         vect_used_in_scope.
2436         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2437         (vect_verbosity_level): Remove declaration.
2438         (vect_analyze_operations): Likewise.
2439         (vect_analyze_stmt): Declare.
2440         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2441         REPORT_UNVECTORIZED_LOCATIONS.
2442         (vect_get_loop_niters): Fix indentation.
2443         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2444         (vect_analyze_loop_operations): New function.
2445         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2446         vect_analyze_operations.
2447         (vect_is_simple_reduction): Use new names.
2448         (vectorizable_live_operation, vect_transform_loop): Likewise.
2449         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2450         to specify whether the data references can be a part of interleaving
2451         chain.
2452         (vect_analyze_data_ref_dependence): Use new names.
2453         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2454         (vect_create_addr_base_for_vector_ref): Remove redundant code.
2455         * tree-vect-patterns.c (widened_name_p): Use new names.
2456         (vect_recog_dot_prod_pattern): Likewise.
2457         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2458         (process_use, vect_mark_stmts_to_be_vectorized, 
2459         vect_model_simple_cost, vect_model_store_cost,
2460         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2461         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2462         vectorizable_operation, vectorizable_type_demotion,
2463         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2464         vectorizable_condition): Likewise.
2465         (vect_analyze_operations): Split into vect_analyze_loop_operations
2466         and ...
2467         (vect_analyze_stmt): ... new function.
2468         (new_stmt_vec_info): Use new names.
2469         (vect_is_simple_use): Use new names and fix comment.
2470         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2471         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2472
2473 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2474
2475         PR target/39911
2476         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2477         and integer modes for x87 operands.  Do not ICE for unsupported size,
2478         generate error instead.  Generate error for unsupported operand types.
2479         ['z']: Do not handle HImode memory operands specially.  Warning
2480         for floating-point operands.  Fallthru to 'Z' for unsupported operand
2481         types.  Do not ICE for unsupported size, generate error instead.
2482         (output_387_binary_op): Use %Z to output operands.
2483         (output_fp_compare): Ditto.
2484         (output_387_reg_move): Ditto.
2485
2486 2009-04-28  Ben Elliston  <bje@au.ibm.com>
2487
2488         PR c++/35652
2489         Revert:
2490
2491         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2492
2493         * builtins.c (c_strlen): Do not warn here.
2494         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2495         * c-common.c (pointer_int_sum): Take an explicit location.
2496         Warn about offsets out of bounds.
2497         * c-common.h (pointer_int_sum): Adjust declaration.
2498
2499 2009-04-27  Ian Lance Taylor  <iant@google.com>
2500
2501         * collect2.c (is_ctor_dtor): Change type of ret field in struct
2502         names to symkind.
2503         * dce.c (run_fast_df_dce): Change type of old_flags to int.
2504         * df-core.c (df_set_flags): Change return type to int.  Change
2505         type of old_flags to int.
2506         (df_clear_flags): Likewise.
2507         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2508         (df_get_conditional_uses): Likewise.
2509         * df.h (df_set_flags, df_clear_flags): Update declarations.
2510         * dwarf2out.c (struct indirect_string_node): Change type of form
2511         field to enum dwarf_form.
2512         (AT_string_form): Change return type to enum dwarf_form.
2513         * fixed-value.c (fixed_compare): Add cast to enum type.
2514         * fwprop.c (update_df): Change 0 to VOIDmode.
2515         * gensupport.c: Change 0 to UNKNOWN.
2516         * gimple.h (gimple_cond_code): Add cast to enum type.
2517         * haifa-sched.c (reemit_notes): Add cast to enum type.
2518         * hooks.c (hook_int_void_no_regs): Remove function.
2519         * hooks.h (hook_int_void_no_regs): Remove declaration.
2520         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
2521         * predict.c (combine_predictions_for_insn): Add casts to enum type.
2522         * real.c (real_arithmetic): Add cast to enum type.
2523         (real_compare): Likewise.
2524         * target.h (struct gcc_target): Change return type of
2525         branch_target_register_class to enum reg_class.
2526         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2527         default_branch_target_register_class.
2528         * targhooks.c (default_branch_target_register_class): New function.
2529         * targhooks.h (default_branch_target_register_class): Declare.
2530         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
2531         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2532         cast to int.
2533         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2534         ERROR_MARK.
2535         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2536         vect_uninitialized_def.  Change 0 to ERROR_MARK.
2537         * tree-vect-stmts.c (supportable_widening_operation): Don't
2538         initialize icode1 and icode2.
2539         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
2540         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2541         and to STD_C89.
2542         (cmn_err_flag_specs): Change 0 to STD_C89.
2543         (cmn_err_char_table): Likewise.
2544         * config/arm/arm.c (get_arm_condition_code): Change type of code
2545         to enum arm_cond_code.
2546         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2547         (IWMMXT_BUILTIN2): Likewise.
2548         (neon_builtin_type_bits): Don't define typedef.
2549         (neon_builtin_datum): Change type of bits field to int.
2550         (arm_expand_neon_args): Add cast to enum type.
2551         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2552         TLS_MODEL_NONE.
2553         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
2554         casts to enum type.
2555         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2556         MIPS_FP_COND_f.
2557         * config/mips/mips.md (jal_macro): Return enum constant.
2558         (single_insn): Likewise.
2559         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2560         CODE_FOR_nothing.
2561         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2562         casts to enum type.
2563         * config/s390/s390.c (s390_tune_flags): Change type to int.
2564         (s390_arch_flags): Likewise.
2565         (s390_handle_arch_option): Change flags field of struct pta to int.
2566         * config/s390/s390.h (s390_tune_flags): Update declaration.
2567         (s390_arch_flags): Likewise.
2568         * config/sh/sh.c (prepare_move_operands): Compare
2569         tls_symbolic_operand result with enum constant.
2570         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2571         (sh_expand_prologue): Add cast to enum type.
2572         (sh_expand_epilogue): Likewise.
2573         (tls_symbolic_operand): Change return type to enum tls_model.
2574         (fpscr_set_from_mem): Add cast to enum type.
2575         (legitimize_pic_address): Compare tls_symbolic_operand result with
2576         enum constant.
2577         (sh_target_reg_class): Change return type to enum reg_class.
2578         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2579         PROCESSOR_xxx.
2580         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2581         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
2582         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2583         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2584         (delayed_branch, tls_call_delay): Likewise.
2585         (eligible_for_sibcall_delay): Likewise.
2586         (eligible_for_return_delay): Likewise. 
2587         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2588         (spu_expand_builtin_1): Likewise.
2589
2590         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2591         for all types of conversions.
2592         (output_init_element): Issue -Wc++-compat warning if needed when
2593         initializing a bitfield with enum type.
2594         * c-parser.c (c_parser_expression): Set original_type to
2595         original_type of right hand operand of comman operator.
2596
2597 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2598
2599         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2600         grammar nits.
2601         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
2602         * doc/cpp.texi (Standard Predefined Macros)
2603         (Implementation-defined behavior): Likewise.
2604         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
2605         * doc/gimple.texi (GIMPLE Exception Handling)
2606         (@code{GIMPLE_ASSIGN}): Likewise.
2607         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
2608         * doc/invoke.texi (Warning Options, Optimize Options)
2609         (AVR Options, Darwin Options): Likewise.
2610         (Optimize Options): Reformulate -fwhole-program description.
2611         * doc/loop.texi (Lambda): Likewise.
2612         * doc/md.texi (Output Template, Define Constraints)
2613         (Standard Names, Insn Splitting): Likewise.
2614         * doc/options.texi (Option properties): Likewise.
2615         * doc/passes.texi (Tree-SSA passes): Likewise.
2616         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2617         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2618         (File Names and DBX): Likewise.
2619         * doc/trouble.texi (Incompatibilities): Likewise.
2620
2621 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2622
2623         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2624         instruction is correct.
2625
2626 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2627
2628         Allow non-constant arguments to conversion intrinsics.
2629         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2630         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2631         * spu.c (print_operand): Handle 'v' and 'w'.
2632         (exp2_immediate_p, spu_gen_exp2): Define.
2633         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2634         spu_convtf_1): Update parameter descriptions.
2635         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
2636         * constraints.md ('v', 'w'): New.
2637         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2638         Remove.
2639         (i2f, I2F): New define_mode_attr.
2640         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2641         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2642         fixuns_truncv4sfv4si2):  Update to use mode attribute.
2643         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2644         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2645         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2646         patterns for combine.
2647
2648 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
2649
2650         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2651         (cprop, hoist, pre, store_motion): New debug counters.
2652         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2653         is not an RTL pass anymore.
2654         (pass_profiling): Remove extern decl for pass removed in 2005.
2655         (pass_gcse, pass_jump_bypass): Remove.
2656         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2657         to 0 for clean state.
2658         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2659         * cse.c (gate_handle_cse_after_global_opts,
2660         rest_of_handle_cse_after_global_opts): New functions.
2661         (pass_cse_after_global_opts): New pass, does local CSE.
2662         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2663         (TV_CPROP): New timevar.
2664         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2665         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2666         (gcse_main, recompute_all_luids): Remove.
2667         (compute_hash_table_work): Call max_reg_num instead of reading
2668         max_gcse_regno.
2669         (cprop_jump): Don't set run_jump_opt_after_gcse.
2670         (constprop_register): Always allow to alter jumps.
2671         (cprop_insn): Likewise.
2672         (do_local_cprop): Likewise.
2673         (local_cprop_pass): Likewise.  Return non-zero if something changed.
2674         (cprop): Remove function, fold interesting bits into one_cprop_pass.
2675         (find_implicit_sets): Add note about missed optimization opportunity.
2676         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2677         pass_rtl_cprop execute function.
2678         Don't bother tracking the pass number, each pass gets its own dumpfile
2679         now anyway.
2680         Always allow to alter jumpsand bypass jumps.
2681         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2682         will just find no suitable set.
2683         (pre_edge_insert): Fix dumping, this function is for PRE only.
2684         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2685         pass_rtl_pre execute function.
2686         (hoist_code): Return non-zero if something changed.  Keep track of
2687         substitutions and insertions for statistics gathering similar to PRE.
2688         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2689         called from the pass_rtl_hoist execute function.  Show pass statistics.
2690         (compute_store_table): Use max_reg_num directly instead of using the
2691         formerly global max_gcse_regno.
2692         (build_store_vectors): Likewise.
2693         (replace_store_insn): Fix dumping.
2694         (store_motion): Rename to ...
2695         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
2696         pass, called from the pass_rtl_store_motion execute function.  Keep
2697         track of substitutions and insertions for statistics gathering similar
2698         to PRE.
2699         (bypass_jumps): Remove, fold interesting bits into ...
2700         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
2701         from the pass_rtl_cprop execute function.
2702         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2703         pass_jump_bypass): Remove.
2704         (gate_handle_gcse, rest_of_handle_gcse): Remove.
2705         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2706         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2707         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2708         (gate_rtl_store_motion, execute_rtl_store_motion,
2709         pass_rtl_store_motion): New.
2710         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2711         make it clear that -fcse-skip-blocks is a no-op for backward compat.
2712         * passes.c (init_optimization_passes): Remove pass_gcse and
2713         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
2714         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
2715         instead of pass_jump_bypass.
2716
2717 2009-04-27  Richard Guenther  <rguenther@suse.de>
2718
2719         PR middle-end/39928
2720         * gimplify.c (gimplify_expr): If we are required to create
2721         a temporary make sure it ends up as register.
2722
2723 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
2724
2725         PR target/39903
2726         * config/i386/i386.c (construct_container): Don't call
2727         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2728         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2729
2730 2009-04-27  Michael Matz  <matz@suse.de>
2731
2732         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2733         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2734         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2735         (dump_replaceable_exprs): Take a bitmap.
2736         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2737         array.
2738         (expand_gimple_basic_block): Likewise.
2739         * tree-ssa-ter.c (struct temp_expr_table_d): Make
2740         replaceable_expressions member a bitmap.
2741         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2742         (mark_replaceable): Likewise.
2743         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2744         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2745
2746 2009-04-27  Richard Guenther  <rguenther@suse.de>
2747
2748         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2749         (verify_stmts): Dispatch to gimple/type verification code.
2750         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2751         issue with call argument types.
2752
2753 2009-04-27  Michael Matz  <matz@suse.de>
2754
2755         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2756         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2757         to above.
2758
2759 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
2760             Eric Botcazou  <ebotcazou@adacore.com>
2761
2762         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2763         a label's basic block.
2764         (mark_target_live_regs): Tidy and rework obsolete comments.
2765         Change back DF problem to LIVE.  If a label starts a basic block,
2766         assume that all registers that used to be live then still are.
2767         (init_resource_info): If a label starts a basic block, set its
2768         BLOCK_FOR_INSN accordingly.
2769         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2770
2771 2009-04-27  Richard Guenther  <rguenther@suse.de>
2772
2773         * tree-flow-inline.h (function_ann): Remove.
2774         (get_function_ann): Likewise.
2775         * tree-dfa.c (create_function_ann): Remove.
2776         * tree-flow.h (struct static_var_ann_d): Remove.
2777         (struct function_ann_d): Likewise.
2778         (union tree_ann_d): Remove fdecl member.
2779         (function_ann_t): Remove.
2780         (function_ann, get_function_ann, create_function_ann): Remove
2781         declarations.
2782
2783 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
2784
2785         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2786
2787 2009-04-27  Jan Hubicka  <jh@suse.cz>
2788
2789         * ipa-pure-const.c (struct funct_state_d): New fields
2790         state_previously_known, looping_previously_known; remove
2791         state_set_in_source.
2792         (analyze_function): Use new fields.
2793         (propagate): Avoid assumption that state_set_in_source imply
2794         nonlooping.
2795
2796         * tree-ssa-loop-niter.c (finite_loop_p): New function.
2797         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2798         * cfgloop.h (finite_loop_p): Declare.
2799
2800 2009-04-26  Michael Matz  <matz@suse.de>
2801
2802         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
2803
2804 2009-04-26  Michael Matz  <matz@suse.de>
2805
2806         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2807         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2808         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2809         pass_mark_used_blocks): Remove.
2810         * tree-optimize.c (pass_free_datastructures,
2811         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2812         * passes.c (init_optimization_passes): Don't call
2813         pass_mark_used_blocks, remove dead code.
2814
2815 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
2816
2817         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2818         * tree-ssa-live.h (register_ssa_partition): Likewise.
2819
2820 2009-04-26  Michael Matz  <matz@suse.de>
2821
2822         Expand from SSA.
2823         * builtins.c (fold_builtin_next_arg): Handle SSA names.
2824         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2825         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2826         SSA names. 
2827         (compare_pairs): Swap cost comparison.
2828         (coalesce_ssa_name): Don't use change_partition_var.
2829         * tree-nrv.c (struct nrv_data): Add modified member.
2830         (finalize_nrv_r): Set it.
2831         (tree_nrv): Use it to update statements.
2832         (pass_nrv): Require PROP_ssa.
2833         * tree-mudflap.c (mf_decl_cache_locals,
2834         mf_build_check_statement_for): Use make_rename_temp.
2835         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2836         * alias.c (find_base_decl): Handle SSA names.
2837         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2838         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2839         * rtl.h (set_reg_attrs_for_parm): Declare.
2840         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2841         to "optimized", remove unused locals at finish.
2842         (execute_free_datastructures): Make global, call
2843         delete_tree_cfg_annotations.
2844         (execute_free_cfg_annotations): Don't call
2845         delete_tree_cfg_annotations.
2846
2847         * ssaexpand.h: New file.
2848         * expr.c (toplevel): Include ssaexpand.h.
2849         (expand_assignment): Handle SSA names the same as register variables.
2850         (expand_expr_real_1): Expand SSA names.
2851         * cfgexpand.c (toplevel): Include ssaexpand.h.
2852         (SA): New global variable.
2853         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2854         (SSAVAR): New macro.
2855         (set_rtl): New helper function.
2856         (add_stack_var): Deal with SSA names, use set_rtl.
2857         (expand_one_stack_var_at): Likewise.
2858         (expand_one_stack_var): Deal with SSA names.
2859         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2860         before unique numbers.
2861         (expand_stack_vars): Use set_rtl.
2862         (expand_one_var): Accept SSA names, add asserts for them, feed them
2863         to above subroutines.
2864         (expand_used_vars): Expand all partitions (without default defs),
2865         then only the local decls (ignoring those expanded already).
2866         (expand_gimple_cond): Remove edges when jumpif() expands an
2867         unconditional jump.
2868         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
2869         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
2870         SSA name.
2871         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
2872         members of SA; deal with PARM_DECL partitions here; expand
2873         all PHI nodes, free tree datastructures and SA.  Commit instructions
2874         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
2875         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
2876         info and statements at start, collect garbage at finish.
2877         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
2878         (VAR_ANN_PARTITION) Remove.
2879         (change_partition_var): Don't declare.
2880         (partition_to_var): Always return SSA names.
2881         (var_to_partition): Only accept SSA names.
2882         (register_ssa_partition): Only check argument.
2883         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
2884         member.
2885         (delete_var_map): Don't free it.
2886         (var_union): Only accept SSA names, simplify.
2887         (partition_view_init): Mark only useful SSA names as used.
2888         (partition_view_fini): Only deal with SSA names.
2889         (change_partition_var): Remove.
2890         (dump_var_map): Use ssa_name instead of partition_to_var member.
2891         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
2892         basic blocks.
2893         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
2894         (struct _elim_graph): New member const_dests; nodes member vector of
2895         ints.
2896         (set_location_for_edge): New static helper.
2897         (create_temp): Remove.
2898         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
2899         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
2900         (new_elim_graph): Allocate const_dests member.
2901         (clean_elim_graph): Truncate const_dests member.
2902         (delete_elim_graph): Free const_dests member.
2903         (elim_graph_size): Adapt to new type of nodes member.
2904         (elim_graph_add_node): Likewise.
2905         (eliminate_name): Likewise.
2906         (eliminate_build): Don't take basic block argument, deal only with
2907         partition numbers, not variables.
2908         (get_temp_reg): New static helper.
2909         (elim_create): Use it, deal with RTL temporaries instead of trees.
2910         (eliminate_phi): Adjust all calls to new signature.
2911         (assign_vars, replace_use_variable, replace_def_variable): Remove.
2912         (rewrite_trees): Only do checking.
2913         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
2914         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
2915         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
2916         contains_tree_r, MAX_STMTS_IN_LATCH,
2917         process_single_block_loop_latch, analyze_edges_for_bb,
2918         perform_edge_inserts): Remove.
2919         (expand_phi_nodes): New global function.
2920         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
2921         functions, initialize new parameter, remember partitions having a
2922         default def.
2923         (finish_out_of_ssa): New global function.
2924         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
2925         don't reset in_ssa_p here, don't disable TER when mudflap.
2926         (pass_del_ssa): Remove.
2927         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
2928         partition members.
2929         (execute_free_datastructures): Declare.
2930         * Makefile.in (SSAEXPAND_H): New variable.
2931         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
2932         * basic-block.h (commit_one_edge_insertion): Declare.
2933         * passes.c (init_optimization_passes): Move pass_nrv and
2934         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
2935         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
2936         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
2937         (redirect_branch_edge): Deal with super block when expanding, split
2938         out jump patching itself into ...
2939         (patch_jump_insn): ... here, new static helper.
2940
2941 2009-04-26  Michael Matz  <matz@suse.de>
2942
2943         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
2944         beyond num_ssa_names.
2945         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2946         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2947
2948 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
2949
2950         PR inline-asm/39543
2951         * fwprop.c (forward_propagate_asm): New function.
2952         (forward_propagate_and_simplify): Propagate also into __asm, if it
2953         doesn't increase the number of referenced registers.
2954
2955         PR c/39889
2956         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2957
2958 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
2959
2960         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2961         note_nonlocal_vla_type for nonlocal VLAs.
2962         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2963         contains_remapped_vars, remap_vla_decls): New functions.
2964         (convert_nonlocal_reference_stmt): If not optimizing, call
2965         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2966         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2967         if it wasn't found in var_map.
2968         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
2969         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2970         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2971         declare_vars.
2972         * gimplify.c (nonlocal_vlas): New variable.
2973         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2974         referenced VLAs.
2975         (gimplify_body): Create and destroy nonlocal_vlas.
2976
2977         * dwarf2out.c (loc_descr_plus_const): New function.
2978         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2979         mem_loc_descriptor, loc_descriptor_from_tree_1,
2980         descr_info_loc, gen_variable_die): Use it.
2981
2982         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2983         !TREE_STATIC VAR_DECLs.
2984         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
2985         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
2986         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
2987         DECL_BY_REFERENCE is valid.
2988         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2989         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2990         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2991         Copy DECL_BY_REFERENCE.
2992         (struct nesting_copy_body_data): New type.
2993         (nesting_copy_decl): New function.
2994         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2995         if they have variable length.
2996
2997 2009-04-26  Michael Matz  <matz@suse.de>
2998
2999         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
3000         mark new temporaries for renaming.
3001
3002 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3003
3004         PR c/39581
3005         * c-decl.c (global_bindings_p): Return negative value.
3006         (c_variable_size): New.  Based on variable_size from
3007         stor-layout.c.
3008         (grokdeclarator): Call c_variable_size not variable_size.
3009
3010 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
3011
3012         * config/i386/i386.c (print_operand) ['z']: Fix typo.
3013
3014 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
3015
3016         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
3017         Redefine it to just use mingw/include.
3018         (ASM_SPEC): Rules for -m32 and -m64.
3019         (LINK_SPEC): Use Likewise.
3020         (SPEC_32): New define.
3021         (SPEC_64): Likewise.
3022         (SUB_LINK_SPEC): Likewise.
3023         (MULTILIB_DEFAULTS): New define.
3024         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3025         Add multilib options.
3026         (MULTILIB_DIRNAMES): Likewise.
3027         (MULTILIB_OSDIRNAMES): Likewise.
3028         (LIBGCC): Likewise.
3029         (INSTALL_LIBGCC): Likewise.
3030
3031 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3032
3033         PR c/39556
3034         * c-tree.h (enum c_inline_static_type): New.
3035         (record_inline_static): Declare.
3036         * c-decl.c (struct c_inline_static, c_inline_statics,
3037         record_inline_static, check_inline_statics): New.
3038         (pop_file_scope): Call check_inline_statics.
3039         (start_decl): Call record_inline_static instead of pedwarning
3040         directly for static in inline function.
3041         * c-typeck.c (build_external_ref): Call record_inline_static
3042         instead of pedwarning directly for static referenced in inline
3043         function.
3044
3045 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
3046
3047         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3048         not new but only being rescanned.
3049         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3050         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3051         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3052         record_set_info, compute_set, grealloc): Remove.
3053         (recompute_all_luids): New function.
3054         (gcse_main): Don't compute sets, and don't do related memory
3055         allocations/free-ing.  If something changed before the end of the
3056         pass, update LUIDs using recompute_all_luids.
3057         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
3058         (free_gcse_mem): Don't free it either.
3059         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3060         Use the df insn LUIDs.
3061         (load_killed_in_block): Likewise.
3062         (compute_hash_table_work): Don't compute reg_set_in_block.
3063         (compute_transp): Use DF_REG_DEF_CHAINs.
3064         (local_cprop_pass): Don't use compute_sets and related functions.
3065         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3066         Use get_max_uid() instead of max_cuid.
3067         (insert_insn_end_basic_block, pre_insert_copy_insn,
3068         update_ld_motion_stores): Don't try to
3069         keep reg_set tables up to date.
3070         (pre_insert_copies): Use df insn LUIDs.
3071         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3072         (reg_set_info): Don't use extra bitmap argument.
3073         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
3074         information to compute regs_set_in_block.
3075         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3076         (bypass_jumps): Don't use compute_sets and friends.
3077
3078 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3079
3080         PR testsuite/39710
3081         * opts.c (undocumented_msg): Do not leave blank even with
3082         ENABLE_CHECKING.
3083
3084 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3085
3086         * c-decl.c (build_enumerator): Allow values folding to integer
3087         constants but not integer constant expressions with a pedwarn if
3088         pedantic.
3089
3090 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3091
3092         PR c/39582
3093         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3094         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3095         type is an integer constant.
3096
3097 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3098
3099         PR target/39897
3100         * config/i386/i386.c (print_operand) ['z']: Revert handling of
3101         HImode operands.
3102
3103 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3104
3105         PR c/39564
3106         * c-decl.c (grokdeclarator): Diagnose declarations of functions
3107         with variably modified return type and no storage class
3108         specifiers, except for the case of nested functions.  Distinguish
3109         extern declarations of functions with variably modified return
3110         types from those of objects with variably modified types.
3111
3112 2009-04-25  Jan Hubicka  <jh@suse.cz>
3113
3114         * tree.c (list_equal_p): New function.
3115         * tree.h (list_equal_p): Declare.
3116         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3117         basic_block_def, basic_block, const_basic_block): New.
3118         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3119         (redirect_eh_edge): New function.
3120         (make_eh_edge_update_phi): EH edges are not abnormal.
3121         * except.c: Include tree-flow.h.
3122         (list_match): New function.
3123         (eh_region_replaceable_by_p): New function.
3124         (replace_region): New function.
3125         (hash_type_list): New function.
3126         (hash_eh_region): New function.
3127         (eh_regions_equal_p): New function.
3128         (merge_peers): New function.
3129         (remove_unreachable_regions): Verify EH tree when checking;
3130         merge peers.
3131         (copy_eh_region_1): New function.
3132         (copy_eh_region): New function.
3133         (push_reachable_handler): New function.
3134         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3135         regions without label but with live RESX.
3136         * except.h (redirect_eh_edge_to_label): New.
3137         * tree-flow.h (redirect_eh_edge): New.
3138         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3139         basic_block_def, basic_block, const_basic_block): Remove.
3140         * Makefile.in (except.o): Add dependency on tree-flow.h
3141         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3142         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3143         Remove.
3144
3145 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
3146
3147         PR bootstrap/39645
3148         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3149         on the destination of memcpy.
3150
3151 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
3152
3153         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3154         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3155         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3156
3157 2009-04-25  Jan Hubicka  <jh@suse.cz>
3158
3159         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3160         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3161         to be reached by different label than left.
3162         (update_eh_edges): Update comment; remove edge_to_remove if possible
3163         and return true if suceeded.
3164         (cleanup_empty_eh): Accept sharing map; handle shared regions.
3165         (cleanup_eh): Compute sharing map.
3166         * except.c (remove_eh_handler_and_replace): Add argument if we should
3167         update regions.
3168         (remove_unreachable_regions): Update for label sharing.
3169         (label_to_region_map): Likewise.
3170         (get_next_region_sharing_label): New function.
3171         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3172         prev_try pointers.
3173         (remove_eh_handler): Update.
3174         (remove_eh_region_and_replace_by_outer_of): New function.
3175         * except.h (struct eh_region): Add next_region_sharing_label.
3176         (remove_eh_region_and_replace_by_outer_of,
3177         get_next_region_sharing_label): Declare.
3178         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3179
3180 2009-04-25  Jan Hubicka  <jh@suse.cz>
3181
3182         * tree-cfg.c (split_critical_edges): Split also edges where we can't
3183         insert code even if they are not critical.
3184
3185 2009-04-25  Jan Hubicka  <jh@suse.cz>
3186
3187         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3188         (gimple_can_remove_branch_p): EH edges won't remove branch by
3189         redirection.
3190         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3191         updating of non-abnormal EH edges.
3192         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3193         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3194         (split_critical_edges): Split also edges where emitting code on them
3195         will lead to splitting later.
3196
3197 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3198             H.J. Lu  <hongjiu.lu@intel.com>
3199
3200         PR target/39590
3201         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3202         the configured assembler supports fildq and fistpq mnemonics.
3203         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3204         * configure: Regenerated.
3205         * config.in: Ditto.
3206
3207         * config/i386/i386.c (print_operand): Handle 'Z'.
3208         ['z']: Remove handling of special fild/fist suffixes.
3209         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3210         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3211         suffix of fild insn.
3212         (*floatsi<mode>2_vector_mixed): Ditto.
3213         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3214         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3215         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3216         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3217         * config/i386/gas.h (GAS_MNEMONICS): Remove.
3218
3219 2009-04-25  Ben Elliston  <bje@au.ibm.com>
3220  
3221         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3222         the source of a set operation.
3223
3224 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
3225
3226         * target.h (struct gcc_target): Add case_values_threshold field.
3227         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3228         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3229         * targhooks.c (default_case_values_threshold): New function.
3230         * targhooks.h (default_case_values_threshold): Declare function.
3231         * stmt.c (expand_case): Use case_values_threshold target hook.
3232         * expr.h (case_values_threshold): Remove declartation.
3233         * expr.c (case_values_threshold): Remove function.
3234         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3235
3236         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3237         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3238         (avr_case_values_threshold): Declare as static.
3239         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3240
3241         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3242         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3243         (mn10300_case_values_threshold): New function.
3244
3245 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3246
3247         * ira.c (setup_cover_and_important_classes): Add enum cast.
3248
3249 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3250
3251         * genpreds.c (write_enum_constraint_num): Output definition of
3252         CONSTRAINT_NUM_DEFINED_P macro.
3253         * ira.c (setup_cover_and_important_classes): Use
3254         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3255         
3256 2009-04-24  DJ Delorie  <dj@redhat.com>
3257
3258         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3259         __SH2A_SINGLE_ONLY__ also.
3260
3261 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
3262
3263         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3264         (movdf_internal): Ditto.
3265         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3266         SFmode and DFmode constants.
3267         (ia64_print_operand): Add 'G' format for printing
3268         floating point constants.
3269
3270 2009-04-24  Richard Guenther  <rguenther@suse.de>
3271
3272         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3273         from unsigned additions.
3274
3275 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
3276
3277         * c-typeck.c (set_init_index): Allow array designators that are
3278         not integer constant expressions with a pedwarn if pedantic.
3279
3280 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3281
3282         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3283         zero if no overlap in nonzero bits between the operands.
3284
3285 2009-04-24  Ian Lance Taylor  <iant@google.com>
3286
3287         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3288         (record_dead_and_set_regs): Likewise.
3289         * df.h (struct df_mw_hardreg): Change flags field to int.
3290         (struct df_base_ref): Likewise.
3291         (struct df): Change changeable_flags field to int.
3292         * df-scan.c (df_defs_record): Change clobber_flags to int.
3293         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3294         constants rather than #define macros.
3295         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3296         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3297         (enum dwarf_calling_convention): Likewise.
3298         (enum dwarf_line_number_x_ops): Likewise.
3299         (enum dwarf_call_frame_info): Likewise.
3300         (enum dwarf_source_language): Likewise.
3301         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3302         (add_calling_convention_attribute): Likewise.
3303         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3304         (combine_comparisons): Change compcode to int.  Add cast to enum type.
3305         * genrecog.c (maybe_both_true_2): Change c to int.
3306         (write_switch): Likewise.  Add cast to enum type.
3307         * gimplify.c (gimplify_omp_for): Handle return values from
3308         gimplify_expr using MIN rather than bitwise or.
3309         (gimplify_expr): Add cast to enum type.
3310         * ipa-prop.c (update_jump_functions_after_inlining): Change
3311         IPA_BOTTOM to IPA_JF_UNKNOWN.
3312         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3313         Add casts to enum type.
3314         (setup_cover_and_important_classes): Change cl to int.  Add casts
3315         to enum type.
3316         (setup_class_translate): Change cl and mode to int.
3317         (ira_init_once): Change mode to int.
3318         (free_register_move_costs): Likewise.
3319         (setup_prohibited_mode_move_regs): Add casts to enum type.
3320         * langhooks.c (add_builtin_function_common): Rework assertion that
3321         value fits bitfield.
3322         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3323         * omega.c (omega_do_elimination): Avoid math on enum types.
3324         * optabs.c (expand_vec_shift_expr): Remove casts to int.
3325         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
3326         int local to handle integral_argment value.
3327         * regmove.c (try_auto_increment): Change PUT_MODE to
3328         PUT_REG_NOTE_KIND.
3329         * reload.c (push_secondary_reload): Add casts to enum type.
3330         (secondary_reload_class, find_valid_class): Likewise.
3331         * reload1.c (emit_input_reload_insns): Likewise.
3332         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3333         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3334         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3335         constant.
3336         * tree.c (build_common_builtin_nodes): Add casts to enum type.
3337         * tree-complex.c (complex_lattice_t): Typedef to int rather than
3338         enum type.
3339         (expand_complex_libcall): Add casts to enum type.
3340         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3341         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3342         with ERROR_MARK, not NUM_TREE_CODES.
3343         (vect_create_epilog_for_reduction): Likewise.
3344         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
3345         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
3346         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3347         enum machine_mode.
3348         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3349         vect_unused_in_loop.  Change 0 to loop_vect.
3350         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
3351         * var-tracking.c (get_init_value): Change return type to enum
3352         var_init_status.
3353         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3354         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3355         arm_fp_model.
3356         (arm_override_options): Add casts to enum type.
3357         (arm_emit_tls_decoration): Likewise.
3358         * config/i386/i386.c (ix86_function_specific_restore): Add casts
3359         to enum type.
3360         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3361         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3362         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3363         enum type.
3364         * config/s390/s390.c (code_for_builtin_64): Change to array of
3365         enum insn_code.
3366         (code_for_builtin_31): Likewise.
3367         (s390_expand_builtin): Change code_for_builtin to enum insn_code
3368         const *.
3369         * config/sparc/sparc.c (sparc_override_options): Change value
3370         field in struct code_model to enum cmodel.  In initializer change
3371         0 to NULL and add cast to enum type.
3372
3373         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3374         Change all callers.  Issue a -Wc++-compat warning using
3375         lhs_origtype if necessary.
3376         (convert_for_assignment): Issue -Wc++-compat warnings about
3377         invalid conversions to enum type on assignment.
3378         * c-common.h (build_modify_expr): Update declaration.
3379
3380 2009-04-24  Nick Clifton  <nickc@redhat.com>
3381
3382         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3383         (function_arg_advance): Likewise.
3384         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3385         5th alternative.
3386
3387 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3388
3389         * config/s390/constraints.md ('I', 'J'): Fix condition.
3390
3391 2009-04-24  Diego Novillo  <dnovillo@google.com>
3392
3393         * gengtype-parse.c (parse_error): Add newline after message.
3394
3395 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3396
3397         * config/i386/sse.md (avxmodesuffixs): Removed.
3398         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3399         (*avx_pinsr<ssevecsize>): This.
3400
3401 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3402
3403         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3404         follow chains of regs with a single definition, and allow expressions
3405         that are function_invariant_p.
3406         (simple_rhs_p): Allow expressions that are function_invariant_p.
3407
3408 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
3409
3410         PR middle-end/39867
3411         * fold-const.c (fold_cond_expr_with_comparison): When folding
3412         > and >= to MAX, make sure the MAX uses the same type as the
3413         comparison's operands.
3414
3415 2009-04-24  Nick Clifton  <nickc@redhat.com>
3416
3417         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3418         addressing for DImode accesses.
3419         (frv_print_operand_address): Handle PLUS case.
3420         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
3421
3422 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
3423
3424         PR rtl-optimization/39794
3425         * alias.c (canon_true_dependence): Add x_addr argument.
3426         * rtl.h (canon_true_dependence): Adjust prototype.
3427         * cse.c (check_dependence): Adjust canon_true_dependence callers.
3428         * cselib.c (cselib_invalidate_mem): Likewise.
3429         * gcse.c (compute_transp): Likewise.
3430         * dse.c (scan_reads_nospill): Likewise.
3431         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
3432         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3433         canon_base_addr of the group, plus optional offset.
3434         (struct group_info): Rename canon_base_mem to
3435         canon_base_addr.
3436         (get_group_info): Set canon_base_addr to canon_rtx of base, not
3437         canon_rtx of base_mem.
3438
3439 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
3440
3441         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3442         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3443
3444 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3445
3446         * config/spu/spu-builtins.h: Delete file.
3447
3448         * config/spu/spu.h (enum spu_builtin_type): Move here from
3449         spu-builtins.h.
3450         (struct spu_builtin_description): Likewise.  Add GTY marker.
3451         Do not use enum spu_function_code or enum insn_code.
3452         (spu_builtins): Add extern declaration.
3453
3454         * config/spu/spu.c: Do not include "spu-builtins.h".
3455         (enum spu_function_code, enum spu_builtin_type_index,
3456         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3457         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3458         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3459         unsigned_V2DI_type_node): Move here from spu-builtins.h.
3460         (spu_builtin_types): Make static.  Add GTY marker.
3461         (spu_builtins): Add extern declaration with GTY marker.
3462         Include "gt-spu.h".
3463
3464         * config/spu/spu-c.c: Do not include "spu-builtins.h".
3465         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3466         Check programmatically whether all parameters are scalar.
3467
3468         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3469
3470 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3471
3472         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3473         assignment from the constructor either if the target is volatile.
3474
3475 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
3476
3477         * config/arm/arm.md (insv): Do not share operands[0].
3478
3479 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
3480
3481         * config/vxlib-tls.c (active_tls_threads): Delete.
3482         (delete_hook_installed): New.
3483         (tls_delete_hook): Don't delete the delete hook.
3484         (tls_destructor): Delete it here.
3485         (__gthread_set_specific): Adjust installing the delete hook.
3486         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3487         __gthread_leave_tsd_dtor_context.
3488
3489 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
3490
3491         * c-format.c (gcc_tdiag_char_table): Add support for %E.
3492
3493 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
3494
3495         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3496         enum type.
3497         (alpha_rtx_costs): Ditto.
3498         (emit_unlikely_jump): Use add_reg_note.
3499         (emit_frame_store_1): Ditto.
3500         (alpha_expand_prologue): Ditto.
3501         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3502         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3503
3504 2009-04-23  Nick Clifton  <nickc@redhat.com>
3505
3506         * config/v850/v850.md (epilogue): Remove suppressed code.
3507         (return): Rename to return_simple and remove test of frame size.
3508         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3509         to gen_return_simple.
3510
3511 2009-04-22  Jing Yu  <jingyu@google.com>
3512
3513         PR testsuite/39781
3514         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3515
3516 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3517
3518         PR C/31499
3519         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3520         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
3521         value is a VECTOR_CST, the element type is the element type of the
3522         vector.
3523
3524 2009-04-22  DJ Delorie  <dj@redhat.com>
3525
3526         * config/m32c/m32c.h: Update GTY annotations to new syntax.
3527
3528 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
3529
3530         * alias.c (find_base_term): Move around LO_SUM case, so that
3531         CONST falls through into PLUS/MINUS handling.
3532
3533         PR c/39855
3534         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3535         into 0, use omit_one_operand.
3536
3537 2009-04-23  Ben Elliston  <bje@au.ibm.com>
3538
3539         * config/rs6000/linux-unwind.h (get_regs): Remove type
3540         puns. Change the type of `pc' to an array of unsigned ints and
3541         update all users.  Constify frame24.
3542
3543 2009-04-22  DJ Delorie  <dj@redhat.com>
3544
3545         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3546         declarations before code.
3547         (current_function_special_page_vector): Likewise.
3548         (m32c_expand_insv): Silence a warning.
3549
3550 2009-04-21  Taras Glek  <tglek@mozilla.com>
3551
3552         * alias.c: Update GTY annotations to new syntax.
3553         * basic-block.h: Likewise.
3554         * bitmap.h: Likewise.
3555         * c-common.h: Likewise.
3556         * c-decl.c: Likewise.
3557         * c-parser.c: Likewise.
3558         * c-pragma.c: Likewise.
3559         * c-tree.h: Likewise.
3560         * cfgloop.h: Likewise.
3561         * cgraph.h: Likewise.
3562         * config/alpha/alpha.c: Likewise.
3563         * config/arm/arm.h: Likewise.
3564         * config/avr/avr.h: Likewise.
3565         * config/bfin/bfin.c: Likewise.
3566         * config/cris/cris.c: Likewise.
3567         * config/darwin.c: Likewise.
3568         * config/frv/frv.c: Likewise.
3569         * config/i386/i386.c: Likewise.
3570         * config/i386/i386.h: Likewise.
3571         * config/i386/winnt.c: Likewise.
3572         * config/ia64/ia64.h: Likewise.
3573         * config/iq2000/iq2000.c: Likewise.
3574         * config/mips/mips.c: Likewise.
3575         * config/mmix/mmix.h: Likewise.
3576         * config/pa/pa.c: Likewise.
3577         * config/pa/pa.h: Likewise.
3578         * config/rs6000/rs6000.c: Likewise.
3579         * config/s390/s390.c: Likewise.
3580         * config/sparc/sparc.c: Likewise.
3581         * config/xtensa/xtensa.c: Likewise.
3582         * cselib.h: Likewise.
3583         * dbxout.c: Likewise.
3584         * dwarf2out.c: Likewise.
3585         * except.c: Likewise.
3586         * except.h: Likewise.
3587         * fixed-value.h: Likewise.
3588         * function.c: Likewise.
3589         * function.h: Likewise.
3590         * gimple.h: Likewise.
3591         * integrate.c: Likewise.
3592         * optabs.c: Likewise.
3593         * output.h: Likewise.
3594         * real.h: Likewise.
3595         * rtl.h: Likewise.
3596         * stringpool.c: Likewise.
3597         * tree-data-ref.c: Likewise.
3598         * tree-flow.h: Likewise.
3599         * tree-scalar-evolution.c: Likewise.
3600         * tree-ssa-address.c: Likewise.
3601         * tree-ssa-alias.h: Likewise.
3602         * tree-ssa-operands.h: Likewise.
3603         * tree.c: Likewise.
3604         * tree.h: Likewise.
3605         * varasm.c: Likewise.
3606         * varray.h: Likewise.
3607         * vec.h: Likewise.
3608         * coretypes.h: Do not define GTY macro if it is already defined.
3609         * doc/gty.texi: Update GTY documentation to new syntax.
3610         * gengtype-lex.l: Enforce attribute-like syntax for GTY
3611         annotations on structs.
3612         * gengtype-parse.c: Likewise.
3613
3614 2009-04-22  Mark Heffernan  <meheff@google.com>
3615
3616         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
3617
3618 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3619
3620         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3621         where appropriate.
3622
3623 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3624
3625         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3626         the same as a PLUS without a shift.  Increase the cost of a
3627         CONST_INT in MULT.
3628
3629 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3630
3631         * Makefile.in: Update dependencies.
3632         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
3633         * errors.h: Remove bogus comment about compatibility.
3634         (warning): Update declaration.
3635         * genautomata.c: Update all calls to warning.
3636         * gimple.c: Do not include errors.h. Include toplev.h.
3637         * tree-ssa-structalias.c: Do not include errors.h.
3638         * omega.c: Likewise.
3639         * tree-ssa-reassoc.c: Likewise.
3640         * config/spu/spu-c.c: Likewise.
3641         * config/spu/t-spu-elf: Update dependencies.
3642
3643 2009-04-22  Richard Guenther  <rguenther@suse.de>
3644
3645         PR tree-optimization/39824
3646         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3647         make sure the types are compatible.
3648
3649 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3650
3651         PR c++/14875
3652         * c-common.c (c_parse_error): Take a token_flags parameter.
3653         Use token_type for the token type instead.
3654         Pass token_flags to cpp_type2name.
3655         * c-common.h (c_parse_error): Update declaration.
3656         * c-parser.c (c_parser_error): Pass 0 as token flags.
3657
3658 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
3659
3660         PR rtl-optimization/39580
3661         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
3662         
3663 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3664
3665         * function.c (expand_function_end): Do not emit a jump to the "naked"
3666         return label for fall-through returns.
3667         * except.c (sjlj_emit_function_exit): Always place the call to the
3668         unregister function at the location installed by expand_function_end.
3669
3670 2009-04-22  Richard Guenther  <rguenther@suse.de>
3671
3672         PR tree-optimization/39845
3673         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3674         (gen_inbound_check): Likewise.
3675
3676 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3677
3678         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3679         padding for PPC.
3680         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3681         * config/vxlib.c (__gthread_once): Add race guard for PPC.
3682
3683 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3684
3685         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3686         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3687         shift counts to avoid out-of-bounds array accesses.
3688
3689 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3690
3691         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3692         (Pmode): Move above.
3693
3694 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
3695
3696         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3697         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3698         GET_CODE macro.  Use IN_RANGE macro where appropriate.
3699         * config/alpha/alpha.h: Ditto.
3700         * config/alpha/alpha.md: Ditto.
3701         * config/alpha/constraints.md: Ditto.
3702         * config/alpha/predicates.md: Ditto.
3703         
3704 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3705
3706         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3707         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3708         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3709         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3710         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3711         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3712         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3713         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3714         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3715         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3716         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3717         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3718         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3719         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3720         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3721         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3722         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3723         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3724         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3725         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3726         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3727         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3728         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3729         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3730         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3731         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3732         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3733
3734 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3735
3736         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3737         references from comments.
3738         * cfgbuild.c: (count_basic_blocks): Delete.
3739         (find_basic_blocks_1): Delete.
3740         (find_basic_blocks): Delete.
3741         * except.c (finish_eh_generation): Make static.  Move comment from
3742         except.h here.  Remove find_basic_blocks references from comments.
3743         * except.h (finish_eh_generation): Delete.
3744         * basic-block.h (find_basic_blocks): Delete.
3745         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3746
3747 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3748
3749         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
3750         (sdbout_parms):  Likewise.
3751
3752 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
3753
3754         * config/sh/sh.c (prepare_cbranch_operands): Use
3755         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3756         (expand_cbranchdi4): Likewise.
3757         (from_compare): Add cast to enum type.
3758         (expand_cbranchsi4): Use add_reg_note.
3759         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3760         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3761         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3762         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3763         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3764         instead of CODE_FOR_nothing.
3765         (cbranchdi4): Likewise.  Fix the order of arguments for
3766         gen_rtx_fmt_ee.
3767         (push_fpscr): Use add_reg_note.
3768         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3769         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3770         
3771 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
3772
3773         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3774         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3775         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3776         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3777         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3778         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3779         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3780         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3781         config/alpha/x-vms, config/arc/t-arc,
3782         config/arm/README-interworking, config/arm/arm-c.c,
3783         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3784         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3785         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3786         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3787         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3788         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3789         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3790         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3791         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3792         config/cris/t-elfmulti, config/crx/t-crx,
3793         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3794         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3795         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3796         config/h8300/t-h8300, config/i386/athlon.md,
3797         config/i386/darwin-libgcc.10.4.ver,
3798         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3799         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3800         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3801         config/i386/t-linux64, config/i386/t-nwld,
3802         config/i386/t-rtems-i386, config/i386/t-sol2-10,
3803         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3804         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3805         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3806         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3807         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3808         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3809         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3810         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3811         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3812         config/m68k/t-uclinux, config/mcore/t-mcore,
3813         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3814         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3815         config/mips/crtn.asm, config/mips/irix-crti.asm,
3816         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3817         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3818         config/mips/mips-fixed.md, config/mips/sb1.md,
3819         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3820         config/mips/t-iris6, config/mips/t-isa3264,
3821         config/mips/t-libgcc-mips16, config/mips/t-linux64,
3822         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3823         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3824         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3825         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3826         config/mn10300/t-linux, config/mn10300/t-mn10300,
3827         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3828         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3829         config/picochip/libgccExtras/clzsi2.asm,
3830         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3831         config/rs6000/darwin-libgcc.10.4.ver,
3832         config/rs6000/darwin-libgcc.10.5.ver,
3833         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3834         config/rs6000/t-aix43, config/rs6000/t-aix52,
3835         config/rs6000/t-darwin, config/rs6000/t-fprules,
3836         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3837         config/rs6000/t-lynx, config/rs6000/t-netbsd,
3838         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3839         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3840         config/rs6000/t-rtems, config/rs6000/t-spe,
3841         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3842         config/score/t-score-elf, config/sh/divcost-analysis,
3843         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3844         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3845         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3846         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3847         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3848         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3849         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3850         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3851         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3852         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3853         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3854         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3855         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3856         limitx.h, version.c, xcoff.h: Add copyright and license notices.
3857         * config/h8300/genmova.sh: Include copyright and license notices
3858         in generated output.
3859         * config/h8300/mova.md: Regenerate.
3860         * doc/install.texi2html: Include word "Copyright" in copyright
3861         notice and use name "Free Software Foundation, Inc.".
3862         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3863         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3864         ChangeLog-2007, ChangeLog-2008: Correct dates.
3865
3866 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3867
3868         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
3869         NE_EXPR operations as well.
3870         * c-parser.c (c_parser_condition): Do not set location information on
3871         the condition.
3872         (c_parser_conditional_expression): Likewise.
3873         (c_parser_binary_expression): Set location information on operators.
3874         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
3875         TRUTH_NOT_EXPR has been folded.
3876         * fold-const.c (fold_truth_not_expr): Copy location information from
3877         the incoming expression to the outgoing one.
3878         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
3879         recursive calls on the LHS of the operator but pass that of the
3880         operator to recursive calls on the RHS of the operator.  Set it
3881         on the COND_EXPR.
3882         (shortcut_cond_expr): Set the locus of the operator on the second
3883         COND_EXPR and that of the expression on the first in degenerate cases.
3884         Pass the locus of the expression to calls to shortcut_cond_r.
3885         Set the locus of the 'then' block on the associated jump, if any.
3886         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
3887         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
3888         expression to call to gimplify_boolean_expr.
3889
3890 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
3891
3892         * config.gcc: Add additional configuration for
3893         i686-w64-mingw* and x86_64-w64-mingw* triplet.
3894         * config/i386/mingw-w64.h: New mingw-w64 specific header.
3895         (CPP_SPEC): Redefine for allowing -municode option.
3896         (STARTFILE_SPEC): Likewise.
3897         * config/i386/t-mingw-w64: New.
3898         * config/i386/mingw-w64.opt: New.
3899         (municode): Add new target option.
3900         * doc/invoke.texi (municode): Add documentation for new option.
3901
3902 2009-04-21  Ian Lance Taylor  <iant@google.com>
3903
3904         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3905         Correct test for number of arguments.
3906         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3907
3908 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
3909
3910         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
3911         argument of emit_library_call.
3912
3913 2009-04-21  Richard Guenther  <rguenther@suse.de>
3914
3915         PR middle-end/39829
3916         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
3917         inside VIEW_CONVERT_EXPRs.
3918
3919 2009-04-21  Martin Jambor  <mjambor@suse.cz>
3920
3921         * tree-switch-conversion.c (build_constructors): Split a long line.
3922         (constructor_contains_same_values_p): New function.
3923         (build_one_array): Create assigns of constants if possible, do not
3924         call mark_sym_for_renaming, call update_stmt.
3925         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
3926         make_rename_temp.  Do not call mark_symbols_for_renaming, call
3927         update_stmt.
3928         (gen_def_assigns): Do not call mark_symbols_for_renaming or
3929         find_new_referenced_vars, call update_stmt.
3930         (gen_inbound_check): Use create_tmp_var and create ssa names manually
3931         instead of calling make_rename_temp.  Do not call
3932         find_new_referenced_vars or mark_symbols_for_renaming, call
3933         update_stmt.
3934
3935 2009-04-21  Richard Guenther  <rguenther@suse.de>
3936
3937         PR tree-optimization/39827
3938         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
3939         (tree_ssa_phiprop): Pass the correct array size.
3940
3941 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
3942
3943         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
3944
3945 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3946
3947         PR 16202
3948         * c-typeck.c (lvalue_p): Move declaration ...
3949         * c-common.h (lvalue_p): ... to here.
3950         * c-common.c (candidate_equal_p): New.
3951         (add_tlist): Use it.
3952         (merge_tlist): Use it.
3953         (warn_for_collisions_1): Likewise.
3954         (warning_candidate_p): Accept more candidates.
3955         (verify_tree): A warning candidate can be an expression. Use
3956         candidate_equal_p.
3957
3958 2009-04-21  Ben Elliston  <bje@au.ibm.com>
3959
3960         PR target/5267
3961         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3962         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3963         options.  Remove -mcall-solaris documentation.
3964
3965 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3966
3967         PR c++/13358
3968         * doc/invoke.texi (-Wlong-long): Update description.
3969         * c-lex (interpret_integer): Only warn if there was no previous
3970         overflow and -Wlong-long is enabled.
3971         * c-decl.c (declspecs_add_type): Drop redundant flags.
3972         * c.opt (Wlong-long): Init to -1.
3973         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3974         and front-end warn_long_long. Wlong-long only depends on other
3975         flags if it is uninitialized.
3976         * c-parser.c (disable_extension_diagnostics): warn_long_long is
3977         the same for CPP and FE.
3978         (restore_extension_diagnostics): Likewise.
3979
3980 2009-04-20  Ian Lance Taylor  <iant@google.com>
3981
3982         Fix enum conversions which are invalid in C++:
3983         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
3984         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
3985         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
3986         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
3987         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
3988         (dbxout_parms): Likewise.
3989         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
3990         (df_clear_flags): Likewise.
3991         * df-problems.c (df_rd_bb_local_compute_process_def): Change
3992         top_flag parameter to int.
3993         (df_chain_create_bb_process_use): Likewise.
3994         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3995         Remove cast.
3996         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3997         (df_ref_create_structure, df_def_record_1): Likewise.
3998         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3999         (df_notes_rescan): Change 0 to VOIDmode in function call.
4000         (df_get_call_refs, df_insn_refs_collect): Likewise.
4001         (df_bb_regs_collect): Likewise.
4002         (df_entry_block_defs_collect): Likewise.
4003         (df_exit_block_uses_collect): Likewise.
4004         * df.h: Update declarations.
4005         * double-int.c (double_int_divmod): Add cast to enum type.
4006         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
4007         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
4008         (based_loc_descr): Likewise.
4009         (loc_descriptor_from_tree_1): Change first_op and second_op to
4010         enum dwarf_location_atom.  Add cast to enum type.
4011         * expmed.c (init_expmed): Change 0 to SET in function call.
4012         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
4013         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
4014         (do_store_flag): Likewise.
4015         * fixed-value.h (struct fixed_value): Change mode to enum
4016         machine_mode.
4017         * function.c (assign_parms): Change 0 to VOIDmode in function call.
4018         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
4019         function call.
4020         (insert_insn_decl, insert_decl, insert_state): Likewise.
4021         (automata_list_finish): Likewise.
4022         * genrecog.c (process_define_predicate): Add cast to enum type.
4023         * gensupport.c (init_predicate_table): Add cast to enum type.
4024         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4025         function call.
4026         (gimple_build_call_1, gimple_build_label): Likewise.
4027         (gimple_build_goto, gimple_build_asm_1): Likewise.
4028         (gimple_build_switch_1, gimple_build_cdt): Likewise.
4029         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
4030         (enum fallback): Rename from enum fallback_t.
4031         (fallback_t): Typedef as int.
4032         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4033         GSI_SAME_STMT in function call.
4034         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4035         enum type.
4036         (setup_reg_class_relations): Likewise.
4037         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
4038         (setup_prohibited_class_mode_regs): Add cast to enum type.
4039         (setup_prohibited_mode_move_regs): Likewise.
4040         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
4041         (record_address_regs): Change i to enum reg_class.
4042         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4043         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4044         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4045         (GET_MODE_2XWIDER_MODE): Likewise.
4046         (GET_CLASS_NARROWEST_MODE): Likewise.
4047         * omp-low.c (expand_omp_for): Add cast to enum type.
4048         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4049         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4050         * postreload.c (reload_cse_simplify_operands): Change rclass local
4051         to enum reg_class.
4052         * predict.c (combine_predictions_for_insn): Change best_predictor
4053         and predictor to enum br_predictor.
4054         (combine_predictions_for_bb): Likewise.
4055         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4056         use SET_PREDICT_EXPR_OUTCOME.
4057         * real.c (real_arithmetic): Change icode to code in function call.
4058         * reginfo.c (init_move_cost): Add casts to enum type.
4059         (init_reg_sets_1, init_fake_stack_mems): Likewise.
4060         * regmove.c (regclass_compatible_p): Change class0 and class1 to
4061         enum reg_class.
4062         * reload.c (find_valid_class): Add casts to enum type.
4063         (push_reload): Change 0 to NO_REGS in function call.
4064         (find_reloads): Change this_alternative to array of enum
4065         reg_class.  Remove some now-unnecessary casts.
4066         (make_memloc): Change 0 to VOIDmode in function call.
4067         * reload1.c (reload): Change 0 to VOIDmode in function call.
4068         (eliminate_regs_1, elimination_effects): Likewise.
4069         (eliminate_regs_in_insn): Likewise.
4070         (emit_input_reload_insns): Add cast to enum type.
4071         (delete_output_reload): Change 0 to VOIDmode in function call.
4072         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4073         to enum type in function call.
4074         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4075         (SET_PREDICT_EXPR_OUTCOME): Define.
4076         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
4077         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4078         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4079         (dump_function): Likewise.
4080         * tree-dump.h: Update declarations.
4081         * tree-pass.h: Update declarations.
4082         * varasm.c (assemble_integer): Change mclass to enum mode_class.
4083         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4084         enum type.
4085         (arm_rtx_costs_1): Correct parenthesization.
4086         (arm_rtx_costs): Add casts to enum type.
4087         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4088         (vfp_emit_fstmd): Use add_rg_note.
4089         (emit_multi_reg_push, emit_sfm): Likewise.
4090         (thumb_set_frame_pointer): Likewise.
4091         (arm_expand_prologue): Likewise.
4092         (arm_regno_class): Change return type to enum reg_class.
4093         (thumb1_expand_prologue): Use add_reg_note.
4094         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4095         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4096         in function call.
4097         * config/arm/gentune.sh: Add cast to enum type.
4098         * config/arm/arm-tune.md: Rebuild.
4099         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4100         (ix86_split_fp_branch, predict_jump): Likewise.
4101         (ix86_expand_multi_arg_builtin): Change sub_code from enum
4102         insn_code to enum rtx_code.
4103         (ix86_builtin_vectorized_function): Add cast to enum type.
4104         * config/i386/i386.md (truncdfsf2): Change slot to enum
4105         ix86_stack_slot.
4106         (truncxf<mode>2, isinf<mode>2): Likewise.
4107         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4108         enum type.
4109         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4110         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4111         (insert_bundle_state): Change 1 to INSERT in function call.
4112         (ia64_add_bundle_selector_before): Likewise.
4113         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4114         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4115         (restore_stack_nonlocal): Likewise.
4116         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4117         function call.
4118         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4119         function call.
4120         (mips_rtx_costs): Likewise.
4121         (mips_override_options): Add casts to enum type.
4122         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4123         in function call.
4124         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4125         (store_reg, set_reg_plus_d): Likewise.
4126         (hppa_expand_prologue, hppa_profile_hook): Likewise.
4127         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4128         cast to enum type.
4129         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4130         function call.
4131         (emit_unlikely_jump): Use add_reg_note.
4132         (rs6000_emit_allocate_stack): Likewise.
4133         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4134         (output_toc): Change 1 to INSERT in function call.
4135         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4136         (rs6000_initialize_trampoline): Likewise.
4137         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4138         function call.
4139         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4140         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4141         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4142         (save_gprs): Use add_reg_note.
4143         (s390_emit_prologue): Likewise.
4144         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4145         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4146         (sparc_fold_builtin): Add cast to enum type.
4147         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4148         enum insn_code.
4149         (spu_expand_prologue): Use add_reg_note.
4150         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
4151
4152 2009-04-20  Ian Lance Taylor  <iant@google.com>
4153
4154         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4155         (c_parser_postfix_expression_after_primary): Get VEC for list of
4156         arguments.  Get original types of arguments.  Call
4157         build_function_call_vec.
4158         (cached_expr_list_1, cached_expr_list_2): New static variables.
4159         (c_parser_expr_list): Change return type to VEC *.  Add
4160         p_orig_types parameter.  Change all callers.
4161         (c_parser_release_expr): New static function.
4162         (c_parser_vec_to_tree_list): New static function.
4163         * c-typeck.c (build_function_call): Rewrite to build a VEC and
4164         call build_function_call_vec.
4165         (build_function_call_vec): New function, based on old
4166         build_function_call.
4167         (convert_arguments): Remove nargs and argarray parameters.  Change
4168         values to a VEC.  Add origtypes parameter.
4169         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
4170         (convert_for_assignment): Add origtype parameter.  Change all
4171         callers.  If warn_cxx_compat, check for conversion to an enum
4172         type when calling a function.
4173         (store_init_value): Add origtype parameter.  Change all callers.
4174         (digest_init): Likewise.
4175         (struct init_node): Add origtype field.
4176         (add_pending_init): Add origtype parameter.  Change all callers.
4177         (output_init_element): Likewise.
4178         (output_pending_init_elements): Pass origtype from init_node to
4179         output_init_element.
4180         (process_init_element): Pass origtype from c_expr to
4181         output_init_element.
4182         (c_finish_return): Add origtype parameter.  Change all callers.
4183         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
4184         caller.
4185         (sync_resolve_params): Likewise.
4186         (sync_resolve_return): Change params to first_param.  Change caller.
4187         (resolve_overloaded_builtins): Change params to VEC *.  Change
4188         callers.  Save first parameter around call to build_function_call_vec.
4189         * c-decl.c (finish_decl): Add origtype parameter.  Change all
4190         callers.  Call build_function_call_vec rather than
4191         build_function_call for cleanup.
4192         * c-tree.h: Update declarations.
4193         * c-common.h: Update declarations.
4194         * stub-objc.c (objc_rewrite_function_call): Change parameter from
4195         params to first_param.
4196         * target.h (struct gcc_target): Change resolve_overloaded_builtin
4197         params parameter from tree to void *.
4198         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4199         Change arglist parameter to have type void *, and to be a pointer
4200         to a VEC.
4201         * config/rs6000/rs6000-protos.h
4202         (altivec_resolve_overloaded_builtin): Update declaration.
4203         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4204         fnargs parameter to have type void *, and to be a pointer to a
4205         VEC.  Call build_function_call_vec instead of
4206         build_function_call.
4207         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
4208
4209 2009-04-20  Joey Ye  <joey.ye@intel.com>
4210             Xuepeng Guo  <xuepeng.guo@intel.com>
4211             H.J. Lu  <hongjiu.lu@intel.com>
4212
4213         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4214
4215         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4216         (IX86_LEA_PRIORITY): Likewise.
4217         (distance_non_agu_define): New function.
4218         (distance_agu_use): Likewise.
4219         (ix86_lea_for_add_ok): Likewise.
4220         (ix86_dep_by_shift_count): Likewise.
4221
4222         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4223         should split for LEA.
4224
4225         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4226         function.
4227         (ix86_dep_by_shift_count): Likewise.
4228
4229 2009-04-20  Richard Guenther  <rguenther@suse.de>
4230
4231         * expr.c (handled_component_p): Move ...
4232         * tree.h (handled_component_p): ... here.
4233         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4234         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4235         and REALPART_EXPR to be in one group.
4236
4237 2009-04-20  Richard Guenther  <rguenther@suse.de>
4238
4239         * basic-block.h (get_all_dominated_blocks): Declare.
4240         * dominance.c (get_all_dominated_blocks): New function.
4241         * tree-cfg.c (get_all_dominated_blocks): Remove.
4242         (remove_edge_and_dominated_blocks): Adjust.
4243         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4244         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
4245         instead of recursing.
4246
4247 2009-04-20  Doug Kwan  <dougkwan@google.com>
4248
4249         * cgraph.h (cgraph_node_ptr): New type for vector functions.
4250         (struct cgraph_node_set_def): New type.
4251         (cgraph_node_set) New type. Also declare vector functions.
4252         (struct cgraph_node_set_element_def): New type.
4253         (cgraph_node_set_element): Ditto.
4254         (cgraph_node_set_iterator): New iterator type.
4255         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4256         cgraph_node_set_remove, dump_cgraph_node_set,
4257         debug_cgraph_node_set): New prototypes.
4258         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4259         cgraph_node_set_size): New inlines.
4260         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4261         including cgraph.h.
4262         (struct ipa_opt_pass): Add struct cgraph_node_set_def
4263         argument to function 'write_summary'.
4264         * ipa.c: Include ggc.h.
4265         (hash_cgraph_node_set_element,
4266         eq_cgraph_node_set_element, cgraph_node_set_new,
4267         cgraph_node_set_add, cgraph_node_set_remove,
4268         cgraph_node_set_find, dump_cgraph_node_set,
4269         debug_cgraph_node_set): New functions.
4270         * Makefile.in (ipa.o): Add dependency on GGC_H.
4271
4272 2009-04-20  Ira Rosen  <irar@il.ibm.com>
4273
4274         PR tree-optimization/39675
4275         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
4276         check of the return code of vect_schedule_slp. Check that
4277         stmt_vec_info still exists for the statement, before checking its
4278         vectorization type.
4279
4280 2009-04-20  Michael Matz  <matz@suse.de>
4281
4282         * Makefile.in (generated_files): Take out $(simple_generated_c).
4283
4284 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
4285
4286         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
4287         (UINTPTR_TYPE):  Likewise.
4288
4289 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4290
4291         PR c/37481
4292         * c-typeck.c (digest_init): Check for initializing an array with a
4293         string literal.
4294
4295 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4296
4297         PR c/19771
4298         * c-semantics.c (pop_stmt_list): Propagate
4299         STATEMENT_LIST_HAS_LABEL to parent statement list.
4300
4301 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
4302
4303         * config/mips/mips.h (mips_tune_attr): New macro.
4304         * config/mips/mips.md (cpu): Use it.
4305
4306 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4307
4308         PR c/38243
4309         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4310         declaring a tag.
4311
4312 2009-04-19  Diego Novillo  <dnovillo@google.com>
4313
4314         * toplev.c (compile_file): Move call to coverage_finish ...
4315         * cgraphunit.c (ipa_passes): ... here.
4316         Call cgraph_process_new_functions.
4317         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4318         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4319
4320 2009-04-19  Jan Hubicka  <jh@suse.cz>
4321
4322         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4323         cfun.
4324         (dump_cgraph_node): Dump can throw external flag.
4325         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4326
4327 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4328
4329         PR c/32061
4330         PR c++/36954
4331         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4332         * common.opt (Wlogical-op): Move from here...
4333         * c.opt (Wlogical-op): ... to here.
4334         * c-typeck.c (parser_build_binary_op): Update call to
4335         warn_logical_operator.
4336         * c-opts.c (c_common_post_options): Enable warn_logical_op with
4337         extra_warnings.
4338         * c-common.c (warn_logical_op): Update.
4339         * c-common.h (warn_logical_op): Update declaration.
4340
4341 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4342
4343         * tree.c (protected_set_expr_location): Fix formatting.
4344
4345 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4346
4347         PR c/27676
4348         * c-typeck.c (readonly_warning): new.
4349         (build_unary_op, build_modify_expr): Use readonly_warning for
4350         storing into something readonly but not const-qualified.
4351
4352 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4353
4354         PR c/22367
4355         * c-typeck.c (build_unary_op): Check for taking address of
4356         expression of type void.
4357
4358 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4359
4360         PR c/35210
4361         * c-typeck.c (build_function_call): Check for calling a function
4362         with qualified void return types.  Call require_complete_type when
4363         generating a trap.
4364
4365 2009-04-18  Jan Hubicka  <jh@suse.cz>
4366
4367         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4368         Set nothrow flag.
4369         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4370         can_throw_external flag.
4371         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4372         * ipa-pure-const.c (ignore_edge): New function.
4373         (propagate): Compute order for NOTHROW computation; set NOTHROWs
4374         only over can_throw_external edges.
4375         (local_pure_const): Add nothrow flag.
4376         * ipa-utils.c (searchc): Add ignore_edge callback.
4377         (ipa_utils_reduced_inorder): Add ignore_edge callback.
4378         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4379         (set_nothrow_function_flags): Update cgraph.
4380         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4381
4382 2009-04-18  Richard Guenther  <rguenther@suse.de>
4383
4384         PR middle-end/39804
4385         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4386         (fold_stmt): ... this and ...
4387         (fold_stmt_inplace): ... this.
4388         (fold_stmt_1): Fold references in calls and asms.
4389         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4390
4391 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4392
4393         * tree-vrp.c (ssa_name_nonzero_p): Remove.
4394         * tree.h: Remove the prototype for ssa_name_nonzero_p.
4395
4396 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4397
4398         * tree.c (function_args_count): Remove.
4399         * tree.h: Remove the prototype for function_args_count.
4400
4401 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4402
4403         * tree-iterator.c (expr_only): Remove.
4404         * tree.h: Remove the prototype for expr_only.
4405
4406 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4407
4408         * reginfo.c (cannot_change_mode_set_regs): Remove.
4409         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4410
4411 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
4412
4413         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4414         whether operands 0 and 1 overlaps.
4415
4416 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4417
4418         PR middle-end/36902
4419         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4420         pointer. Use warning_at instead of warning.
4421         (search_for_addr_array): Likewise.
4422         (check_array_bounds): Likewise.
4423         (check_all_array_refs): Check that the incoming edge is not in the
4424         list of edges to be removed.
4425         (check_all_array_refs): Avoid the temporal pointer.
4426         (vrp_visit_cond_stmt): Fix typo.
4427         (simplify_switch_using_ranges): Handle the case where the switch
4428         index is an integer constant.
4429
4430 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
4431
4432         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4433
4434 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4435
4436         * doc/extend.texi, doc/invoke.texi: Fix typos.
4437
4438 2009-04-17  Cary Coutant  <ccoutant@google.com>
4439
4440         * tree-flow-inline.h (get_lineno): Fix inverted test.
4441
4442 2009-04-17  Diego Novillo  <dnovillo@google.com>
4443
4444         * tree-ssa-pre.c (create_expression_by_pieces): Remove
4445         assertion for AVAIL_OUT.
4446
4447 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
4448
4449         PR target/38627
4450         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4451         * config/sh/linux-atomic.asm: Likewise.
4452
4453 2009-04-17  Diego Novillo  <dnovillo@google.com>
4454
4455         * except.c (debug_eh_tree): New.
4456         (struct eh_region, struct eh_status): Move ...
4457         * except.h: ... here.
4458         (add_type_for_runtime): Declare extern.
4459         (lookup_type_for_runtime): Likewise.
4460         (debug_eh_tree): Declare.
4461         * Makefile.in (GTFILES): List except.h before except.c
4462
4463 2009-04-17  Diego Novillo  <dnovillo@google.com>
4464
4465         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
4466         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4467         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4468         (find_vars_r): ... here.
4469         * tree-flow.h (find_referenced_vars_in): Declare.
4470         * tree-ssa-pre.c (create_expression_by_pieces): Assert
4471         that AVAIL_OUT exists for BLOCK.
4472         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4473         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4474         (tree-parloops.o): Likewise.
4475
4476 2009-04-17  Simon Baldwin  <simonb@google.com>
4477
4478         * toplev.c (default_tree_printer): Add handling for %E format.
4479
4480 2009-04-17  Diego Novillo  <dnovillo@google.com>
4481
4482         * tree-pretty-print.c (dump_generic_node): Add break after
4483         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
4484         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
4485         FUNCTION_TYPE together.  Call print_struct_decl when printing
4486         structures and TDF_SLIM is not given.
4487         (print_struct_decl): Fix logic for detecting recursion.
4488
4489 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4490
4491         PR 31567
4492         * gcc.c (create_at_file): New.
4493         (compile_input_file_p): New.
4494         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4495         * main.c (main): Update call to toplev_main.
4496         * toplev.c (toplev_main): Change signature. Call expandargv.
4497         * toplev.h (toplev_main): Change signature.
4498
4499 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4500
4501         * dwarf2out.c (field_byte_offset): Use the type size as the field size
4502         if the latter is not constant.
4503
4504 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
4505
4506         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4507
4508 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4509
4510         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4511         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4512
4513 2009-04-17  Richard Guenther  <rguenther@suse.de>
4514
4515         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4516         Handle component references view-converting an invariant address.
4517
4518 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
4519
4520         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4521         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4522         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4523         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4524         Use @deftypevr rather than @deftypevar.
4525
4526 2009-04-17  Richard Guenther  <rguenther@suse.de>
4527
4528         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
4529         (get_prop_source_stmt): Likewise.
4530         (can_propagate_from): Likewise.
4531
4532 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
4533
4534         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4535         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4536         (--with-multilib-list): Add default value.
4537         * configure: Regenerate.
4538         * Makefile.in (TM_ENDIAN_CONFIG): Define.
4539         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4540         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4541         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4542         Don't add default cpu to multilib list unnecessarily, but do enable
4543         the relevant compiler option..
4544         Add support for --with-multilib-list=<blank> and
4545         --with-multilib-list=!<somelib> to supress unwanted multilibs.
4546         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4547         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4548         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4549         TM_MULTILIB_CONFIG.
4550         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4551         (MULTILIB_OSDIRNAMES): New variable.
4552         * config/sh/t-1e: Delete file.
4553         * config/sh/t-mlib-sh1: Delete file.
4554         * config/sh/t-mlib-sh2: Delete file.
4555         * config/sh/t-mlib-sh2a: Delete file.
4556         * config/sh/t-mlib-sh2a-nofpu: Delete file.
4557         * config/sh/t-mlib-sh2a-single: Delete file.
4558         * config/sh/t-mlib-sh2a-single-only: Delete file.
4559         * config/sh/t-mlib-sh2e: Delete file.
4560         * config/sh/t-mlib-sh3e: Delete file.
4561         * config/sh/t-mlib-sh4: Delete file.
4562         * config/sh/t-mlib-sh4-nofpu: Delete file.
4563         * config/sh/t-mlib-sh4-single: Delete file.
4564         * config/sh/t-mlib-sh4-single-only: Delete file.
4565         * config/sh/t-mlib-sh4a: Delete file.
4566         * config/sh/t-mlib-sh4a-nofpu: Delete file.
4567         * config/sh/t-mlib-sh4a-single: Delete file.
4568         * config/sh/t-mlib-sh4a-single-only: Delete file.
4569         * config/sh/t-mlib-sh4al: Delete file.
4570         * config/sh/t-mlib-sh5-32media: Delete file.
4571         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4572         * config/sh/t-mlib-sh5-64media: Delete file.
4573         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4574         * config/sh/t-mlib-sh5-compact: Delete file.
4575         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4576         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4577         * doc/install.texi (Options specification): Add
4578         --with-multilib-list and --with-endian.
4579
4580 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4581
4582         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4583         REVISION_c.
4584         (OBJS-common): Add plugin-version.o.
4585         (plugin-version.o): New.
4586         * gcc-plugin.h (plugin_gcc_version): New.
4587         (plugin_default_version_check): New.
4588         (plugin_init_func, plugin_init): Add version argument.
4589         * plugin-version.c: New.
4590         * plugin.c (str_plugin_gcc_version_name): New.
4591         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4592         pass it to the init function.
4593         (plugin_default_version_check): New.
4594
4595 2009-04-17  Richard Guenther  <rguenther@suse.de>
4596
4597         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4598         for decl-vs-decl disambiguation.
4599
4600 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4601
4602         * config/s390/s390.h (s390_tune_attr): New macro definition.
4603         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4604
4605 2009-04-17  Richard Guenther  <rguenther@suse.de>
4606
4607         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4608         (fold_stmt_r): Likewise.
4609         (maybe_fold_reference): New function.
4610         (fold_gimple_assign): Handle cases fold_stmt_r did.
4611         (fold_stmt): Do not use fold_stmt_r.
4612         (fold_stmt_inplace): Likewise.
4613
4614 2009-04-17  Richard Guenther  <rguenther@suse.de>
4615
4616         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4617         (record_equivalences_from_stmt): Remove useless checks and
4618         simplifications.
4619         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4620         the type is already suitable.
4621
4622 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
4623
4624         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4625
4626 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
4627
4628         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4629         (CMPtype): Define as __gcc_CMPtype.
4630
4631 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
4632
4633         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4634         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4635
4636 2009-04-17  Richard Guenther  <rguenther@suse.de>
4637
4638         PR tree-optimization/39746
4639         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4640         special-casing for builtins and static variable use/def.
4641         (call_may_clobber_ref_p_1): Likewise.
4642
4643 2009-04-16  Ian Lance Taylor  <iant@google.com>
4644
4645         * df.h: Include "timevar.h".
4646         (struct df_problem): Change tv_id field to timevar_id_t.
4647         * tree-pass.h: Include "timevar.h".
4648         (struct opt_pass): Change tv_id field to timevar_id_t.
4649         * timevar.h (timevar_id_t): Define TV_NONE.
4650         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4651         TV_NONE rather than tv_id != 0.
4652         (execute_one_pass): Likewise.
4653         * Makefile.in (DF_H): Add $(TIMEVAR_H).
4654         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
4655         dependencies to $(TREE_PASS_H).
4656         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4657         to TV_NONE.
4658         (pass_branch_target_load_optimize2): Likewise.
4659         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4660         (pass_outof_cfg_layout_mode): Likewise.
4661         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4662         (pass_rebuild_cgraph_edges): Likewise.
4663         (pass_remove_cgraph_callee_edges): Likewise.
4664         * df-core.c (pass_df_initialize_opt): Likewise.
4665         (pass_df_initialize_no_opt): Likewise.
4666         (pass_df_finish): Likewise.
4667         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4668         * except.c (pass_set_nothrow_function_flags): Likewise.
4669         (pass_convert_to_eh_region_ranges): Likewise.
4670         * final.c (pass_compute_alignments): Likewise.
4671         * function.c (pass_instantiate_virtual_regs): Likewise.
4672         (pass_init_function): Likewise.
4673         (pass_leaf_regs): Likewise.
4674         (pass_match_asm_constraints): Likewise.
4675         * gimple-low.c (pass_lower_cf): Likewise.
4676         (pass_mark_used_blocks): Likewise.
4677         * init-regs.c (pass_initialize_regs): Likewise.
4678         * integrate.c (pass_initial_value_sets): Likewise.
4679         * ira.c (pass_ira): Likewise.
4680         * jump.c (pass_cleanup_barriers): Likewise.
4681         * omp-low.c (pass_expand_omp): Likewise.
4682         (pass_lower_omp): Likewise.
4683         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4684         * recog.c (pass_split_all_insns): Likewise.
4685         (pass_split_after_reload): Likewise.
4686         (pass_split_before_regstack): Likewise.
4687         (pass_split_before_sched2): Likewise.
4688         (pass_split_for_shorten_branches): Likewise.
4689         * reginfo.c (pass_reginfo_init): Likewise.
4690         (pass_subregs_of_mode_init): Likewise.
4691         (pass_subregs_of_mode_finish): Likewise.
4692         * passes.c (pass_postreload): Likewise.
4693         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4694         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4695         (pass_warn_function_return): Likewise.
4696         (pass_warn_function_noreturn): Likewise.
4697         * tree-complex.c (pass_lower_complex): Likewise.
4698         (pass_lower_complex_O0): Likewise.
4699         * tree-if-conv.c (pass_if_conversion): Likewise.
4700         * tree-into-ssa.c (pass_build_ssa): Likewise.
4701         * tree-mudflap.c (pass_mudflap_1): Likewise.
4702         (pass_mudflap_2): Likewise.
4703         * tree-nomudflap.c (pass_mudflap_1): Likewise.
4704         (pass_mudflap_2): Likewise.
4705         * tree-nrv.c (pass_return_slot): Likewise.
4706         * tree-object-size.c (pass_object_sizes): Likewise.
4707         * tree-optimize.c (pass_all_optimizations): Likewise.
4708         (pass_early_local_passes): Likewise.
4709         (pass_all_early_optimizations): Likewise.
4710         (pass_cleanup_cfg): Likewise.
4711         (pass_cleanup_cfg_post_optimizing): Likewise.
4712         (pass_free_datastructures): Likewise.
4713         (pass_free_cfg_annotations): Likewise.
4714         (pass_fixup_cfg): Likewise.
4715         (pass_init_datastructures): Likewise.
4716         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4717         (pass_late_warn_uninitialized): Likewise.
4718         (pass_update_address_taken): Likewise.
4719         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4720         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4721         (pass_cse_sincos): Likewise.
4722         (pass_convert_to_rsqrt): Likewise.
4723         * tree-ssa-structalias.c (pass_build_alias): Likewise.
4724         * tree-stdarg.c (pass_stdarg): Likewise.
4725         * tree-tailcall.c (pass_tail_recursion): Likewise.
4726         (pass_tail_calls): Likewise.
4727         * tree-vect-generic.c (pass_lower_vector): Likewise.
4728         (pass_lower_vector_ssa): Likewise.
4729         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4730
4731 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
4732
4733         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4734         XLR entry.
4735         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4736         Handle -march=xlr.
4737         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4738         logical and signext.
4739
4740 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4741
4742         PR target/39767
4743         * config/sh/predicates.md (arith_operand): Check if the operand
4744         of TRUNCATE is a REG.
4745
4746 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4747
4748         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4749         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4750
4751 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4752
4753         * tree-iterator.c (tsi_split_statement_list_after,
4754         tsi_split_statement_list_before): Remove.
4755         * tree-iterator.h: Remove the prototypes for
4756         tsi_split_statement_list_after and tsi_split_statement_list_before.
4757
4758 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4759
4760         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4761         * tree-ssa-propagate.h: Remove the prototype for
4762         stmt_makes_single_load.
4763
4764 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4765
4766         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4767         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4768
4769 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4770
4771         * tree-iterator.c (EXPR_LAST_BODY): Remove.
4772
4773 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4774
4775         * except.c (eh_region_outer_p): Remove.
4776         * except.h: Remove the prototype for eh_region_outer_p.
4777
4778 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4779
4780         * function.c (current_function_assembler_name): Remove.
4781         * function.h: Remove the prototype for
4782         current_function_assembler_name.
4783
4784 2009-04-16  Ian Lance Taylor  <iant@google.com>
4785
4786         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
4787         (add_reg_note): Call alloc_reg_note.
4788         * rtl.h (alloc_reg_note): Declare.
4789         * combine.c (try_combine): Use alloc_reg_note.
4790         (recog_for_combine, move_deaths): Likewise.
4791         (distribute_notes): Use alloc_reg_note and add_reg_note.
4792         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4793         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4794         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4795
4796 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
4797
4798         PR rtl-optimization/39762
4799         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4800         ira_may_move_out_cost): Add comments about way of their usage.
4801         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
4802
4803         * ira-conflicts.c (process_regs_for_copy): Use function
4804         ira_get_register_move_cost instead of global
4805         ira_register_move_cost.
4806
4807         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4808         color_pass, move_spill_restore, update_curr_costs): Ditto.
4809
4810         * ira-lives.c (process_single_reg_class_operands): Ditto.
4811
4812         * ira-emit.c (emit_move_list): Ditto.
4813
4814         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4815         (record_reg_classes): Ditto.  Use functions
4816         ira_get_register_move_cost and ira_get_may_move_cost instead of
4817         global vars ira_register_move_cost, ira_may_move_out_cost and
4818         ira_may_move_in_cost.
4819         (record_address_regs): Don't call ira_init_register_move_cost.
4820         Use function ira_get_may_move_cost instead of global
4821         ira_may_move_in_cost.
4822         (process_bb_node_for_hard_reg_moves): Use function
4823         ira_get_register_move_cost instead of global ira_register_move_cost.
4824         (ira_costs): Don't call ira_init_register_move_cost.
4825
4826 2009-04-16  Richard Guenther  <rguenther@suse.de>
4827
4828         * tree-cfg.c (verify_gimple_assign_binary):
4829         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4830         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4831         (create_general_new_stmt): Note that this function is broken.
4832
4833 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4834
4835         * common.opt (fhelp): Add Var(help_flag).
4836         * gcc-plugin.h (plugin_info): Add help.
4837         * plugin.c (plugin_name_args): Add help.
4838         (register_plugin_info): Set plugin->help.
4839         (print_help_one_plugin): New.
4840         (print_plugins_help): New.
4841         * plugin.h (print_plugins_help): New.
4842         * toplev.c (toplev_main): Call print_plugins_help if needed.
4843
4844 2009-04-16  Richard Guenther  <rguenther@suse.de>
4845
4846         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4847         (gimple_ior_addresses_taken_1): New function.
4848         (gimple_ior_addresses_taken): Likewise.
4849         * gimple.h (struct gimple_statement_with_ops_base): Remove
4850         addresses_taken member.
4851         (gimple_ior_addresses_taken): Declare.
4852         (gimple_addresses_taken, gimple_addresses_taken_ptr,
4853         gimple_set_addresses_taken): Remove.
4854         * ipa-reference.c (mark_address): New function.
4855         (scan_stmt_for_static_refs): Use it for marking addresses taken.
4856         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4857         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
4858         (gimple_add_to_addresses_taken): Remove.
4859         (get_tmr_operands): Call mark_address_taken.
4860         (get_asm_expr_operands): Likewise.
4861         (get_expr_operands): Likewise.
4862         (build_ssa_operands): Do not clear the addresses_taken bitmap.
4863         (free_stmt_operands): Do not free it.
4864         * tree-ssa.c (delete_tree_ssa): Likewise.
4865         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
4866
4867 2009-04-16  Richard Guenther  <rguenther@suse.de>
4868
4869         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
4870         (walk_stmt_load_store_ops): Likewise.
4871         * gimple.c (get_base_loadstore): New function.
4872         (walk_stmt_load_store_addr_ops): Likewise.
4873         (walk_stmt_load_store_ops): Likewise.
4874         * ipa-pure-const.c (check_op): Simplify.
4875         (check_load, check_store): New functions.
4876         (check_stmt): Use walk_stmt_load_store_ops.
4877         * ipa-reference.c (mark_load): Adjust signature.
4878         (mark_store): Likewise.
4879         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
4880
4881 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4882
4883         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
4884         (plugin_info): New.
4885         * opts.c (common_handle_option): Don't call print_version.
4886         * plugin.c (plugin_name_args): Add version.
4887         (register_plugin_info): New.
4888         (register_callback): Handle PLUGIN_INFO.
4889         (try_init_one_plugin): New.
4890         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
4891         if failed to init.
4892         (finalize_one_plugin): New.
4893         (finalize_plugins): New.
4894         (print_one_plugin): New.
4895         (print_plugins_versions): New.
4896         * plugin.h (print_plugins_versions): New.
4897         (finalize_plugins): New.
4898         * toplev.c (compile_file): Don't call initialize_plugins.
4899         (print_version): Call print_plugins_versions.
4900         (toplev_main): Call initialize_plugins. Print version if needed.
4901         Call finalize_plugins.
4902
4903 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4904
4905         * common.opt (fversion): New.
4906         * gcc.c (print_version): New.
4907         (process_command): Don't print the version. Just set print_version.
4908         (main): Print version. Call subprocesses if print_version and
4909         verbose_flag are set.
4910         * opts.c (common_handle_option): Handle OPT_fversion.
4911
4912 2009-04-16  Richard Guenther  <rguenther@suse.de>
4913             Ira Rosen  <irar@il.ibm.com>
4914
4915         PR tree-optimization/39698
4916         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
4917         type of the reduction variable.  Only generate the def if
4918         it is needed.
4919
4920         * omp-low.c (expand_omp_for_generic): When converting to a pointer
4921         make sure to first convert to an integer of the same precision.
4922         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
4923         the type of the evolution correctly in computing the new
4924         induction variable base.
4925
4926 2009-04-16  Richard Guenther  <rguenther@suse.de>
4927
4928         PR middle-end/39625
4929         * tree-cfg.c (make_blocks): Split statements with to-be
4930         abnormal SSA names on the lhs.
4931
4932 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
4933
4934         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
4935         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
4936         * c-typeck.c (really_start_incremental_init): Likewise.
4937         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
4938         (TARGET_INITIALIZER): Remove it.
4939         * target.h (struct target): Remove vector_opaque_p.
4940         * tree.c (build_opaque_vector_type): New.
4941         * tree.h (TYPE_VECTOR_OPAQUE): New.
4942         (build_opaque_vector_type): Declare.
4943         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
4944         * config/rs6000/rs6000.c (build_opaque_vector_type,
4945         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4946         (rs6000_init_builtins): Use build_opaque_vector_type for
4947         opaque_V4SI_type_node.
4948
4949 2009-04-15  Catherine Moore  <clm@codesourcery.com>
4950
4951         * debug.h (set_name):  Declare.
4952         * dwarf2out.c (dwarf2out_set_name): Declare.
4953         (dwarf2_debug_hooks): Add set_name.
4954         (find_AT_string): New.
4955         (add_AT_string): Call find_AT_string.
4956         (dwarf2out_set_name): New.
4957         * cp/decl.c (grokdeclarator): Call set_name.
4958         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4959         * debug.c (do_nothing_debug_hooks):  Likewise.
4960         * dbxout.c (dbx_debug_hooks): Likewise.
4961         * sdbout.c (sdb_debug_hooks): Likewise.
4962
4963 2009-04-15  Michael Eager  <eager@eagercon.com>
4964
4965         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4966         reg for single-precision FPU.
4967         * config/rs6000/rs6000.md (movsi_internal1): Only for
4968         !TARGET_SINGLE_FPU.
4969         (movsi_internal1_single): New. Add pattern to move SI values to/from
4970         single-precision FP regs.
4971
4972 2009-04-15  Richard Guenther  <rguenther@suse.de>
4973
4974         * omp-low.c (lower_rec_input_clauses): Build correct address
4975         expressions.
4976         (expand_omp_for_generic): Fix multiplication type.
4977         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
4978         (generate_memset_zero): Fix types.
4979         * tree-profile.c (prepare_instrumented_value): Correctly
4980         widen a pointer.
4981
4982 2009-04-15  Ian Lance Taylor  <iant@google.com>
4983
4984         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
4985         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
4986         for -Wall and for -Wc++-compat.
4987         (c_common_post_options): For C++, set warn_enum_compare if not
4988         already set.
4989         * c-tree.h (struct c_expr): Add field original_type.
4990         (build_external_ref): Update declaration.
4991         * c-parser.c (c_parser_braced_init): Set original_type.
4992         (c_parser_initelt): Likewise.
4993         (c_parser_expr_no_commas): Likewise.
4994         (c_parser_conditional_expression): Likewise.
4995         (c_parser_cast_expression): Likewise.
4996         (c_parser_unary_expression): Likewise.  Pull setting of
4997         original_code to top of function.
4998         (c_parser_sizeof_expression): Set original_type.
4999         (c_parser_alignof_expression): Likewise.
5000         (c_parser_postfix_expression): Likewise.  Pull setting of
5001         original_code to top of function.
5002         (c_parser_postfix_expression_after_paren_type): Set original_type.
5003         (c_parser_postfix_expression_after_primary): Likewise.
5004         (c_parser_expression): Likewise.
5005         * c-typeck.c (build_external_ref): Add type parameter.  Change all
5006         callers.
5007         (c_expr_sizeof_expr): Set original_type field.
5008         (parser_build_unary_op): Likewise.
5009         (parser_build_binary_op): Likewise.  Optionally warn about
5010         comparisons of enums of different types.
5011         (digest_init): Set original_type field.
5012         (really_start_incremental_init): Likewise.
5013         (push_init_level, pop_init_level): Likewise.
5014         * doc/invoke.texi (Warning Options): -Wenum-compare now
5015         supported in C.
5016
5017 2009-04-15  Richard Guenther  <rguenther@suse.de>
5018
5019         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
5020         out a necessary conversion.
5021         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5022         names we didn't value number.
5023         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5024
5025 2009-04-15  Richard Guenther  <rguenther@suse.de>
5026
5027         PR tree-optimization/39764
5028         * tree-ssa-ccp.c (get_value): Canonicalize value with
5029         canonicalize_float_value.
5030
5031 2009-04-15  Jan Hubicka  <jh@suse.cz>
5032
5033         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5034         Wrong version of patch.
5035
5036 2009-04-15  Jan Hubicka  <jh@suse.cz>
5037
5038         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5039
5040 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
5041
5042         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5043         our distinct integral and vector types.
5044
5045 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
5046
5047         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5048         * init.c (build_vtbl_address): Remove call to assemble_external.
5049
5050 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
5051
5052         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5053         output for other floating point modes.
5054
5055 2009-04-14  Diego Novillo  <dnovillo@google.com>
5056
5057         * diagnostic.c (diagnostic_report_diagnostic): Do not
5058         warn about loaded plugins for DK_ERROR and DK_WARNING.
5059         * c-decl.c (declspecs_add_type): Move call to
5060         invoke_plugin_callbacks ...
5061         * c-parser.c (c_parser_declspecs): ... here.
5062         * plugin.c (dump_active_plugins): Tidy output.
5063
5064 2009-04-14  Diego Novillo  <dnovillo@google.com>
5065             Le-Chun Wu  <lcwu@google.com>
5066
5067         * configure.ac: Add --enable-plugin support.
5068         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5069         * Makefile.in (PLUGIN_H): Define.
5070         Export ENABLE_PLUGIN and GMPINC to site.exp.
5071         Add PLUGINLIBS to link command.
5072         Add/modify dependencies for plugin.o and files including plugin.h.
5073         (plugin.o): New.
5074         * config.in: Regenerate.
5075
5076         * opts.c (common_handle_option): Handle OPT_fplugin_ and
5077         OPT_fplugin_arg_.
5078
5079 2009-04-14  Le-Chun Wu  <lcwu@google.com>
5080
5081         * tree-pass.h (register_one_dump_file): Add a prototype for
5082         register_one_dump_file.
5083         * toplev.c (compile_file): Call initialize_plugins.
5084         (do_compile): Call invoke_plugin_callbacks.
5085         (toplev_main): Call invoke_plugin_callbacks.
5086         * common.opt: Add -fplugin= and -fplugin-arg-.
5087         * gcc-plugin.h: New public header file for plugins to include.
5088         * plugin.c: New source file.
5089         * plugin.h: New internal header file.
5090         * passes.c (register_one_dump_file): Make it external.
5091
5092         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5093
5094 2009-04-14  Diego Novillo  <dnovillo@google.com>
5095
5096         * doc/plugins.texi: New.
5097         * doc/gccint.texi: Add reference to Plugins chapter.
5098         * doc/invoke.texi: Document -fplugin and -fplugin-arg
5099         * diagnostic.c (diagnostic_report_diagnostic): Warn about
5100         loaded plugins, if any.
5101         * timevar.def (TV_PLUGIN_INIT): Define.
5102         (TV_PLUGIN_RUN): Define.
5103         * plugin.c: Include timevar.h
5104         (plugins_active_p): New.
5105         (dump_active_plugins): New.
5106         (debug_active_plugins): New.
5107
5108 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
5109
5110         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5111         library paths.
5112         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5113
5114 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
5115
5116         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5117         the same as a minus without a shift.
5118
5119 2009-04-14  Nick Clifton  <nickc@redhat.com>
5120
5121         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5122         comparisons with small integers will always produce a short
5123         branch.
5124
5125 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
5126
5127         Merge:
5128         2008-12-19  Diego Novillo  <dnovillo@google.com>
5129
5130         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
5131
5132 2009-04-14  Richard Guenther  <rguenther@suse.de>
5133
5134         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5135         verification.
5136         (verify_gimple_assign_binary): Likewise.  Handle shifts and
5137         rotates correctly.
5138         (verify_gimple_phi): Print the mismatched argument position.
5139         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5140         Fix types.
5141         (vect_update_init_of_dr): Likewise.
5142         * matrix-reorg.c (transform_access_sites): Do what the
5143         comment suggests.
5144         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5145
5146 2009-04-13  Michael Eager  <eager@eagercon.com>
5147
5148         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5149         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5150         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
5151         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
5152         remove duplicate config
5153
5154 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5155
5156         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5157         file_name:line_number type locator of the call site.
5158
5159 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5160
5161         * genautomata.c: Put blank after comma.
5162         (automaton_decls): New.
5163         (struct unit_usage): Add comments to member next.
5164         (store_alt_unit_usage): Keep the list ordered.
5165         (unit_present_on_list_p, equal_alternatives_p): New.
5166         (check_regexp_units_distribution): Check units distribution
5167         correctness correctly.
5168         (main): Don't write automata if error is found.  Return correct
5169         exit code.
5170
5171         * config/m68k/cf.md (cfv4_ds): Remove.
5172         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5173         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5174
5175         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5176         power4-load-ext, power4-store, power4-store-update,
5177         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5178         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5179         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5180         power4-sqrt, power4-isync): Modify reservation to make correct
5181         unit distribution to automata.
5182
5183         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5184         power5-store-update, power5-two, power5-three, power5-lmul,
5185         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
5186
5187 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
5188
5189         * except.c (pass_set_nothrow_function_flags): Set name and add
5190         TODO_dump_func.
5191         (set_nothrow_function_flags): Mention in the dump file when
5192         changing a function to nothrow.
5193
5194 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
5195
5196         PR/39066
5197         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5198         instead of unsigned long.
5199
5200 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5201
5202         * config/arm/arm.c (return_used_this_function): Remove.
5203         (arm_output_function_prologue): Remove use of
5204         return_used_this_function.
5205         (output_return_instruction): Replace use of
5206         return_used_this_function
5207         by cfun->machine->return_used_this_function.
5208         (arm_output_epilogue): Likewise.
5209         (arm_output_function_epilogue): Likewise.
5210         (thumb_unexpanded_epilogue): Likewise.
5211         * config/arm/arm.h (struct machine_function):
5212         New member return_used_this_function.
5213
5214 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
5215
5216         * doc/install.texi: Correct description of default directory for
5217         --with-gxx-include-dir.
5218
5219 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5220
5221         * fold-const.c (build_range_check): Properly deal with enumeral and
5222         boolean base types.
5223
5224 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
5225
5226         * doc/invoke.texi (max_gcse_passes): Remove documentation.
5227         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5228         * params.h (MAX_GCSE_PASSES): Remove.
5229         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5230         in sequence.  Remove ability to run multiple passes.
5231         (bypass_jumps): Report run as third CPROP pass.
5232
5233 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
5234
5235         PR middle-end/39651
5236         * except.c (can_throw_external): Look at each insn in a SEQUENCE
5237         when deciding whether the whole SEQUENCE can throw.
5238
5239 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
5240
5241         PR target/39740
5242         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5243         offseted label references.
5244
5245 2009-04-11  Jan Hubicka  <jh@suse.cz>
5246
5247         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5248
5249 2009-04-11  Richard Guenther  <rguenther@suse.de>
5250
5251         PR middle-end/39732
5252         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5253         return variables as TREE_ADDRESSABLE.
5254
5255 2009-04-11  Richard Guenther  <rguenther@suse.de>
5256
5257         PR tree-optimization/39713
5258         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5259         reference trees have SSA_NAME operands.
5260
5261 2009-04-11  Richard Guenther  <rguenther@suse.de>
5262
5263         PR c/39712
5264         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5265         address expressions.
5266
5267 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5268
5269         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
5270         match changes in Cygwin 1.7
5271         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5272         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
5273
5274 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5275
5276         PR tree-optimization/39701
5277         * doc/invoke.texi (Optimization Options): Document change in
5278         meaning and initialization of -fdelete-null-pointer-checks.
5279
5280 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5281
5282         PR middle-end/39701
5283         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5284
5285         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5286         here.
5287
5288         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5289
5290 2009-04-10  Chao-ying Fu  <fu@mips.com>
5291
5292         * doc/tm.texi (Instruction Output): Document
5293         TARGET_ASM_FINAL_POSTSCAN_INSN.
5294         * target.h (final_postscan_insn): New field in asm_out.
5295         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5296         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5297         * final.c (final_scan_insn): Call
5298         targetm.asm_out.final_postscan_insn after outputting
5299         an asm macro and a normal instruction.
5300
5301         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5302         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5303         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5304         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5305         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5306
5307 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5308
5309         PR middle-end/39701
5310         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5311         variables as non-NULL even with -fdelete-null-pointer-checks.
5312
5313 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5314
5315         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5316
5317 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
5318
5319         PR target/39678
5320         * config/i386/i386.c (classify_argument): Handle SCmode with
5321         (bit_offset % 64) != 0.
5322
5323 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
5324
5325         * doc/invoke.texi (Optimize Options): Add cross-reference to
5326         -Q --help=optimizers examples.
5327
5328 2009-04-10  Ben Elliston  <bje@au.ibm.com>
5329
5330         PR target/36800
5331         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5332         regalign for the reg == fpr and TDmode case.
5333
5334 2009-04-09  David Ayers  <ayers@fsfe.org>
5335
5336         PR objc/29200
5337         * objc/objc-act.c (warn_with_method): Remove helper function.
5338         (check_duplicates): Call warning and inform directly.
5339         (really_start_method): Likewise.
5340
5341 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5342
5343         * expmed.c (expand_divmod): Always use a comparison for a division
5344         by a large unsigned integer.
5345
5346         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5347         for things others than variables or functions as nonzero.
5348
5349 2009-04-09  Nick Clifton  <nickc@redhat.com>
5350
5351         * unwind-compat.c: Change copyright header to refer to version
5352         3 of the GNU General Public License with version 3.1 of the
5353         GCC Runtime Library Exception and to point readers at the
5354         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
5355         * config/alpha/crtfastmath.c: Likewise.
5356         * config/alpha/linux-unwind.h: Likewise.
5357         * config/alpha/qrnnd.asm: Likewise.
5358         * config/alpha/vms-crt0-64.c: Likewise.
5359         * config/alpha/vms-crt0.c: Likewise.
5360         * config/alpha/vms-dwarf2.asm: Likewise.
5361         * config/alpha/vms-dwarf2eh.asm: Likewise.
5362         * config/alpha/vms-psxcrt0-64.c: Likewise.
5363         * config/alpha/vms-psxcrt0.c: Likewise.
5364         * config/alpha/vms_tramp.asm: Likewise.
5365         * config/arc/initfini.c: Likewise.
5366         * config/arc/lib1funcs.asm: Likewise.
5367         * config/arm/bpabi-v6m.S: Likewise.
5368         * config/arm/bpabi.S: Likewise.
5369         * config/arm/bpabi.c: Likewise.
5370         * config/arm/crti.asm: Likewise.
5371         * config/arm/crtn.asm: Likewise.
5372         * config/arm/ieee754-df.S: Likewise.
5373         * config/arm/ieee754-sf.S: Likewise.
5374         * config/arm/lib1funcs.asm: Likewise.
5375         * config/arm/libunwind.S: Likewise.
5376         * config/arm/linux-atomic.c: Likewise.
5377         * config/arm/mmintrin.h: Likewise.
5378         * config/arm/pr-support.c: Likewise.
5379         * config/arm/unaligned-funcs.c: Likewise.
5380         * config/arm/unwind-arm.c: Likewise.
5381         * config/arm/unwind-arm.h: Likewise.
5382         * config/avr/libgcc.S: Likewise.
5383         * config/bfin/crti.s: Likewise.
5384         * config/bfin/crtlibid.s: Likewise.
5385         * config/bfin/crtn.s: Likewise.
5386         * config/bfin/lib1funcs.asm: Likewise.
5387         * config/bfin/linux-unwind.h: Likewise.
5388         * config/cris/arit.c: Likewise.
5389         * config/cris/cris_abi_symbol.c: Likewise.
5390         * config/darwin-64.c: Likewise.
5391         * config/darwin-crt2.c: Likewise.
5392         * config/darwin-crt3.c: Likewise.
5393         * config/darwin.h: Likewise.
5394         * config/dbxelf.h: Likewise.
5395         * config/dfp-bit.c: Likewise.
5396         * config/dfp-bit.h: Likewise.
5397         * config/elfos.h: Likewise.
5398         * config/fixed-bit.c: Likewise.
5399         * config/fixed-bit.h: Likewise.
5400         * config/fp-bit.c: Likewise.
5401         * config/fp-bit.h: Likewise.
5402         * config/fr30/crti.asm: Likewise.
5403         * config/fr30/crtn.asm: Likewise.
5404         * config/fr30/lib1funcs.asm: Likewise.
5405         * config/freebsd-spec.h: Likewise.
5406         * config/frv/cmovd.c: Likewise.
5407         * config/frv/cmovh.c: Likewise.
5408         * config/frv/cmovw.c: Likewise.
5409         * config/frv/frvbegin.c: Likewise.
5410         * config/frv/frvend.c: Likewise.
5411         * config/frv/lib1funcs.asm: Likewise.
5412         * config/glibc-stdint.h: Likewise.
5413         * config/h8300/clzhi2.c: Likewise.
5414         * config/h8300/crti.asm: Likewise.
5415         * config/h8300/crtn.asm: Likewise.
5416         * config/h8300/ctzhi2.c: Likewise.
5417         * config/h8300/fixunssfsi.c: Likewise.
5418         * config/h8300/lib1funcs.asm: Likewise.
5419         * config/h8300/parityhi2.c: Likewise.
5420         * config/h8300/popcounthi2.c: Likewise.
5421         * config/i386/ammintrin.h: Likewise.
5422         * config/i386/att.h: Likewise.
5423         * config/i386/avxintrin.h: Likewise.
5424         * config/i386/biarch64.h: Likewise.
5425         * config/i386/bmmintrin.h: Likewise.
5426         * config/i386/cpuid.h: Likewise.
5427         * config/i386/cross-stdarg.h: Likewise.
5428         * config/i386/crtfastmath.c: Likewise.
5429         * config/i386/crtprec.c: Likewise.
5430         * config/i386/cygming-crtbegin.c: Likewise.
5431         * config/i386/cygming-crtend.c: Likewise.
5432         * config/i386/cygwin.asm: Likewise.
5433         * config/i386/emmintrin.h: Likewise.
5434         * config/i386/gmm_malloc.h: Likewise.
5435         * config/i386/gthr-win32.c: Likewise.
5436         * config/i386/i386.h: Likewise.
5437         * config/i386/immintrin.h: Likewise.
5438         * config/i386/linux-unwind.h: Likewise.
5439         * config/i386/linux64.h: Likewise.
5440         * config/i386/mm3dnow.h: Likewise.
5441         * config/i386/mmintrin-common.h: Likewise.
5442         * config/i386/mmintrin.h: Likewise.
5443         * config/i386/nmmintrin.h: Likewise.
5444         * config/i386/pmm_malloc.h: Likewise.
5445         * config/i386/pmmintrin.h: Likewise.
5446         * config/i386/smmintrin.h: Likewise.
5447         * config/i386/sol2-c1.asm: Likewise.
5448         * config/i386/sol2-ci.asm: Likewise.
5449         * config/i386/sol2-cn.asm: Likewise.
5450         * config/i386/sol2-gc1.asm: Likewise.
5451         * config/i386/tmmintrin.h: Likewise.
5452         * config/i386/unix.h: Likewise.
5453         * config/i386/w32-unwind.h: Likewise.
5454         * config/i386/wmmintrin.h: Likewise.
5455         * config/i386/x86-64.h: Likewise.
5456         * config/i386/x86intrin.h: Likewise.
5457         * config/i386/xmmintrin.h: Likewise.
5458         * config/ia64/crtbegin.asm: Likewise.
5459         * config/ia64/crtend.asm: Likewise.
5460         * config/ia64/crtfastmath.c: Likewise.
5461         * config/ia64/crti.asm: Likewise.
5462         * config/ia64/crtn.asm: Likewise.
5463         * config/ia64/fde-glibc.c: Likewise.
5464         * config/ia64/lib1funcs.asm: Likewise.
5465         * config/ia64/linux-unwind.h: Likewise.
5466         * config/ia64/quadlib.c: Likewise.
5467         * config/ia64/unwind-ia64.c: Likewise.
5468         * config/linux.h: Likewise.
5469         * config/m32c/m32c-lib1.S: Likewise.
5470         * config/m32c/m32c-lib2-trapv.c: Likewise.
5471         * config/m32c/m32c-lib2.c: Likewise.
5472         * config/m32r/initfini.c: Likewise.
5473         * config/m68hc11/larith.asm: Likewise.
5474         * config/m68hc11/m68hc11-crt0.S: Likewise.
5475         * config/m68k/cf.md: Likewise.
5476         * config/m68k/crti.s: Likewise.
5477         * config/m68k/crtn.s: Likewise.
5478         * config/m68k/lb1sf68.asm: Likewise.
5479         * config/m68k/linux-unwind.h: Likewise.
5480         * config/mcore/crti.asm: Likewise.
5481         * config/mcore/crtn.asm: Likewise.
5482         * config/mcore/lib1.asm: Likewise.
5483         * config/mips/linux-unwind.h: Likewise.
5484         * config/mips/loongson.h: Likewise.
5485         * config/mips/mips16.S: Likewise.
5486         * config/mmix/crti.asm: Likewise.
5487         * config/mmix/crtn.asm: Likewise.
5488         * config/pa/fptr.c: Likewise.
5489         * config/pa/hpux-unwind.h: Likewise.
5490         * config/pa/lib2funcs.asm: Likewise.
5491         * config/pa/linux-atomic.c: Likewise.
5492         * config/pa/linux-unwind.h: Likewise.
5493         * config/pa/milli64.S: Likewise.
5494         * config/pa/quadlib.c: Likewise.
5495         * config/pa/stublib.c: Likewise.
5496         * config/picochip/libgccExtras/adddi3.asm: Likewise.
5497         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5498         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5499         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5500         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5501         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5502         * config/picochip/libgccExtras/divmod15.asm: Likewise.
5503         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5504         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5505         * config/picochip/libgccExtras/longjmp.asm: Likewise.
5506         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5507         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5508         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5509         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5510         * config/picochip/libgccExtras/setjmp.asm: Likewise.
5511         * config/picochip/libgccExtras/subdi3.asm: Likewise.
5512         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5513         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5514         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5515         * config/rs6000/750cl.h: Likewise.
5516         * config/rs6000/altivec.h: Likewise.
5517         * config/rs6000/biarch64.h: Likewise.
5518         * config/rs6000/crtresfpr.asm: Likewise.
5519         * config/rs6000/crtresgpr.asm: Likewise.
5520         * config/rs6000/crtresxfpr.asm: Likewise.
5521         * config/rs6000/crtresxgpr.asm: Likewise.
5522         * config/rs6000/crtsavfpr.asm: Likewise.
5523         * config/rs6000/crtsavgpr.asm: Likewise.
5524         * config/rs6000/darwin-asm.h: Likewise.
5525         * config/rs6000/darwin-fallback.c: Likewise.
5526         * config/rs6000/darwin-fpsave.asm: Likewise.
5527         * config/rs6000/darwin-ldouble.c: Likewise.
5528         * config/rs6000/darwin-tramp.asm: Likewise.
5529         * config/rs6000/darwin-unwind.h: Likewise.
5530         * config/rs6000/darwin-vecsave.asm: Likewise.
5531         * config/rs6000/darwin-world.asm: Likewise.
5532         * config/rs6000/e500crtres32gpr.asm: Likewise.
5533         * config/rs6000/e500crtres64gpr.asm: Likewise.
5534         * config/rs6000/e500crtres64gprctr.asm: Likewise.
5535         * config/rs6000/e500crtrest32gpr.asm: Likewise.
5536         * config/rs6000/e500crtrest64gpr.asm: Likewise.
5537         * config/rs6000/e500crtresx32gpr.asm: Likewise.
5538         * config/rs6000/e500crtresx64gpr.asm: Likewise.
5539         * config/rs6000/e500crtsav32gpr.asm: Likewise.
5540         * config/rs6000/e500crtsav64gpr.asm: Likewise.
5541         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5542         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5543         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5544         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5545         * config/rs6000/eabi-ci.asm: Likewise.
5546         * config/rs6000/eabi-cn.asm: Likewise.
5547         * config/rs6000/eabi.asm: Likewise.
5548         * config/rs6000/linux-unwind.h: Likewise.
5549         * config/rs6000/linux64.h: Likewise.
5550         * config/rs6000/paired.h: Likewise.
5551         * config/rs6000/paired.md: Likewise.
5552         * config/rs6000/ppc64-fp.c: Likewise.
5553         * config/rs6000/ppu_intrinsics.h: Likewise.
5554         * config/rs6000/rs6000.h: Likewise.
5555         * config/rs6000/si2vmx.h: Likewise.
5556         * config/rs6000/sol-ci.asm: Likewise.
5557         * config/rs6000/sol-cn.asm: Likewise.
5558         * config/rs6000/spe.h: Likewise.
5559         * config/rs6000/spu2vmx.h: Likewise.
5560         * config/rs6000/sysv4.h: Likewise.
5561         * config/rs6000/tramp.asm: Likewise.
5562         * config/rs6000/vec_types.h: Likewise.
5563         * config/s390/linux-unwind.h: Likewise.
5564         * config/s390/tpf-unwind.h: Likewise.
5565         * config/score/crti.asm: Likewise.
5566         * config/score/crtn.asm: Likewise.
5567         * config/sh/crt1.asm: Likewise.
5568         * config/sh/crti.asm: Likewise.
5569         * config/sh/crtn.asm: Likewise.
5570         * config/sh/divtab-sh4-300.c: Likewise.
5571         * config/sh/divtab-sh4.c: Likewise.
5572         * config/sh/divtab.c: Likewise.
5573         * config/sh/lib1funcs-4-300.asm: Likewise.
5574         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5575         * config/sh/lib1funcs.asm: Likewise.
5576         * config/sh/lib1funcs.h: Likewise.
5577         * config/sh/linux-atomic.asm: Likewise.
5578         * config/sh/linux-unwind.h: Likewise.
5579         * config/sh/shmedia.h: Likewise.
5580         * config/sh/sshmedia.h: Likewise.
5581         * config/sh/ushmedia.h: Likewise.
5582         * config/sparc/crtfastmath.c: Likewise.
5583         * config/sparc/linux-unwind.h: Likewise.
5584         * config/sparc/sol2-c1.asm: Likewise.
5585         * config/sparc/sol2-ci.asm: Likewise.
5586         * config/sparc/sol2-cn.asm: Likewise.
5587         * config/spu/divmodti4.c: Likewise.
5588         * config/spu/divv2df3.c: Likewise.
5589         * config/spu/float_disf.c: Likewise.
5590         * config/spu/float_unsdidf.c: Likewise.
5591         * config/spu/float_unsdisf.c: Likewise.
5592         * config/spu/float_unssidf.c: Likewise.
5593         * config/spu/mfc_multi_tag_release.c: Likewise.
5594         * config/spu/mfc_multi_tag_reserve.c: Likewise.
5595         * config/spu/mfc_tag_release.c: Likewise.
5596         * config/spu/mfc_tag_reserve.c: Likewise.
5597         * config/spu/mfc_tag_table.c: Likewise.
5598         * config/spu/multi3.c: Likewise.
5599         * config/spu/spu_internals.h: Likewise.
5600         * config/spu/spu_intrinsics.h: Likewise.
5601         * config/spu/spu_mfcio.h: Likewise.
5602         * config/spu/vec_types.h: Likewise.
5603         * config/spu/vmx2spu.h: Likewise.
5604         * config/stormy16/stormy16-lib2.c: Likewise.
5605         * config/svr4.h: Likewise.
5606         * config/sync.c: Likewise.
5607         * config/v850/lib1funcs.asm: Likewise.
5608         * config/vxlib-tls.c: Likewise.
5609         * config/vxlib.c: Likewise.
5610         * config/vxworks-dummy.h: Likewise.
5611         * config/xtensa/crti.asm: Likewise.
5612         * config/xtensa/crtn.asm: Likewise.
5613         * config/xtensa/ieee754-df.S: Likewise.
5614         * config/xtensa/ieee754-sf.S: Likewise.
5615         * config/xtensa/lib1funcs.asm: Likewise.
5616         * config/xtensa/lib2funcs.S: Likewise.
5617         * config/xtensa/linux-unwind.h: Likewise.
5618         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5619         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5620         * coretypes.h: Likewise.
5621         * crtstuff.c: Likewise.
5622         * defaults.h: Likewise.
5623         * dwarf2.h: Likewise.
5624         * emutls.c: Likewise.
5625         * gbl-ctors.h: Likewise.
5626         * gcov-io.h: Likewise.
5627         * ginclude/float.h: Likewise.
5628         * ginclude/iso646.h: Likewise.
5629         * ginclude/stdarg.h: Likewise.
5630         * ginclude/stdbool.h: Likewise.
5631         * ginclude/stddef.h: Likewise.
5632         * ginclude/stdfix.h: Likewise.
5633         * ginclude/stdint-gcc.h: Likewise.
5634         * ginclude/tgmath.h: Likewise.
5635         * gthr-aix.h: Likewise.
5636         * gthr-dce.h: Likewise.
5637         * gthr-gnat.c: Likewise.
5638         * gthr-gnat.h: Likewise.
5639         * gthr-lynx.h: Likewise.
5640         * gthr-mipssde.h: Likewise.
5641         * gthr-nks.h: Likewise.
5642         * gthr-posix.c: Likewise.
5643         * gthr-posix.h: Likewise.
5644         * gthr-posix95.h: Likewise.
5645         * gthr-rtems.h: Likewise.
5646         * gthr-single.h: Likewise.
5647         * gthr-solaris.h: Likewise.
5648         * gthr-tpf.h: Likewise.
5649         * gthr-vxworks.h: Likewise.
5650         * gthr-win32.h: Likewise.
5651         * gthr.h: Likewise.
5652         * libgcc2.c: Likewise.
5653         * libgcc2.h: Likewise.
5654         * libgcov.c: Likewise.
5655         * tsystem.h: Likewise.
5656         * typeclass.h: Likewise.
5657         * unwind-c.c: Likewise.
5658         * unwind-compat.h: Likewise.
5659         * unwind-dw2-fde-compat.c: Likewise.
5660         * unwind-dw2-fde-darwin.c: Likewise.
5661         * unwind-dw2-fde-glibc.c: Likewise.
5662         * unwind-dw2-fde.c: Likewise.
5663         * unwind-dw2-fde.h: Likewise.
5664         * unwind-dw2.c: Likewise.
5665         * unwind-dw2.h: Likewise.
5666         * unwind-generic.h: Likewise.
5667         * unwind-pe.h: Likewise.
5668         * unwind-sjlj.c: Likewise.
5669         * unwind.inc: Likewise.
5670         * config/arm/neon-gen.ml: Change generated copyright header to
5671         refer to version 3 of the GNU General Public License with
5672         version 3.1 of the GCC Runtime Library Exception and to point
5673         readers at the COPYING3 and COPYING3.RUNTIME files and the
5674         FSF's license web page.
5675         * config/arm/arm_neon.h: Regenerate.
5676
5677 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
5678
5679         * config/cris/cris.md: Change copyright header to refer to version
5680         3 of the GNU General Public License.
5681         * doc/install.texi2html: Change copyright header to refer to version
5682         3 of the GNU General Public License and to point readers at the
5683         COPYING3 file and the FSF's license web page.
5684         * config/vax/linux.h: Likewise.
5685
5686 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5687
5688         * config/i386/i386.md (cmpcc): New.
5689         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5690         (sync_compare_and_swap_cc*): Delete.
5691
5692         * config/s390/s390.c (s390_compare_emitted): Remove.
5693         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5694         s390_compare_emitted used to be handled.  Assert that modes match.
5695         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5696         refer to sync_compare_and_swap_ccsi.
5697         * config/s390/s390.h (s390_compare_emitted): Remove.
5698         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5699         instead of s390_compare_emitted.
5700         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5701         instead of s390_compare_emitted.
5702         * config/s390/s390.md (cmpcc): New.
5703         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5704         CC_REGNUM, do not pretend it's set.
5705         (sync_compare_and_swap_cc*): Delete.
5706         * config/s390/predicates.md (cc_reg_operand): New.
5707
5708         * expr.c (sync_compare_and_swap_cc): Delete.
5709         * optabs.h (sync_compare_and_swap_cc): Delete.
5710         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5711         is being used with can_compare_p.
5712         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5713         (find_cc_set): New.
5714         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5715         look for a MODE_CC set instead.  Use emit_store_flag.
5716         (expand_compare_and_swap_loop): Likewise, with some additional
5717         complication to avoid a force_reg when useless.  Use
5718         emit_cmp_and_jump_insns.
5719         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5720         * doc/md.texi (sync_compare_and_swap_cc): Merge with
5721         sync_compare_and_swap documentation.
5722
5723 2009-04-09  Jan Hubicka  <jh@suse.cz>
5724
5725         * except.c (find_prev_try): Break out from ....
5726         (duplicate_eh_regions): ... here; properly update prev_try pointers
5727         when duplication part of tree.
5728         (dump_eh_tree): Improve dumping.
5729         (verify_eh_region): New.
5730         (verify_eh_tree): Use it.
5731
5732 2009-04-06  Richard Guenther  <rguenther@suse.de>
5733
5734         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5735         &ARRAY addresses by adjusting their types and prepending
5736         a conversion.
5737         * tree-cfg.c (verify_gimple_assign_single): Verify that
5738         addresses are correct.
5739
5740 2009-04-09  Richard Guenther  <rguenther@suse.de>
5741
5742         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5743         indices into an array reference if possible.
5744         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5745         Fold POINTER_PLUS_EXPR statements with invariant address.
5746
5747 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
5748
5749         PR target/39634
5750         * config.gcc (powerpc64-*-linux*): Always build biarch.
5751
5752 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
5753
5754         PR c/39613
5755         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5756         it and pedwarn if this results in an INTEGER_CST.
5757
5758 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5759
5760         * doc/install.texi: Update minimum GMP version.  Remove obsolete
5761         text in MPFR section.
5762
5763 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
5764
5765         * dwarf2out.c (class_scope_p): New static inline.
5766         (class_or_namespace_scope_p): Use it.
5767         (gen_variable_die): Use DW_TAG_member tag for static data member
5768         declarations instead of DW_TAG_variable.
5769
5770         PR middle-end/39573
5771         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5772         variables.
5773
5774 2009-04-08  Richard Guenther  <rguenther@suse.de>
5775
5776         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5777         valueize random data.
5778
5779 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
5780
5781         * config.gcc (aix tm_file):  Add aix-stdint.h.
5782         (aix tm clause use_gcc_stdint):  Set to wrap.
5783         * config/rs6000/aix-stdint.h:  New file.
5784
5785 2009-04-08  Richard Guenther  <rguenther@suse.de>
5786
5787         PR middle-end/36291
5788         * tree-dfa.c (add_referenced_var): Do not recurse into
5789         global initializers.
5790         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5791         exposed variables.
5792         (fold_const_aggregate_ref): Likewise.
5793
5794 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
5795
5796         * recog.c (ordered_comparison_operator): New.
5797         * gensupport.c (std_preds): Add it.
5798         * doc/md.texi (Machine-Independent Predicates): Document it.
5799
5800 2009-04-08  Jan Hubicka  <jh@suse.cz>
5801
5802         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5803         * function.h (rtl_eh): Remove exception_handler_label_map.
5804         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5805         remove_exception_handler_label, for_each_eh_label_1): Remove.
5806         (rtl_remove_unreachable_regions): Remove.
5807         (convert_from_eh_region_ranges): Do not remove unreachable regions.
5808         (find_exception_handler_labels): Don't build the hashtable.
5809         (maybe_remove_eh_handler): Remove.
5810         (for_each_eh_label): Rewrite to walk the tree.
5811         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5812         * except.h (maybe_remove_eh_handler): Remove.
5813         * passes.c (init_optimization_passes): Schedule second EH cleanup
5814         before out-of-ssa.
5815         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5816         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5817
5818 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
5819
5820         * genoutput.c (validate_optab_operands): New.
5821         (gen_insn, gen_expand): Call it.
5822
5823         * genflags.c (gen_insn): Detect misused iterators.
5824         (main): Pass line_no to gen_insn, exit with status 1 on error.
5825
5826         * genextract.c (line_no): Make global.
5827         (VEC_safe_set_locstr): Change assertion to error message.
5828         (main): Exit with status 1 on error.
5829
5830 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
5831
5832         PR c/39614
5833         PR c/39673
5834         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5835         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5836         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5837         * c-convert.c (convert): Do not call fold on results of conversion
5838         functions when the result is a C_MAYBE_CONST_EXPR.
5839         * c-parser.c (c_parser_postfix_expression): Do not fold condition
5840         of __builtin_choose_expr.
5841         * c-typeck.c (remove_c_maybe_const_expr): New.
5842         (build_unary_op, build_conditional_expr, build_compound_expr,
5843         build_binary_op, c_objc_common_truthvalue_conversion): Call
5844         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5845         integer operands.
5846
5847 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
5848
5849         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
5850         CODE to produce a new one. Add a prototype to use fold_convert_const
5851
5852 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5853
5854         PR bootstrap/39660
5855         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5856         mix declarations and code.
5857
5858 2009-04-08  Ben Elliston  <bje@au.ibm.com>
5859
5860         * gcc.c: Replace `CC' with `GCC' throughout.
5861
5862 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
5863
5864         * doc/invoke.texi: Document Atom support.
5865
5866 2009-04-07  Jason Merrill  <jason@redhat.com>
5867
5868         PR c++/25185
5869         * c-common.h, c-common.c: Add flag_pretty_templates.
5870         * c-opts.c (c_common_handle_option): Set it.
5871         * c.opt: Add -fno-pretty-templates.
5872         * doc/invoke.texi (C++ Dialect Options): Likewise.
5873
5874 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
5875
5876         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
5877         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5878         (ia64_expand_builtin): Likewise.
5879
5880 2009-04-07  Martin Jambor  <mjambor@suse.cz>
5881
5882         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
5883         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
5884         ADDR_EXPRS are include too.
5885
5886 2009-04-07  Richard Guenther  <rguenther@suse.de>
5887
5888         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
5889         decls are only used if passes as parameters or if they are
5890         local statics and the call is not to a builtin.
5891         (call_may_clobber_ref_p_1): Likewise.
5892
5893 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5894
5895         * expr.c (do_store_flag): Remove last argument.  Simplify code
5896         to avoid duplication of tests already done by can_compare_p.
5897         (expand_expr_real_1): Adjust caller.
5898
5899 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5900
5901         * optabs.c (can_compare_p): Test the predicate of a
5902         cbranch and cstore pattern.
5903
5904 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5905
5906         * expr.c (convert_move): Use emit_store_flag instead of
5907         "emulating" it.
5908
5909 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5910
5911         * config/i386/i386.c (ix86_compare_emitted): Remove.
5912         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
5913         ix86_compare_op0 like ix86_compare_emitted used to be handled.
5914         * config/i386/i386.h (ix86_compare_emitted): Remove.
5915         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
5916         instead of ix86_compare_emitted.
5917         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
5918
5919 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
5920
5921         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
5922         Add t-sysroot-suffix to tmake_file.
5923         * config/print-sysroot-suffix.sh: New file.
5924         * config/t-sysroot-suffix: New file.
5925
5926 2009-04-07  Ben Elliston  <bje@au.ibm.com>
5927
5928         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
5929         as the latter produces a warning when the target does not support
5930         infinity.
5931
5932 2009-04-07  Ben Elliston  <bje@au.ibm.com>
5933
5934         * dfp.c: Replace type punning assignments with memcpy throughout.
5935         * Makefile.in (dfp.o-warn): Remove.
5936
5937 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
5938
5939         PR target/39634
5940         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
5941         Include soft-fp/t-softfp after rs6000/t-linux64.
5942
5943 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5944
5945         * stor-layout.c (set_sizetype): Use the full precision of their
5946         machine mode for bitsize types.
5947
5948 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
5949
5950         * config/i386/i386.md: Revert 2 accidental checkins.
5951
5952 2009-04-06  Joey Ye  <joey.ye@intel.com>
5953             Xuepeng Guo  <xuepeng.guo@intel.com>
5954             H.J. Lu  <hongjiu.lu@intel.com>
5955
5956         Atom pipeline model, tuning and insn selection.
5957         * config.gcc (atom): Add atom config options and target.
5958
5959         * config/i386/atom.md: New.
5960
5961         * config/i386/i386.c (atom_cost): New cost.
5962         (m_ATOM): New macro flag.
5963         (initial_ix86_tune_features): Set m_ATOM.
5964         (x86_accumulate_outgoing_args): Likewise.
5965         (x86_arch_always_fancy_math_387): Likewise.
5966         (processor_target): Add Atom cost.
5967         (cpu_names): Add Atom cpu name.
5968         (override_options): Set Atom ISA.
5969         (ix86_issue_rate): New case PROCESSOR_ATOM.
5970         (ix86_adjust_cost): Likewise.
5971
5972         * config/i386/i386.h (TARGET_ATOM): New target macro.
5973         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5974         (TARGET_OPT_AGU): New target option.
5975         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5976         (processor_type): Add PROCESSOR_ATOM.
5977
5978         * config/i386/i386.md (cpu): Add new value "atom".
5979         (use_carry, movu): New attr.
5980         (atom.md): Include atom.md.
5981         (adddi3_carry_rex64): Set attr "use_carry".
5982         (addqi3_carry): Likewise.
5983         (addhi3_carry): Likewise.
5984         (addsi3_carry): Likewise.
5985         (*addsi3_carry_zext): Likewise.
5986         (subdi3_carry_rex64): Likewise.
5987         (subqi3_carry): Likewise.
5988         (subhi3_carry): Likewise.
5989         (subsi3_carry): Likewise.
5990         (x86_movdicc_0_m1_rex64): Likewise.
5991         (*x86_movdicc_0_m1_se): Likewise.
5992         (x86_movsicc_0_m1): Likewise.
5993         (*x86_movsicc_0_m1_se): Likewise.
5994         (*adddi_1_rex64): Emit add insn as much as possible.
5995         (*addsi_1): Likewise.
5996         (return_internal): Set atom_unit.
5997         (return_internal_long): Likewise.
5998         (return_pop_internal): Likewise.
5999         (*rcpsf2_sse): Set atom_sse_attr attr.
6000         (*qrt<mode>2_sse): Likewise.
6001         (*prefetch_sse): Likewise.
6002
6003         * config/i386/i386-c.c (ix86_target_macros_internal): New case
6004         PROCESSOR_ATOM.
6005         (ix86_target_macros_internal): Likewise.
6006
6007         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
6008         (*prefetch_sse_rex): Likewise.
6009         (sse_rcpv4sf2): Likewise.
6010         (sse_vmrcpv4sf2): Likewise.
6011         (sse_sqrtv4sf2): Likewise.
6012         (<sse>_vmsqrt<mode>2): Likewise.
6013         (sse_ldmxcsr): Likewise.
6014         (sse_stmxcsr): Likewise.
6015         (*sse_sfence): Likewise.
6016         (sse2_clflush): Likewise.
6017         (*sse2_mfence): Likewise.
6018         (*sse2_lfence): Likewise.
6019         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
6020         (<sse>_movup<ssemodesuffixf2c>): Likewise.
6021         (avx_movdqu<avxmodesuffix>): Likewise.
6022         (avx_lddqu<avxmodesuffix>): Likewise.
6023         (sse2_movntv2di): Change attr "type" to "ssemov".
6024         (sse2_movntsi): Likewise.
6025         (rsqrtv8sf2): Change attr "type" to "sseadd".
6026         (sse3_addsubv2df3): Set attr "atom_unit".
6027         (sse3_h<plusminus_insn>v4sf3): Likewise.
6028         (*sse2_pmaddwd): Likewise.
6029         (*vec_extractv2di_1_rex64): Likewise.
6030         (*vec_extractv2di_1_avx): Likewise.
6031         (sse2_psadbw): Likewise.
6032         (ssse3_phaddwv8hi3): Likewise.
6033         (ssse3_phaddwv4hi3): Likewise.
6034         (ssse3_phadddv4si3): Likewise.
6035         (ssse3_phadddv2si3): Likewise.
6036         (ssse3_phaddswv8hi3): Likewise.
6037         (ssse3_phaddswv4hi3): Likewise.
6038         (ssse3_phsubwv8hi3): Likewise.
6039         (ssse3_phsubwv4hi3): Likewise.
6040         (ssse3_phsubdv4si3): Likewise.
6041         (ssse3_phsubdv2si3): Likewise.
6042         (ssse3_phsubswv8hi3): Likewise.
6043         (ssse3_phsubswv4hi3): Likewise.
6044         (ssse3_pmaddubsw128): Likewise.
6045         (sse3_pmaddubsw: Likewise.
6046         (ssse3_palignrti): Likewise.
6047         (ssse3_palignrdi): Likewise.
6048
6049 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
6050
6051         * doc/install.texi (Specific): Fix two cross-references to MinGW.
6052
6053 2009-04-06  Richard Guenther  <rguenther@suse.de>
6054
6055         PR tree-optimization/28868
6056         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6057         of which PHI results we inserted.
6058         (insert_into_preds_of_block): Record inserted PHIs.
6059         (eliminate): Eliminate redundant PHI nodes.
6060         (init_pre): Init inserted_phi_names.
6061
6062 2009-04-06  Richard Guenther  <rguenther@suse.de>
6063
6064         PR tree-optimization/39643
6065         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6066         IMAGPART_EXPRs of complex constants.
6067         (execute_fold_all_builtins): If we folded a call queue
6068         TODO_update_address_taken.
6069
6070 2009-04-06  Jan Hubicka  <jh@suse.cz>
6071
6072         PR middle-end/39659
6073         * except.c (remove_unreachable_regions): Propagate may_contain_throw
6074         flag.
6075
6076 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
6077
6078         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6079         delay slot.
6080         (ic_invalidate_array): Likewise.
6081
6082 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6083
6084         * calls.c (emit_library_call_value_1): Fix a problem with parameter
6085         alignment for library calls.
6086
6087 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
6088
6089         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
6090         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
6091         * config/i386/mingw-stdint.h:  New file.
6092
6093 2009-04-05  Richard Guenther  <rguenther@suse.de>
6094
6095         PR tree-optimization/39648
6096         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6097         our &A vs. &A[0] IL deficiencies.
6098
6099 2009-04-04  Jan Hubicka  <jh@suse.cz>
6100
6101         * except.c (sjlj_find_directly_reachable_regions): Be ready for
6102         removed toplevel regions.
6103         (sjlj_mark_call_sites): Likewise.
6104
6105 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
6106
6107         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
6108         (cygwin tm clause use_gcc_stdint):  Set to wrap.
6109         * config/i386/cygwin-stdint.h:  New file.
6110
6111 2009-04-04  Richard Guenther  <rguenther@suse.de>
6112
6113         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6114         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6115         single-argument PHIs if we are in loop-closed SSA form.
6116         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6117         for the pre-condition.
6118         (slpeel_tree_peel_loop_to_edge): Likewise.
6119         (vect_build_loop_niters): Take an optional sequence to append stmts.
6120         (vect_generate_tmps_on_preheader): Likewise.
6121         (vect_do_peeling_for_loop_bound): Take extra guards for the
6122         pre-condition.
6123         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
6124         the cost model check.
6125         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
6126         guards if we are going to peel.  Do not apply versioning in that case.
6127         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6128         (vect_do_peeling_for_loop_bound): Likewise.
6129         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6130         loop bound only record extra pre-conditions, do not apply loop
6131         versioning.
6132
6133 2009-04-04  Richard Guenther  <rguenther@suse.de>
6134
6135         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6136         renaming code.
6137
6138 2009-04-04  Jan Hubicka  <jh@suse.cz>
6139
6140         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6141         last_basic_block for size of bb->index indexed array.
6142         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6143         compute_out, link_btr_uses, build_btr_def_use_webs,
6144         build_btr_def_use_webs, migrate_btr_defs): Likewise.
6145
6146 2009-04-04  Jan Hubicka  <jh@suse.cz>
6147
6148         * except.c (remove_eh_handler_and_replace): Break out from ...
6149         (remove_eh_handler): ... here.
6150         (bring_to_root): New function.
6151         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6152         handled ones, bring others to root of tree.
6153
6154 2009-04-04  Jan Hubicka  <jh@suse.cz>
6155
6156         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6157         (all_phis_safe_to_merge): New function.
6158         (update_info): New structure.
6159         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6160         (cleanup_empty_eh): Update SSA if possible.
6161
6162 2009-04-04  Richard Guenther  <rguenther@suse.de>
6163
6164         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6165         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6166         (append_vuse): Likewise.
6167
6168 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
6169
6170         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6171         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6172         instead of REG_UNSAVED for DW_CFA_undefined.
6173         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6174         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6175         outermost frame.
6176
6177 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
6178
6179         PR target/39501
6180         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6181         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6182         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6183
6184 2009-04-04  Richard Guenther  <rguenther@suse.de>
6185
6186         PR tree-optimization/8781
6187         PR tree-optimization/37892
6188         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6189         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6190         (valueize_refs): Call it for *& valueizations.
6191         (shared_reference_ops_from_ref): Rename to ...
6192         (valueize_shared_reference_ops_from_ref): ... this and valueize.
6193         (shared_reference_ops_from_call): Rename to ...
6194         (valueize_shared_reference_ops_from_call): ... this and valueize.
6195         (vn_reference_lookup): Update.
6196         (visit_reference_op_call): Likewise.
6197         * tree-ssa-pre.c (phi_translate_1): Fold *&.
6198         (eliminate): Value-replace the call address in call statements.
6199
6200 2009-04-04  Richard Guenther  <rguenther@suse.de>
6201
6202         PR tree-optimization/39636
6203         * tree-ssa-forwprop.c
6204         (forward_propagate_addr_into_variable_array_index): Check for
6205         GIMPLE_ASSIGN before accessing the rhs code.
6206
6207 2009-04-03  Jason Merrill  <jason@redhat.com>
6208
6209         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6210
6211 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
6212
6213         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6214         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6215         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6216         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6217         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6218         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6219         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6220         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6221         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6222         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6223         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6224         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6225         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6226         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6227         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6228         Use fr_reg_or_fp01_operand instead of fr_register_operand
6229
6230         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6231         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6232         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6233
6234 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
6235
6236         PR rtl-optimization/39607
6237         PR rtl-optimization/39631
6238
6239         Revert:
6240
6241         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6242         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6243         instead of DF_LR_OUT.
6244         * ira-lives.c (process_bb_node_lives): Ditto.
6245         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6246         instead of DF_LR_{OUT,IN}.
6247         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6248         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6249
6250 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
6251
6252         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6253         (execute_lower_omp): Always run but take the short way out if -fopenmp
6254         is not given.
6255         (gate_lower_omp): Remove, forcing the pass manager to always run the
6256         pass and always set PROP_gimple_lomp.
6257         (pass_lower_omp): Remove gate function.
6258         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6259         PROP_trees.  Instead, require it.
6260         * ipa-cp.c (pass_ipa_cp): Likewise.
6261         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6262         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6263         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6264         and PROP_gimple_leh.
6265
6266 2009-04-03  Richard Guenther  <rguenther@suse.de>
6267
6268         PR middle-end/13146
6269         PR tree-optimization/23940
6270         PR tree-optimization/33237
6271         PR middle-end/33974
6272         PR middle-end/34093
6273         PR tree-optimization/36201
6274         PR tree-optimization/36230
6275         PR tree-optimization/38049
6276         PR tree-optimization/38207
6277         PR tree-optimization/38230
6278         PR tree-optimization/38301
6279         PR tree-optimization/38585
6280         PR middle-end/38895
6281         PR tree-optimization/38985
6282         PR tree-optimization/39299
6283         * tree-ssa-structalias.h: Remove.
6284         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6285         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6286         (struct vuse_element_d): Remove.
6287         (struct vuse_vec_d): Likewise.
6288         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6289         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6290         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6291         VUSE_ELEMENT_VAR): Likewise.
6292         (struct voptype_d): Likewise.
6293         (NUM_VOP_FREE_BUCKETS): Likewise.
6294         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6295         (struct stmt_operands_d): Remove.
6296         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6297         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6298         VDEF_NUM, VDEF_VECT): Likewise.
6299         (copy_virtual_operands): Remove.
6300         (operand_build_cmp): Likewise.
6301         (create_ssa_artificial_load_stmt): Likewise.
6302         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6303         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6304         vuse_index and mayuse_index members.  Pack and move done and iter_type
6305         members to the front.
6306         (SSA_OP_VMAYUSE): Remove.
6307         (SSA_OP_VIRTUAL_USES): Adjust.
6308         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6309         (unlink_stmt_vdef): Declare.
6310         (add_to_addressable_set): Remove.
6311         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6312         (vrp_visit_stmt): Likewise.
6313         * doc/tree-ssa.texi (Alias analysis): Update.
6314         * doc/invoke.texi (max-aliased-vops): Remove docs.
6315         (avg-aliased-vops): Likewise.
6316         * tree-into-ssa.c (syms_to_rename): Remove.
6317         (need_to_update_vops_p): Likewise.
6318         (need_to_initialize_update_ssa_p): Rename to ...
6319         (update_ssa_initialized_fn): ... this.  Track function we are
6320         initialized for.
6321         (symbol_marked_for_renaming): Simplify.
6322         (add_new_name_mapping): Do not set need_to_update_vops_p.
6323         (dump_currdefs): Use SYMS_TO_RENAME.
6324         (rewrite_update_stmt): Always walk all uses/defs.
6325         (dump_update_ssa): Adjust.
6326         (init_update_ssa): Take function argument.  Track what we are
6327         initialized for.
6328         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6329         (create_new_def_for): Initialize for cfun, assert we are initialized
6330         for cfun.
6331         (mark_sym_for_renaming): Simplify.
6332         (mark_set_for_renaming): Do not initialize update-ssa.
6333         (need_ssa_update_p): Simplify.  Take function argument.
6334         (name_mappings_registered_p): Assert we ask for the correct function.
6335         (name_registered_for_update_p): Likewise.
6336         (ssa_names_to_replace): Likewise.
6337         (release_ssa_name_after_update_ssa): Likewise.
6338         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
6339         (dump_decl_set): Do not print a newline.
6340         (debug_decl_set): Do it here.
6341         (dump_update_ssa): And here.
6342         * tree-ssa-loop-im.c (move_computations): Adjust.
6343         (movement_possibility): Likewise.
6344         (determine_max_movement): Likewise.
6345         (gather_mem_refs_stmt): Likewise.
6346         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6347         or NAME_MEMORY_TAG.
6348         * tree-complex.c (update_all_vops): Remove.
6349         (expand_complex_move): Adjust.
6350         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6351         Simplify test for memory referencing statement.  Exclude
6352         non-invariant ADDR_EXPRs.
6353         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6354         * tree-loop-distribution.c (generate_memset_zero): Adjust.
6355         (rdg_flag_uses): Likewise.
6356         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6357         related code.
6358         (tree_optimize_tail_calls_1): Also split the
6359         edge from the entry block if we have degenerate PHI nodes in
6360         the first basic block.
6361         * tree.c (init_ttree): Remove memory-tag related code.
6362         (tree_code_size): Likewise.
6363         (tree_node_structure): Likewise.
6364         (build7_stat): Re-write to be build6_stat.
6365         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6366         (SSA_VAR_P): Adjust.
6367         (struct tree_memory_tag): Remove.
6368         (struct tree_memory_partition_tag): Likewise.
6369         (union tree_node): Adjust.
6370         (build7): Re-write to be build6.
6371         * tree-pass.h (pass_reset_cc_flags): Remove.
6372         (TODO_update_address_taken): New flag.
6373         (pass_simple_dse): Remove.
6374         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6375         * params.h (MAX_ALIASED_VOPS): Remove.
6376         (AVG_ALIASED_VOPS): Likewise.
6377         * omp-low.c (expand_omp_taskreg): Update SSA form.
6378         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6379         aliases the lhs in a copy stmt.
6380         * tree-ssa-dse.c (struct address_walk_data): Remove.
6381         (memory_ssa_name_same): Likewise.
6382         (memory_address_same): Likewise.
6383         (get_kill_of_stmt_lhs): Likewise.
6384         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
6385         unused stores.  Look through PHI nodes into post-dominated regions.
6386         (dse_optimize_stmt): Simplify.  Properly remove stores.
6387         (tree_ssa_dse): Compute dominators.
6388         (execute_simple_dse): Remove.
6389         (pass_simple_dse): Likewise.
6390         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6391         gimple_loaded_syms and gimple_stored_syms computation.
6392         * toplev.c (dump_memory_report): Dump alias and pta stats.
6393         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6394         (vn_reference_eq): Likewise.
6395         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6396         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6397         valueize_vuses): Remove.
6398         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
6399         (get_def_ref_stmt_vuse): ... this.
6400         (vn_reference_lookup_2): New function.
6401         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6402         walking equivalent vuses.  Simplify.
6403         (vn_reference_lookup): Likewise.
6404         (vn_reference_insert): Likewise.
6405         (vn_reference_insert_pieces): Likewise.
6406         (visit_reference_op_call): Simplify.
6407         (visit_reference_op_load): Likewise.
6408         (visit_reference_op_store): Likewise.
6409         (init_scc_vn): Remove shared_lookup_vuses initialization.
6410         (free_scc_vn): Remove shared_lookup_vuses freeing.
6411         (sort_vuses, sort_vuses_heap): Remove.
6412         (get_ref_from_reference_ops): Export.
6413         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6414         vector with single vuse pointer.
6415         (vn_reference_lookup_pieces, vn_reference_lookup,
6416         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6417         (shared_vuses_from_stmt): Remove.
6418         (get_ref_from_reference_ops): Declare.
6419         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6420         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6421         memory-tag related code.
6422         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6423         (likely_value): Add comment, skip static-chain of call statements.
6424         (surely_varying_stmt_p): Adjust.
6425         (gimplify_and_update_call_from_tree): Likewise.
6426         (execute_fold_all_builtins): Do not rebuild alias info.
6427         (gimplify_and_update_call_from_tree): Properly update VOPs.
6428         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6429         (copy_ref_info): Remove memory-tag related code.
6430         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6431         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6432         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6433         computation.
6434         * tree-ssa-dom.c (gimple_p): Remove typedef.
6435         (eliminate_redundant_computations): Adjust.
6436         (record_equivalences_from_stmt): Likewise.
6437         (avail_expr_hash): Likewise.
6438         (avail_expr_eq): Likewise.
6439         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
6440         (stmt_makes_single_load): Likewise.
6441         (stmt_makes_single_store): Likewise.
6442         * tree-ssa-alias.c: Rewrite completely.
6443         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6444         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6445         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6446         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6447         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6448         Remove public functions.
6449         (pass_reset_cc_flags): Remove.
6450         (pass_build_alias): Move ...
6451         * tree-ssa-structalias.c (pass_build_alias): ... here.
6452         * tree-ssa-alias.c (may_be_aliased): Move ...
6453         * tree-flow-inline.h (may_be_aliased): ... here.
6454         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6455         count_uses_and_derefs): Move ...
6456         * gimple.c: ... here.
6457         * gimple.h (count_uses_and_derefs): Declare.
6458         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6459         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6460         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6461         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6462         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6463         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6464         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6465         New functions.
6466         * tree-dfa.c (refs_may_alias_p): Move ...
6467         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
6468         * tree-ssa-alias.h: New file.
6469         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6470         (statement_sink_location): Likewise.
6471         * opts.c (decode_options): Do not adjust max-aliased-vops or
6472         avg-aliased-vops values.
6473         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6474         (TV_CALL_CLOBBER): Likewise.
6475         (TV_FLOW_SENSITIVE): Likewise.
6476         (TV_FLOW_INSENSITIVE): Likewise.
6477         (TV_MEMORY_PARTITIONING): Likewise.
6478         (TV_ALIAS_STMT_WALK): New timevar.
6479         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6480         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6481         (get_address_description): Remove memory-tag related code.
6482         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6483         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6484         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6485         and immediate uses in statements.  Document.
6486         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6487         (dump_symbols): Remove.
6488         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6489         * alias.c (get_deref_alias_set): New function split out from ...
6490         (get_alias_set): ... here.
6491         * alias.h (get_deref_alias_set): Declare.
6492         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6493         type parameter.  Remove restrict pointer handling.  Create a
6494         ref-all pointer in case type-based alias sets do not conflict.
6495         (vect_analyze_data_refs): Remove SMT related code.
6496         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6497         (vectorizable_load): Likewise.
6498         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6499         (DR_SYMBOL_TAG, DR_VOPS): Remove.
6500         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6501         Ignore vops and SMTs.
6502         (dr_analyze_alias): Likewise..
6503         (free_data_ref): Likewise.
6504         (create_data_ref): Likewise.
6505         (analyze_all_data_dependences): Likewise.
6506         (get_references_in_stmt): Adjust.
6507         * tree-flow-inline.h (gimple_aliases_computed_p,
6508         gimple_addressable_vars, gimple_call_clobbered_vars,
6509         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6510         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6511         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6512         gimple_mem_ref_stats): Remove.
6513         (gimple_vop): New function.
6514         (op_iter_next_use): Remove vuses and mayuses cases.
6515         (op_iter_next_def): Remove vdefs case.
6516         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6517         (clear_and_done_ssa_iter): Do not set removed fields.
6518         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
6519         Assert we are not iterating over vuses or vdefs if not also
6520         iterating over uses or defs.
6521         (op_iter_init_use): Likewise.
6522         (op_iter_init_def): Likewise.
6523         (op_iter_next_vdef): Remove.
6524         (op_iter_next_mustdef): Likewise.
6525         (op_iter_init_vdef): Likewise.
6526         (compare_ssa_operands_equal): Likewise.
6527         (link_use_stmts_after): Handle vuse operand.
6528         (is_call_used): Use is_call_clobbered.
6529         (is_call_clobbered): Global variables are always call clobbered,
6530         query the call-clobbers bitmap.
6531         (mark_call_clobbered): Ignore global variables.
6532         (clear_call_clobbered): Likewise.
6533         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6534         virtual operands sanity check.
6535         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6536         Remove.
6537         (TARGET_MEM_REF): Remove TMR_TAG operand.
6538         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6539         Remove call-clobber related code.
6540         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
6541         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6542         partitions or escape reason.
6543         (get_single_def_stmt, get_single_def_stmt_from_phi,
6544         get_single_def_stmt_with_phi): Remove.
6545         (dump_referenced_vars): Tidy.
6546         (get_ref_base_and_extent): Allow bare decls.
6547         (collect_dfa_stats): Adjust.
6548         * graphite.c (rename_variables_in_stmt): Adjust.
6549         (graphite_copy_stmts_from_block): Likewise.
6550         (translate_clast): Likewise.
6551         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6552         (EXPR_DIES): New.
6553         (translate_vuse_through_block): Use the oracle.
6554         (phi_translate_1): Adjust.
6555         (value_dies_in_block_x): Use the oracle.  Cache the outcome
6556         in EXPR_DIES.
6557         (valid_in_sets): Check if the VUSE for
6558         a REFERENCE is available.
6559         (eliminate): Do not remove stmts during elimination,
6560         instead queue and remove them afterwards.
6561         (do_pre): Do not rebuild alias info.
6562         (pass_pre): Run TODO_rebuild_alias before PRE.
6563         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6564         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6565         (mark_all_v_defs_stmt): Remove.
6566         (mark_all_v_defs_seq): Adjust.
6567         (sra_replace): Likewise.
6568         (scalarize_use): Likewise.
6569         (scalarize_copy): Likewise.
6570         (scalarize_init): Likewise.
6571         (scalarize_ldst): Likewise.
6572         (todoflags): Remove.
6573         (tree_sra): Do not rebuild alias info.
6574         (tree_sra_early): Adjust.
6575         (pass_sra): Run TODO_update_address_taken before SRA.
6576         * tree-predcom.c (set_alias_info): Remove.
6577         (prepare_initializers_chain): Do not call it.
6578         (mark_virtual_ops_for_renaming): Adjust.
6579         (mark_virtual_ops_for_renaming_list): Remove.
6580         (initialize_root_vars): Adjust.
6581         (initialize_root_vars_lm): Likewise.
6582         (prepare_initializers_chain): Likewise.
6583         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6584         (may_propagate_copy_into_stmt): Likewise.
6585         (merge_alias_info): Do nothing for now.
6586         (propagate_tree_value_into_stmt): Adjust.
6587         (stmt_may_generate_copy): Likewise.
6588         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6589         not mark symbols for renaming.
6590         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6591         with the same statement, make sure to update the new pointed-to one.
6592         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6593         call statements, do not mark symbols for renaming.
6594         (mark_operand_necessary): Dump something.
6595         (ref_may_be_aliased): New function.
6596         (mark_aliased_reaching_defs_necessary_1): New helper function.
6597         (mark_aliased_reaching_defs_necessary): Likewise.
6598         (mark_all_reaching_defs_necessary_1): Likewise.
6599         (mark_all_reaching_defs_necessary): Likewise.
6600         (propagate_necessity): Do not process virtual PHIs.  For
6601         non-aliased loads mark all reaching definitions as necessary.
6602         For aliased loads and stores mark the immediate dominating
6603         aliased clobbers as necessary.
6604         (visited): New global static.
6605         (perform_tree_ssa_dce): Free visited bitmap after propagating
6606         necessity.
6607         (remove_dead_phis): Perform simple dead virtual PHI removal.
6608         (remove_dead_stmt): Properly unlink virtual operands when
6609         removing stores.
6610         (eliminate_unnecessary_stmts): Schedule PHI removal after
6611         stmt removal.
6612         * tree-ssa-ter.c (is_replaceable_p): Adjust.
6613         (process_replaceable): Likewise.
6614         (find_replaceable_in_bb): Likewise.
6615         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6616         based on the single gimple vop.
6617         (verify_flow_insensitive_alias_info): Remove.
6618         (verify_flow_sensitive_alias_info): Likewise.
6619         (verify_call_clobbering): Likewise.
6620         (verify_memory_partitions): Likewise.
6621         (verify_alias_info): Likewise.
6622         (verify_ssa): Adjust..
6623         (execute_update_addresses_taken): Export.  Update SSA
6624         manually.  Optimize only when optimizing.  Use a local bitmap.
6625         (pass_update_address_taken): Remove TODO_update_ssa, add
6626         TODO_dump_func.
6627         (pass_update_address_taken): Just use TODO_update_address_taken.
6628         (init_tree_ssa): Do not initialize addressable_vars.
6629         (verify_ssa): Verify new VUSE / VDEF properties.
6630         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6631         Do not call verify_alias_info.
6632         (delete_tree_ssa): Clear the VUSE, VDEF operands.
6633         Do not free the loaded and stored syms bitmaps.  Reset the escaped
6634         and callused solutions.  Do not free addressable_vars.
6635         Remove memory-tag related code.
6636         (warn_uninitialized_var): Aliases are always available.
6637         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6638         * lambda-code.c (can_put_in_inner_loop): Adjust.
6639         (can_put_after_inner_loop): Likewise.
6640         (perfect_nestify): Likewise.
6641         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6642         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6643         (vectorizable_conversion): Do not mark symbols for renaming.
6644         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6645         (expand_call_inline): Unlink the calls virtual operands before
6646         replacing it.
6647         (tree_function_versioning): Do not call update_ssa if we are not
6648         updating clones.  Simplify.
6649         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6650         (propagate_with_phi): Likewise..
6651         * tree-outof-ssa.c (create_temp): Remove memory tag and call
6652         clobber code.  Assert we are not aliased or global.
6653         * tree-flow.h: Include tree-ssa-alias.h
6654         (enum escape_type): Remove.
6655         (struct mem_sym_stats_d): Likewise.
6656         (struct mem_ref_stats_d): Likewise.
6657         (struct gimple_df): Add vop member.  Remove global_var,
6658         call_clobbered_vars, call_used_vars, addressable_vars,
6659         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
6660         escaped and callused members.
6661         (struct ptr_info_def): Remove all members, add points-to solution
6662         member pt.
6663         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6664         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6665         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6666         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6667         (tree-ssa-alias.o): Likewise.
6668         (toplev.o): Add tree-ssa-alias.h
6669         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6670         * gimple.c (gimple_set_bb): Fix off-by-one error.
6671         (is_gimple_reg): Do not handle memory tags.
6672         (gimple_copy): Also copy virtual operands.
6673         Delay updating the statement.  Do not reset loaded and stored syms.
6674         (gimple_set_stored_syms): Remove.
6675         (gimple_set_loaded_syms): Likewise.
6676         (gimple_call_copy_skip_args): Copy the virtual operands
6677         and mark the new statement modified.
6678         * tree-ssa-structalias.c (may_alias_p): Remove.
6679         (set_uids_in_ptset): Take the alias set to prune with as
6680         parameter.  Fold in the alias test of may_alias_p.
6681         (compute_points_to_sets): Compute whether a ptr is dereferenced
6682         in a local sbitmap.
6683         (process_constraint): Deal with &ANYTHING on the lhs, reject all
6684         other ADDRESSOF constraints on the lhs.
6685         (get_constraint_for_component_ref): Assert that we don't get
6686         ADDRESSOF constraints from the base of the reference.
6687         Properly generate UNKNOWN_OFFSET for DEREF if needed.
6688         (struct variable_info): Remove collapsed_to member.
6689         (get_varinfo_fc): Remove.
6690         (new_var_info): Do not set collapsed_to.
6691         (dump_constraint): Do not follow cycles.
6692         (dump_constraint_graph): Likewise.
6693         (build_pred_graph): Likewise.
6694         (build_succ_graph): Likewise.
6695         (rewrite_constraints): Likewise.
6696         (do_simple_structure_copy): Remove.
6697         (do_rhs_deref_structure_copy): Remove.
6698         (do_lhs_deref_structure_copy): Remove.
6699         (collapse_rest_of_var): Remove.
6700         (do_structure_copy): Re-implement.
6701         (pta_stats): New global variable.
6702         (dump_pta_stats): New function.
6703         (struct constraint_expr): Make offset signed.
6704         (UNKNOWN_OFFSET): Define special value.
6705         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6706         (solution_set_expand): New helper function split out from ...
6707         (do_sd_constraint): ... here.
6708         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
6709         (do_ds_constraint): Likewise.
6710         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
6711         and CALLUSED = *CALLUSED.
6712         (set_union_with_increment): Make inc argument signed.
6713         (type_safe): Remove.
6714         (get_constraint_for_ptr_offset): Handle unknown and negative
6715         constant offsets.
6716         (first_vi_for_offset): Handle offsets before start.  Bail
6717         out early for offsets beyond the variable extent.
6718         (first_or_preceding_vi_for_offset): New function.
6719         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6720         Together with ESCAPED = *ESCAPED this properly computes reachability.
6721         (find_what_var_points_to): New function.
6722         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6723         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6724         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6725         pt_solutions_intersect): New functions.
6726         (compute_call_used_vars): Remove.
6727         (compute_may_aliases): New main entry into PTA computation.
6728         * gimple.h (gimple_p): New typedef.
6729         (struct gimple_statement_base): Remove references_memory_p.
6730         (struct gimple_statement_with_memory_ops_base): Remove
6731         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
6732         members.
6733         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6734         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6735         gimple_set_references_memory): Remove.
6736         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6737         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6738         New functions.
6739         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6740         (verify_expr): Allow RESULT_DECL.
6741         (gimple_duplicate_bb): Do not copy virtual operands.
6742         (gimple_duplicate_sese_region): Adjust.
6743         (gimple_duplicate_sese_tail): Likewise.
6744         (mark_virtual_ops_in_region): Remove.
6745         (move_sese_region_to_fn): Do not call it.
6746         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6747         and pass_simple_dse.
6748         (execute_function_todo): Handle TODO_update_address_taken,
6749         call execute_update_addresses_taken for TODO_rebuild_alias.
6750         (execute_todo): Adjust.
6751         (execute_one_pass): Init dump files early.
6752         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6753         call-clobbered.
6754         (create_general_new_stmt): Clear vops.
6755         * tree-ssa-reassoc.c (get_rank): Adjust.
6756         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6757         symbols for renaming.
6758         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6759         (PARAM_AVG_ALIASED_VOPS): Likewise.
6760         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6761         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
6762         * tree-ssa-operands.c: Simplify for new virtual operand representation.
6763         (operand_build_cmp, copy_virtual_operands,
6764         create_ssa_artificial_load_stmt, add_to_addressable_set,
6765         gimple_add_to_addresses_taken): Remove public functions.
6766         (unlink_stmt_vdef): New function.
6767
6768 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
6769
6770         * config.gcc (powerpc-*-linux*): Merge variants.
6771
6772 2009-04-02  Chao-ying Fu  <fu@mips.com>
6773             James Grosbach  <james.grosbach@microchip.com>
6774
6775         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6776         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6777         cop0_sp_offset.
6778         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6779         keep_interrupts_masked_p, use_debug_exception_return_p.
6780         (mips_attribute_table): Add interrupt, use_shadow_register_set,
6781         keep_interrupts_masked, use_debug_exception_return.
6782         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6783         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6784         New functions.
6785         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6786         (mips_print_operand): Process COP0 registers to print $0 .. $31
6787         correctly for GAS to process.
6788         (mips_interrupt_extra_call_saved_reg_p): New function.
6789         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6790         extra registers.
6791         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6792         (mips_compute_frame_info): Add supports for interrupt context that
6793         includes doubleword accumulators and COP0 registers.
6794         (mips_for_each_saved_acc): New function.
6795         (mips_for_each_saved_gpr_and_fpr): Change the function name from
6796         mips_for_each_saved_reg.
6797         (mips_save_reg): Save accumulators.
6798         (mips_kernel_reg_p): A new for_each_rtx callback.
6799         (mips_expand_prologue): Support interrupt handlers.
6800         (mips_restore_reg): Restore accumulators.
6801         (mips_expand_epilogue): Support interrupt handlers.
6802         (mips_can_use_return_insn): Return false for interrupt handlers.
6803         (mips_epilogue_uses): New function.
6804         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6805         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6806         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6807         cop0_move): New instructions.
6808         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6809         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6810         defines.
6811         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6812         New defines.
6813         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6814         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6815         interrupt handlers, we use K0 as the temporary register.
6816         (EPILOGUE_USES): Change to a function call.
6817         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6818         handlers, we use K0 as the temporary register.
6819
6820         * doc/extend.texi (Function Attributes): Document interrupt,
6821         use_shadow_register_set, keep_interrupts_masked,
6822         use_debug_exception_return for MIPS attributes.
6823
6824 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
6825
6826         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6827         Remove a number of t-files from tmake_file.
6828         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6829         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6830         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6831         target_prototype, not TARGET_PROTOTYPE.
6832         (LINK_OS_GNU_SPEC): Define.
6833         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6834         and darwin-ldoubdle.c.
6835
6836 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6837
6838         PR driver/39293
6839         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6840         (cpp_options): Ditto.
6841         (default_compilers): Ditto.
6842         (display_help): Ditto.
6843         (process_command): Ditto.
6844         (do_spec_1): Ditto.
6845         (set_input): Use lbasename instead of duplicate code.
6846         (save_temps_prefix): New static for -save-temps=obj.
6847         (save_temps_length): Ditto.
6848
6849         * doc/invoke.texi (-save-temps=obj): Document new variant to
6850         -save-temps switch.
6851
6852 2009-04-02  Jeff Law  <law@redhat.com>
6853
6854         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6855         variable.
6856
6857 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6858
6859         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6860         * configure: Regenerated.
6861
6862 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6863
6864         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
6865         share the argument list.
6866
6867 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6868
6869         Merge
6870
6871         2009-02-12  Diego Novillo  <dnovillo@google.com>
6872
6873         * varpool.c (debug_varpool): New.
6874         * cgraph.h (debug_varpool): Declare.
6875
6876 2009-04-02  Jan Hubicka  <jh@suse.cz>
6877
6878         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
6879         pass.
6880
6881 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6882
6883         * config/i386/i386.c (ix86_abi): Move initialization to ...
6884         (override_options): Here.
6885
6886 2009-04-02  Christian Bruel  <christian.bruel@st.com>
6887
6888         * config/sh/sh.c (sh_dwarf_register_span): New function.
6889         (TARGET_DWARF_REGISTER_SPAN): Define.
6890         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
6891
6892 2009-04-02  Ira Rosen  <irar@il.ibm.com>
6893
6894         PR tree-optimization/39595
6895         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
6896         interleaved loads group is not  greater than the SLP group size.
6897
6898 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6899
6900         * builtins.c (is_builtin_name): New.
6901         (called_as_built_in): Use is_builtin_name.
6902         * tree.h (is_builtin_name): New.
6903         * varasm.c (incorporeal_function_p): Use is_builtin_name
6904
6905 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
6906
6907         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
6908
6909 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
6910
6911         PR c++/26693
6912         * c-decl.c (clone_underlying_type): Move this ...
6913         * c-common.c (set_underlying_type): ... here.
6914         Also, make sure the function properly sets TYPE_STUB_DECL() on
6915         the newly created typedef variant type.
6916         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
6917         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
6918         points.
6919
6920 2009-04-02  Richard Guenther  <rguenther@suse.de>
6921
6922         PR tree-optimization/37221
6923         * tree-flow.h (degenerate_phi_result): Declare.
6924         * tree-ssa-dom.c (degenerate_phi_result): Export.
6925         * tree-scalar-evolution.c (analyze_initial_condition): If
6926         the initial condition is defined by a degenerate PHI node
6927         use the degenerate value.
6928
6929 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
6930
6931         PR rtl-optimization/39588
6932         * combine.c (merge_outer_ops): Do not set the constant when this
6933         is not necessary.
6934         (simplify_shift_const_1): Do not modify it either in this case.
6935
6936 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
6937
6938         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
6939         tuning is deprecated if -mtune value is set to an Itanium1 variant.
6940
6941 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
6942
6943         PR c/29027
6944         * c-lex.c (interpret_float): Default (no suffix) is double.
6945
6946 2009-04-1  Xinliang David Li  <davidxl@google.com>
6947
6948         * config/i386/i386.c (legitimate_constant_p): Recognize
6949         all one vector constant.
6950
6951 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6952
6953         * config/vax/vax.c: Add #includes to silence warnings.
6954         Change #include order to silence two warnings.
6955
6956 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6957
6958         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
6959         (ASM_SPEC): Pass -k to the assembler for PIC code.
6960
6961 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6962
6963         * config.gcc: Add vax-*-linux* to the switch.
6964         * config/vax/linux.h: New file. (TARGET_VERSION,
6965         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6966
6967 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6968
6969         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
6970         Use predicate macros instead of GET_CODE() == foo.
6971         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
6972         ashlsi3, rotrsi3, <unnamed>): Likewise.
6973
6974 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6975
6976         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
6977         jbbccihi, jbbccisi): Remova trailing whitespace.
6978         * config/vax/constraints.md: Likewise.
6979         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6980         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6981         * config/vax/predicates.md: Likewise.
6982         * config/vax/vax.c (print_operand_address, vax_output_int_move,
6983         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
6984         * config/vax/vax.h: Likewise.
6985         * config/vax/vax.md (nonlocal_goto): Likewise.
6986
6987 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6988
6989         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
6990         (indirectable_address_p, adjacent_operands_p): Add spaces around
6991         braces.
6992         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
6993
6994 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6995
6996         * config/vax/vax.c (legitimate_constant_address_p,
6997         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
6998         index_term_p, reg_plus_index_p, legitimate_address_p,
6999         vax_mode_dependent_address_p): Update comments to match functions
7000         modified by the recent int->bool conversion.
7001
7002 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7003
7004         * config/vax/builtins.md: Update copyright message.
7005         * config/vax/constraints.md: Likewise.
7006         * config/vax/netbsd-elf.h: Likewise.
7007         * config/vax/predicates.md: Likewise.
7008         * config/vax/vax-protos.h: Likewise.
7009         * config/vax/vax.c: Likewise.
7010         * config/vax/vax.h: Likewise.
7011         * config/vax/vax.md: Likewise.
7012         * config/vax/vax.opt: Likewise.
7013
7014 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7015
7016         * config/vax/builtins.md (ffssi2, ffssi2_internal,
7017         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
7018         * config/vax/constraints.md (B, R): Likewise.
7019         * config/vax/predicates.md (external_memory_operand,
7020         nonimmediate_addsub_di_operand): Likewise.
7021         * config/vax/vax.c (vax_output_int_add): Likewise.
7022         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
7023         untyped_call): Likewise.
7024
7025 2009-04-01  Matt Thomas  <matt@3am-software.com>
7026
7027         * config/vax/predicates.md: New file.
7028         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
7029         external_const_operand, nonsymbolic_operand, external_memory_operand,
7030         indirect_memory_operand, indexed_memory_operand,
7031         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7032         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7033         predicate.
7034         * config/vax/constraints.md: New file.
7035         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7036         New constraint.
7037         * config/vax/builtins.md: New file.
7038         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7039         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7040         jbbccisi): Define.
7041         * config/vax/vax.opt (mqmath): Add option.
7042         * config/vax/vax.md (isfx): Extend with DI.
7043         (VAXintQH, VAXintQHSD): Define.
7044         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7045         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7046         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7047         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7048         (movdi): Update constraints and use vax_output_int_move().
7049         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7050         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7051         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7052         nonlocal_goto): New.
7053         (mov<mode>): Extend accepted operand types.
7054         (subdi3_old): Rename from subdi3, change update constraints and use
7055         a new implementation.
7056         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
7057         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7058         MOVE_RATIO, CLEAR_RATIO): Define.
7059         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7060         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7061         (PRINT_OPERAND): Redefine using a function instead of inlined code.
7062         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7063         (split_quadword_operands): Make static and really allow variable
7064         splitting.
7065         (print_operand_address): Update for PIC generation.
7066         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7067         indexable_address_p, fixup_mathdi_operand,
7068         vax_expand_addsub_di_operands, adjacent_operands_p): New.
7069         (vax_float_literal, legitimate_constant_p,
7070         indirectable_constant_address_p, index_term_p,
7071         reg_plus_index_p): Return bool instead of int.
7072         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7073         where needed.
7074         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7075         generation.
7076         (vax_output_conditional_branch): Indent.
7077         (legitimate_constant_address_p, indirectable_constant_address_p,
7078         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7079         vax_mode_dependent_address_p): Return bool instead of int, update for
7080         PIC generation.
7081         * config/vax/vax-protos.h (legitimate_constant_address_p,
7082         legitimate_constant_p, legitimate_address_p,
7083         vax_mode_dependent_address_p): Change declaration to bool.
7084         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7085         vax_expand_addsub_di_operands, vax_output_int_subtract,
7086         vax_output_movmemsi): Declare.
7087         (split_quadword_operands, vax_float_literal): Delete declaration.
7088         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7089         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7090         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7091         ASM_OUTPUT_DWARF_PCREL): Define.
7092         (ASM_SPEC): Change definition to allow PIC generation.
7093
7094 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
7095
7096         * doc/sourcebuild.texi: Update front-end requirements.
7097
7098 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7099
7100         PR target/39226
7101         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7102         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7103         (booldi3_internal3): Use boolean_or_operator instead of
7104         boolean_operator.
7105
7106 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
7107
7108         PR c/39605
7109         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7110         declarator whose size is not an integer constant expression but
7111         folds to an integer constant, then treat it as a constant
7112         subsequently.
7113
7114 2009-04-01  Richard Guenther  <rguenther@suse.de>
7115
7116         * fold-const.c (fold_plusminus_mult_expr): Do not fold
7117         i * 4 + 2 to (i * 2 + 1) * 2.
7118
7119 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7120
7121         PR c/37772
7122         * c-parser.c (c_parser_asm_statement): Skip until close paren and
7123         return if c_parser_asm_string_literal returned NULL.
7124
7125 2009-04-01  Nick Clifton  <nickc@redhat.com>
7126
7127         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7128         already defined.
7129         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7130         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
7131         other typedefs to avoid conflicts with libgcc2.c.  Define labels
7132         to gain 16-bit bit-manipulation functions from libgcc2.c and then
7133         include it.
7134         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
7135         to gain 16-bit trapping arithmetic functions from libgcc2.c and
7136         then include it.
7137
7138 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
7139
7140         * varasm.c (default_function_rodata_section): Declare DOT as
7141         const char*.
7142
7143 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
7144             Andrey Galkin  <agalkin@hypercom.com>
7145
7146         PR/39492
7147         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7148         Make object_name unique for each process.
7149
7150 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7151
7152         PR other/39591
7153         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7154         addressable variables in the parallel that could go out of scope while
7155         running queued tasks.
7156
7157 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
7158
7159         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7160         (CASE_VALUES_THRESHOLD): Redefine.
7161         * config/avr/avr.c (avr_override_options): Remove initialization of
7162         avr_case_values_threshold variable.
7163         (avr_case_values_threshold): Remove variable. Add new function.
7164         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7165         * config/avr/avr.opt (mno-tablejump): Remove option.
7166         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7167
7168 2009-04-01  DJ Delorie  <dj@redhat.com>
7169
7170         * varasm.c (default_function_rodata_section): Don't assume
7171         anything about where the first '.' in the section name is.
7172
7173 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
7174
7175         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7176         rs6000_emit_stack_tie.
7177
7178 2009-03-31  Ian Lance Taylor  <iant@google.com>
7179
7180         * tree-eh.c (tree_remove_unreachable_handlers): Compare
7181         gimple_code with GIMPLE_RESX, not RESX.
7182
7183 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7184
7185         * c-common.c (c_get_ident): New.
7186         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
7187
7188 2009-04-01  Ben Elliston  <bje@au.ibm.com>
7189
7190         * config/rs6000/sysv4.opt (msdata): Improve option description.
7191
7192 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
7193
7194         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7195         (divdf3_internal_lat): Remove.
7196         (divxf3_internal_lat): Remove.
7197         (divxf3_internal_thr): Remove.
7198         (divxf): Use divxf3_internal.
7199         * config/ia64/div.md (divsf3_internal_lat): New.
7200         (divdf3_internal_lat): New.
7201         (divxf3_internal): New.
7202
7203 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7204
7205         PR c/448
7206         * Makefile.in (USE_GCC_STDINT): Define.
7207         (stmp-int-hdrs): Install stdint.h if applicable.
7208         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7209         if known.
7210         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7211         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7212         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7213         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7214         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7215         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7216         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7217         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7218         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7219         (c_common_nodes_and_builtins): Initialize
7220         underlying_wchar_type_node.  Do not initialize
7221         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
7222         nodes for new types.
7223         (c_stddef_cpp_builtins): Define macros for new types.
7224         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7225         Remove.
7226         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7227         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7228         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7229         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7230         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7231         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7232         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7233         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7234         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7235         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7236         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7237         int16_type_node, int32_type_node, int64_type_node,
7238         uint8_type_node, uint16_type_node, c_uint32_type_node,
7239         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7240         int_least32_type_node, int_least64_type_node,
7241         uint_least8_type_node, uint_least16_type_node,
7242         uint_least32_type_node, uint_least64_type_node,
7243         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7244         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7245         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7246         uintptr_type_node): Define.
7247         * c-cppbuiltin.c (builtin_define_constants,
7248         builtin_define_type_minmax): New.
7249         (builtin_define_stdint_macros): Define more macros.
7250         (c_cpp_builtins): Define more limit macros.
7251         (type_suffix): New.
7252         (builtin_define_type_max): Define in terms of
7253         builtin_define_type_minmax.  Remove is_long parameter.  All
7254         callers changed.
7255         * config.gcc (use_gcc_stdint): Define.
7256         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7257         Add newlib-stdint.h for generic targets.
7258         * config/glibc-stdint.h, config/newlib-stdint.h,
7259         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7260         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7261         * config/score/score.h (UINTPTR_TYPE): Define.
7262         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7263         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7264         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7265         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7266         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7267         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7268         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7269         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7270         * config/spu/spu.h (STDINT_LONG32): Define.
7271         * configure.ac (use_gcc_stdint): Substitute.
7272         * configure: Regenerate.
7273         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7274         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7275         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7276         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7277         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7278         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7279         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7280         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7281         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7282         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7283         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7284         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7285         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7286         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7287         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7288         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7289         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7290         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7291         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7292         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7293         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7294         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7295         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7296         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7297         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7298         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7299         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7300         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7301         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7302
7303 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
7304
7305         * loop-iv.c (suitable_set_for_replacement): Renamed from
7306         simplify_using_assignment; changed to return bool and to accept new
7307         args DEST and SRC.  Return true iff we find a source/destination pair
7308         that can be used to make a replacement, and fill SRC and DEST if so.
7309         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
7310         changed.
7311         (simplify_using_initial_values): Deal with altered regs here and track
7312         more precisely the effect they have on the validity of our expression.
7313
7314         * loop-iv.c (simplify_using_condition): A condition of the form
7315         (EQ REG CONST) can be used to simply make a substitution.
7316         (simplify_using_initial_values): Keep track of conditions we have seen
7317         and keep using them to simplify new expressions, while applying the
7318         same substitutions to them as to the expression.
7319
7320         * simplify-rtx.c (simplify_relational_operation_1): Simplify
7321         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7322         GEU/LTU reversed.
7323
7324         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
7325         changed.  Use this when trying to improve the upper bound.
7326         Generate the comparison by using simplify_gen_relational.
7327
7328         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7329
7330         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7331         functions.
7332         (simplify_using_assignment, simplify_using_initial_values): Call
7333         replace_in_expr to make replacements.  Call replace_single_def_regs
7334         once on the initial version of the expression.
7335
7336 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7337
7338         PR target/27237
7339         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
7340
7341 2009-03-31  Richard Guenther  <rguenther@suse.de>
7342
7343         PR middle-end/31029
7344         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7345         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
7346
7347 2009-03-31  Richard Guenther  <rguenther@suse.de>
7348
7349         * tree.h (div_if_zero_remainder): Declare.
7350         * fold-const.c (div_if_zero_remainder): Export.
7351         * tree-ssa-forwprop.c
7352         (forward_propagate_addr_into_variable_array_index): Handle
7353         constant array index addition outside of the variable index.
7354
7355 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7356
7357         PR target/39592
7358         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7359         define_splits, floatunssi<mode>2): Require x87 conversions from
7360         DImode to be permitted.
7361
7362 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7363
7364         PR preprocessor/15638
7365         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7366
7367 2009-03-31  Richard Guenther  <rguenther@suse.de>
7368
7369         PR middle-end/23401
7370         PR middle-end/27810
7371         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7372         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7373         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7374         a separate statement.
7375         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7376         (lookup_tmp_var): Likewise.
7377         (is_gimple_formal_tmp_or_call_rhs): Remove.
7378         (is_gimple_reg_or_call_rhs): Rename to ...
7379         (is_gimple_reg_rhs_or_call): ... this.
7380         (is_gimple_mem_or_call_rhs): Rename to ...
7381         (is_gimple_mem_rhs_or_call): ... this.
7382         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
7383         DECL_GIMPLE_REG_P only if is_formal is true.
7384         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
7385         for non-proper post-modify expression gimplification.
7386         (gimplify_self_mod_expr): For post-modify expressions gimplify
7387         the lvalue to a minimal lvalue.
7388         (rhs_predicate_for): Remove formal temp case.
7389         (gimplify_modify_expr_rhs): Likewise.
7390         (gimplify_addr_expr): Use is_gimple_reg.
7391         (gimplify_expr): Remove formal temp cases.
7392         (gimple_regimplify_operands): Likewise.
7393         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7394         and FILTER_EXPR like constants.
7395         * gimple.c (walk_gimple_op): Fix val_only initialization, use
7396         is_gimple_reg.
7397         (is_gimple_formal_tmp_rhs): Remove.
7398         (is_gimple_reg_rhs): Remove special casing.
7399         (is_gimple_mem_rhs): Fix.
7400         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7401         (is_gimple_formal_tmp_var): Remove.
7402         (is_gimple_formal_tmp_reg): Likewise.
7403         (is_gimple_min_lval): Allow invariant component ref parts.
7404         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7405         is_gimple_formal_tmp_reg): Remove declarations.
7406         * tree-cfg.c (verify_expr): Verify that variables with address
7407         taken do not have DECL_GIMPLE_REG_P set.
7408         * tree-mudflap.c (mf_build_check_statement_for): Use
7409         force_gimple_operand instead of gimplify_expr.
7410
7411 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
7412
7413         * modulo-sched.c (sms_schedule_by_order): Pass the actual
7414         schedulable rows to compute_split_row.
7415
7416 2009-03-31  Ben Elliston  <bje@au.ibm.com>
7417
7418         PR target/31635
7419         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7420         OPT_mvrsave.
7421
7422 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7423
7424         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7425         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7426         * configure: Regenerate.
7427         * config.in: Regenerate.
7428         * config/rs6000/rs6000.opt (mtls-markers): Add.
7429         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7430         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7431         (tls_ld_aix, tls_ld_sysv): Likewise.
7432         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7433         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7434
7435 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7436
7437         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7438
7439 2009-03-30  Jan Hubicka  <jh@suse.cz>
7440
7441         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7442         out of RESX.
7443         (tree_remove_unreachable_handlers): Cleanup EH predecestor
7444         detection and label handling.
7445
7446 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7447
7448         * ira-int.h (ira_allocno): Rename left_conflicts_num to
7449         left_conflicts_size.
7450         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7451         ALLOCNO_LEFT_CONFLICTS_SIZE.
7452
7453         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7454         remove_allocno_from_bucket_and_push,
7455         allocno_spill_priority_compare, push_allocnos_to_stack,
7456         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7457         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7458         (setup_allocno_left_conflicts_num): Ditto.  Rename to
7459         setup_allocno_left_conflicts_size.
7460         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7461         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7462         setup_allocno_left_conflicts_size instead of
7463         setup_allocno_left_conflicts_num.
7464
7465         * ira-build.c (ira_create_allocno): Use
7466         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7467         ALLOCNO_LEFT_CONFLICTS_NUM.
7468
7469 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7470
7471         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7472         instead of DF_LR_OUT.
7473
7474         * ira-lives.c (process_bb_node_lives): Ditto.
7475
7476         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7477         instead of DF_LR_{OUT,IN}.
7478
7479         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7480
7481         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7482
7483 2009-03-30  Jan Hubicka  <jh@suse.cz>
7484
7485         * except.c (label_to_region_map): Fix thinko.
7486
7487 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
7488
7489         PR middle-end/38237
7490         * tree.h (tree_find_value): New declaration.
7491         * tree.c (tree_find_value): New function.
7492         * varasm.c (assemble_external): Avoid duplicate entries on lists.
7493
7494 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
7495
7496         PR debug/39563
7497         * c-decl.c (struct c_binding): Add locus field.
7498         (bind): Add locus argument, set locus field from it.
7499         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7500         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7501         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7502         implicitly_declare, undeclared_variable, lookup_label,
7503         declare_label, c_make_fname_decl, c_builtin_function,
7504         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7505         bind callers.
7506
7507 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7508
7509         PR target/38781
7510         * config/i386/i386.c (classify_argument): Check total size of
7511         structure.
7512
7513 2009-03-30  Martin Jambor  <mjambor@suse.cz>
7514
7515         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7516         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7517         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7518         respectively.
7519
7520         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7521         seen_variable_array_ref while also traversing a union.
7522
7523         * tree-inline.c (optimize_inline_calls): Do not call
7524         cgraph_node_remove_callees.
7525         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7526         (pass_remove_cgraph_callee_edges): New variable.
7527         * passes.c (init_optimization_passes): Add
7528         pass_remove_cgraph_callee_edges after early inlining and before all
7529         late intraprocedural passes.
7530
7531         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7532
7533 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7534
7535         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7536         Fix typos in names.
7537
7538 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7539
7540         * combine.c (simplify_comparison): Use have_insn_for.
7541         * dojump.c (do_jump): Likewise.
7542
7543 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7544
7545         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7546         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7547         sparc_compare_op0 like sparc_compare_emitted used to be handled.
7548         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7549         instead of sparc_compare_emitted.
7550         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7551         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7552         instead of sparc_compare_emitted.
7553
7554 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7555
7556         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7557         enter/exit cfglayout mode.
7558         (pass_partition_block): Require it.
7559         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7560         (combine_instructions): Track basic blocks instead of labels.
7561         (update_cfg_for_uncondjump): New.
7562         (try_combine): Use it.  Update jumps after rescanning.
7563         (pass_combine): Require PROP_cfglayout.
7564         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7565
7566 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7567
7568         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7569         Provide/destroy PROP_cfglayout respectively.
7570         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7571         * tree-pass.h (PROP_cfglayout): New.
7572
7573 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7574
7575         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7576         fold_convert_const_fixed_from_fixed,
7577         fold_convert_const_fixed_from_int,
7578         fold_convert_const_fixed_from_real, fold_negate_const): Do not
7579         set TREE_CONSTANT_OVERFLOW.
7580         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7581         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7582
7583 2009-03-30  Ira Rosen  <irar@il.ibm.com>
7584
7585         * tree-vect-loop-manip.c: New file.
7586         * tree-vectorizer.c: Update documentation and included files.
7587         (vect_loop_location): Make extern.
7588         (rename_use_op): Move to tree-vect-loop-manip.c
7589         (rename_variables_in_bb, rename_variables_in_loop,
7590         slpeel_update_phis_for_duplicate_loop,
7591         slpeel_update_phi_nodes_for_guard1,
7592         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7593         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7594         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
7595         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
7596         find_loop_location): Likewise.
7597         (new_stmt_vec_info): Move to tree-vect-stmts.c.
7598         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7599         get_vectype_for_scalar_type, vect_is_simple_use,
7600         supportable_widening_operation, supportable_narrowing_operation):
7601         Likewise.
7602         (bb_in_loop_p): Move to tree-vect-loop.c.
7603         (new_loop_vec_info, destroy_loop_vec_info,
7604         reduction_code_for_scalar_code, report_vect_op,
7605         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7606         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7607         (vect_supportable_dr_alignment): Likewise.
7608         * tree-vectorizer.h (tree-data-ref.h): Include.
7609         (vect_loop_location): Declare.
7610         Reorganize function declarations according to the new file structure.
7611         * tree-vect-loop.c: New file.
7612         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
7613         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7614         * tree-vect-data-refs.c: New file.
7615         * tree-vect-patterns.c (timevar.h): Don't include.
7616         * tree-vect-stmts.c: New file.
7617         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
7618         tree-vect-slp.c, tree-vect-loop.c.
7619         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7620         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
7621         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7622         (tree-vect-analyze.o): Remove.
7623         (tree-vect-transform.o): Likewise.
7624         (tree-vect-data-refs.o): Add rule.
7625         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
7626         tree-vect-slp.o): Likewise.
7627         (tree-vect-patterns.o): Remove redundant dependencies.
7628         (tree-vectorizer.o): Likewise.
7629         * tree-vect-slp.c: New file.
7630
7631 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7632
7633         * optc-gen.awk: Warn if an option flag has multiple different
7634         help strings.
7635
7636 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7637
7638         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7639         -floop-block): Document dependences on PPL, CLooG and Graphite.
7640
7641 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7642
7643         PR rtl-optimization/323
7644         * c-common.c (c_fully_fold, convert_and_check,
7645         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7646         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7647         * c-common.def (EXCESS_PRECISION_EXPR): New.
7648         * c-cppbuiltin.c (builtin_define_float_constants): Define
7649         constants with enough digits for long double.
7650         * c-lex.c (interpret_float): Interpret constant with excess
7651         precision where appropriate.
7652         * c-opts.c (c_common_post_options): Set
7653         flag_excess_precision_cmdline.  Give an error for
7654         -fexcess-precision=standard for C++ for processors where the
7655         option is significant.
7656         * c-parser.c (c_parser_conditional_expression): Handle excess
7657         precision in condition.
7658         * c-typeck.c (convert_arguments): Handle arguments with excess
7659         precision.
7660         (build_unary_op): Move excess precision outside operation.
7661         (build_conditional_expr): Likewise.
7662         (build_compound_expr): Likewise.
7663         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7664         (build_modify_expr): Handle excess precision in RHS.
7665         (convert_for_assignment): Handle excess precision in converted
7666         value.
7667         (digest_init, output_init_element, process_init_element): Handle
7668         excess precision in initializer.
7669         (c_finish_return): Handle excess precision in return value.
7670         (build_binary_op): Handle excess precision in operands and add
7671         excess precision as needed for operation.
7672         * common.opt (-fexcess-precision=): New option.
7673         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7674         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7675         For standard excess precision, output explicit conversion to and
7676         truncation from XFmode.
7677         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7678         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7679         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7680         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7681         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7682         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7683         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7684         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7685         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7686         define_splits, sqrt<mode>2): Disable where appropriate for
7687         standard excess precision.
7688         * convert.c (convert_to_real): Do not shorten arithmetic to type
7689         for which excess precision would be used.
7690         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7691         * doc/invoke.texi (-fexcess-precision=): Document option.
7692         (-mfpmath=): Correct index entry.
7693         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7694         flag_excess_precision): New.
7695         * langhooks.c (lhd_post_options): Set
7696         flag_excess_precision_cmdline.
7697         * opts.c (common_handle_option): Handle -fexcess-precision=.
7698         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7699         init_excess_precision): New.
7700         (lang_dependent_init_target): Call init_excess_precision.
7701         * tree.c (excess_precision_type): New.
7702         * tree.h (excess_precision_type): Declare.
7703
7704 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7705
7706         PR c/35235
7707         * c-typeck.c (build_component_ref): Do not copy qualifiers from
7708         non-lvalue to component.
7709
7710 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7711
7712         PR preprocessor/34695
7713         * Makefile.in (c-opts.o): Depend on c-tree.h.
7714         * c-common.c: Move down include of diagnostic.h.
7715         (done_lexing, c_cpp_error): New.
7716         * c-common.h (done_lexing): Declare.
7717         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7718         (parse_in).
7719         * c-opts.c: Include c-tree.h.
7720         (c_common_init_options): Set preprocessor error callback.
7721         (c_common_handle_option): Do not set preprocessor
7722         inhibit_warnings, warnings_are_errors, warn_system_headers,
7723         pedantic_errors or inhibit_warnings flags.
7724         (c_common_post_options): Do not check cpp_errors (parse_in).
7725         (c_common_finish): Do not output dependencies if there were
7726         errors.  Do not check return value of cpp_finish.
7727         * c-ppoutput.c (pp_file_change): Set input_location.
7728         * c-tree.h (c_cpp_error): Declare.
7729         * diagnostic.c (diagnostic_set_info_translated): Also initialize
7730         override_column.
7731         (diagnostic_build_prefix): Check override_column.
7732         * diagnostic.h (diagnostic_info): Add override_column field.
7733         (diagnostic_override_column): Define.
7734
7735 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
7736
7737         * c-common.c (c_expand_expr, c_staticp): Remove.
7738         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7739         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7740         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7741         * c-gimplify.c (gimplify_compound_literal_expr,
7742         optimize_compound_literals_in_ctor): Remove.
7743         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7744         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7745         * c-semantics.c (emit_local_var): Remove.
7746
7747         * langhooks-def.h (lhd_expand_expr): Remove.
7748         * langhooks.c (lhd_expand_expr): Remove.
7749         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7750
7751         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7752         handling from c-semantics.c; don't call into langhook.
7753         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7754         * gimplify.c (gimplify_compound_literal_expr,
7755         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7756         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7757         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7758         as was done in c-gimplify.c.
7759         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7760         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7761         Move from c-common.h.
7762         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
7763
7764         * tree.c (staticp): Do not call langhook.
7765         * langhooks.c (lhd_staticp): Delete.
7766         * langhooks-def.h (lhd_staticp): Delete prototype.
7767         (LANG_HOOKS_STATICP): Delete.
7768         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7769
7770         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7771         instead of DECL_STMTs.
7772
7773 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7774
7775         PR c/456
7776         PR c/5675
7777         PR c/19976
7778         PR c/29116
7779         PR c/31871
7780         PR c/35198
7781         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7782         void_type_node.
7783         (fold_call_expr): Return a NOP_EXPR from folding rather than the
7784         contained expression.
7785         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
7786         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
7787         conditional expressions for C.
7788         (decl_constant_value_for_optimization): Move from
7789         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
7790         whether optimizing and that the expression is a VAR_DECL not of
7791         array type instead of doing such checks in the caller.  Do not
7792         check pedantic.  Call gcc_unreachable for C++.
7793         * c-common.def (C_MAYBE_CONST_EXPR): New.
7794         * c-common.h (c_fully_fold, c_save_expr,
7795         decl_constant_value_for_optimization): New prototypes.
7796         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7797         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7798         EXPR_INT_CONST_OPERANDS): Define.
7799         * c-convert.c (convert): Strip nops from expression.
7800         * c-decl.c (groktypename): Take extra parameters expr and
7801         expr_const_operands.  Update call to grokdeclarator.
7802         (start_decl): Update call to grokdeclarator.  Add statement for
7803         expressions used in type of decl.
7804         (grokparm): Update call to grokdeclarator.
7805         (push_parm_decl): Update call to grokdeclarator.
7806         (build_compound_literal): Add parameter non_const and build a
7807         C_MAYBE_COSNT_EXPR if applicable.
7808         (grokdeclarator): Take extra parameters expr and
7809         expr_const_operands.  Track expressions used in declaration
7810         specifiers and declarators.  Fold array sizes and track whether
7811         they are constant expressions and whether they are integer
7812         constant expressions.
7813         (parser_xref_tag): Set expr and expr_const_operands fields in
7814         return value.
7815         (grokfield): Update call to grokdeclarator.
7816         (start_function): Update call to grokdeclarator.
7817         (build_null_declspecs): Set expr and expr_const_operands fields in
7818         return value.
7819         (declspecs_add_type): Handle expressions in typeof specifiers.
7820         * c-parser.c (c_parser_declspecs): Set expr and
7821         expr_const_operands fields for declaration specifiers.
7822         (c_parser_enum_specifier): Likewise.
7823         (c_parser_struct_or_union_specifier): Likewise.
7824         (c_parser_typeof_specifier): Likewise.  Update call to
7825         groktypename.  Fold expression as needed.  Return expressions with
7826         type instead of adding statements.
7827         (c_parser_attributes): Update calls to c_parser_expr_list.
7828         (c_parser_statement_after_labels): Fold expression before passing
7829         to objc_build_throw_stmt.
7830         (c_parser_condition): Fold expression.
7831         (c_parser_asm_operands): Fold expression.
7832         (c_parser_conditional_expression): Use c_save_expr.  Update call
7833         to build_conditional_expr.
7834         (c_parser_alignof_expression): Update call to groktypename.
7835         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7836         original_code.  Fold expression argument of va_arg.  Create
7837         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7838         argument to va_arg.  Update calls to groktypename.  Fold array
7839         index for offsetof.  Verify that first argument to
7840         __builtin_choose_expr has integer type.
7841         (c_parser_postfix_expression_after_paren_type): Update calls to
7842         groktypename and build_compound_literal.  Handle expressions with
7843         side effects in type name.
7844         (c_parser_postfix_expression_after_primary): Update call to
7845         c_parser_expr_list.  Set original_code for calls to
7846         __builtin_constant_p.
7847         (c_parser_expr_list): Take extra parameter fold_p.  Fold
7848         expressions if requested.
7849         (c_parser_objc_type_name): Update call to groktypename.
7850         (c_parser_objc_synchronized_statement): Fold expression.
7851         (c_parser_objc_receiver): Fold expression.
7852         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7853         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7854         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7855         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7856         (struct c_typespec): Add elements expr and expr_const_operands.
7857         (struct c_declspecs): Add elements expr and expr_const_operands.
7858         (groktypename, build_conditional_expr, build_compound_literal):
7859         Update prototypes.
7860         (in_late_binary_op): Declare.
7861         * c-typeck.c (note_integer_operands): New function.
7862         (in_late_binary_op): New variable.
7863         (decl_constant_value_for_broken_optimization): Move to c-common.c
7864         and rename to decl_constant_value_for_optimization.
7865         (default_function_array_conversion): Do not strip nops.
7866         (default_conversion): Do not call
7867         decl_constant_value_for_broken_optimization.
7868         (build_array_ref): Do not fold result.
7869         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
7870         result when operand is a VLA.
7871         (c_expr_sizeof_type): Update call to groktypename.  Handle
7872         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
7873         result when operand names a VLA type.
7874         (build_function_call): Update call to build_compound_literal.
7875         Only fold result for calls to __builtin_* functions.  Strip
7876         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
7877         the function designator.
7878         (convert_arguments): Fold arguments.  Update call to
7879         convert_for_assignment.
7880         (build_unary_op): Handle increment and decrement of
7881         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
7882         decrement earlier.  Fold operand of increment and decrement.
7883         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
7884         built for integer operand.  Wrap returns that are INTEGER_CSTs
7885         without being integer constant expressions or that have integer
7886         constant operands without being INTEGER_CSTs.
7887         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
7888         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
7889         result is an integer constant expression or can be used in
7890         unevaluated parts of one and avoid folding and wrap as
7891         appropriate.  Fold operands before possibly doing -Wsign-compare
7892         warnings.
7893         (build_compound_expr): Wrap result for C99 if operands can be used
7894         in integer constant expressions.
7895         (build_c_cast): Update call to digest_init.  Do not ignore
7896         overflow from casting floating-point constants to integers.  Wrap
7897         results that could be confused with integer constant expressions,
7898         null pointer constants or floating-point constants.
7899         (c_cast_expr): Update call to groktypename.  Handle expressions
7900         included in type name.
7901         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
7902         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
7903         Update calls to convert_for_assignment.
7904         (convert_for_assignment): Take new parameter
7905         null_pointer_constant.  Do not strip nops or call
7906         decl_constant_value_for_broken_optimization.  Set
7907         in_late_binary_op for conversions to boolean.
7908         (store_init_value): Update call to digest_init.
7909         (digest_init): Take new parameter null_pointer_constant.  Do not
7910         call decl_constant_value_for_broken_optimization.  pedwarn for
7911         initializers not constant expressions.  Update calls to
7912         convert_for_assignment.
7913         (constructor_nonconst): New.
7914         (struct constructor_stack): Add nonconst element.
7915         (really_start_incremental_init, push_init_level, pop_init_level):
7916         Handle constructor_nonconst and nonconst element.
7917         (set_init_index): Call constant_expression_warning for array
7918         designators.
7919         (output_init_element): Fold value.  Set constructor_nonconst as
7920         applicable.  pedwarn for initializers not constant expressions.
7921         Update call to digest_init.  Call constant_expression_warning
7922         where constant initializers are required.
7923         (process_init_element): Use c_save_expr.
7924         (c_finish_goto_ptr): Fold expression.
7925         (c_finish_return): Fold return value.  Update call to
7926         convert_for_assignment.
7927         (c_start_case): Fold switch expression.
7928         (c_process_expr_stmt): Fold expression.
7929         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
7930         ensure statement expression is not evaluated in constant expression.
7931         (build_binary_op): Track whether results are integer constant
7932         expressions or may occur in such, disable folding and wrap results
7933         as applicable.  Fold operands for -Wsign-compare warnings unless
7934         in_late_binary_op.
7935         (c_objc_common_truthvalue_conversion): Handle results folded to
7936         integer constants that are not integer constant expressions.
7937         * doc/extend.texi: Document when typeof operands are evaluated,
7938         that condition of __builtin_choose_expr is an integer constant
7939         expression, and more about use of __builtin_constant_p in
7940         initializers.
7941
7942 2009-03-29  Richard Guenther  <rguenther@suse.de>
7943
7944         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7945         propagate addresses of array references.
7946
7947 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
7948
7949         * regmove.c (perhaps_ends_bb_p): Remove.
7950         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
7951         from INSN and check that the main loop stays within that basic block.
7952         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7953         (regmove_forward_pass): Split out from regmove_optimize.  Use
7954         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7955         (regmove_backward_pass): Split out from regmove_optimize.  Use
7956         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7957         (regmove_optimize): Simplify.
7958
7959 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7960
7961         PR target/39545
7962         * config/i386/i386.c (classify_argument): Ignore flexible array
7963         member in struct and warn ABI change.
7964
7965 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7966
7967         * config/i386/i386-protos.h (ix86_agi_dependent): New.
7968
7969         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7970         (ix86_adjust_cost): Updated.
7971
7972 2009-03-29  Jan Hubicka  <jh@suse.cz>
7973
7974         PR middle-end/28850
7975         * tree-pass.h (pass_cleanup_eh): New function.
7976         (remove_unreachable_regions): Break code handling RTL
7977         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7978         that can not be reached by runtime.
7979         (can_be_reached_by_runtime): New function.
7980         (label_to_region_map): New function.
7981         (num_eh_regions): New function.
7982         (rtl_remove_unreachable_regions): New function.
7983         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
7984         (remove_eh_region): New function.
7985         * except.h: Include sbitmap and vecprim.
7986         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
7987         num_eh_regions): Declare.
7988         * passes.c (init_optimization_passes): Schedule cleanup_eh.
7989         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
7990         * tree-eh.c (tree_remove_unreachable_handlers): New function.
7991         (tree_empty_eh_handler_p): New function.
7992         (cleanup_empty_eh): New function.
7993         (cleanup_eh): New function.
7994         (pass_cleanup_eh): New function.
7995
7996 2009-03-29  Jan Hubicka  <jh@suse.cz>
7997
7998         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
7999         for removed regions.
8000
8001 2009-03-29  Jan Hubicka  <jh@suse.cz>
8002
8003         * except.c (dump_eh_tree): Dump all datastructures.
8004
8005 2009-03-29  Jan Hubicka  <jh@suse.cz>
8006
8007         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
8008         (duplicate_eh_regions_1): Likewise.
8009         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
8010         vector; call EH verification.
8011         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8012         Be ready for region being removed.
8013
8014 2009-03-29  Jan Hubicka  <jh@suse.cz>
8015
8016         * bitmap.c (bitmap_last_set_bit): New function.
8017         * bitmap.h (bitmap_last_set_bit): Declare.
8018
8019 2009-03-29  David Ayers  <ayers@fsfe.org>
8020
8021         PR objc/27377
8022         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8023         by calling objc_compare_types and surpress warnings about
8024         incompatible C pointers that are compatible ObjC pointers.
8025
8026 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
8027
8028         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8029         call initialize_inline_failed.
8030         (initialize_inline_failed): Move it from here ...
8031         * cgraph.c (initialize_inline_failed): ... to here.
8032         (cgraph_create_edge): Call initialize_inline_failed rather than
8033         setting inline_failed directly.
8034
8035 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8036
8037         PR target/32542
8038         * sysv4.opt (msdata): Improve comment.
8039         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8040         * sysv4.h (SVR4_ASM_SPEC): Likewise.
8041
8042 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8043
8044         PR target/30451
8045         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8046         load and store attributes.
8047
8048 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8049
8050         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8051         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8052         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8053         * doc/extend.texi (X86 Built-in Functions): Add index entries for
8054         __builtin_infq and __builtin_huge_valq.
8055
8056 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
8057
8058         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8059         atmega8m1 devices.
8060         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8061         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8062
8063 2009-03-28  Xinliang David Li  <davidxl@google.com>
8064
8065         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
8066         (do_dbg_cnt): New function.
8067
8068 2009-03-28  Jan Hubicka  <jh@suse.cz>
8069
8070         Merge from pretty-ipa:
8071
8072         2009-03-27  Jan Hubicka  <jh@suse.cz>
8073
8074         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8075         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8076         * passes.c (function_called_by_processed_nodes_p): New.
8077         * ipa-pure-const.c (check_call): Fix handling of operands.
8078         (analyze_function): Dump debug output for skipped bodies.
8079         (local_pure_const): Use function_called_by_processed_nodes_p.
8080         * dwarf2out.c (reference_to_unused): Use output.
8081         * passes.c (do_per_function_toporder): Likewise.
8082
8083         2008-11-12  Jan Hubicka  <jh@suse.cz>
8084
8085         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8086         * ipa-pure-const.c (funct_state_d): Add can throw field; make
8087         state_set_in_source enum
8088         (check_decl): Ignore memory tags; do not set fake looping flags;
8089         dump diagnostics.
8090         (check_operand, check_tree, check_rhs_var, check_lhs_var,
8091         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8092         (check_call, analyze_function): Rewrite.
8093         (check_stmt): New.
8094         (add_new_function): Update call of analyze_function.
8095         (generate_summary): Add call of analyze_function.
8096         (propagate): Propagate can_throw; handle state_set_in_source correctly.
8097         (local_pure_const): New function.
8098         (pass_local_pure_const): New pass.
8099         * ipa-inline.c (inline_transform): Set after_inlining.
8100         * tree-eh.c (stmt_can_throw_external): New.
8101         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8102         work with aliasing built.
8103         * tree-flow.h (stmt_can_throw_external): New.
8104         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8105         and local pure/const pass in early and late optimization queue.
8106
8107 2009-03-28  Martin Jambor  <mjambor@suse.cz>
8108
8109         * fold-const.c (get_pointer_modulus_and_residue): New parameter
8110         allow_func_align.
8111         (fold_binary): Allow function decl aligment consideration is the
8112         second argument is integer constant one.
8113         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8114         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8115         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8116
8117 2009-03-28  Jan Hubicka  <jh@suse.cz>
8118
8119         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8120         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8121         * function.h (rtl_data): Add nothrow flag.
8122         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8123         set DECL_NOTHROW for AVAILABLE functions.
8124
8125 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
8126
8127         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8128         following vector keyword has expansion starting with pixel or bool
8129         keyword, expand vector to __vector and pixel or bool to __pixel or
8130         __bool.
8131
8132         PR c++/39554
8133         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8134         warn_if_disallowed_function_p): Removed.
8135         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8136         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8137         warning_if_disallowed_function_p.
8138         * flags.h (warn_if_disallowed_function_p,
8139         warn_disallowed_functions): Removed.
8140         * common.opt (Wdisallowed-function-list=): Removed.
8141         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8142
8143 2009-03-28  Richard Guenther  <rguenther@suse.de>
8144
8145         PR tree-optimization/38723
8146         * tree-ssa-pre.c (compute_avail): Add all default definitions to
8147         the entry block.
8148
8149 2009-03-28  Jan Hubicka  <jh@suse.cz>
8150
8151         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8152         test introduced by my previous patch.
8153
8154 2009-03-28  Richard Guenther  <rguenther@suse.de>
8155
8156         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8157         the PHIs value undefined.
8158
8159 2009-03-28  Jan Hubicka  <jh@suse.cz>
8160
8161         * tree-pass.h (pass_fixup_cfg): New pass.
8162         * ipa-inline.c (inline_transform): Set
8163         always_inline_functions_inlined/after_inlining.
8164         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8165         (pass_fixup_cfg): New pass.
8166         * passes.c (init_optimization_passes): Add fixup_cfg.
8167
8168 2009-03-28  Richard Guenther  <rguenther@suse.de>
8169
8170         PR tree-optimization/38458
8171         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8172         argument use the arguments copy-of value.
8173
8174 2009-03-28  Richard Guenther  <rguenther@suse.de>
8175
8176         PR tree-optimization/38180
8177         * tree-ssa-ccp.c (get_default_value): Simplify.
8178         (likely_value): Likewise.
8179         (surely_varying_stmt_p): Properly handle VOP case.
8180         (ccp_initialize): Likewise.
8181         (ccp_fold): Handle propagating through *&.
8182         (fold_const_aggregate_ref): Also handle decls.
8183
8184 2009-03-28  Jan Hubicka  <jh@suse.cz>
8185
8186         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8187         * cgraph.h (cgraph_node): Likewise.
8188         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8189         (cgraph_reset_node): Use process flag.
8190         (cgraph_mark_functions_to_output): Likewise.
8191         (cgraph_expand_function): Likewise.
8192         (cgraph_expand_all_functions): Likewise.
8193         (cgraph_output_in_order): Likewise.
8194         * dwarf2out.c (reference_to_unused): Likewise.
8195         * passes.c do_per_function_toporder): Likewise.
8196
8197 2009-03-28  Jan Hubicka  <jh@suse.cz>
8198
8199         Bring from lto-branch:
8200
8201         2008-09-03  Doug Kwan  <dougkwan@google.com>
8202
8203         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8204         enums instead of reason strings.
8205         * cgraph.c (cgraph_create_edge): Same.
8206         (cgraph_inline_failed_string): New function.
8207         * cgraph.h (cgraph_inline_failed_t): New enum type.
8208         (cgraph_inline_failed_string): New prototype.
8209         (struct cgraph_edge): Change type of INLINED_FAILED from constant
8210         char pointer to cgraph_inline_failed_t.
8211         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8212         (cgraph_default_inline_p): Ditto.
8213         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
8214         to cgraph_inline_failed_t pointer.
8215         * cif-code.def: New file.
8216         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8217         reason string.
8218         (cgraph_check_inline_limits): Change type of REASON to pointer to
8219         cgraph_inline_failed_t.  Replace reason strings with enums.
8220         (cgraph_default_inline_p): Ditto.
8221         (cgraph_recursive_inlining_p): Ditto.
8222         (update_caller_keys): Change type of FAILED_REASON to
8223         cgraph_inline_failed_t.
8224         (cgraph_set_inline_failed): Change type of REASON to pointer to
8225         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
8226         convert enums to strings for text output.
8227         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8228         to be of type cgraph_inline_failed_t.  Replace reason strings with
8229         enums.  Call cgraph_inline_failed_string to covert enums
8230         to strings for text output.
8231         (cgraph_decide_inlining): Replace reason strings with enums.
8232         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8233         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
8234         for text output.
8235         * tree-inline.c (expand_call_inline): Change type of REASON
8236         to cgraph_inline_failed_t.  Replace reason strings with enums.
8237         Call cgraph_inline_failed_string for text output.
8238         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8239         (cgraph.o): Ditto.
8240
8241 2009-03-28  Jan Hubicka  <jh@suse.cz>
8242
8243         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8244         cgraph_clone_node): Remove master clone handling.
8245         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8246         * cgraph.h (master_clone): Remove.
8247         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8248         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8249         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8250
8251 2009-03-28  Jan Hubicka  <jh@suse.cz>
8252
8253         * cgraph.c (cgraph_function_body_availability): Functions declared
8254         inline are always safe to assume that it is not going to be replaced.
8255
8256 2009-03-28  Richard Guenther  <rguenther@suse.de>
8257
8258         PR tree-optimization/38513
8259         * tree-ssa-pre.c (eliminate): Remove redundant stores.
8260         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8261         EXC_PTR_EXPR and FILTER_EXPR.
8262         (get_ref_from_reference_ops): Likewise.
8263
8264 2009-03-28  Richard Guenther  <rguenther@suse.de>
8265
8266         PR tree-optimization/38968
8267         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8268         Use FLOOR_MOD_EXPR to compute misalignment.
8269
8270 2009-03-28  Richard Guenther  <rguenther@suse.de>
8271
8272         PR tree-optimization/37795
8273         * tree.h (combine_comparisons): Declare.
8274         * fold-const.c (combine_comparisons): Export.
8275         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8276         comparisons.
8277         (ifcombine_iforif): Use combine_comparisons.
8278
8279 2009-03-28  Jan Hubicka  <jh@suse.cz>
8280
8281         * tree-eh.c (inlinable_call_p): New function.
8282         (make_eh_edges): Use it.
8283         (verify_eh_edges): Use it.
8284         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8285         * except.c (reachable_next_level): Add inlinable_function argument
8286         (sjlj_find_directly_reachable_regions): Update.
8287         (add_reachable_handler): Do not set saw_any_handlers.
8288         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8289         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8290         Add new inlinable call parameter.
8291         (can_throw_internal, can_throw_external): Update.
8292         * except.h (can_throw_internal_1, can_throw_external_1,
8293         foreach_reachable_handler): Update declaration.
8294
8295 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
8296
8297         * config/arm/t-arm-coff, config/h8300/coff.h,
8298         config/i386/i386-aout.h, config/i386/i386-coff.h,
8299         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8300         config/pdp11/2bsd.h, config/rs6000/aix41.h,
8301         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8302         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8303         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8304         sys-types.h: Remove.
8305         * Makefile.in: Remove protoize and fixproto support and references
8306         in comments.
8307         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8308         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8309         Remove.
8310         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8311         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8312         unprotoize$(exeext).
8313         (rest.encap): Don't depend on $(STMP_FIXPROTO)
8314         (.PHONY): Don't depend on proto.
8315         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8316         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8317         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8318         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8319         build/gen-protos.o, build/scan.o, xsys-protos.h,
8320         build/fix-header$(build_exeext), build/fix-header.o,
8321         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8322         stmp-install-fixproto): Remove.
8323         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8324         SYSCALLS.c or fixproto files.
8325         (install-common): Don't install protoize.
8326         (install-headers-tar, install-headers-cpio, install-headers-cp):
8327         Don't depend on $(STMP_FIXPROTO).
8328         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
8329         install fixproto files or write out fixproto settings.
8330         (uninstall): Don't uninstall protoize.
8331         * config.gcc (use_fixproto): Remove.
8332         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8333         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8334         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8335         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8336         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8337         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8338         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8339         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8340         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8341         * config/t-vxworks (STMP_FIXPROTO): Remove.
8342         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8343         STMP_FIXPROTO): Remove.
8344         * config.in, configure: Regenerate.
8345         * crtstuff.c (gid_t, uid_t): Don't undefine.
8346         * doc/install.texi: Change m68k-coff to m68k-elf in example.
8347         (arm-*-coff, arm-*-aout: Remove target entries.
8348         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8349         Remove mention of AIX 4.1.
8350         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8351         * doc/invoke.texi (Running Protoize): Remove.
8352         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8353         (Protoize Caveats): Remove.
8354         * tsystem.h: Update comments on headers assumed to exist.
8355
8356 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
8357
8358         * genautomata.c: Add a new year to the copyright.  Add a new
8359         reference.
8360         (struct insn_reserv_decl): Add comments for member bypass_list.
8361         (find_bypass): Remove.
8362         (insert_bypass): New.
8363         (process_decls): Use insert_bypass.
8364         (output_internal_insn_latency_func): Output all bypasses with the
8365         same input insn in one switch case.
8366
8367         * rtl.def (define_bypass): Describe bypass choice.
8368         * doc/md.texi (define_bypass): Ditto.
8369
8370 2009-03-27  Richard Guenther  <rguenther@suse.de>
8371
8372         * gimplify.c (mark_addressable): Export.
8373         * tree-flow.h (mark_addressable): Declare.
8374         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8375         * tree-ssa.c (verify_phi_args): Verify that address taken
8376         variables have TREE_ADDRESSABLE set.
8377
8378 2009-03-27  Richard Guenther  <rguenther@suse.de>
8379
8380         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8381         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
8382         Do not mark decls TREE_ADDRESSABLE.
8383         (build_fold_addr_expr): Adjust.
8384         (fold_addr_expr): Remove.
8385         (fold_unary): Use build_fold_addr_expr.
8386         (fold_comparison): Likewise.
8387         (split_address_to_core_and_offset): Likewise.
8388         * coverage.c (tree_coverage_counter_addr): Mark the array decl
8389         TREE_ADDRESSABLE.
8390         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8391         (gimplify_modify_expr_to_memcpy): Mark source and destination
8392         addressable.
8393         * omp-low.c (create_omp_child_function): Mark the object decl
8394         TREE_ADDRESSABLE.
8395         (lower_rec_input_clauses): Mark the var we take the address of
8396         TREE_ADDRESSABLE.
8397         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8398
8399 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8400
8401         PR middle-end/39315
8402         * cfgexpand.c (expand_one_stack_var_at): Change alignment
8403         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8404
8405 2009-03-27  Richard Guenther  <rguenther@suse.de>
8406
8407         PR tree-optimization/39120
8408         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8409         constraints.
8410         (handle_lhs_call): Process return constraints.  Add escape
8411         constraints if necessary.
8412         (handle_const_call): Fill out return constraints.  Make nested
8413         case more precise.  Avoid consttmp if possible.
8414         (handle_pure_call): Fill out return constraints.  Avoid
8415         callused if possible.
8416         (find_func_aliases): Simplify call handling.
8417
8418 2009-03-27  Richard Guenther  <rguenther@suse.de>
8419
8420         PR tree-optimization/39120
8421         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8422         as a representative.
8423         (solve_graph): Do propagate CALLUSED.
8424         (handle_pure_call): Use a scalar constraint from CALLUSED for
8425         the return value.
8426         (find_what_p_points_to): CALLUSED shall not appear in poins-to
8427         solutions.
8428
8429 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8430
8431         PR c/39323
8432         * c-common.c (handle_aligned_attribute): Properly check alignment
8433         overflow.  Use (1U << i) instead of (1 << i).
8434
8435         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
8436
8437         * expr.h (get_mem_align_offset): Updated.
8438
8439         * tree.h (tree_decl_common): Change align to "unsigned int" and
8440         move it before pointer_alias_set.
8441
8442 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8443             Jakub Jelinek  <jakub@redhat.com>
8444
8445         PR target/38034
8446         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8447         gr_register_operand with gr_reg_or_0_operand.
8448         (cmpxchg_rel_di): Likewise.
8449         (sync_lock_test_and_set<mode>): Likewise.
8450
8451 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8452
8453         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8454         (true_regnum): Likewise.
8455
8456         * rtlanal.c (subreg_info): Moved to ...
8457         * rtl.h (subreg_info): Here.  New.
8458         (subreg_get_info): New.
8459
8460         * rtlanal.c (subreg_get_info): Make it extern.
8461
8462 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8463
8464         PR target/39472
8465         * config/i386/i386.c (ix86_abi): New.
8466         (override_options): Handle -mabi=.
8467         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
8468         (ix86_call_abi_override): Likewise.
8469         (init_cumulative_args): Likewise.
8470         (function_arg_advance): Likewise.
8471         (function_arg_64): Likewise.
8472         (function_arg): Likewise.
8473         (ix86_pass_by_reference): Likewise.
8474         (ix86_function_value_regno_p): Likewise.
8475         (ix86_build_builtin_va_list_abi): Likewise.
8476         (setup_incoming_varargs_64): Likewise.
8477         (is_va_list_char_pointer): Likewise.
8478         (ix86_init_machine_status): Likewise.
8479         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
8480         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
8481         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
8482         (ix86_function_abi): Make it static and return enum calling_abi.
8483         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
8484         with ix86_abi.
8485         (ix86_fn_abi_va_list): Updated.
8486
8487         * config/i386/i386.h (ix86_abi): New.
8488         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8489         (CONDITIONAL_REGISTER_USAGE): Likewise.
8490         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8491         (machine_function): Likewise.
8492
8493         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8494         with ix86_abi.
8495         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8496         (STACK_BOUNDARY): Likewise.
8497         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8498
8499         * config/i386/i386.opt (mabi=): New.
8500
8501         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8502         return enum calling_abi.
8503         (ix86_function_type_abi): Likewise.
8504         (ix86_function_abi): Removed.
8505
8506         * doc/invoke.texi: Document -mabi= option for x86.
8507
8508 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8509
8510         * builtins.c (real_dconstp): Delete.
8511         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8512
8513 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
8514             Jakub Jelinek  <jakub@redhat.com>
8515
8516         PR debug/37959
8517         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8518         (gen_subprogram_die): When a function is explicit, generate the
8519         DW_AT_explicit attribute.
8520         * langhooks.h (struct lang_hooks_for_decls): Add
8521         function_decl_explicit_p langhook.
8522         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8523         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8524
8525 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
8526
8527         * builtins.c (fold_builtin_memory_op): Optimize memmove
8528         into memcpy if we can prove source and destination don't overlap.
8529
8530         * tree-inline.c: Include gt-tree-inline.h.
8531         (clone_fn_id_num): New variable.
8532         (clone_function_name): New function.
8533         (tree_function_versioning): Use it.
8534         * Makefile.in (GTFILES): Add tree-inline.c.
8535
8536 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
8537
8538         * BASE-VER: Change to 4.5.0.
8539
8540 2009-03-27  Xinliang David Li  <davidxl@google.com>
8541
8542         PR tree-optimization/39557
8543         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8544
8545 2009-03-27  Xinliang David Li  <davidxl@google.com>
8546
8547         PR tree-optimization/39548
8548         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
8549         candidate check.
8550
8551 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8552
8553         * c-common.c (pointer_int_sum): Use %wd on return from
8554         tree_low_cst.
8555
8556 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8557
8558         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8559         on return from tree_low_cst.
8560
8561 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8562
8563         PR c++/36799
8564         * ginclude/stdarg.h (va_copy): Define also for
8565         __GXX_EXPERIMENTAL_CXX0X__.
8566
8567 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8568
8569         PR c++/35652
8570         * builtins.h (c_strlen): Do not warn here.
8571         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8572         * c-common.c (pointer_int_sum): Take an explicit location.
8573         Warn about offsets out of bounds.
8574         * c-common.h (pointer_int_sum): Adjust declaration.
8575
8576 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8577
8578         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8579         markup glitch.
8580
8581 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
8582
8583         PR c++/39554
8584         * opts.c (warn_if_disallowed_function_p): Don't assume
8585         get_callee_fndecl must return non-NULL.
8586
8587 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8588
8589         PR rtl-optimization/39522
8590         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8591         when reg_reloaded_valid is set.
8592
8593 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8594
8595         * config/spu/divv2df3.c: New file.
8596         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8597         (DPBIT_FUNCS): Filter out _div_df.
8598
8599 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
8600
8601         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8602         a jump insn, count that jump in the distance to the loop start.
8603
8604 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
8605
8606         PR target/39523
8607         * config/sh/sh.c (calc_live_regs): Fix condition for global
8608         registers except PIC_OFFSET_TABLE_REGNUM.
8609
8610 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
8611
8612         PR/39518
8613         * doc/invoke.texi (-mconsole): New.
8614         (-mcygwin): New.
8615         (-mno-cygwin): New.
8616         (-mdll): New.
8617         (-mnop-fun-dllimport): New.
8618         (-mthread): New.
8619         (-mwin32): New.
8620         (-mwindows): New.
8621         (sub section "i386 and x86-64 Windows Options"): New.
8622
8623 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
8624
8625         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8626         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8627
8628 2009-03-25  Richard Guenther  <rguenther@suse.de>
8629
8630         PR middle-end/39497
8631         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8632         of -Wno-error.
8633
8634 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
8635
8636         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8637         neither of haifa/selective schedulers are working.
8638
8639 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8640
8641         * doc/invoke.texi (Debugging Options): Fix description of
8642         -fno-merge-debug-strings.
8643
8644 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
8645
8646         * config/cris/libgcc.ver: New version-script.
8647         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8648
8649         * configure.ac <GAS features, nop mnemonic>: Add pattern
8650         crisv32-*-* for "nop".
8651         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
8652         * configure: Regenerate.
8653
8654 2009-03-24  Ira Rosen  <irar@il.ibm.com>
8655
8656         PR tree-optimization/39529
8657         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8658         mark_sym_for_renaming for the tag copied to the new vector
8659         pointer.
8660
8661 2009-03-24  Arthur Loiret  <aloiret@debian.org>
8662
8663         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
8664         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8665         EXTRA_SPEC_FUNCTIONS.
8666         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8667         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8668         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8669         -march and -mtune options.
8670
8671 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
8672
8673         * config/m68k/t-rtems: Add m5329 multilib.
8674
8675 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
8676             Jakub Jelinek  <jakub@redhat.com>
8677
8678         PR debug/39524
8679         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8680         nodes.
8681
8682 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8683
8684         PR c/39495
8685         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8686         instead of c_parser_expression_conv, if original_code isn't one of the
8687         4 allowed comparison codes, fail.
8688
8689 2009-03-23  Richard Guenther  <rguenther@suse.de>
8690
8691         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8692         * tree.h (struct tree_type): Likewise.
8693         * reload.h (struct insn_chain): Likewise.
8694         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8695         * function.h (struct function): Likewise.
8696         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8697
8698 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8699
8700         PR tree-optimization/39516
8701         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8702
8703 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
8704
8705         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
8706         should be set true if BITS_PER_WORD of target is bigger than 32
8707
8708 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
8709
8710         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8711         Translate -B-options to -rpath-link.  Correct existing
8712         rpath-link and conditionalize on !nostdlib.
8713
8714 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8715
8716         * doc/extend.texi (Function Attributes, Variable Attributes):
8717         Fix typos.
8718         * doc/invoke.texi (Debugging Options, Optimize Options)
8719         (i386 and x86-64 Options, MCore Options): Likewise.
8720
8721 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
8722
8723         PR debug/37890
8724         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8725         it for block local namespace aliases.
8726         (gen_decl_die): Pass context_die to gen_namespace_die.
8727
8728 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8729
8730         PR c/39495
8731         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8732         minimum or maximum value.
8733
8734 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
8735
8736         * reginfo.c (globalize_reg): Recompute derived reg sets.
8737
8738 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
8739
8740         PR target/39063
8741         * libgcc2.c (mprotect): Do not use signed arguments for
8742         VirtualProtect, use DWORD arguments.  Also fix the 'may
8743         be used uninitialized' warning for the np variable.
8744
8745 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8746
8747         PR target/39496
8748         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8749         functions using regparm calling conventions when not optimizing.
8750         (ix86_function_sseregparm): Similarly for sseregparm calling
8751         conventions.
8752
8753 2009-03-19  Li Feng  <nemokingdom@gmail.com>
8754
8755         PR middle-end/39500
8756         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8757         dependence if the first conflict is after niter iterations.
8758
8759 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
8760
8761         PR middle-end/38609
8762         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8763         functions with dynamic stack-pointer adjustments.
8764
8765 2009-03-19  Ben Elliston  <bje@au.ibm.com>
8766
8767         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8768         option; change to -msdata=data.
8769
8770 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8771
8772         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8773         and -fopenmp.
8774
8775 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
8776
8777         PR target/35180
8778         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8779
8780 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
8781
8782         * doc/invoke.texi (Code Gen Options): Expand discussion of
8783         -fno-common.
8784
8785 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
8786
8787         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8788         * matrix-reorg.c (struct matrix_info): Likewise.
8789         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8790         * rtl.h (struct mem_attrs): Likewise.
8791         * df.h (struct df): Likewise.
8792         * tree-data-ref.h (struct data_dependence_relation): Likewise.
8793         * ira-int.h (struct ira_allocno): Likewise.
8794         * df-scan.c (struct df_collection_rec): Likewise.
8795         * ira.c (struct equivalence): Likewise.
8796         * function.c (struct temp_slot): Likewise.
8797         * cfgloop.h (struct loop): Likewise.
8798
8799         PR debug/39485
8800         * function.c (use_register_for_decl): When not optimizing, disregard
8801         register keyword for variables with types containing methods.
8802
8803 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
8804
8805         PR middle-end/39447
8806         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8807         (is_simple_operand): Call contains_component_ref_p before calling data
8808         reference analysis that would fail on COMPONENT_REFs.
8809
8810         * tree-vrp.c (search_for_addr_array): Fix formatting.
8811
8812 2009-03-18  Richard Guenther  <rguenther@suse.de>
8813
8814         * tree-vect-transform.c (vect_loop_versioning): Fold the
8815         generated comparisons.
8816         * tree-vectorizer.c (set_prologue_iterations): Likewise.
8817         (slpeel_tree_peel_loop_to_edge): Likewise.
8818
8819 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8820
8821         PR middle-end/37805
8822         * opts.c (print_specific_help): In addition to `undocumented',
8823         accept `separate' and `joined' flags if passed alone.  Describe
8824         output by the first matched one of those.
8825         (common_handle_option): Skip over empty strings.
8826         * gcc.c (display_help): Fix help string for `--help='.
8827         * doc/invoke.texi (Option Summary, Overall Options): With
8828         `--help=', classes and qualifiers can both be repeated, but
8829         only the latter can be negated.  One should not pass only
8830         negated qualifiers.  Fix markup and examples.
8831
8832         Revert
8833         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
8834         PR middle-end/37805
8835         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8836         and -fhelp=separate.
8837
8838 2009-03-17  Jing Yu  <jingyu@google.com>
8839
8840         PR middle-end/39378
8841         * function.h (struct rtl_data): Move is_thunk from here...
8842         (struct function): ...to here.
8843         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
8844         * varasm.c (assemble_start_function): Change is_thunk from crtl to
8845         cfun.
8846         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8847         cfun.
8848         (alpha_does_function_need_gp, alpha_start_function): Likewise.
8849         (alpha_output_function_end_prologue): Likewise.
8850         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8851         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8852         (rs6000_output_function_epilogue): Likewise.
8853         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
8854
8855 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
8856
8857         PR target/39482
8858         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8859         from different units in a single alternative.
8860         (*truncdfsf_i387): Ditto.
8861         (*truncxfsf2_mixed): Ditto.
8862         (*truncxfdf2_mixed): Ditto.
8863
8864 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
8865
8866         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
8867         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
8868
8869         PR debug/39474
8870         * tree-ssa-live.c (remove_unused_locals): Don't remove local
8871         unused non-artificial variables when not optimizing.
8872
8873         PR debug/39471
8874         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
8875         DW_TAG_imported_module even if decl is IMPORTED_DECL with
8876         NAMESPACE_DECL in its DECL_INITIAL.
8877
8878         PR middle-end/39443
8879         * optabs.c (set_user_assembler_libfunc): New function.
8880         * expr.h (set_user_assembler_libfunc): New prototype.
8881         * c-common.c: Include libfuncs.h.
8882         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
8883         for memcmp, memset, memcpy, memmove and abort.
8884         * Makefile.in (c-common.o): Depend on libfuncs.h.
8885
8886         PR debug/39412
8887         * dwarf2out.c (gen_inlined_enumeration_type_die,
8888         gen_inlined_structure_type_die, gen_inlined_union_type_die,
8889         gen_tagged_type_instantiation_die): Removed.
8890         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
8891         do nothing.
8892
8893 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
8894
8895         PR testsuite/38526
8896         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
8897         its use.
8898         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
8899         (check-parallel-%): Ditto.
8900         (check-consistency): Ditto.
8901
8902 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
8903
8904         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
8905         local variable rhs by NULL_TREE.
8906
8907 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8908
8909         PR target/39477
8910         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
8911
8912 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8913
8914         PR target/39476
8915         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
8916
8917 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8918
8919         PR target/39473
8920         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
8921         for ms->sysv ABI calls only in 64bit mode.
8922
8923         * config/i386/i386.md (untyped_call): Support 32bit.
8924
8925 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
8926
8927         * doc/extend.texi: Replace x86_65 with x86_64.
8928
8929 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
8930
8931         PR tree-optimization/39455
8932         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
8933         mismatches for POINTER_TYPE_P (type).
8934         (number_of_iterations_le): Likewise.
8935
8936 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8937
8938         * config/picochip/picochip.c: Removed profiling support.
8939         * config/picochip/picochip.md: Removed profiling instruction.
8940         * config/picochip/picochip.h: Removed profiling builtin.
8941
8942 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
8943
8944         * doc/install.texi (--with-host-libstdcxx): Document.
8945
8946 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
8947
8948         PR target/34299
8949         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8950         generate a warning if the function name does not begin with
8951         "__vector" and the function has either the 'signal' or 'interrupt'
8952         attribute, from here to ...
8953         (avr_declare_function_name): ...here. New function.
8954         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8955         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8956
8957 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
8958
8959         PR bootstrap/39454
8960         * cse.c (fold_rtx): Don't modify original const_arg1 when
8961         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8962         separate variable instead.
8963         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8964         from out of range shift counts.
8965         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8966
8967 2009-03-13  Catherine Moore  <clm@codesourcery.com>
8968
8969         * config/i386/x-mingw32 (host-mingw32.o): Replace
8970         diagnostic.h with $(DIAGNOSTIC_H).
8971
8972 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
8973
8974         PR target/39431
8975         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8976         predicate.
8977         * config/i386/sync.md (sync_compare_and_swap<mode>,
8978         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8979         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8980         into a register.
8981         (sync_double_compare_and_swapdi_pic,
8982         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8983         cmpxchg8b_pic_memory_operand instead of just memory_operand.
8984
8985 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8986
8987         PR target/39445
8988         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
8989
8990 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8991
8992         PR target/39327
8993         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8994         (avx_addsubv4df3): Likewise.
8995         (*avx_addsubv4sf3): Likewise.
8996         (sse3_addsubv4sf3): Likewise.
8997
8998 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8999
9000         PR target/38824
9001         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
9002
9003 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
9004
9005         PR debug/39432
9006         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
9007         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9008         registers for allocnos created from user-defined variables.
9009
9010 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9011
9012         PR target/39181
9013         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
9014         of non-integer mode as well.
9015
9016 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
9017
9018         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
9019         for functions for which the parameter types are unknown.
9020
9021 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
9022
9023         PR target/39137
9024         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9025         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9026         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9027         * config/i386/i386.c (ix86_local_alignment): For
9028         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9029         long long variables on the stack to avoid dynamic realignment.
9030         Allow the first argument to be a decl rather than type.
9031         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9032
9033 2009-03-11  Nick Clifton  <nickc@redhat.com>
9034
9035         PR target/5362
9036         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9037         options.
9038         Add description to mno-lsim option.
9039         * config/mcore/mcore.h: Remove comment about deprecated m4align
9040         option.
9041         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9042         * doc/invoke.texi: Add description of mno-lsim and
9043         mstack-increment options.
9044
9045         * config/fr30/fr30.opt: Document the -mno-lsim option.
9046         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9047         and -mno-lsim options.
9048
9049 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9050
9051         * fold-const.c (fold_comparison): Only call fold_inf_compare
9052         if the mode supports infinities.
9053
9054 2009-03-11  Jason Merrill  <jason@redhat.com>
9055
9056         PR debug/39086
9057         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9058         end already did.  Notice GIMPLE_CALL modifications of the result.
9059         Don't copy debug information from an ignored decl or a decl from
9060         another function.
9061
9062 2009-03-10  Richard Guenther  <rguenther@suse.de>
9063             Nathan Froyd  <froydnj@codesourcery.com>
9064
9065         PR middle-end/37850
9066         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
9067         (__divMODE3): Likewise.
9068
9069 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
9070
9071         PR tree-optimization/39394
9072         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9073         DECL_SIZE_UNIT of variable length FIELD_DECLs.
9074
9075 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9076
9077         * recog.c (verfiy_changes): Disallow renaming of hard regs in
9078         inline asms for register asm ("") declarations.
9079
9080 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
9081
9082         * fold-const.c (fold_unary): Fix comment.
9083
9084 2009-03-07  Jan Hubicka  <jh@suse.cz>
9085
9086         PR target/39361
9087         * tree-inline.c (setup_one_parameter): Do replacement of const
9088         argument by constant in SSA form.
9089
9090 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9091
9092         PR middle-end/38028
9093         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9094         determine alignment passed to assign_stack_local.
9095         (assign_parms_unsplit_complex): Likewise.
9096         * except.c (sjlj_build_landing_pads): Likewise.
9097
9098 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9099
9100         PR middle-end/39360
9101         * tree-flow.h (add_referenced_var): Return bool instead of void.
9102         * tree-dfa.c (add_referenced_var): Return result of
9103         referenced_var_check_and_insert call.
9104         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9105         of referenced_var_check_and_insert.
9106
9107         PR debug/39372
9108         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9109         (gen_variable_die): Emit DW_AT_location on abstract static variable's
9110         DIE, don't emit it if abstract origin already has it.
9111         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9112         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9113
9114 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9115
9116         * genpreds.c (needs_variable): Fix parentheses at variable name
9117         detection.
9118         (write_tm_constrs_h): Indent generated code.
9119
9120 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9121
9122         * doc/extend.texi (Function Attributes): Add documentation
9123         for isr attributes.
9124
9125 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9126
9127         PR debug/39387
9128         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9129         take locus from its DECL_SOURCE_LOCATION instead of input_location.
9130
9131 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
9132
9133         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9134         the loop as bad.
9135
9136 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
9137
9138         PR debug/39379
9139         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9140         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9141
9142 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
9143
9144         * config/i386/i386.md (R8_REG, R9_REG): New constants.
9145         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9146         constants instead of magic numbers.
9147         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9148         (QI_REG_P): Ditto.
9149         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9150         (x86_64_ms_abi_int_parameter_registers): Ditto.
9151         (x86_64_int_return_registers): Ditto.
9152         (ix86_maybe_switch_abi): Ditto.
9153         (ix86_expand_call): Ditto for clobbered_registers array.
9154         (ix86_hard_regno_mode_ok): Ditto.
9155         (x86_extended_QIreg_mentioned_p): Ditto.
9156
9157 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
9158
9159         PR tree-optimization/39349
9160         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9161
9162         * combine.c (gen_lowpart_for_combine): Use omode when generating
9163         clobber.
9164
9165 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
9166
9167         PR rtl-optimization/39235
9168         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9169
9170 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9171
9172         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9173
9174 2009-03-04  Richard Guenther  <rguenther@suse.de>
9175
9176         PR tree-optimization/39362
9177         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9178         that occur in abnormal PHIs should be varying.
9179
9180 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9181
9182         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9183         Extend comments.
9184         (simple_iv):  Take loop as an argument instead of statement.
9185         * tree-scalar-evolution.h (simple_iv): Declaration changed.
9186         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9187         to simple_iv.
9188         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9189         Ditto.
9190         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9191         * matrix-reorg.c (analyze_transpose): Ditto.
9192         * tree-data-ref.c (dr_analyze_innermost): Ditto.
9193         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9194         * tree-predcom.c (ref_at_iteration): Ditto.
9195         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9196
9197 2009-03-04  Richard Guenther  <rguenther@suse.de>
9198
9199         PR tree-optimization/39358
9200         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9201         escaped_id and callused_id.
9202         (solve_graph): Likewise.
9203
9204 2009-03-04  Richard Guenther  <rguenther@suse.de>
9205
9206         PR tree-optimization/39339
9207         * tree-sra.c (try_instantiate_multiple_fields): Make it
9208         no longer ICE on the above.
9209
9210 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
9211
9212         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9213         that fits within Pmode.
9214
9215 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9216
9217         PR middle-end/10109
9218         * tm.texi (LIBCALL_VALUE): Update description.
9219
9220 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9221
9222         PR middle-end/34443
9223         * doc/extend.texi (section): Update description.
9224
9225 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
9226
9227         PR middle-end/39345
9228         * tree-inline.c (remapped_type): New.
9229         (can_be_nonlocal): Call remapped_type instead of remap_type.
9230
9231 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9232
9233         PR fortran/39354
9234         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9235         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9236
9237 2009-03-03  Richard Guenther  <rguenther@suse.de>
9238
9239         PR middle-end/39272
9240         * tree.c (tree_nonartificial_location): New function.
9241         * tree.h (tree_nonartificial_location): Declare.
9242         * builtins.c (expand_builtin_memory_chk): Provide location
9243         of the call location for artificial function pieces.
9244         (maybe_emit_chk_warning): Likewise.
9245         (maybe_emit_sprintf_chk_warning): Likewise.
9246         (maybe_emit_free_warning): Likewise.
9247         * expr.c (expand_expr_real_1): Likewise.
9248
9249 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9250
9251         PR tree-optimization/39343
9252         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9253         COMPONENT_REF t has ARRAY_TYPE.
9254
9255 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9256
9257         PR middle-end/39335
9258         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9259         when the type precision of the induction variable should be
9260         larger than the type precision of nit.
9261         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9262         * graphite.c (graphite_loop_normal_form): Same.
9263         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9264
9265 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9266
9267         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9268         (*call_1_rex64_ms_sysv): Use named constants instead of magic
9269         numbers to describe clobbered registers.
9270         (*call_value_0_rex64_ms_sysv): Ditto.
9271         * config/i386/mmx.md (mmx_emms): Ditto.
9272         (mmx_femms): Ditto.
9273
9274 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
9275
9276         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9277         of ABI_64.
9278
9279 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9280
9281         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9282         (spu_section_type_flags): New function.
9283
9284 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9285
9286         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9287         reg_class_contents of FLOAT_REGS into a temporary.
9288
9289 2009-03-02  Richard Guenther  <rguenther@suse.de>
9290             Ira Rosen  <irar@il.ibm.com>
9291
9292         PR tree-optimization/39318
9293         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9294         information to the vectorized statement.
9295
9296 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
9297
9298         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9299         variable.  Use defined names instead of magic constants for REX SSE
9300         registers.
9301
9302 2009-03-01  Richard Guenther  <rguenther@suse.de>
9303
9304         PR tree-optimization/39331
9305         * omp-low.c (lower_send_shared_vars): Do not receive new
9306         values for the reference of DECL_BY_REFERENCE parms or results.
9307
9308 2009-03-01  Jan Hubicka  <jh@suse.cz>
9309
9310         PR debug/39267
9311         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9312         BLOCK_NONLOCALIZED_VAR): New macros.
9313         (tree_block): Add nonlocalized_vars.
9314         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9315         gen_decl_die): Add origin argument.  Allow generation of die with
9316         origin at hand only.
9317         (gen_member_die, gen_type_die_with_usage, force_decl_die,
9318         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9319         of gen_*.
9320         (gen_block_die): Fix checking for unused blocks.
9321         (process_scope_var): Break out from .... ; work with origins only.
9322         (decls_for_scope) ... here; process nonlocalized list.
9323         (dwarf2out_ignore_block): Look for nonlocalized vars.
9324         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9325         vars.
9326         (dump_scope_block): Dump them.
9327         * tree-inline.c (remap_decls): Handle nonlocalized vars.
9328         (remap_block): Likewise.
9329         (can_be_nonlocal): New predicate.
9330         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9331
9332 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9333
9334         * configure: Regenerate.
9335
9336 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9337
9338         * optc-gen.awk: No need to duplicate option flags twice.
9339         Reuse help texts for duplicate options which do not have any.
9340
9341         * gcc.c (display_help): Document --version.
9342
9343         * gcc.c (main): If print_help_list and verbose_flag, ensure
9344         driver output comes before subprocess output.
9345
9346         * optc-gen.awk: Assign all remaining fields to help string,
9347         space-separated, for multi-line help in *.opt.
9348
9349         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9350         -Wno-pedantic-ms-format is for MinGW targets only.
9351
9352         * doc/options.texi (Option file format): Fix bad indentation,
9353         restoring dropped sentence.
9354
9355 2009-02-28  Jan Hubicka  <jh@suse.cz>
9356
9357         * tree-inline.c (tree_function_versioning): Output debug info.
9358
9359 2009-02-28  Jan Hubicka  <jh@suse.cz>
9360
9361         PR debug/39267
9362         * tree-inline.c (setup_one_parameter): Do not copy propagate
9363         arguments when not optimizing.
9364
9365 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9366
9367         PR target/39327
9368         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9369         (avx_addsubv4df3): Likewise.
9370         (*avx_addsubv4sf3): Likewise.
9371         (sse3_addsubv4sf3): Likewise.
9372         (*avx_addsubv2df3): Likewise.
9373         (sse3_addsubv2df3): Likewise.
9374         (avx_unpckhps256): Correct item selectors.
9375         (avx_unpcklps256): Likewise.
9376         (avx_unpckhpd256): Likewise.
9377         (avx_unpcklpd256): Likewise.
9378
9379 2009-02-28  Jan Hubicka  <jh@suse.cz>
9380
9381         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9382         static vars.
9383         (copy_arguments_for_versioning): If var is declared don't declare it.
9384         (tree_function_versioning): First setup substitutions and then copy
9385         args.
9386
9387 2009-02-27  Jan Hubicka  <jh@suse.cz>
9388
9389         PR debug/39267
9390         * cgraph.h (varpool_output_debug_info): Remove.
9391         * cgraphunit.c (varpool_output_debug_info): Remove.
9392         * dwarf2out.c (deferred_locations_struct): New struct
9393         (deferred_locations): New type.
9394         (deferred_locations_list): New static var.
9395         (deffer_location): New function.
9396         (gen_variable_die): Use it.
9397         (decls_for_scope): Output info on local static vars.
9398         (dwarf2out_finish): Process deferred locations.
9399         * varpool.c (varpool_output_debug_info): Remove.
9400
9401 2009-02-27  Jan Hubicka  <jh@suse.cz>
9402
9403         PR debug/39267
9404         * tree.h (TREE_PROTECTED): Fix comment.
9405         (BLOCK_HANDLER_BLOCK): Remove.
9406         (struct tree_block): Remove handler_block add body_block.
9407         (inlined_function_outer_scope_p): New.
9408         (is_body_block): Remove.
9409         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9410         * dwarf2out.c (is_inlined_entry_point): Remove.
9411         (add_high_low_attributes): Use inlined_function_outer_scope_p.
9412         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
9413         code.
9414         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9415         * gimplify.c (gimplify_expr): Gimplify body blocks.
9416         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9417         block with multiple subblocks.
9418         (dump_scope_block): Prettier output; dump more flags and info.
9419         (dump_scope_blocks): New.
9420         (remove_unused_locals): Use dump_scope_blocks.
9421         * tree-flow.h (dump_scope_blocks): Declare.
9422         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9423         * stmt.c (is_body_block): Remove.
9424         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9425         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9426
9427 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
9428
9429         PR middle-end/39308
9430         * graphite.c (graphite_loop_normal_form): Do not call
9431         number_of_iterations_exit from a gcc_assert.
9432
9433 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9434
9435         * config/s390/s390.c (s390_swap_cmp): Look for conditional
9436         jumps if COND is NULL.
9437         (find_cond_jump): New function.
9438         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
9439         * config/s390/s390.md: Remove z10_cobra attribute value.
9440
9441 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
9442
9443         * config/alpha/alpha.h (alpha_expand_mov): Return false if
9444         force_const_mem returns NULL_RTX.
9445
9446 2009-02-26  Jan Hubicka  <jh@suse.cz>
9447
9448         PR debug/39267
9449         * cgraph.h (varpool_output_debug_info): Remove.
9450         * cgraphunit.c (varpool_output_debug_info): Remove.
9451         * dwarf2out.c (deferred_locations_struct): New struct
9452         (deferred_locations): New type.
9453         (deferred_locations_list): New static var.
9454         (deffer_location): New function.
9455         (gen_variable_die): Use it.
9456         (decls_for_scope): Output info on local static vars.
9457         (dwarf2out_finish): Process deferred locations.
9458         * varpool.c (varpool_output_debug_info): Remove.
9459
9460 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9461
9462         PR rtl-optimization/39241
9463         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9464         to subreg_offset_representable_p.
9465
9466 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9467
9468         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9469         execute function prototype.  Get f and nregs from max_reg_num
9470         and get_insns.  Remove the first backward pass as it's dead,
9471         guard the forward pass by flag_expensive_optimizations.
9472         (rest_of_handle_regmove): Delete.
9473         (pass_regmove): Replace it with regmove_optimize.
9474
9475 2009-02-25  Martin Jambor  <mjambor@suse.cz>
9476
9477         PR tree-optimization/39259
9478         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
9479         calls_alloca function flags.
9480         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9481         calls are detected.
9482
9483 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9484
9485         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9486         flags_set_1_rtx, flags_set_1_set): Delete.
9487         (regmove_optimize): Do not call mark_flags_life_zones.
9488
9489 2009-02-24  Julian Brown  <julian@codesourcery.com>
9490
9491         PR target/35965
9492         * config/arm/arm.c (require_pic_register): Only set
9493         cfun->machine->pic_reg once per function.
9494
9495 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
9496
9497         * doc/invoke.texi (Link Options): Document an easier way to pass
9498         options that take arguments to the GNU linker using -Xlinker and -Wl.
9499
9500 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
9501
9502         PR target/33785
9503         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9504
9505 2009-02-24  Richard Guenther  <rguenther@suse.de>
9506
9507         PR debug/39285
9508         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9509
9510 2009-02-24  Richard Guenther  <rguenther@suse.de>
9511             Zdenek Dvorak  <ook@ucw.cz>
9512
9513         PR tree-optimization/39233
9514         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9515         from converting them to a generic type.
9516
9517 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
9518
9519         PR tree-optimization/39260
9520         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9521         contains a condition with a real type.
9522         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9523
9524 2009-02-23  Jason Merrill  <jason@redhat.com>
9525
9526         PR c++/38880
9527         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9528         narrowing_initializer_constant_valid_p.
9529         (narrowing_initializer_constant_valid_p): Don't return
9530         null_pointer_node for adding a pointer to itself.
9531
9532 2009-02-23  Jan Hubicka  <jh@suse.cz>
9533
9534         PR c/12245
9535         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9536         resizing.
9537
9538 2009-02-23  Jan Hubicka  <jh@suse.cz>
9539
9540         PR tree-optimization/37709
9541         * tree.c (block_ultimate_origin): Move here from dwarf2out.
9542         * tree.h (block_ultimate_origin): Declare.
9543         * dwarf2out.c (block_ultimate_origin): Move to tree.c
9544         * tree-ssa-live.c (remove_unused_scope_block_p):
9545         Eliminate blocks containig no instructions nor live variables nor
9546         nested blocks.
9547         (dump_scope_block): New function.
9548         (remove_unused_locals): Enable removal of dead blocks by default;
9549         enable dumping at TDF_DETAILS.
9550
9551 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9552
9553         * config/i386/i386.c (classify_argument): Don't allow COImode
9554         and OImode.
9555         (function_arg_advance_32): Don't allow OImode.
9556         (function_arg_32): Likewise.
9557         (function_value_32): Likewise.
9558         (return_in_memory_32): Likewise.
9559         (function_arg_64): Remove OImode comment.
9560
9561 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9562
9563         PR target/39261
9564         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9565         ix86_expand_vector_set for V4DImode in 64bit mode only.
9566         (ix86_expand_vector_init_one_var): Likewise.
9567
9568 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
9569
9570         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9571
9572 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9573
9574         PR bootstrap/39257
9575         * loop-iv.c: Revert last change.
9576         * emit-rtl.c: Likewise.
9577
9578 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9579
9580         PR target/39256
9581         * config/i386/i386.c (type_natural_mode): Remove an extra
9582         space in the warning message.
9583         (function_value_32): Handle 32-byte vector modes.
9584         (return_in_memory_32): Likewise.
9585
9586 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9587
9588         * loop-iv.c (truncate_value): New function.
9589         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9590         of lowpart_subreg.
9591         (lowpart_subreg): Move to...
9592         * emit-rtl.c: ...here.
9593
9594 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
9595
9596         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9597         accidental and undocumented change at revision 140860.
9598
9599 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
9600
9601         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9602         take gimple_seq * arguments.
9603         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9604         types_compatible_p langhook.
9605
9606 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
9607             Joseph Myers  <joseph@codesourcery.com>
9608
9609         * config/arm/arm.c (arm_builtin_va_list): New function.
9610         (arm_expand_builtin_va_start): Likewise.
9611         (arm_gimplify_va_arg_expr): Likewise.
9612         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9613         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9614         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9615         (va_list_type): New variable.
9616         (arm_mangle_type): Mangle va_list_type appropriately.
9617
9618 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9619
9620         PR middle-end/39157
9621         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9622         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9623         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9624         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9625         parameter to 1000 for -O1 by default.
9626         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9627         parameter.
9628         * loop-invariant.c: Include params.h.
9629         (move_loop_invariants): Don't call move_single_loop_invariants on
9630         very large loops.
9631
9632 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
9633
9634         * calls.c (emit_library_call_value_1): Use slot_offset instead of
9635         offset when calculating bounds for indexing stack_usage_map.  Fixes
9636         a buffer overflow with certain target setups.
9637
9638 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9639
9640         PR target/39240
9641         * calls.c (expand_call): Clear try_tail_call if caller and callee
9642         disagree in promotion of function return value.
9643
9644 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
9645
9646         PR target/39175
9647         * c-common.c (c_determine_visibility): If visibility changed and
9648         DECL_RTL has been already set, call make_decl_rtl to update symbol
9649         flags.
9650
9651 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9652
9653         PR c++/39188
9654         * varasm.c (assemble_variable): Don't check DECL_NAME when
9655         globalizing a variable.
9656
9657 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
9658
9659         PR c/38483
9660         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9661         expression before any __builtin_trap call.
9662         * c-typeck.c (build_function_call): Convert and check function
9663         arguments before generating a call to a trap.  Evaluate the
9664         function arguments before the trap.
9665
9666 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
9667
9668         PR target/39228
9669         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9670         (UNSPEC_FXAM_MEM): New unspec.
9671         (fxam<mode>2_i387_with_temp): New insn and split pattern.
9672         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
9673         memory using fxam<mode>2_i387_with_temp to remove excess precision.
9674
9675 2009-02-19  Richard Guenther  <rguenther@suse.de>
9676
9677         PR tree-optimization/39207
9678         PR tree-optimization/39074
9679         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9680         storedanything_tree): New.
9681         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
9682         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9683         (build_succ_graph): Add edges from STOREDANYTHING to all
9684         non-direct nodes.
9685         (init_base_vars): Initialize STOREDANYTHING.
9686         (compute_points_to_sets): Free substitution info after
9687         building the succ graph.
9688         (ipa_pta_execute): Likewise.
9689
9690         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9691         field.
9692         (do_ds_constraint): Do not add to special var or non-pointer
9693         field solutions.
9694         (type_could_have_pointers): Split out from ...
9695         (could_have_pointers): ... here.  For arrays use the element type.
9696         (create_variable_info_for): Initialize may_have_pointers.
9697         (new_var_info): Likewise.
9698         (handle_lhs_call): Make the HEAP variable unknown-sized.
9699         (intra_create_variable_infos): Use a type with pointers for
9700         PARM_NOALIAS, make it unknown-sized.
9701
9702 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9703
9704         PR target/39224
9705         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
9706
9707 2009-02-18  Jason Merrill  <jason@redhat.com>
9708
9709         PR target/39179
9710         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9711         value if DECL_EXTERNAL.
9712         * tree-sra.c (sra_walk_gimple_assign): Likewise.
9713         * target.h (gcc_target::binds_local_p): Clarify "module".
9714         * tree.h (TREE_PUBLIC): Clarify "module".
9715
9716 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
9717
9718         PR target/38891
9719         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9720         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9721
9722 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
9723
9724         PR target/39082
9725         * c.opt (Wabi): Support C and ObjC.
9726         (Wpsabi): New.
9727
9728         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9729
9730         * config/i386/i386.c (classify_argument): Warn once about the ABI
9731         change when passing union with long double.
9732
9733         * doc/invoke.texi: Update -Wabi for warning psABI changes.
9734
9735 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
9736
9737         PR c/35447
9738         * c-parser.c (c_parser_compound_statement): Always enter and leave
9739         a scope.
9740
9741 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9742
9743         PR target/34587
9744         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9745
9746 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
9747
9748         PR tree-optimization/36922
9749         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9750         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9751         Likewise.
9752
9753 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9754
9755         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9756         to 0 for EABI64.
9757
9758 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9759
9760         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9761
9762 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9763
9764         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9765         tree sharing.
9766
9767 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
9768             Richard Sandiford  <rdsandiford@googlemail.com>
9769
9770         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9771         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9772         (loongson_biadd): ...this.
9773
9774 2009-02-17  Richard Guenther  <rguenther@suse.de>
9775
9776         PR tree-optimization/39202
9777         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9778         a var make sure to follow existing collapses.
9779
9780 2009-02-17  Richard Guenther  <rguenther@suse.de>
9781
9782         PR middle-end/39214
9783         * langhooks.c (lhd_print_error_function): Check for NULL block.
9784
9785 2009-02-17  Richard Guenther  <rguenther@suse.de>
9786
9787         PR tree-optimization/39204
9788         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9789         of the PHI arg.
9790
9791 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
9792
9793         * config/soft-fp/double.h: Update from glibc CVS.
9794
9795 2009-02-17  Richard Guenther  <rguenther@suse.de>
9796
9797         PR tree-optimization/39207
9798         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9799         strict-aliasing warnings for pointers pointing to NULL.
9800
9801 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
9802
9803         PR c/35446
9804         * c-parser.c (c_parser_braced_init): Call pop_init_level when
9805         skipping until next close brace.
9806
9807 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
9808
9809         PR target/37049
9810         * config/i386/i386.c (ix86_expand_push): Set memory alignment
9811         to function argument boundary.
9812
9813 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9814
9815         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9816         in the lea_add. Reload eventually constraints it properly.
9817         * config/picochip/constraints.md: Remove the target constraint
9818         "b", since it is not needed anymore.
9819
9820 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
9821
9822         * gthr-dce.h: Uglify function parameter and local variable names.
9823         * gthr-gnat.h: Likewise.
9824         * gthr-mipssde.h: Likewise.
9825         * gthr-nks.h: Likewise.
9826         * gthr-posix95.h: Likewise.
9827         * gthr-posix.h: Likewise.
9828         * gthr-rtems.h: Likewise.
9829         * gthr-single.h: Likewise.
9830         * gthr-solaris.h: Likewise.
9831         * gthr-tpf.h: Likewise.
9832         * gthr-vxworks.h: Likewise.
9833         * gthr-win32.h: Likewise.
9834
9835 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
9836
9837         PR target/39196
9838         * config/i386/i386.md: Restrict the new peephole2 to move
9839         between MMX/SSE registers.
9840
9841 2009-02-15  Richard Guenther  <rguenther@suse.de>
9842
9843         Revert
9844         2009-02-13  Richard Guenther  <rguenther@suse.de>
9845
9846         * configure.ac: Enable LFS.
9847         * configure: Re-generate.
9848         * config.in: Likewise.
9849
9850 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9851
9852         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9853         spu_srqwbyte, spu_srqwbytebc): Define.
9854         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9855         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9856         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9857         "shrqby_<mode>"): New insn-and-split patterns.
9858         * config/spu/spu.c (expand_builtin_args): Determine and return
9859         number of operands using spu_builtin_description data.
9860         (spu_expand_builtin_1): Use it.
9861
9862 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
9863
9864         PR target/38056
9865         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
9866         TARGET_CONST_GP.
9867
9868 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9869
9870         PR target/39149
9871         * config/i386/i386.c (override_options): Correct warning
9872         messages for -malign-loops, -malign-jumps and -malign-functions.
9873
9874 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9875
9876         PR target/39152
9877         * config/i386/i386.md: Restrict the new peephole2 to move
9878         between the general purpose registers.
9879
9880 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9881
9882         PR target/39162
9883         * config/i386/i386.c (type_natural_mode): Add a new argument.
9884         Return the original mode and warn ABI change if vector size is 32byte.
9885         (function_arg_advance): Updated.
9886         (function_arg): Likewise.
9887         (ix86_function_value): Likewise.
9888         (ix86_return_in_memory): Likewise.
9889         (ix86_sol10_return_in_memory): Likewise.
9890         (ix86_gimplify_va_arg): Likewise.
9891         (function_arg_32): Don't warn ABX ABI change here.
9892         (function_arg_64): Likewise.
9893
9894 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
9895
9896         * loop-iv.c (implies_p): In the final case, test that operands 0
9897         of the two comparisons match.
9898
9899         * config/bfin/bfin.c (find_prev_insn_start): New function.
9900         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
9901         (find_next_insn_start): Move.
9902
9903 2009-02-13  Richard Guenther  <rguenther@suse.de>
9904
9905         * configure.ac: Enable LFS.
9906         * configure: Re-generate.
9907         * config.in: Likewise.
9908
9909 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
9910
9911         PR c/35444
9912         * c-parser.c (c_parser_parms_list_declarator): Discard pending
9913         sizes on syntax error after some arguments have been parsed.
9914
9915 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
9916
9917         * doc/invoke.texi (-fira): Remove.
9918
9919 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9920
9921         * caller-save.c: Replace regclass.c with reginfo.c in comments.
9922         * recog.c: Likewise.
9923         * rtl.h: Likewise.
9924
9925 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
9926
9927         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
9928         (umul_ppmm): Likewise.
9929         (count_leading_zeros): Likewise.
9930         (count_trailing_zeros): Likewise.
9931         (UMUL_TIME): Likewise.
9932
9933 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9934
9935         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
9936         soft-fp/t-softfp to tmake_file.
9937
9938         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
9939         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
9940         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
9941         IA64_BUILTIN_INFQ]: New.
9942         (ia64_init_builtins): Initialize __builtin_infq,
9943         __builtin_fabsq and __builtin_copysignq if not HPUX.
9944         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9945         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9946
9947         * config/ia64/lib1funcs.asm (__divtf3): Define only if
9948         SHARED is defined.
9949         (__fixtfti): Likewise.
9950         (__fixunstfti): Likewise.
9951         (__floattitf): Likewise.
9952
9953         * config/ia64/libgcc-glibc.ver: New.
9954         * config/ia64/t-fprules-softfp: Likewise.
9955         * config/ia64/sfp-machine.h: Likewise.
9956
9957         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9958         (LIBGCC2_TF_CEXT): Likewise.
9959         (TF_SIZE): Likewise.
9960         (TARGET_INIT_LIBFUNCS): Likewise.
9961
9962         * config/ia64/t-glibc (SHLINB_MAPFILES):
9963         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
9964
9965 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9966
9967         * config/i386/i386.c (construct_container): Rewrite processing
9968         BLKmode with X86_64_SSE_CLASS.
9969
9970 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
9971
9972         PR target/39152
9973         * config/i386/i386.md: Replace simplify_replace_rtx with
9974         replace_rtx in the new peephole2.
9975
9976 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
9977
9978         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9979         loop unrolling do not happen at -O2.
9980
9981 2009-02-12  Michael Matz  <matz@suse.de>
9982
9983         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
9984
9985 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
9986
9987         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
9988         for -g3.
9989
9990 2009-02-12  Ben Elliston  <bje@au.ibm.com>
9991
9992         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
9993         patterns when updating the back chain.  Missed in the 2009-02-10
9994         change.
9995
9996 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
9997
9998         * doc/extend.texi (Decimal Floating Types): Update identifier of
9999         draft TR and list of missing support.
10000
10001 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
10002
10003         PR middle-end/39154
10004         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
10005         bit to variable length decl's flags, add it also to its
10006         pointer replacement variable.
10007
10008 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
10009             Jakub Jelinek  <jakub@redhat.com>
10010
10011         PR target/39118
10012         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
10013         (memory_blockage): New expander.
10014         (*memory_blockage): New insn pattern.
10015         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
10016         instead of general blockage at the end of function prologue when
10017         frame pointer is used to access red zone area.  Do not emit blockage
10018         when profiling, it is emitted in generic code.
10019         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
10020         function epilogue when frame pointer is used to access red zone area.
10021
10022 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
10023
10024         PR target/38824
10025         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10026         by arithmetic with memory operands.
10027         * config/i386/predicates.md (commutative_operator): New.
10028
10029 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
10030
10031         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10032         bulleted lists.
10033
10034 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10035
10036         * alias.h (record_alias_subset): Declare.
10037         * alias.c (record_alias_subset): Make global.
10038
10039 2009-02-10  Nick Clifton  <nickc@redhat.com>
10040
10041         * tree-parloops.c: Change license to GPLv3.
10042         * ipa-struct-reorg.c: Change license to GPLv3.
10043         * ipa-struct-reorg.h: Change license to GPLv3.
10044
10045 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
10046
10047         PR c/39084
10048         * c-decl.c (start_struct): Return NULL on error.
10049
10050 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
10051
10052         PR middle-end/39124
10053         * cfgloopmanip.c (remove_path): Call remove_bbs after
10054         cancel_loop_tree, not before it.
10055
10056         PR target/39139
10057         * function.h (struct function): Add has_local_explicit_reg_vars bit.
10058         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10059         VAR_DECLs were seen.
10060         * tree-ssa-live.c (remove_unused_locals): Recompute
10061         cfun->has_local_explicit_reg_vars.
10062         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10063         copies or clearings if cfun->has_local_explicit_reg_vars.
10064
10065 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
10066
10067         PR target/39118
10068         * config/i386/i386.c (expand_prologue): Emit blockage at the end
10069         of function prologue when frame pointer is used to access
10070         red zone area.
10071
10072 2009-02-10  Richard Guenther  <rguenther@suse.de>
10073
10074         PR middle-end/39127
10075         * gimplify.c (gimple_regimplify_operands): Always look if
10076         we need to create a temporary.
10077
10078 2009-02-10  Richard Guenther  <rguenther@suse.de>
10079
10080         PR tree-optimization/39132
10081         * tree-loop-distribution.c (todo): New global var.
10082         (generate_memset_zero): Trigger TODO_rebuild_alias.
10083         (tree_loop_distribution): Return todo.
10084
10085 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
10086
10087         PR target/39119
10088         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10089         (x86_64_reg_class_name): Removed.
10090         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
10091         first one isn't X86_64_SSE_CLASS or any other ones aren't
10092         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
10093         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10094         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
10095         and 3 X86_64_SSEUP_CLASS.
10096         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
10097         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10098
10099 2009-02-10  Ben Elliston  <bje@au.ibm.com>
10100
10101         * config/rs6000/rs6000.md (allocate_stack): Always use an update
10102         form instruction to update the stack back chain word, even if the
10103         user has disabled the generation of update instructions.
10104         (movdi_<mode>_update_stack): New.
10105         (movsi_update_stack): Likewise.
10106         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10107         always use an update form instruction to update the stack back
10108         chain word.
10109
10110 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
10111
10112         PR middle-end/38953
10113         * graphite.c (if_region_set_false_region): After moving a region in
10114         the false branch of a condition, remove the empty dummy basic block.
10115         (gloog): Remove wrong fix for PR38953.
10116
10117 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10118
10119         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10120         generation due to implicit sign extension.
10121
10122 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
10123
10124         PR middle-end/38981
10125         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10126         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10127
10128 2009-02-09  Richard Guenther  <rguenther@suse.de>
10129
10130         PR middle-end/35202
10131         * convert.c (convert_to_real): Disable (float)fn((double)x)
10132         to fnf(x) conversion if errno differences may occur and
10133         -fmath-errno is set.
10134
10135 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
10136
10137         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10138         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10139         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10140
10141 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10142
10143         PR c/35434
10144         * c-common.c (handle_alias_attribute): Disallow attribute for
10145         anything not a FUNCTION_DECL or VAR_DECL.
10146
10147 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
10148
10149         PR c/39035
10150         * real.c (do_compare): Special-case compare of zero against
10151         decimal float value.
10152
10153 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10154
10155         PR c/36432
10156         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10157         as indicating flexible array members unless the field itself is
10158         being declarared as the incomplete array.
10159
10160 2009-02-06  Jan Hubicka  <jh@suse.cz>
10161
10162         PR tree-optimization/38844
10163         * ipa-inline.c (try_inline): Stop inlining recursion when edge
10164         is already inlined.
10165
10166 2009-02-06  Richard Guenther  <rguenther@suse.de>
10167
10168         PR middle-end/38977
10169         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10170         fork because we may expand it as __gcov_fork.
10171
10172 2009-02-06  Nick Clifton  <nickc@redhat.com>
10173
10174         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
10175
10176 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
10177
10178         PR tree-optimization/35659
10179         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10180         vn_phi_eq): Shortcut if hashcode does not match.
10181         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10182         NULL operands.
10183         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10184         and avoid iterative_hash_expr.
10185         (FOR_EACH_VALUE_ID_IN_SET): New.
10186         (value_id_compare): Remove.
10187         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10188         sort expressions by value id.
10189
10190 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10191
10192         PR target/38991
10193         * config/sh/predicates.md (general_movsrc_operand): Don't check
10194         the subreg of system registers here.
10195
10196 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
10197
10198         PR c++/39106
10199         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10200         on the copied decl.
10201
10202 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
10203
10204         PR rtl-optimization/39110
10205         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10206         addresses, not aligned ones.
10207
10208 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
10209             Richard Guenther  <rguenther@suse.de>
10210
10211         PR tree-optimization/39100
10212         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10213         comment says and add edges.
10214
10215 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
10216
10217         PR c/35435
10218         * c-common.c (handle_tls_model_attribute): Ignore attribute for
10219         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10220
10221 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
10222
10223         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10224         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10225         register_bb_in_sese, new_sese, free_sese): Moved.
10226         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10227         outermost_loop_in_scop, build_scop_iteration_domain,
10228         expand_scalar_variables_ssa_name, get_vdef_before_scop,
10229         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10230         Use loop_in_sese_p instead of loop_in_scop_p.
10231         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10232         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10233         (scopdet_basic_block_info): Fix bug in scop detection.
10234         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10235         eq_loop_to_cloog_loop): Remove.
10236         (nb_loops_around_loop_in_scop, nb_loop
10237         ref_nb_loops): Moved here...
10238         * graphite.h (ref_nb_loops): ... from here.
10239         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10240         (loop_domain_dim, loop_iteration_vector_dim): Remove.
10241         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10242         * testsuite/gcc.dg/graphite/scop-19.c: New
10243
10244 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
10245             Hans-Peter Nilsson  <hp@axis.com>
10246
10247         PR rtl-optimization/37889
10248         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10249         Move offset handling from PLUS to before the switch.  Use new
10250         arguments when considering SYMBOL_REFs too.
10251         (rtx_addr_can_trap_p): Pass dummy offset and size.
10252         (enum may_trap_p_flags): Remove.
10253         (may_trap_p_1): Pass size from MEM_SIZE.
10254
10255         PR rtl-optimization/38921
10256         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10257         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10258         * rtlanal.c (may_trap_after_code_motion_p): Delete.
10259         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10260
10261 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
10262
10263         AVX Programming Reference (January, 2009)
10264         * config/i386/sse.md (*vpclmulqdq): New.
10265
10266 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
10267
10268         PR tree-optimization/38977
10269         PR gcov-profile/38292
10270         * calls.c (special_function_p): Disregard __builtin_ prefix.
10271
10272 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10273
10274         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10275         non-indexable addresses even before reload.
10276
10277 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10278
10279         PR c/29129
10280         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10281         as having variable size.  Do not give an error for unnamed
10282         parameters with [*] declarators.  Give a warning for type names
10283         with [*] declarators and mark them as variable size.
10284         * c-parser.c (c_parser_sizeof_expression): Do not give an error
10285         for sizeof applied to [*] type names.
10286
10287 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10288
10289         PR C++/36607
10290         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10291
10292 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10293
10294         * gcc.c (process_command): Update copyright notice dates.
10295         * gcov.c (print_version): Likewise.
10296         * gcov-dump.c (print_version): Likewise.
10297         * mips-tfile.c (main): Likewise.
10298         * mips-tdump.c (main): Likewise.
10299
10300 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10301
10302         PR c/35433
10303         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10304         for composite type involving a zero-length array type.
10305
10306 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10307
10308         PR target/35318
10309         * function.c (match_asm_constraints_1): Skip over
10310         initial optional % in the constraint.
10311
10312         PR inline-asm/39059
10313         * c-parser.c (c_parser_postfix_expression): If fixed point is not
10314         supported, don't accept FIXED_CSTs.
10315         * c-decl.c (finish_declspecs): Error if fixed point is not supported
10316         and _Sat is used without _Fract/_Accum.  Set specs->type to
10317         integer_type_node for cts_fract/cts_accum if fixed point is not
10318         supported.
10319
10320 2009-02-02  Catherine Moore  <clm@codesourcery.com>
10321
10322         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
10323
10324 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
10325
10326         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10327         (ABI_HAS_64BIT_SYMBOLS): Use it.
10328         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10329
10330 2009-02-02  Paul Brook  <paul@codesourcery.com>
10331
10332         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10333
10334 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
10335
10336         PR inline-asm/39058
10337         * recog.h (asm_operand_ok): Add constraints argument.
10338         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
10339         recurse on matching constraint.
10340         (check_asm_operands): Pass constraints as 3rd argument to
10341         asm_operand_ok.  Don't look up matching constraint here.
10342         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10343         to asm_operand_ok.
10344
10345 2009-02-02  Ben Elliston  <bje@au.ibm.com>
10346
10347         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10348         TARGET_NARROW_VOLATILE_BITFIELD macro names.
10349
10350 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10351
10352         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10353         information.  Remove some obsolete information.  Reorganize.
10354
10355         * config/pa/fptr.c: Revert license to GPL 2.
10356         * config/pa/milli64.S: Likewise.
10357
10358 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10359
10360         PR target/38904
10361         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
10362         LIBRARY name in, instead of hard-coding it.
10363         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
10364         extra target make frag to tmake_files according to EH model.
10365         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
10366         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
10367         frags that define makefile variable EH_MODEL appropriately.
10368         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
10369         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
10370         to "-sjlj" according to type of EH configured.
10371         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10372         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
10373         to "_sjlj" according to type of EH configured.
10374         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10375         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
10376         (SHLIB_LINK):  Add missing semicolon to if-else construct.
10377         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10378         string value of "pe_dll" command-line option.
10379         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
10380         (SHLIB_SONAME):  Use it when overriding t-cygming default.
10381         (SHLIB_IMPLIB):  Override t-cygming default.
10382         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10383         string value of "pe_dll" command-line option.
10384
10385 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10386
10387         PR target/38952
10388         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
10389         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
10390
10391 2009-01-31  Richard Guenther  <rguenther@suse.de>
10392
10393         PR tree-optimization/38937
10394         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10395         computing the transitive closure.
10396
10397 2009-01-30  Richard Guenther  <rguenther@suse.de>
10398
10399         PR tree-optimization/39041
10400         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10401         Propagate variable indices only if the types match for this stmt.
10402
10403 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
10404
10405         PR target/39013
10406         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10407         inline but never defined.
10408
10409 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
10410
10411         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10412         (*insv_h_di_reg_extimm): New insn.
10413         (*insv_l<mode>_reg_extimm): New insn.
10414
10415 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10416
10417         * config/picochip/picochip.c (flag_conserve_stack): set
10418         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10419         fconserve-stack. Reduce call-overhead used by inliner.
10420
10421 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10422
10423         PR/38157
10424         * common.opt (flag_conserve_stack): Initialised to zero.
10425
10426 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
10427
10428         PR/39002
10429         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10430         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10431         method.
10432
10433 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
10434
10435         * ira-color.c (allocno_reload_assign): Update comments.
10436         * regmove.c (regmove_optimize): Likewise.
10437
10438         * ra.h: Removed.
10439
10440 2009-01-29  Robert Millan  <rmh@aybabtu.com>
10441
10442         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10443         * config/i386/kopensolaris-gnu.h: New file.  Undefine
10444         `MD_UNWIND_SUPPORT'.
10445         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
10446
10447 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
10448
10449         PR tree-optimization/39007
10450         * tree-loop-distribution.c (generate_builtin): Use
10451         recompute_dominator to compute the immediate dominator of the
10452         basic block just after the loop.
10453
10454 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10455
10456         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10457         (ASM_OUTPUT_DWARF_PCREL): Define.
10458
10459 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
10460
10461         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10462         * doc/passes.texi: Remove entries about regclass, local-alloc, and
10463         global.  Modify entries about regmove and IRA.
10464
10465         * ra-conflict.c: Remove the file.
10466
10467         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10468
10469         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10470         (pass_regclass_init): Rename to pass_reginfo_init.
10471
10472         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10473
10474         * toplev.h (flag_ira): Remove.
10475
10476         * caller-save.c (setup_save_areas): Remove flag_ira.
10477
10478         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
10479
10480         * global.c: Remove the file.
10481
10482         * opts.c (decode_options): Remove flag_ira.
10483
10484         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10485
10486         * regmove.c: Modify file description.
10487         (find_use_as_address, try_auto_increment): Define them only if
10488         AUTO_INC_DEC is defined.
10489         (replacement_quality, replace_in_call_usage, fixup_match_1,
10490         stable_and_no_regs_but_for_p): Remove.
10491         (reg_set_in_bb): Make it static.
10492         (regmove_optimize): Remove flag_ira and code which worked for
10493         !flag_ira.
10494
10495         * local-alloc.c: Remove the file.
10496
10497         * common.opt (fira): Remove.
10498
10499         * ira.c: Include except.h.
10500         (eliminable_regset): Move from global.c.
10501         (mark_elimination): Ditto.  Remove flag_ira.
10502         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10503         equiv_mem_modified, validate_equiv_mem_from_store,
10504         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10505         contains_replace_regs, memref_referenced_p, memref_used_between_p,
10506         no_equiv, recorded_label_ref): Move from local-alloc.c.
10507         (update_equiv_regs): Ditto.  Make it static.
10508         (print_insn_chain, print_insn_chains): Move it from global.c.
10509         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
10510         (build_insn_chain): Ditto.  Make it static.
10511         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
10512         Rename to init_live_subregs.
10513         (gate_ira): Remove flag_ira.
10514
10515         * regclass.c: Rename reginfo.c.  Change file description.
10516         (FORBIDDEN_INC_DEC_CLASSES): Remove.
10517         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
10518         (init_reg_sets_1): Remove code for evaluation of
10519         reg_class_superclasses and losing_caller_save_reg_set.
10520         (init_regs): Remove init_reg_autoinc.
10521         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10522         ok_for_base_p_nonstrict): Remove.
10523         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
10524         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
10525         corresponding entries.
10526         (dump_regclass, record_operand_costs, scan_one_insn,
10527         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10528         record_address_regs, auto_inc_dec_reg_p): Remove.
10529         (gt-regclass.h): Rename to gt-reginfo.h.
10530
10531         * rtl.h (dump_global_regs, retry_global_alloc,
10532         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
10533
10534         * Makefile.in (RA_H): Remove.
10535         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10536         Rename regclass.o to reginfo.o.
10537         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
10538         gt-reginfo.h.
10539         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10540         (GTFILES): Rename regclass.c to reginfo.c.
10541
10542         * passes.c (init_optimization_passes): Remove pass_local_alloc and
10543         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
10544
10545         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10546         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10547         Remove flag_ira.
10548         (finish_spills): Ditto.  Remove code for !flag_ira.
10549
10550 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
10551
10552         PR middle-end/35854
10553         * doc/invoke.texi (rtl debug options): Complete rewrite.
10554         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10555         to auto_inc_dec".
10556         * mode-switching.c (pass_mode_switching): Rename pass from
10557         "mode-sw" to "mode_sw".
10558         * except.c (pass_convert_to_eh_ranges): Rename pass from
10559         "eh-ranges" to "eh_ranges".
10560         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10561         to "subreg1".
10562
10563
10564 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
10565             Alexander Monakov  <amonakov@ispras.ru>
10566
10567         PR middle-end/38857
10568         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10569         register.
10570         (move_exprs_to_boundary): Change return type and pass through
10571         should_move from move_op.  Relax assert.  Update usage ...
10572         (schedule_expr_on_boundary): ... here.  Use should_move instead of
10573         cant_move.
10574         (move_op_orig_expr_found): Indicate that insn was disconnected from
10575         stream.
10576         (code_motion_process_successors): Do not call after_merge_succs
10577         callback if original expression was not found when traversing any of
10578         the branches.
10579         (code_motion_path_driver): Change return type.  Update prototype.
10580         (move_op): Update comment.  Add a new parameter (should_move).  Update
10581         prototype.  Set *should_move based on indication provided by
10582         move_op_orig_expr_found.
10583
10584 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
10585
10586         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10587         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10588         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10589         * config/rs6000/rs6000.c (rs6000_override_options): Default
10590         avoid-indexed-addresses on for Power6, off for everything else.
10591         (avoiding_indexed_address_p): New function.
10592         (rs6000_legitimize_address): Use it.
10593         (rs6000_legitimate_address): Likewise.
10594         * config/rs6000/rs6000.md (movXX_updateX): Likewise
10595
10596 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
10597
10598         PR tree-optimization/38997
10599         * tree-loop-distribution.c (generate_memset_zero): Use
10600         POINTER_PLUS_EXPR for a pointer addition.
10601
10602 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
10603
10604         * config/s390/s390.md (bswap<mode>2): New pattern added.
10605
10606 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10607
10608         * config/s390/s390.md (*tls_load_31): Added type attribute.
10609
10610 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10611
10612         * config/s390/s390.md: Fix a few comments.
10613
10614 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10615
10616         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10617         (*tm<mode>_full): Fixed z10prop attribute.
10618         (*tst<mode>_extimm): Fixed z10prop attribute.
10619         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10620         (*tstqiCCT_cconly): Fixed z10prop attribute.
10621         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10622         (*movsi_larl): Fixed z10prop attribute.
10623         (*movsi_zarch): Fixed z10prop attribute.
10624         (*movsi_eas): Fixed z10prop attribute.
10625         (*movhi): Fixed z10prop attribute.
10626         (*movqi): Fixed z10prop attribute.
10627         (*movstrictqi): Fixed z10prop attribute.
10628         (*mov<mode>): Fixed z10prop attribute.
10629         (*movcc): Fixed z10prop attribute.
10630         (*sethighpartdi_64): Fixed z10prop attribute.
10631         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10632         (*negdi2_sign_cc): Fixed z10prop attribute.
10633         (*negdi2_sign): Fixed z10prop attribute.
10634         (*absdi2_sign_cc): Fixed z10prop attribute.
10635         (*absdi2_sign): Fixed z10prop attribute.
10636         (*negabsdi2_sign_cc): Fixed z10prop attribute.
10637         (*negabsdi2_sign): Fixed z10prop attribute.
10638         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10639         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10640         (doloop_si64): Fixed z10prop attribute.
10641         (doloop_si31): Fixed z10prop attribute.
10642         (doloop_long): Fixed z10prop attribute.
10643         (indirect_jump): Fixed z10prop attribute.
10644         (nop): Fixed z10prop attribute.
10645         (main_base_64): Fixed z10prop attribute.
10646         (reload_base_64): Fixed z10prop attribute.
10647
10648 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10649
10650         PR rtl-optimization/38740
10651         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10652         if !optimize.
10653         * config/mips/mips.c (mips_reorg): Likewise.
10654
10655 2009-01-28  Richard Guenther  <rguenther@suse.de>
10656
10657         PR tree-optimization/38926
10658         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10659         with the correct value id to a value.
10660         (do_regular_insertion): Use the value number of edoubleprime
10661         for the value number of the expr.
10662
10663         Revert
10664         2008-08-21  Richard Guenther  <rguenther@suse.de>
10665
10666         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10667         a PHI ask VN if it is already available.
10668         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10669         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
10670
10671 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10672
10673         PR middle-end/38934
10674         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10675         set to varying whenever max has TREE_OVERFLOW set, similarly
10676         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10677
10678 2009-01-28  Richard Guenther  <rguenther@suse.de>
10679
10680         PR middle-end/38908
10681         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10682         uninitialized aggregate uses in call arguments.
10683
10684 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
10685
10686         PR tree-optimization/38984
10687         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10688         the nothing_id variable if -fno-delete-null-pointer-checks.
10689
10690 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
10691
10692         PR target/38988
10693         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10694         (set_got_offset_rex64): Ditto.
10695
10696 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
10697
10698         PR target/38941
10699         * doc/extend.texi: Improve local variable with asm reg.
10700
10701 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
10702
10703         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10704         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10705         was not supplied then set warn_packed_bitfield_compat to the
10706         default value of 1.
10707         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10708         against 1.
10709
10710 2009-01-27  Richard Guenther  <rguenther@suse.de>
10711
10712         PR tree-optimization/38503
10713         * cfgexpand.c (expand_gimple_basic_block): Ignore
10714         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10715         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10716         variables that cannot have TBAA applied.
10717         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10718         statements.
10719
10720 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
10721
10722         PR middle-end/38969
10723         * calls.c (initialize_argument_information): Do not wrap complex
10724         arguments in SAVE_EXPR.
10725
10726 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
10727
10728         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
10729         (INSTALL_LIBGCC): Revert typo commit.
10730
10731 2009-01-26  Richard Guenther  <rguenther@suse.de>
10732
10733         PR tree-optimization/38745
10734         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10735         from special handling.
10736
10737 2009-01-26  Richard Guenther  <rguenther@suse.de>
10738
10739         PR tree-optimization/38745
10740         * tree-ssa.c (execute_update_addresses_taken): Do not include
10741         variables that cannot possibly be a register in not_reg_needs.
10742         Do not clear TREE_ADDRESSABLE on vars that may not become
10743         registers.
10744         * tree-ssa.c (update_alias_info_1): Include those in the set
10745         of addressable vars.
10746
10747 2009-01-26  Richard Guenther  <rguenther@suse.de>
10748
10749         PR middle-end/38851
10750         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10751         * tree-ssa-dse.c: Include langhooks.h
10752         (execute_simple_dse): Remove stores with zero size.
10753
10754 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
10755
10756         PR c/38957
10757         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10758         as PLUS_EXPR.
10759
10760 2009-01-24  Julian Brown  <julian@codesourcery.com>
10761
10762         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10763         config/arm/linux-atomic.c.
10764         * config/arm/linux-atomic.c: New.
10765
10766 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
10767
10768         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10769         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10770         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10771
10772 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10773
10774         PR c/38938
10775         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
10776         properly.
10777
10778 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
10779
10780         PR tree-optimization/38953
10781         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10782         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10783         (gloog): Split the exit of the scop when the scop exit is a loop exit.
10784         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10785         changed the CFG.
10786
10787 2009-01-24  Paul Brook  <paul@codesourcery.com>
10788
10789         * config/arm/neon.md (neon_type): Move to arm.md.
10790         (neon_mov<VSTRUCT>): Add neon_type attribute.
10791         * config/arm/arm.md (neon_type): Move to here.
10792         (conds): Add "unconditioal" and use as default for NEON insns.
10793
10794 2009-01-24  Ben Elliston  <bje@au.ibm.com>
10795
10796         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10797         void *' warning from -Wc++-compat.
10798         * Makefile.in (dominance.o-warn): Remove.
10799
10800 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
10801
10802         PR tree-optimization/38932
10803         * fold-const.c (fold_unary_ignore_overflow): New.
10804         * tree.h (fold_unary_ignore_overflow): Declare.
10805         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10806         * tree-ssa-sccvn.c (visit_reference_op_load,
10807         simplify_unary_expression): Likewise.
10808
10809 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
10810
10811         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10812         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
10813         regardless of their type.
10814         * c-common.c (handle_packed_attribute): Don't ignore packed on
10815         bitfields.
10816         * c.opt (Wpacked-bitfield-compat): New warning option.
10817         * stor-layout.c (place_field): Warn if offset of a field changed.
10818         * doc/extend.texi (packed): Mention the ABI change.
10819         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10820         (Warning Options): Add it to the list.
10821
10822 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10823
10824         * c-opts.c (c_common_post_options): Fix a typo in comments.
10825
10826 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
10827
10828         PR middle-end/38615
10829         * gimplify.c (gimplify_init_constructor): Fix promotion of const
10830         variables to static.
10831         * doc/invoke.texi (-fmerge-all-constants): Update description.
10832
10833 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
10834
10835         PR target/38931
10836         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10837         (*movdi_1_rex64): Use type "mmx" for alternative 5.
10838
10839 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
10840
10841         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10842         a word boundary.
10843         (LOCAL_ALIGNMENT): Similarly.
10844
10845 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
10846             Joseph Myers  <joseph@codesourcery.com>
10847
10848         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10849         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10850         * config/arm/arm-tune.md: Regenerate.
10851         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10852         -march=iwmmxt2.
10853
10854 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
10855
10856         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10857         version number to five.
10858
10859 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
10860
10861         PR c++/38930
10862         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
10863         * c-common.c (set_underlying_type): Likewise.
10864         (is_typedef_decl ): Likewise
10865         * tree.h: Likewise
10866         (set_underlying_type): Likewise.
10867         (is_typedef_type): Likewise.
10868
10869 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10870
10871         PR middle-end/38587
10872         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
10873         crossing setjmps.
10874
10875 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10876
10877         PR bootstrap/37660
10878         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
10879         (LIBGCC_SPEC):  Don't define.
10880         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
10881
10882 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
10883
10884         PR rtl-optimization/38879
10885         * alias.c (base_alias_check): Unaligned access via AND address can
10886         alias all surrounding object types except those with sizes equal
10887         or wider than the size of unaligned access.
10888
10889 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
10890
10891         PR c++/26693
10892         * c-decl.c (clone_underlying_type): Move this ...
10893         * c-common.c (set_underlying_type): ... here.
10894         Also, make sure the function properly sets TYPE_STUB_DECL() on
10895         the newly created typedef variant type.
10896         (is_typedef_decl ): New entry point.
10897         * tree.h: Added a new member member_types_needing_access_check to
10898         struct tree_decl_non_common.
10899         (set_underlying_type): New entry point.
10900         (is_typedef_type): Likewise.
10901
10902 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
10903
10904         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
10905         Check whether two instructions have memory references that
10906         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
10907         are helper functions for traversing.
10908         * alias.h (insn_alias_sets_confilict_p): New prototypes.
10909         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
10910         not to draw dependency edge for instructions with non-conflicting
10911         alias sets.
10912
10913 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
10914
10915         PR other/38758
10916         * longlong.h: Update copyright years.  Use soft-fp license notice.
10917         Sync __clz_tab declaration with glibc.
10918
10919 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
10920
10921         PR target/30687
10922         * doc/extend.texi (syscall_linkage): New.
10923         (version_id): Modify.
10924
10925 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10926             Richard Guenther  <rguenther@suse.de>
10927
10928         PR tree-optimization/38747
10929         PR tree-optimization/38748
10930         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
10931         conversion if the base address is an indirect reference and the
10932         aliasing sets could cause issues.
10933
10934 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
10935
10936         * common.opt (fgraphite, fgraphite-identity): Add comment for
10937         explaining why these options are not documented.
10938
10939 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
10940
10941         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
10942         gimple_call_lhs is NULL.
10943
10944 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
10945
10946         PR target/38868
10947         * emit-rtl.c (adjust_address_1): Make sure memref is never
10948         overwritten.
10949
10950 2009-01-20  Ben Elliston  <bje@au.ibm.com>
10951
10952         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10953         const qualifier from arg parameter. Remove unnecessary cast to char *.
10954         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10955         const qualifier from arg 2.
10956
10957 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
10958
10959         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
10960
10961 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
10962
10963         PR c/38869
10964         * rtl.h (reinit_regs): New prototype.
10965         * regclass.c: Include ira.h.
10966         (reinit_regs): New.
10967         * Makefile.in (regclass.o): Add ira.h.
10968         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10969
10970 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
10971
10972         PR target/38736
10973         * c-common.c (handle_aligned_attribute): Use
10974         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10975         default alignment value.
10976
10977         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10978
10979         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10980         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10981
10982         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
10983         __BIGGEST_ALIGNMENT__.
10984
10985         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
10986
10987 2009-01-18  Richard Guenther  <rguenther@suse.de>
10988
10989         PR tree-optimization/38819
10990         * tree-flow.h (operation_could_trap_helper_p): Declare.
10991         * tree-eh.c (operation_could_trap_helper_p): Export.
10992         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
10993         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
10994         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
10995         are about to insert a possibly trapping instruction and fail
10996         in this case.
10997
10998 2009-01-18  Andreas Schwab  <schwab@suse.de>
10999
11000         * doc/install.texi (Configuration): Remove obsolete paragraph
11001         about use of --with-gnu-ld with --with-gnu-as.
11002
11003 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
11004
11005         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
11006         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
11007         Follow spelling conventions.
11008
11009 2009-01-18  Ben Elliston  <bje@au.ibm.com>
11010
11011         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
11012         C++ warning about implicit conversion from void * to struct
11013         bitmap_head_def *.
11014         (bitmap_obstack_free): Likewise for bitmap_element *.
11015         * Makefile.in (bitmap.o-warn): Remove.
11016
11017 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
11018
11019         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
11020
11021 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
11022             Tobias Grosser  <tobi.grosser@amd.com>
11023
11024         * graphite.c (graphite_trans_scop_block): Do not block single
11025         nested loops.
11026
11027 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
11028
11029         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11030         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11031         test with assertion.
11032
11033 2009-01-16  Richard Guenther  <rguenther@suse.de>
11034
11035         PR tree-optimization/38835
11036         PR middle-end/36227
11037         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11038         and INT + PTR -> (INT)(PTR p+ INT) folding.
11039         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11040
11041 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
11042
11043         PR target/38554
11044         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11045         the subreg from a lowpart subreg if it is also casting the value.
11046
11047 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11048             Tobias Grosser  <tobi.grosser@amd.com>
11049
11050         * graphite.c (compare_prefix_loops): New.
11051         (build_scop_canonical_schedules): Rewritten.
11052         (graphite_transform_loops): Move build_scop_canonical_schedules
11053         after build_scop_iteration_domain.
11054
11055 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11056             Tobias Grosser  <tobi.grosser@amd.com>
11057
11058         * graphite.c (add_conditions_to_domain): Add the loops to
11059         the dimension of the iteration domain.  Do copy the domain
11060         only when it exists.
11061         (build_scop_conditions_1): Do not call add_conditions_to_domain.
11062         (add_conditions_to_constraints): New.
11063         (can_generate_code_stmt, can_generate_code): Removed.
11064         (gloog): Do not call can_generate_code.
11065         (graphite_transform_loops): Call add_conditions_to_constraints
11066         after building the iteration domain.
11067
11068 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
11069
11070         PR tree-optimization/38789
11071         * tree-ssa-threadedge.c
11072         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11073         __builtin_constant_p.
11074
11075 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
11076
11077         * dce.c (delete_unmarked_insns): Reversed the order that insns are
11078         examined before deleting them.
11079
11080 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
11081
11082         * function.c (aggregate_value_p): Correctly extract the function
11083         type from CALL_EXPR_FN lookup.
11084
11085 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11086
11087         * config/picochip/picochip.c (picochip_override_options): Revert
11088         CFI asm flag disable commited previously.
11089
11090 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11091             Tobias Grosser  <tobi.grosser@amd.com>
11092             Jan Sjodin  <jan.sjodin@amd.com>
11093
11094         * graphite.c (scan_tree_for_params): On substractions negate
11095         all the coefficients of the term.
11096         (clast_to_gcc_expression_red): New.  Handle reduction expressions
11097         of more than two operands.
11098         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11099         (get_vdef_before_scop): Handle also the case of default definitions.
11100
11101 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
11102
11103         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11104         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11105         Also use them when walking CALL_INSN_FUNCTION_USAGE.
11106
11107 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
11108             Joey Ye  <joey.ye@intel.com>
11109
11110         PR middle-end/37843
11111         * cfgexpand.c (expand_stack_alignment): Don't update stack
11112         boundary nor check incoming stack boundary here.
11113         (gimple_expand_cfg): Update stack boundary and check incoming
11114         stack boundary here.
11115
11116 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
11117
11118         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
11119
11120 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
11121
11122         PR rtl-optimization/38245
11123         * calls.c (expand_call): Add stack arguments to
11124         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11125         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11126         in regs and partially in memory or BLKmode arguments.
11127         (emit_library_call_value_1): Add stack arguments to
11128         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11129         ACCUMULATE_OUTGOING_ARGS).
11130         * dce.c: Include tm_p.h.
11131         (find_call_stack_args): New function.
11132         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
11133         argument.
11134         (mark_insn): Call find_call_stack_args for CALL_Ps.
11135         (prescan_insns_for_dce): Walk insns backwards in bb rather than
11136         forwards.  Allocate and free arg_stores bitmap if needed, pass it
11137         down to deletable_insn_p, don't mark stores set in arg_stores
11138         bitmap, clear the bitmap at the beginning of each bb.
11139         * Makefile.in (dce.o): Depend on $(TM_P_H).
11140
11141 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
11142
11143         PR target/22599
11144         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11145         to make sure the insn is a conditional test (bug 22599).  Reformat a
11146         few long lines.
11147
11148 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
11149
11150         PR middle-end/38431
11151         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11152         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11153         (gloog): Do not call cleanup_tree_cfg.
11154         (graphite_transform_loops): Call cleanup_tree_cfg after all
11155         scops have been code generated.
11156
11157 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
11158         * doc/gty.texi (Invoking the garbage collector): Added new node
11159         and section documenting ggc_collect.
11160
11161 2009-01-14  Richard Guenther  <rguenther@suse.de>
11162
11163         PR tree-optimization/38826
11164         PR middle-end/38477
11165         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11166         initialization notes only if we actually emitted a warning.
11167         (intra_create_variable_infos): Add constraints for a result decl
11168         that is passed by hidden reference.
11169         (build_pred_graph): Mark all related variables non-direct on
11170         address-taking.
11171
11172 2009-01-14  Nick Clifton  <nickc@redhat.com>
11173
11174         * ira-conflicts.c: Include addresses.h for the definition of
11175         base_reg_class.
11176         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11177         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
11178
11179 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11180
11181         PR target/38811
11182         * Makefile.in (ira-lives.o): Add except.h.
11183
11184         * ira-lives.c: Include except.h.
11185         (process_bb_node_lives): Process can_throw_internal.
11186
11187 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
11188
11189         PR rtl-optimization/38774
11190         * combine.c (simplify_set): When undoing cc_use change, don't do
11191         PUT_CODE on the newly created comparison, but instead put back the
11192         old comparison.
11193
11194 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
11195
11196         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11197         values.  Remove duplicate arm8 entry.
11198
11199 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11200
11201         PR tree-optimization/38786
11202         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11203         the SSA_NAME case of expand_scalar_variables_expr.
11204         Set the type of an expression to the type of its assign statement.
11205         (expand_scalar_variables_expr): Also gather the scalar computation
11206         used to index the memory access.  Do not pass loop_p.
11207         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
11208         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
11209         the gimple_stmt_iterator where it inserts new code.
11210         Do not pass loop_p.
11211         (copy_bb_and_scalar_dependences): Do not pass loop_p.
11212         (translate_clast): Update call to copy_bb_and_scalar_dependences.
11213
11214 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11215
11216         * graphite.h (debug_value): Removed.
11217         * graphite.c (debug_value): Removed.
11218
11219 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11220
11221         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11222         ldrd/strd with two 32-bit instructions.
11223
11224 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11225
11226         * config/arm/arm.c (struct processors): Pass for speed down into
11227         cost helper functions.
11228         (const_ok_for_op): Handle COMPARE and inequality nodes.
11229         (arm_rtx_costs_1): Rewrite.
11230         (arm_size_rtx_costs): Update prototype.
11231         (arm_rtx_costs): Pass speed down to helper functions.
11232         (arm_slowmul_rtx_costs): Rework cost calculations.
11233         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11234         (arm_9e_rtx_costs): Likewise.
11235
11236 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
11237
11238         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
11239         relocations of local symbols wider than UNITS_PER_WORD are not valid.
11240         (alpha_legitimize_address): Do not split local symbols wider than
11241         UNITS_PER_WORD into HIGH/LO_SUM parts.
11242
11243 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
11244
11245         PR bootstrap/38580
11246         * gcc.c (process_command): Replace call to execvp with calls
11247         to pex_one and exit.
11248
11249 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
11250
11251         PR target/29141
11252         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11253         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11254         variant for devices with 3-byte PC.
11255         (__tablejump_elpm__): New.
11256
11257 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11258
11259         PR c/32041
11260         * c-parser.c (c_parser_postfix_expression): Allow `->' in
11261         offsetof member-designator, handle it as `[0].'.
11262
11263 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11264
11265         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11266         function when not using named sections on targets with named sections
11267         if branch distance is less than 262132.
11268
11269 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
11270
11271         * combine.c (combine_instructions):  Recompute
11272         optimize_this_for_speed_p  for each BB in the main combine loop.
11273
11274 2009-01-12  Tomas Bily  <tbily@suse.cz>
11275
11276         PR middlend/38385
11277         * tree-loop-distribution.c (prop_phis): New function.
11278         (generate_builtin): Call prop_phis.
11279         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
11280
11281 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11282
11283         PR tree-optimization/38807
11284         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11285         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11286
11287 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
11288
11289         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11290         subreg of op0 to the original op0.
11291
11292 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
11293
11294         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
11295
11296 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
11297
11298         PR debug/7055
11299         * mips-tfile.c (parse_def): Fix parsing of def strings
11300         starting with digits.
11301
11302 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
11303
11304         PR target/38695
11305         * config/arm/arm.c (arm_is_long_call_p): Don't call
11306         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11307
11308 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
11309
11310         * regrename.c (regrename_optimize): Fix dumping.
11311         (find_oldest_value_reg): Preserve REG_POINTER.
11312         (copy_hardreg_forward_1): Likewise.
11313
11314 2009-01-09  Diego Novillo  <dnovillo@google.com>
11315
11316         * gimple.h (struct gimple_statement_base) <uid>: Document
11317         the restrictions on its use.
11318         (gimple_uid): Tidy.
11319         (gimple_set_uid): Tidy.
11320
11321 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11322
11323         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11324         zero guard even if align_bytes != 0 and count is smaller than
11325         size_needed.
11326
11327 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
11328
11329         PR rtl-optimization/38495
11330         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
11331         (add_range_and_copies_from_move_list): Print all added ranges.
11332         Add ranges to memory optimized destination.
11333
11334 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11335
11336         PR target/38686
11337         PR target/38708
11338         * config/i386/i386.c (override_options): Reject
11339         -mstringop-strategy=rep_8byte with -m32.
11340         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11341         to 1.  Do count comparison against epilogue_size_needed at compile
11342         time even when count_exp was constant forced into register.  For
11343         size_needed don't jump to epilogue, instead just avoid aligning
11344         and invoke the body algorithm.  If need_zero_guard, add zero guard
11345         even if count is non-zero, but smaller than size_needed + number of
11346         bytes that could be stored for alignment.
11347         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11348         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
11349         but smaller than size_needed + number of bytes that could be stored
11350         for alignment.  Compare size_needed with epilogue_size_needed instead
11351         of desired_align - align, don't adjust size_needed, pass
11352         epilogue_size_needed to the epilogue expanders.
11353
11354         PR c/35742
11355         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
11356
11357 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11358
11359         * pa.c (last_address): Change to unsigned.
11360         (update_total_code_bytes): Change argument to unsigned.  Don't
11361         check if insn addresses are set.
11362         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11363         addresses are not set.
11364         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11365
11366 2009-01-09  Nick Clifton  <nickc@redhat.com>
11367
11368         * config/sh/symbian.c: Replace uses of DECL_INLINE with
11369         DECL_DECLARED_INLINE_P.
11370
11371 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11372
11373         PR middle-end/38347
11374         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11375         GET_MODE (op0) in operand_subword_force calls.
11376
11377         PR middle-end/38771
11378         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11379         fold_convert arg0 operands to TREE_TYPE (op0) first.
11380
11381 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
11382
11383         * params.def (ira-max-conflict-table-size): Decrease default value
11384         to 1000.
11385
11386 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
11387
11388         PR tree-optimization/37031
11389         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11390         on parameter_set.
11391         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11392         allocate it using gc instead of heap, use VEC_quick_push instead of
11393         VEC_safe_push.
11394         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11395         instead of heap, use VEC_quick_push instead of VEC_safe_push.
11396         * tree-data-ref.h (struct access_matrix): Change matrix to gc
11397         allocated vector from heap allocated.
11398         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11399         * tree-loop-linear.c (linear_transform_loops): Allocate nest
11400         vector only after perfect_loop_nest_depth call.
11401
11402 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
11403             Jan Sjodin  <jan.sjodin@amd.com>
11404
11405         PR tree-optimization/38559
11406         * graphite.c (debug_value, copy_constraint,
11407         swap_constraint_variables, scale_constraint_variable, ): New.
11408         (get_lower_bound, get_upper_bound): Removed.
11409         (graphite_trans_bb_strip_mine): Clean up this code that works
11410         only for constant number of iterations.  Fully copy upper and
11411         lower bound constraints, not only the constant part of them.
11412         * graphite.h (debug_value): Declared.
11413
11414 2009-01-08  Ira Rosen  <irar@il.ibm.com>
11415
11416         PR tree-optimization/37194
11417         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
11418         Don't add the cost of cost model guard in prologue to scalar
11419         outside cost in case of known number of iterations.
11420
11421 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11422             Alan Modra  <amodra@bigpond.net.au>
11423
11424         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11425         non-word-aligned REG+CONST addressing.
11426
11427 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11428
11429         PR target/38706
11430         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11431         free_after_compilation when outputting a thunk.
11432         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11433         Do not call free_after_compilation here.
11434
11435 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11436
11437         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
11438         (ix86_valid_target_attribute_inner_p): Ditto.
11439
11440 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
11441
11442         PR tree-optimization/38492
11443         PR tree-optimization/38498
11444         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11445         * tree-chrec.h (scev_is_linear_expression): Declared.
11446         * graphite.c (graphite_cannot_represent_loop_niter): New.
11447         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11448         (graphite_loop_normal_form): Use gcc_assert.
11449         (scan_tree_for_params): Use CASE_CONVERT.
11450         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11451         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11452         Use gcc_assert.  Discard scops that contain unhandled cases.
11453         (build_scop_conditions): Return a boolean status for unhandled cases.
11454         (strip_mine_profitable_p): Print the loop number, not its depth.
11455         (is_interchange_valid): Pass the depth of the loop nest, don't
11456         recompute it wrongly.
11457         (graphite_trans_bb_block): Same.
11458         (graphite_trans_bb_block): Print tentative of loop blocking.
11459         (graphite_trans_scop_block): Do not print that the loop has been
11460         blocked.
11461         (graphite_transform_loops): Do not handle scops that contain condition
11462         scalar phi nodes.
11463
11464 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11465
11466         AVX Programming Reference (December, 2008)
11467         * config/i386/avxintrin.h (_mm256_stream_si256): New.
11468         (_mm256_stream_pd): Likewise.
11469         (_mm256_stream_ps): Likewise.
11470
11471         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11472         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11473         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11474         (bdesc_special_args): Add __builtin_ia32_movntdq256,
11475         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11476         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11477         (ix86_expand_special_args_builtin): Likewise.
11478
11479         * config/i386/sse.md (AVXMODEDI): New.
11480         (avx_movnt<mode>): Likewise.
11481         (avx_movnt<mode>): Likewise.
11482         (<sse>_movnt<mode>): Remove AVX support.
11483         (sse2_movntv2di): Likewise.
11484
11485 2009-01-07  Richard Guenther  <rguenther@suse.de>
11486
11487         PR middle-end/38751
11488         * fold-const.c (extract_muldiv): Remove obsolete comment.
11489         (fold_plusminus_mult_expr): Undo MINUS_EXPR
11490         to PLUS_EXPR canonicalization for the canonicalization.
11491
11492 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
11493
11494         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11495         hosted cross-compilers generating less efficient code.
11496
11497 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11498
11499         * function.h (rtl_data): Add a dbr_scheduled_p field.
11500         * reorg.c (dbr_schedule): Set it.
11501         (gate_handle_delay_slots): Check it.
11502         * config/mips/mips.c (mips_base_delayed_branch): Delete.
11503         (mips_reorg): Check flag_delayed_branch instead of
11504         mips_base_delayed_branch.
11505         (mips_override_options): Don't set mips_base_delayed_branch
11506         or flag_delayed_branch.
11507
11508 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11509
11510         PR rtl-optimization/38426.
11511         * ira.c (ira): Set current_function_is_leaf earlier.
11512
11513 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
11514
11515         PR rtl-optimization/38722
11516         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11517         too early, only set a flag and modify after last possible
11518         undo_all point.
11519
11520 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
11521
11522         PR c/34252
11523         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11524         * real.c (decimal_single_format): Correct values of emin and emax.
11525         (decimal_double_format): Ditto.
11526         (decimal_quad_format): Ditto.
11527         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11528         computation of DECnn_MIN and DECnn_MAX for corrected values of
11529         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
11530         __DECnn_MIN__, and adjust its computation for the corrected value
11531         of emin.
11532
11533 2009-01-06  Jan Hubicka  <jh@suse.cz>
11534
11535         PR target/38744
11536         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
11537
11538 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
11539
11540         * doc/contrib.texi (Contributors): Slightly adjust the end note.
11541         Add Robert Clark to the list of testers.
11542
11543 2009-01-06  Jan Hubicka  <jh@suse.cz>
11544             Kai Tietz  <kai.tietz@onevision.com>
11545
11546         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11547         * config/i386/i386.c (ix86_expand_call): Add clobbers.
11548
11549 2009-01-06  Jan Hubicka  <jh@suse.cz>
11550             Kai Tietz  <kai.tietz@onevision.com>
11551
11552         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11553         for w64 ABI.
11554         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
11555         (ix86_nsaved_regs): Count only general purpose regs.
11556         (ix86_nsaved_sseregs): New.
11557         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11558         to 16 for w64; compute padding and size of sse reg save area.
11559         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11560         general purpose regs.
11561         (ix86_emit_save_sse_regs_using_mov): New.
11562         (ix86_expand_prologue): Save SSE regs if needed.
11563         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11564         (ix86_emit_restore_sse_regs_using_mov): New.
11565         (ix86_expand_epilogue): Save SSE regs if needed.
11566
11567 2009-01-06  Jan Hubicka  <jh@suse.cz>
11568             Kai Tietz  <kai.tietz@onevision.com>
11569
11570         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11571         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11572         functions when accumulate outgoing args is off.
11573
11574 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11575
11576         PR bootstrap/38742
11577         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11578         before using pseudos_have_intersected_live_ranges_p.
11579
11580         * ira-int.h (ira_assert): Always define.
11581
11582 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11583
11584         AVX Programming Reference (December, 2008)
11585         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11586         (_mm256_permute2_pd): Likewise.
11587         (_mm_permute2_ps): Likewise.
11588         (_mm256_permute2_ps): Likewise.
11589         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11590         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11591
11592         * config/i386/i386.c (ix86_builtins): Remove
11593         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11594         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11595         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11596         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11597         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11598         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11599         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11600         __builtin_ia32_vpermil2ps256.
11601         (ix86_init_mmx_sse_builtins): Updated.
11602         (ix86_expand_args_builtin): Likewise.
11603
11604 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11605
11606         * pa.c (output_call): Relocate non-jump insns in the delay slot of
11607         long absolute calls when generating PA 2.0 code.
11608
11609 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
11610
11611         PR rtl-optimization/38583
11612         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11613
11614         * params.def (ira-max-conflict-table-size): New.
11615
11616         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
11617
11618         * ira.h (ira_conflicts_p): New external definition.
11619
11620         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11621         table.  Report this.  Return result of building.
11622         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
11623         building conflict table.
11624
11625         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
11626         (ira_color): Use ira_conflicts_p.
11627
11628         * global.c: Include ira.h.
11629         (pseudo_for_reload_consideration_p, build_insn_chain): Use
11630         ira_conflicts_p.
11631
11632         * Makefile.in (global.o): Add ira.h.
11633
11634         * ira-build.c (mark_all_loops_for_removal,
11635         propagate_some_info_from_allocno): New.
11636         (remove_unnecessary_allocnos): Call
11637         propagate_some_info_from_allocno.
11638         (remove_low_level_allocnos): New.
11639         (remove_unnecessary_regions): Add parameter.  Call
11640         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
11641         parameter to remove_unnecessary_regions.
11642         (ira_build): Remove all regions but root if the conflict table was
11643         not built.  Update conflict hard regs for allocnos crossing calls.
11644
11645         * ira.c (ira_conflicts_p): New global.
11646         (ira): Define and use ira_conflicts_p.
11647
11648         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11649         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
11650         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
11651
11652 2009-01-06  Ben Elliston  <bje@au.ibm.com>
11653
11654         * gengtype-lex.l (YY_NO_INPUT): Define.
11655
11656 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11657
11658         PR c/34911
11659         * c-common.c (handle_vector_size_attribute): Also reject
11660         BOOLEAN_TYPE types.
11661
11662 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
11663
11664         PR tree-optimization/38492
11665         * graphite.c (rename_map_elt, debug_rename_elt,
11666         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11667         rename_map_elt_info, eq_rename_map_elts,
11668         get_new_name_from_old_name, bb_in_sese_p): Moved around.
11669         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11670         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11671         (sese_build_livein_liveouts): New.
11672         (new_sese, free_sese): New.
11673         (new_scop): Call new_sese.
11674         (free_scop): Call free_sese.
11675         (rename_variables_from_edge, rename_phis_end_scop): Removed.
11676         (register_old_new_names): Renamed register_old_and_new_names.
11677         (register_scop_liveout_renames, add_loop_exit_phis,
11678         insert_loop_close_phis, struct igp,
11679         default_liveout_before_guard, add_guard_exit_phis,
11680         insert_guard_phis, copy_renames): New.
11681         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11682         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11683         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11684         (scop_adjust_phis_for_liveouts): New.
11685         (gloog): Call scop_adjust_phis_for_liveouts.
11686
11687         * graphite.h (struct sese): Documented.  Added fields liveout,
11688         num_ver and livein.
11689         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11690         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11691         (struct scop): Added field liveout_renames.
11692         (SCOP_LIVEOUT_RENAMES): New.
11693
11694 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11695
11696         PR tree-optimization/38510
11697         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11698         (translate_clast): Call recompute_all_dominators before
11699         graphite_verify.
11700         (gloog): Call recompute_all_dominators before graphite_verify.
11701
11702 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11703             Jan Sjodin  <jan.sjodin@amd.com>
11704
11705         PR tree-optimization/38500
11706         * graphite.c (create_sese_edges): Call fix_loop_structure after
11707         splitting blocks.
11708
11709 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
11710
11711         * config.gcc: Add m32r*-*-rtems*.
11712         * config/m32r/rtems.h: New file.
11713
11714 2009-01-05  Ben Elliston  <bje@au.ibm.com>
11715
11716         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11717         (.po.pox): Likewise.
11718         (po/gcc.pot): Likewise.
11719
11720 2009-01-04  David S. Miller  <davem@davemloft.net>
11721
11722         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11723         (STARTING_FRAME_OFFSET): Always set to zero.
11724
11725 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11726
11727         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11728         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11729         fixed-point types, and vectors of the same.
11730
11731 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11732
11733         * config/mips/sync.md (*mb_barrier): Rename to...
11734         (*memory_barrier): ...this.
11735
11736 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
11737
11738         * doc/extend.texi (Function Attributes): Move @cindex after @item
11739         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
11740         and put in alphabetical order. Fix 'target' name and put in order.
11741         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11742         typos.
11743
11744 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
11745
11746         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11747         (memory_barrier): Expand as unspec instead of unspec_volatile.
11748         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11749         (*memory_barrier): Define as unspec instead of unspec_volatile.
11750         Use (match_dup 0) as input operand.
11751
11752         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11753         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11754         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
11755         scratch register.  Remove operand 1.
11756         (*stbar): Define as unspec instead of unspec_volatile.
11757         Use (match_dup 0) as input operand, remove (const_int 8).
11758         (*membar): Define as unspec instead of unspec_volatile.
11759         Use (match_dup 0) as input operand, remove input operand 2.
11760
11761         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11762         (memory_barrier): Expand as unspec instead of unspec_volatile.
11763         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11764         (*memory_barrier): Define as unspec instead of unspec_volatile.
11765         Use (match_dup 0) as input operand.
11766
11767         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11768         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11769         Set volatile flag on operand 0.
11770         (*memory_barrier): New insn pattern.
11771
11772         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11773         insn operands.
11774         (*memory_barrier): Use (match_dup 0) as input operand.
11775
11776         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11777         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11778         Set volatile flag on operand 0.
11779         (*mb_internal): New insn pattern.
11780
11781         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11782
11783 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
11784
11785         PR middle-end/38586
11786         * function.c (struct temp_slot): Move to the section of the file
11787         that deals with temp slots.  Remove field 'address'.
11788         (temp_slot_address_table): New hash table of address -> temp slot.
11789         (struct temp_slot_address_entry): New struct, items for the table.
11790         (temp_slot_address_compute_hash, temp_slot_address_hash,
11791         temp_slot_address_eq, insert_temp_slot_address): Support functions
11792         for the new table.
11793         (find_temp_slot_from_address): Rewrite to use the new hash table.
11794         (remove_unused_temp_slot_addresses): Remove addresses of temp
11795         slots that have been made available.
11796         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11797         worker function for remove_unused_temp_slot_addresses.
11798         (assign_stack_temp_for_type): Don't clear the temp slot address list.
11799         Add the temp slot address to the address -> temp slot map.
11800         (update_temp_slot_address): Update via insert_temp_slot_address.
11801         (free_temp_slots): Call remove_unused_temp_slot_addresses.
11802         (pop_temp_slots): Likewise.
11803         (init_temp_slots): Allocate the address -> temp slot map, or empty
11804         the map if it is already allocated.
11805         (prepare_function_start): Initialize temp slot processing.
11806
11807 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
11808
11809         PR middle-end/38584
11810         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11811         Calculate the size of all stack vars assuming no packing of stack
11812         vars will happen, replacing a quadratic algorithm with a linear one.
11813
11814 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
11815
11816         PR target/38707
11817         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11818         can't be used.
11819
11820 2009-01-03  Diego Novillo  <dnovillo@google.com>
11821
11822         * doc/contrib.texi: Update contributions.
11823
11824 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
11825
11826         PR c++/38705
11827         * builtins.c (fold_builtin_memory_op): Give up if either operand
11828         is volatile.  Set srctype or desttype to non-qualified version
11829         of the other type.
11830
11831         PR c/38700
11832         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11833         and FUNCTION_DECLs.
11834
11835 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
11836
11837         PR rtl-optimization/35805
11838         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11839         problem if fast dce is able to remove any instructions.
11840         * dce.c (dce_process_block): Fix dump message.
11841
11842 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
11843
11844         PR 33649
11845         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11846
11847 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
11848
11849         PR middle-end/38690
11850         * tree-flow.h (op_code_prio, op_prio): New prototypes.
11851         * tree-pretty-print.c (op_code_prio): New function.
11852         (op_prio): No longer static.  Use op_code_prio.
11853         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11854         Use op_prio and op_code_prio to determine if () should be
11855         printed around operand(s) or not.
11856
11857         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11858         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11859         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11860         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
11861         pp_character instead of pp_string for single letter printing.
11862
11863 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11864
11865         * doc/extend.texi: Fix '#pragma GCC option' typo.
11866
11867 2009-01-02  Richard Guenther  <rguenther@suse.de>
11868
11869         * doc/install.texi (--enable-checking): Mention different
11870         default for stage1.
11871         (--enable-stage1-checking): Document.
11872
11873 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
11874
11875         PR middle-end/30142
11876         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
11877         case to be an error.
11878
11879 2009-01-02  Ben Elliston  <bje@au.ibm.com>
11880
11881         * config/fp-bit.h (pack_d): Constify argument.
11882         * config/fp-bit.c (makenan): Constify return type. Remove casts.
11883         (isnan): Constify argument.
11884         (isinf): Likewise.
11885         (iszero): Likewise.
11886         (pack_d): Likewise.
11887         (_fpadd_parts): Constify return type.
11888         (_fpmul_parts): Likewise.
11889         (_fpdiv_parts): Likewise.
11890
11891 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
11892
11893         PR c/36489
11894         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
11895         warn about overwriting initializer with side-effects or
11896         -Woverride-init if !IMPLICIT.
11897         (output_init_element): Likewise.  Pass IMPLICIT down to
11898         add_pending_init.
11899         (process_init_element): Add IMPLICIT argument.  Pass it down
11900         to output_init_element.
11901         (push_init_element, pop_init_level, set_designator): Adjust
11902         process_init_element callers.
11903         (set_nonincremental_init, set_nonincremental_init_from_string):
11904         Adjust add_pending_init callers.
11905         (output_pending_init_elements): Adjust output_init_element callers.
11906         * c-tree.h (process_init_element): Adjust prototype.
11907         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
11908         process_init_element callers.
11909
11910 \f
11911 Copyright (C) 2009 Free Software Foundation, Inc.
11912
11913 Copying and distribution of this file, with or without modification,
11914 are permitted in any medium without royalty provided the copyright
11915 notice and this notice are preserved.