OSDN Git Service

2009-05-14 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
2
3         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
4         in the former documentation of...
5         (GO_IF_LEGITIMATE_ADDRESS): ... this.
6         * ira-conflicts.c (get_dup_num): Use address_operand.
7         * targhooks.c (default_legitimate_address_p): New.
8         * targhooks.h (default_legitimate_address_p): New.
9         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
10         Call hook.
11         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
12         * target.h (struct target): Add legitimate_address_p.
13         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
14         (TARGET_INITIALIZER): Include it.
15
16         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
17         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
18         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
19         (TARGET_LEGITIMATE_ADDRESS_P): New.
20
21         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22         (REG_OK_STRICT_P): Delete.
23         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
24         (frv_legitimate_address_p_1): ... this.
25         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
26         (frv_legitimate_address_p_1): ... the renamed old
27         frv_legitimate_address_p.
28         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
29         (TARGET_LEGITIMATE_ADDRESS_P): New.
30
31         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
32         * config/s390/s390-protos.h (legitimate_address_p): Remove.
33         * config/s390/s390.c (legitimate_address_p): Rename to...
34         (s390_legitimate_address_p): ... this, make static.
35         (legitimize_address): Adjust call.
36         (TARGET_LEGITIMATE_ADDRESS_P): New.
37         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
38
39         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
40         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
41         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
42         (TARGET_LEGITIMATE_ADDRESS_P): New.
43
44         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
45         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
46         * config/spu/spu.c (spu_legitimate_address): Rename to...
47         (spu_legitimate_address_p): ... this, make static.
48         (TARGET_LEGITIMATE_ADDRESS_P): New.
49
50         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
51         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
52         * config/sparc/sparc.c (legitimate_address_p): Rename to...
53         (sparc_legitimate_address_p): ... this, make static and return bool.
54         (legitimize_address): Adjust call.
55         (TARGET_LEGITIMATE_ADDRESS_P): New.
56
57         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
58         * config/i386/i386-protos.h (legitimate_address_p): Remove.
59         * config/i386/i386.c (legitimate_address_p): Rename to...
60         (ix86_legitimate_address_p): ... this, make static.
61         (constant_address_p): Move after it, adjust call.
62         (TARGET_LEGITIMATE_ADDRESS_P): New.
63
64         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
65         * config/avr/avr-protos.h (legitimate_address_p): Remove.
66         * config/avr/avr.c (legitimate_address_p): Rename to...
67         (avr_legitimate_address_p): ... this, make static.
68         (legitimize_address): Adjust call.
69         (TARGET_LEGITIMATE_ADDRESS_P): New.
70
71         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
72         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
73         * config/crx/crx.c (crx_legitimate_address_p): Make static.
74         (TARGET_LEGITIMATE_ADDRESS_P): New.
75
76         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
77         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
78         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
79         (TARGET_LEGITIMATE_ADDRESS_P): New.
80
81         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
82         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
83         Remove.
84         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
85         Make static.
86         (TARGET_LEGITIMATE_ADDRESS_P): New.
87
88         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
89         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
90         Remove.
91         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
92         Rename to...
93         (m68hc11_legitimate_address_p): ... this, make static.
94         (go_if_legitimate_address_internal): Rename to...
95         (m68hc11_legitimate_address_p_1): ... this.
96         (legitimize_address): Adjust call.
97         (TARGET_LEGITIMATE_ADDRESS_P): New.
98
99         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
100         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
101         Remove.
102         * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
103         Make static.
104         (TARGET_LEGITIMATE_ADDRESS_P): New.
105
106         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
107         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
108         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
109         (mn10300_legitimate_address_p): ... this, make static.
110         (TARGET_LEGITIMATE_ADDRESS_P): New.
111
112         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
113         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
114         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
115         (TARGET_LEGITIMATE_ADDRESS_P): New.
116
117         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
118         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
119         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
120         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
121         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
122         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
123         (rs6000_legitimate_address_p): ... this, make static.
124         (TARGET_LEGITIMATE_ADDRESS_P): New.
125         (REG_MODE_OK_FOR_BASE_P): Delete.
126         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
127
128         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
129         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
130         Delete.
131         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
132         static, adjust types.
133         (TARGET_LEGITIMATE_ADDRESS_P): New.
134
135         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
136         * config/score/score.c (score_address_p): Rename to...
137         (score_legitimate_address_p): ... this.
138         (TARGET_LEGITIMATE_ADDRESS_P): New.
139         * config/score/score3.c (score3_address_p): Rename to...
140         (score3_legitimate_address_p): ... this.
141         * config/score/score7.c (score7_address_p): Rename to...
142         (score7_legitimate_address_p): ... this.
143
144         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
145         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
146         GO_IF_LEGITIMATE_ADDRESS): Delete.
147         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
148         thumb2_legitimate_address_p): Delete.
149         (arm_legitimate_address_p): Rename to...
150         (arm_legitimate_address_outer_p): ... this.
151         * config/arm/constraints.md ("Uq"): Adjust call.
152         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
153         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
154         (arm_legitimate_address_outer_p): ... this.
155         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
156         (TARGET_LEGITIMATE_ADDRESS_P): New.
157
158         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
159         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
160         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
161         (TARGET_LEGITIMATE_ADDRESS_P): New.
162
163         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
164         * config/vax/vax-protos.h (legitimate_address_p): Remove.
165         * config/vax/vax.c (legitimate_address_p): Rename to...
166         (vax_legitimate_address_p): ... this, make static.
167         (TARGET_LEGITIMATE_ADDRESS_P): New.
168
169         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
170         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
171         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
172         (TARGET_LEGITIMATE_ADDRESS_P): New.
173
174         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
175         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
176         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
177         (mmix_legitimate_address_p): ... this, make static.
178         (TARGET_LEGITIMATE_ADDRESS_P): New.
179
180         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
181         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
182         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
183         (TARGET_LEGITIMATE_ADDRESS_P): New.
184
185 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
186
187         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
188         of MODE_COMPLEX_INT.
189
190 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
191
192         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
193         LCT_NORMAL in function call.
194         * mips-tdump.c (print_file_desc): Add cast to enum type.
195         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
196         (mark_stabs): Add casts to enum types.
197         (parse_stabs_common): Add casts to enum types.
198         
199 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
200
201         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
202         Check for invalid values of LETTER.
203
204 2009-05-13  Taras Glek  <tglek@mozilla.com>
205
206        * attribs.c moved out attribute registration into register_attribute
207        * doc/plugins.texi Documented register_attribute and PLUGIN_ATTRIBUTES
208        * gcc-plugin.h Added forward decl for register_attribute
209        * plugin.c Added PLUGIN_ATTRIBUTES boilerplate
210        * plugin.h Added PLUGIN_ATTRIBUTES
211
212 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
213
214         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
215         values even in sentinel and empty entries.
216         (ms_printf_flag_specs):  Likewise.
217         (ms_scanf_flag_specs):  Likewise.
218         (ms_strftime_flag_specs):  Likewise.
219         (ms_print_char_table):  Likewise.
220         (ms_scan_char_table):  Likewise.
221         (ms_time_char_table):  Likewise.
222
223 2009-05-13  Doug Kwan  <dougkwan@google.com>
224
225         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
226
227 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
228
229         * config/mips/mips.md (store): Add attributes for QI and HI.
230         Update comment.
231         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
232         (truncdi<mode>2): ... this new pattern.
233
234 2009-05-13  Brad Hards  <bradh@kde.org>
235
236         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
237
238 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
239             Ben Elliston <bje@au.ibm.com>
240
241         PR middle-end/40035
242         * dse.c (check_mem_read_rtx): Guard against width == -1.
243
244 2009-05-13  Michael Matz  <matz@suse.de>
245
246         PR middle-end/39976
247         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
248         (trivially_conflicts_p): New function.
249         (insert_backedge_copies): Use it.
250
251 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
252
253         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
254         (handle_stdc_pragma): Use new enum constant names.
255         (handle_pragma_float_const_decimal64): Ditto.
256
257 2009-05-13  Ian Lance Taylor  <iant@google.com>
258
259         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
260         tree.def.
261
262 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
263
264         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
265         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
266         multilibs.
267         * config/m68k/m68k.h (FL_UCLINUX): Define.
268
269 2009-05-13  Jan Hubicka  <jh@suse.cz>
270
271         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
272
273 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
274
275         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
276         unless -fschedule-insns is specified.
277
278 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
279
280         PR target/39561
281         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
282         TARGET_EXPAND_CBRANCHDI4.
283         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
284         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
285         (cmpeqdi): Fix comment.
286
287 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
288
289         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
290         (sh_legitimate_address_p): Likewise.
291         * config/sh/sh.c (sh_legitimate_index_p): New.
292         (sh_legitimate_address_p): Likewise.
293         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
294         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
295         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
296         (MAYBE_BASE_REGISTER_RTX_P): New macro.
297         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
298         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
299         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
300         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
301         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
302
303 2009-05-12  Jan Hubicka  <jh@suse.cz>
304
305         * tree-inline.c (estimate_operator_cost): Add operands;
306         when division happens by constant, it is cheap.
307         (estimate_num_insns): Loads and stores are not having cost of 0;
308         EH magic stuff is cheap; when computing runtime cost of switch,
309         use log2 base of amount of its cases; builtin_expect has cost of 0;
310         compute cost for moving return value of call.
311         (init_inline_once): Initialize time_based flags.
312         * tree-inline.h (eni_weights_d): Add time_based flag.
313
314 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
315
316         * df-core.c: Update head documentation.
317
318 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
319
320         PR bootstrap/40118
321         * rs6000.c (rs6000_generate_compare): Use op1b instead of
322         shadowing exisiting variable op1.
323
324 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
325
326         PR target/37179
327         * config/i386/driver-i386.c (processor_signatures): New enum.
328         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
329         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
330         processor signature to detect geode processor.
331
332 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
333
334         Revert:
335
336         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
337
338         * optabs.c (prepare_cmp_insn): Temporarily disable test that
339         causes spurious differences between trunk and cond-optab branch.
340
341 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
342
343         * dojump.c (compare_from_rtx): Delete.
344         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
345         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
346         if the comparison does not satisfy the predicate; test predicates for
347         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
348         further if one existing pattern fails.
349         * expr.h (compare_from_rtx): Delete.
350         (prepare_operand): Declare it.
351         * optabs.c: Change "lib call" to "libcall" throughout.
352         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
353         HAVE_conditional_trap, emit_cmp_insn): Delete.
354         (can_compare_p): Delete cmp_optab case.
355         (prepare_float_lib_cmp): Return an rtx and a machine mode.
356         Accept other parameters by value.
357         (prepare_operand): Make non-static.
358         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
359         other parameters by value.  Try to widen operands here based on
360         an optab_methods argument and looking at cbranch_optab.
361         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
362         loop.  Use cbranch_optab directly.
363         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
364         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
365         assertion.
366         (emit_conditional_move, emit_conditional_add): Inline what's needed
367         of compare_from_rtx, using new prepare_cmp_insn for the rest.
368         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
369         with COMPARE.  Move cmov_optab and cstore_optab above
370         with cbranch_optab, move cmp_optab down with ucmp_optab,
371         remove tst_otpab.  Do not initialize trap_rtx.
372         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
373         for trap code.  Do not check HAVE_conditional_trap.  Use
374         prepare_cmp_insn.  Accept no predicate for operand 3.
375         * optabs.h (OTI_cmp): Mark as used only for libcalls.
376         (OTI_ctrap, ctrap_optab): New.
377         (tst_optab): Delete.
378         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
379         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
380         with lookup of ctrap_optab.
381         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
382         setcc_gen_code): Delete.
383         (ctrap_optab): New.
384
385         * combine.c (combine_simplify_rtx, simplify_set): Do not
386         special case comparing against zero for cc0 machines.
387         * simplify-rtx.c (simplify_binary_operation_1): Never remove
388         COMPARE on cc0 machines.
389         (simplify_relational_operation): Return a new expression when
390         a COMPARE could be removed.
391         * final.c (final_scan_insn): Compare cc_status values
392         against LHS of a (compare FOO (const_int 0)) cc0 source.
393         Also check if cc_status.value is the full compare.
394
395         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
396         (cstoreMM4): Document.
397         (conditional_trap): Document ctrapMM4 instead.
398         (sync_compare_and_swapMM): Refer to cbranchcc4.
399         (Dependent Patterns): Eliminate obsolete information referring to
400         the old jump optimization phase.
401         (Canonicalization): Include cbranchcc4 case, omit canonicalization
402         of compares with 0 on cc0 machines.
403         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
404         avoiding references to cc0.  Remove text about storing operands
405         in cmpMM.
406         * doc/tm.texi (Condition Codes): Include blurb on different
407         condition code representations, separate into subsections for
408         CC0, MODE_CC and conditional execution.
409
410         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
411         alpha_emit_setcc): Accept operands and a machine mode.
412         * config/alpha/alpha.c (alpha_emit_conditional_branch):
413         Get code/op0/op1 from operands, use machine mode argument
414         instead of alpha_compare.fp_p.  Emit the branch here.
415         (alpha_emit_setcc): Likewise, and return boolean.
416         (alpha_emit_conditional_move): Likewise.  Assert that
417         cmp_op_mode == cmp_mode, and simplify accordingly.
418         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
419         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
420         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
421         Delete.
422         (stack probe test): Use cbranchdi4.
423         * config/alpha/predicates.md (alpha_cbranch_operator): New.
424
425         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
426         * config/arc/arc.h (movsicc, movsfcc): Use it.
427         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
428         (cbranchsi4, cstoresi4): New.
429         (cmpsi, bCC and sCC expanders): Remove. 
430
431         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
432         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
433         * config/arm/predicates.md (arm_comparison_operator): Only include
434         floating-point operators if there is a hardware floating-point unit.
435         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
436         deferring to cbranch_cc and cstore_cc respectively.
437         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
438         cbranch_cc, cstore_cc): New.
439         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
440         arm_compare_op1.
441         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
442
443         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
444         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
445         as an argument.
446         (adjust_insn_length): Adjust calls.
447         (avr_reorg): Handle (compare (foo) (const_int 0)).
448         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
449         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
450         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
451         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
452         (bCC): Remove.
453         (cbranchqi4, cbranchhi4, cbranchsi4): New.
454         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
455
456         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
457         (cbranchsi4, cstorebi4, cstoresi4): New.
458         (movbisi): This insn is duplicate, split it to zero_extend.
459         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
460         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
461         (bfin_optimize_loop): Use cbranch expander.
462         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
463         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
464         (bfin_bimode_comparison_operator): ... this.
465         (bfin_direct_comparison_operator): New.
466  
467         * config/cris/cris.c (cris_normal_notice_update_cc): Look
468         inside (compare FOO (const_int 0)).
469         (cris_rtx_costs): Handle ZERO_EXTRACT.
470         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
471         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
472         (*tstdi_v32): Delete.
473         (*cmpdi_non_v32): Add M alternative for operand 1.
474         (cmpsi, cmp<mode>): Make private.
475         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
476         with COMPARE.
477         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
478
479         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
480         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
481         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
482         (cc_reg_operand): New.
483         (any_cond): Delete.
484         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
485         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
486         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
487         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
488         crx_expand_scond): Delete.
489
490         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
491         (cbranchsi4): New.
492         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
493         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
494
495         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
496         cstoresi4, cstoresf4, cstoredf4): New.
497         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
498         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
499         Receive the entire operands array.
500         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
501         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
502         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
503         Get test/op0/op1 from the operands array.
504         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
505
506         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
507         (h8300_expand_store): New.
508         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
509         (const_int 0)).
510         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
511         (h8300_expand_store): New.
512         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
513         or do not try to produce (set (cc0) REG).
514         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
515         change a compare into a move to a scratch register.  Disable some
516         peepholes when comparing with zero.
517         (tstsi, tsthi, tstsi, cmpqi): Make private.
518         (cmphi): Delete.
519         (bCC, sCC): Delete.
520         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
521         cstoresi4): New.
522
523         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
524         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
525         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
526         (ix86_emit_i387_log1p): Use cbranchxf2.
527         (ix86_expand_setcc): Return void.
528         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
529         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
530         cmp<MODEF>, cmpcc): Remove.
531         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
532         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
533         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
534         (sCC and bCC expanders): Remove.
535         (stack_protect_test): Use cbranchcc4.
536
537         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
538         Delete.
539         (ia64_expand_compare): Accept three rtx by reference and return void.
540         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
541         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
542         from *expr.  Update *expr with the BImode comparison to do.
543         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
544         cmptf, bCC, sCC, conditional_trap): Delete.
545         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
546         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
547         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
548         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
549         * config/ia64/predicates.md (ia64_cbranch_operator): New.
550
551         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
552         type of last argument.
553         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
554         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
555         use machine mode argument instead of branch_type.  Remove dead
556         code for floating-point comparisons.
557         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
558         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
559         Remove.
560         (cbranchsi4, cstoresi4): New.
561         * config/iq2000/predicates.md (reg_or_const_operand): New.
562
563         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
564         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
565         (b<code>_op): Rewrite to...
566         (bcc_op): ... this, using match_operator.
567         (s<code>_op): Rewrite to...
568         (scc_op): ... this, using match_operator.
569         (s<code>_24_op): Rewrite to...
570         (scc_op_24): ... this, using match_operator.
571         (s<code>_<mode>): Rewrite to...
572         (cstore<mode>4): ... this, using match_operator.
573         (s<code>_<mode>_24): Rewrite to...
574         (cstore<mode>4_24): ... this, using match_operator.
575         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
576         m32c_unpend_compare, m32c_expand_scc): Delete.
577         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
578         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
579         (m32c_expand_movcc): Change NE to EQ if necessary.
580         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
581
582         * config/m32r/m32r-protos.h (gen_cond_store): New.
583         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
584         (gen_cond_store): New, from sCC patterns.
585         (m32r_expand_block_move): Use cbranchsi4.
586         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
587         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
588         (cbranchsi4, cstoresi4): New.
589         
590         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
591         Delete.
592         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
593         (m68hc11_notice_update_cc): Look into a compare with 0.
594         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
595         Delete.
596         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
597         cmphi, cmpqi, bCC): Delete.
598         (cbranchsi4, cbranchhi4, cbranchqi4): New.
599         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
600         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
601         sets with COMPARE.
602
603         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
604         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
605         * config/m68k/constraints.md (H): New.
606         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
607         the define_insn below.
608         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
609         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
610         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
611         patterns): Wrap RHS with COMPARE.
612         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
613         (*cmpdi_internal): Name this pattern.
614         (cmpdi): Change to define_insn.
615         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
616         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
617         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
618         predicate.
619         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
620         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
621         (conditional_trap): Change to...
622         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
623         (*conditional_trap): Use the ordered_comparison_operator and
624         const1_operand predicates.
625         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
626         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
627         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
628         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
629
630         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
631         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
632         (mcore_gen_compare): New. 
633         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
634         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
635         (mcore_gen_compare): ... this.
636         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
637         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
638         (stack probe pattern): Use cbranchsi4.
639
640         * config/mips/predicates.md (mips_cstore_operator): New.
641         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
642         * config/mips/mips.md (any_cond): Delete.
643         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
644         always succeed.
645         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
646         fixuns_truncsfdi2): Use cbranch patterns.
647         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
648         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
649         Adjust call to mips_expand_conditional_branch.
650         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
651         cstore<GPR:mode>4.
652         * config/mips/mips-protos.h (mips_expand_conditional_branch,
653         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
654         * config/mips/mips.c (cmp_operands): Delete.
655         (mips_emit_compare): Get comparison operands from *op0/*op1.
656         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
657         that it succeeds.  Use op0/op1 instead of cmp_operands.
658         (mips_expand_conditional_branch, mips_expand_conditional_move,
659         mips_expand_conditional_trap): Likewise.
660         (mips_block_move_loop): Use cbranch patterns. 
661         * config/mips/mips.h (cmp_operands): Delete.
662
663         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
664         (mmix_gen_compare_reg): Just return a register in the right CC mode.
665         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
666         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
667         (*cmpcc_folded): Rename to...
668         (*cmpdi_folded): this.
669         (*cmpcc): Rename to...
670         (*cmps): ... this.
671         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
672         (bCC): Remove.
673         (cbranchdi4): New.
674         (cbranchdf4): New.  Handle invalid comparisons here.
675         * config/mmix/predicates.md (float_comparison_operator): New.
676
677         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
678         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
679         * config/mn10300/mn10300.md (tst): Delete.
680         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
681         Name these patterns and wrap RHS in a compare.
682         (*cmpsi): Make this pattern private.  Include tst.
683         (*cmpsf): Make this pattern private.
684         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
685         (compare with zero peepholes): Likewise.
686         (bCC): Remove.
687         (cbranchsi4, cbranchsf4): New.
688         (casesi): Use cbranchsi4.
689
690         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
691         hppa_branch_type): Delete.
692         (return_addr_rtx): Use cbranchsi4.
693         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
694         Emit CCFPmode comparison here.
695         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
696         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
697         hppa_branch_type): Delete.
698         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
699         (movsicc, movdicc): Remove references to hppa_compare_op0,
700         hppa_compare_op1 and compare_from_rtx.
701         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
702         (casesi): Use cbranchsi4.
703
704         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
705         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
706         * config/pdp11/pdp11.md (register_or_const0_operand): New.
707         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
708         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
709         (bCC): Delete.
710         (cbranchdf4, cbranchhi4, cbranchqi4): New.
711         (*branch, *branch_inverted): New.
712
713         * config/picochip/picochip.md (cbranchhi4): Use
714         ordered_comparison_operator.
715         (cmphi, bCC): Remove.
716
717         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
718         (trap_comparison_operator): Delete.
719         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
720         rs6000_emit_cbranch): Accept mode and operands.
721         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
722         rs6000_compare_fp_p): Delete.   
723         (rs6000_generate_compare): Accept mode and comparison.  Extract code
724         and op0/op1 from there.  Replace references to rs6000_compare_op0
725         and rs6000_compare_op1.
726         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
727         extract result from passed operands.
728         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
729         extract loc from passed operands.
730         (rs6000_emit_cmove): Likewise.
731         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
732         rs6000_compare_fp_p): Delete.
733         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
734         (cbranch<GPR>4, cbranch<FP>4): New.
735         (cstore<mode>4): New.  Consolidate here all choices about when to use
736         portable or specialized sCC sequences.
737         (stack_protect_test): Use cbranchsi4.
738         (conditional_trap): Replace with ctrap<GPR>4.
739         (conditional trap insn): Replace trap_comparison_operator with
740         ordered_comparison_operator. 
741
742         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
743         (s390_emit_prologue): Use ctrap.
744         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
745         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
746         New predicates replacing...
747         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
748         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
749         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
750         (add<mode>cc): Do not use s390_compare_op0/op1.
751         (s<code>): Change to...
752         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
753         (seq): Change to...
754         (cstorecc4): ... this.  Handle EQ or NE equally.
755         (*sne): Un-privatize for use in cstorecc4.
756         (b<code>): Change to...
757         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
758         (conditional_trap): Replace with...
759         (ctrap<GPR>4, ctrap<FP>4): ... these.
760         (stack_protect): Use cbranchcc4.
761
762         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
763         * config/score/score-protos.h (score_gen_cmp): Delete.
764         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
765         (score_block_move-loop): Use cbranchsi4.
766         * config/score/score.md (cbranchsi4): New.
767         (cmpsi, bCC): Delete.
768         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
769         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
770         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
771         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
772         * config/score/score3.h (score3_gen_cmp): Delete.
773         * config/score/score7.h (score7_gen_cmp): Delete.
774
775         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
776         (sh_emit_scc_to_t): ... this.  Return void.
777         (from_compare): Rename to...
778         (sh_emit_compare_and_branch): ... this.
779         (sh_emit_compare_and_set): New.
780         (sh_expand_t_scc): Accept operands.
781         * config/sh/predicates.md (sh_float_comparison_operator): New.
782         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
783         (prepare_scc_operands): Rename to...
784         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
785         arguments.
786         (sh_emit_cheap_store_flag): New.
787         (sh_emit_set_t_insn): New.
788         (from_compare): Rename to...
789         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
790         handling of TARGET_SH2E floating point to avoid recursive call.
791         Generate branch here.
792         (sh_emit_compare_and_set): New.
793         (sh_expand_t_scc): Get op0/op1 from arguments.
794         (sh_emit_cheap_store_flag): New.
795         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
796         cases.
797         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
798         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
799         (movsicc, movdicc): Do nothing when it recreated operands from
800         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
801         prepare_scc_operands (now sh_emit_scc_to_t).
802         (udivdi3): Use cstoresi4.
803         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
804         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
805         (cbranchint4_media, cbranchfp4_media): New.
806         (casesi): Use cbranchdi4.
807         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
808         Delete.
809         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
810         (movnegt): Remove second operand.
811         (cbranchsf4, cbranchdf4): New.
812         (stack_protect): Use cbranchdi4/cbranchsi4.
813
814         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
815         (gen_compare_reg): Accept comparison, extract part of it to...
816         (gen_compare_reg_1): ... this. 
817         (gen_compare_operator): Delete.
818         (gen_v9_scc): Accept separate destination, comparison code and arms.
819         Do not use sparc_compare_op0/sparc_compare_op1.
820         (emit_scc_insn, emit_conditional_branch_insn): New.
821         (emit_v9_brxx): Make static.  Remove useless assertion.
822         (sparc_emit_float_lib_cmp): Return RTL instead of calling
823         emit_cmp_insn.
824         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
825         * config/sparc/sparc-protos.h (gen_compare_reg,
826         sparc_emit_float_lib_cmp): Adjust prototype.
827         (emit_scc_insn, emit_conditional_branch_insn): New.
828         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
829         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
830         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
831         iterators to the top.
832         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
833         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
834         snedi_special_trunc): Delete.
835         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
836         and snedi_special_trunc.
837         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
838         cbranchdi4, cbranch<F:mode>4): New.
839         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
840         here.  Use gen_compare_reg instead of gen_compare_operator.
841         (conditional_trap): Replace with...
842         (ctrapsi4, ctrapdi4): ... this.
843         (stack_protect_test): Use cbranchcc4.
844
845         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
846         argument to rtx.
847         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
848         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
849         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
850         from operands[0] or operands[3] depending on is_set.
851         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
852         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
853         cmpdf, bCC), sCC: Remove.
854         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
855         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
856         cstoredf4): New.
857         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
858         spu_emit_branch_or_set.
859
860         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
861         Add two arguments.
862         * config/stormy16/stormy16.h (xstormy16_compare_op0,
863         xstormy16_compare_op1): Delete.
864         * config/stormy16/stormy16.c (xstormy16_compare_op0,
865         xstormy16_compare_op1): Delete. 
866         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
867         Adjust calls.
868         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
869         (cmphi, cmpsi, bCC): Remove.
870
871         * config/v850/v850.md (tstsi, cmpsi): Fold into...
872         (*cmpsi): ... this one.
873         (cbranchsi4, cstoresi4): New.
874         (bCC expanders): Delete.
875         (sCC insns): Fold into...
876         (*setcc): ... this one.
877         (casesi): Do not use gen_cmpsi and gen_bgtu. 
878         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
879         (movsicc): Simplify.
880         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
881
882         * config/vax/vax-protos.h (cond_name): New.
883         (vax_output_conditional_branch): Remove.
884         * config/vax/vax.c (cond_name): New.
885         (vax_output_conditional_branch): Remove.
886         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
887         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
888         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
889         (bit<VAXint>): Wrap source with (compare).
890         (b<code> and following unnamed pattern): Rename to *branch and
891         *branch_reversed.  Change macroization to match_operator.
892         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
893
894         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
895         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
896         Change last argument to machine_mode.
897         (xtensa_expand_scc): Add machine_mode argument.
898         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
899         (gen_conditional_move, xtensa_expand_conditional_branch,
900         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
901         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
902         Adjust operand numbers.
903         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
904         Delete.
905         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
906         (cmpsi, cmpsf, b<code>, s<code>): Delete.
907         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
908
909 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
910
911         * optabs.c (prepare_cmp_insn): Temporarily disable test that
912         causes spurious differences between trunk and cond-optab branch.
913
914 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
915
916         PR target/37137
917         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
918
919 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
920
921         * tree.c (iterative_hash_pointer): Delete.
922         (iterative_hash_expr): Short-circuit handling of NULL pointer.
923         Hash UIDs and versions of SSA names.  Don't special-case built-in
924         function declarations.
925
926 2009-05-11  Ian Lance Taylor  <iant@google.com>
927
928         PR bootstrap/40103
929         * graphite.c: Force -Wc++-compat to only be a warning before
930         #including "cloog/cloog.h".
931
932 2009-05-11  Martin Jambor  <mjambor@suse.cz>
933
934         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
935         
936 2009-05-11  Jan Hubicka  <jh@suse.cz>
937
938         * tree-ssa-loop-ivcanon.c: Include target.h
939         (struct loop_size): new structure.
940         (constant_after_peeling): New predicate.
941         (tree_estimate_loop_size): New function.
942         (estimated_unrolled_size): Rewrite for new estimates.
943         (try_unroll_loop_completely): Use new estimates.
944         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
945
946 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
947
948         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
949         libcpp interface change.
950         (spu_macro_to_expand): Likewise.
951
952 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
953
954         PR tree-optimization/40026
955         * gimplify.c (gimplify_init_constructor): Change initial conditional
956         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
957         optimize_compound_literals_in_ctor.
958
959 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
960
961         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
962         New devices.
963         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
964
965 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
966
967         * tree-vect-data-refs.c (vect_analyze_group_access): Use
968         HOST_WIDE_INT for gap.
969
970 2009-05-11  Ira Rosen  <irar@il.ibm.com>
971
972         PR tree-optimization/40074
973         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
974         account in group size and step comparison.
975
976 2009-05-11  Richard Guenther  <rguenther@suse.de>
977
978         * passes.c (init_optimization_passes): Strip now incorrect comment.
979         (execute_function_todo): Do not set PROP_alias.
980         * tree-pass.h (PROP_alias): Remove.
981         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
982         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
983         * tree-nrv.c (pass_return_slot): Likewise.
984         * tree-object-size.c (pass_object_sizes): Likewise.
985         * tree-ssa-dom.c (pass_dominator): Likewise.
986         (pass_phi_only_cprop): Likewise.
987         * tree-ssa-dse.c (pass_dse): Likewise.
988         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
989         (pass_cselim): Likewise.
990         * tree-ssa-pre.c (pass_pre): Likewise.
991         (pass_fre): Likewise.
992         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
993         * tree-ssa-sink.c (pass_sink_code): Likewise.
994         * tree-stdarg.c (pass_stdarg): Likewise.
995         * tree-tailcall.c (pass_tail_calls): Likewise.
996         * tree-vrp.c (pass_vrp): Likewise.
997
998 2009-05-10  Ian Lance Taylor  <iant@google.com>
999
1000         * basic-block.h (enum profile_status): Break out of struct
1001         control_flow_graph.
1002         * cgraph.h (struct inline_summary): Break out of struct
1003         cgraph_local_info.
1004         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1005         of struct cgraph_order_sort.
1006         * combine.c (enum undo_kind): New enum, broken out of struct undo.
1007         * cse.c (struct branch_path): Break out of struct
1008         cse_basic_block_data.
1009         * except.h (enum eh_region_type): Break out of struct eh_region.
1010         * gcc.c (enum add_del): Break out of struct modify_target.
1011         * genrecog.c (enum decision_type): Break out of struct decision_test.
1012         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1013         ggc_pch_data.
1014         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1015         * regmove.c (enum match_use): New enum, broken out of struct match.
1016         * sched-int.h (enum post_call_group): New enum, broken out of
1017         struct deps.
1018         (struct deps_reg): Break out of struct deps.
1019         * target.h (struct asm_int_op): Break out of struct gcc_target.
1020         * tree-eh.c (struct goto_queue_node): Break out of struct
1021         leh_tf_state.
1022         * tree-inline.h (enum copy_body_cge_which): Break out of
1023         copy_body_data.
1024         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1025
1026         * c-decl.c (in_struct, struct_types): New static variables.
1027         (pushtag): Add loc parameter.  Change all callers.
1028         (lookup_tag): Add ploc parameter.  Change all callers.
1029         (check_compound_literal_type): New function.
1030         (parser_xref_tag): Add loc parameter.  Change all callers.  If
1031         -Wc++-compat, warn about struct/union/enum types defined within a
1032         struct or union.
1033         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1034         and loc parameters.  Change all callers.  Change error calls to
1035         error_at, using loc.  For a redefinition, if the location of the
1036         original definition is known, report it.  Set in_struct and
1037         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
1038         (finish_struct): Add new parameters enclosing_in_struct and
1039         enclosing_struct_types.  Change all callers.  Set
1040         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1041         in the struct.  If in a struct, add this struct to struct_types.
1042         (start_enum): Add loc parameter.  Change all callers.  Use
1043         error_at for errors, using loc.  For a redefinition, if the
1044         location of the original definition is known, report it.  If in a
1045         struct, add this enum type to struct_types.  If -Wc++-compat warn
1046         if in sizeof, typeof, or alignof.
1047         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1048         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
1049         (c_parser_enum_specifier): Get enum location for start_enum.
1050         (c_parser_struct_or_union_specifier): Get struct location for
1051         start_struct.  Save in_struct and struct_types status between
1052         start_struct and finish_struct.
1053         (c_parser_cast_expression): Get location of cast.
1054         (c_parser_alignof_expression): Get location of type.
1055         (c_parser_postfix_expression): Likewise.
1056         (c_parser_postfix_expression_after_paren_type): Add type_loc
1057         parameter.  Change all callers.  Call check_compound_literal_type.
1058         Use type_loc for error about variable size type.
1059         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1060         of an enum constant from an enum type defined in a struct or union.
1061         (c_cast_expr): Add loc parameter.  Change all callers.  If
1062         -Wc++-compat, warn about defining a type in a cast.
1063         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1064         (start_enum, start_struct, finish_struct): Update declarations.
1065         (parser_xref_tag, c_cast_expr): Update declarations.
1066         (check_compound_literal_type): Declare.
1067
1068 2009-05-11  Ben Elliston  <bje@au.ibm.com>
1069
1070         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1071         for recent libcpp interface change.
1072         (rs6000_macro_to_expand): Likewise.
1073
1074 2009-05-10  Michael Matz  <matz@suse.de>
1075
1076         PR target/40031
1077         * config/arm/arm.c (require_pic_register): Emit on entry edge,
1078         not at entry of function.
1079
1080 2009-05-10  Richard Guenther  <rguenther@suse.de>
1081
1082         PR tree-optimization/40081
1083         Revert
1084         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1085         using the main variant of the element type.  Do not fiddle with
1086         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1087
1088         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1089         structs with volatile fields.
1090
1091 2009-05-10  Jan Hubicka  <jh@suse.cz>
1092
1093         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
1094         (estimate_move_cost): Assert that it does not get called for
1095         VOID_TYPE_P.
1096         (estimate_num_insns): Skip VOID types in argument handling.
1097         (optimize_inline_calls): Delete unreachable blocks and verify that
1098         callgraph is valid.
1099
1100 2009-05-10  Jan Hubicka  <jh@suse.cz>
1101
1102         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1103         * cgraph.c (cgraph_mark_address_taken_node): New function.
1104         (dump_cgraph_node): Dump new flag.
1105         * cgraph.h (struct cgraph_node): Add address_taken.
1106         (cgraph_mark_address_taken_node): New function.
1107         * ipa.c (cgraph_postorder): Prioritize functions with address taken
1108         since new direct calls can be born.
1109
1110 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1111
1112         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1113         tok->val.node.node.
1114
1115 2009-05-10  Jan Hubicka  <jh@suse.cz>
1116
1117         PR middle-end/40084
1118         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1119         argument; rewrite.
1120         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1121         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1122         * tree-inline.c (copy_bb): Set frequency correctly.
1123         (fold_marked_statements): Update call to
1124         cgraph_update_edges_for_call_stmt.
1125
1126 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1127
1128         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1129         identifiers in diagnostics.
1130         * config/arm/arm.c (arm_handle_fndecl_attribute,
1131         arm_handle_isr_attribute): Likewise.
1132         * config/avr/avr.c (avr_handle_progmem_attribute,
1133         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1134         Likewise.
1135         * config/bfin/bfin.c (handle_int_attribute,
1136         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1137         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1138         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1139         Likewise.
1140         * config/darwin.c (darwin_handle_kext_attribute,
1141         darwin_handle_weak_import_attribute): Likewise.
1142         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1143         h8300_handle_eightbit_data_attribute,
1144         h8300_handle_tiny_data_attribute): Likewise.
1145         * config/i386/i386.c (ix86_handle_cconv_attribute,
1146         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1147         Likewise.
1148         * config/i386/winnt.c (ix86_handle_shared_attribute,
1149         ix86_handle_selectany_attribute): Likewise.
1150         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1151         * config/m32c/m32c.c (function_vector_handler): Likewise.
1152         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1153         m68hc11_handle_fntype_attribute): Likewise.
1154         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1155         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1156         * config/mips/mips.c (mips_insert_attributes,
1157         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1158         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1159         rs6000_handle_struct_attribute): Likewise.
1160         * config/sh/sh.c (sh_insert_attributes,
1161         sh_handle_resbank_handler_attribute,
1162         sh_handle_interrupt_handler_attribute,
1163         sh2a_handle_function_vector_handler_attribute,
1164         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1165         Likewise.
1166         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1167         * config/spu/spu.c (spu_handle_fndecl_attribute,
1168         spu_handle_vector_attribute): Likewise.
1169         * config/stormy16/stormy16.c
1170         (xstormy16_handle_interrupt_attribute): Likewise.
1171         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1172         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1173
1174 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1175
1176         * pretty-print.h (struct pretty_print_info): Add
1177         translate_identifiers.
1178         (pp_translate_identifiers): New.
1179         (pp_identifier): Only conditionally translate identifier to locale
1180         character set.
1181         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1182         (pp_base_tree_identifier): Only conditionally translate identifier
1183         to locale character set.
1184         * c-pretty-print.c (M_): Define.
1185         (pp_c_type_specifier, pp_c_primary_expression): Mark English
1186         fragments for conditional translation with M_.
1187         * tree-pretty-print.c (maybe_init_pretty_print): Disable
1188         identifier translation.
1189
1190 2009-05-10  Richard Guenther  <rguenther@suse.de>
1191
1192         PR tree-optimization/40081
1193         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1194         using the main variant of the element type.  Do not fiddle with
1195         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1196
1197 2009-05-09  Jan Hubicka  <jh@suse.cz>
1198
1199         PR middle-end/40080
1200         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1201         indirect calls; verify cgraph afterwards.
1202
1203 2009-05-09  Jan Hubicka  <jh@suse.cz>
1204
1205         PR bootstrap/40082
1206         * ipa.c (update_inlined_to_pointer): New function.
1207         (cgraph_remove_unreachable_nodes): Use it.
1208
1209 2009-05-09  Jan Hubicka  <jh@suse.cz>
1210
1211         * tree-eh.c (struct leh_state): Remove prev_try.
1212         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1213         not track prev_try.
1214         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
1215         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1216         remove_eh_handler_and_replace, foreach_reachable_handler,
1217         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1218         * except.h (struct eh_region): Remove eh_region_u_cleanup.
1219         (gen_eh_region_cleanup): Update prototype.
1220
1221 2009-05-09  Jan Hubicka  <jh@suse.cz>
1222
1223         PR middle-end/40043
1224         * except.c (copy_eh_region): Always set prev_try.
1225         (redirect_eh_edge_to_label): Find outer try.
1226         (foreach_reachable_handler): When looking for prev try
1227         handle case where previous try is not going to be taken.
1228
1229 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1230
1231         PR tree-optimization/40049
1232         * tree-vect-stmts.c (vectorizable_operation): If the machine has
1233         only vector/vector shifts, convert the type of the constant to the
1234         appropriate type to avoid building incorrect trees, which
1235         eventually have problems with garbage collection.
1236
1237 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1238
1239         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1240         -1 for complex floating-point types if honoring signed zeros.
1241
1242 2009-05-08  Jan Hubicka  <jh@suse.cz>
1243
1244         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1245         argument; handle correctly when profile is absent.
1246         (build_cgraph_edges): Update.
1247         (rebuild_cgraph_edges): Update.
1248         * cgraph.c: Do not include varray.h.
1249         (cgraph_set_call_stmt_including_clones): New function.
1250         (cgraph_create_edge_including_clones): Likewise
1251         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
1252         (cgraph_update_edges_for_call_stmt): Handle clones.
1253         (cgraph_remove_node): Handle clone tree.
1254         (cgraph_remove_node_and_inline_clones): New function.
1255         (dump_cgraph_node): Dump clone tree.
1256         (cgraph_clone_node): Handle clone tree.
1257         (clone_function_name): Bring here from tree-inline.c.
1258         (cgraph_create_virtual_clone): New function.
1259         * cgraph.h (ipa_replace_map): Move here from ipa.h.
1260         (cgraph_clone_info): New function.
1261         (strut cgraph_node): Add clone_info and new clone tree pointers.
1262         (cgraph_remove_node_and_inline_clones,
1263         cgraph_set_call_stmt_including_clones,
1264         cgraph_create_edge_including_clones,
1265         cgraph_create_virtual_clone): Declare.
1266         (cgraph_function_versioning): Use VEC argument.
1267         (compute_call_stmt_bb_frequency): Update prototype.
1268         (cgraph_materialize_all_clones): New function.
1269         * ipa-cp.c (ipcp_update_cloned_node): Remove.
1270         (ipcp_create_replace_map): Update to VECtors.
1271         (ipcp_update_callgraph): Use virtual clones.
1272         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1273         (ipcp_update_profiling): Do not update local profiling.
1274         (ipcp_insert_stage): Use VECtors and virtual clones.
1275         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1276         (clone_of_p): New function.
1277         (cgraph_preserve_function_body_p): Use clone tree.
1278         (cgraph_optimize): Materialize clones.
1279         (cgraph_function_versioning): Update for VECtors.
1280         (save_inline_function_body): Use clone tree.
1281         (cgraph_materialize_clone): New function.
1282         (cgraph_materialize_all_clones): Likewise.
1283         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1284         * ipa.c: Include gimple.h.
1285         (cgraph_remove_unreachable_nodes): Use clone tree.
1286         * ipa-prop.c (ipa_note_param_call): Update call to
1287         compute_call_stmt_bb_frequencycall.
1288         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
1289         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
1290         (copy_bb): Handle updating of clone tree; add new edge when new call
1291         appears.
1292         (expand_call_inline): Be strict about every call having edge.
1293         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1294         (delete_unreachable_blocks_update_callgraph): New function.
1295         (tree_function_versioning): Use VECtors; always remove unreachable
1296         blocks and fold conditionals.
1297         * tree-inline.h: Do not include varray.h.
1298         (tree_function_versioning): Remove.
1299         * Makefile.in (GTFILES): Remove tree-inline.c
1300         * passes.c (do_per_function): Do only functions having body.
1301         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1302         tree.
1303
1304 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
1305             Andrew Morrow  <acm@google.com>
1306
1307         PR c/36892
1308         * c-common.c (c_common_attribute_table): Permit deprecated
1309         attribute to take an optional argument.
1310         (handle_deprecated_attribute): If the optional argument to
1311         __attribute__((deprecated)) is not a string ignore the attribute
1312         and emit a warning.
1313
1314         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1315         * c-typeck.c (build_component_ref): Likewise.
1316         (build_external_ref): Likewise.
1317
1318         * toplev.c (warn_deprecated_use): Add an attribute argument.
1319         Emit the message associated with __attribute__((deprecated)).
1320
1321         * toplev.h (warn_deprecated_use): Updated.
1322
1323         * doc/extend.texi: Document new optional parameter to
1324         __attribute__((deprecated))
1325
1326 2009-05-08  Michael Eager <eager@eagercon.com>
1327
1328         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1329         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1330
1331 2009-05-08  Richard Guenther  <rguenther@suse.de>
1332
1333         PR tree-optimization/40062
1334         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1335         Avoid exponential behavior.
1336
1337 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1338
1339         PR rtl-optimization/33928
1340         PR 26854
1341         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1342         process_uses, build_single_def_use_links): New.
1343         (update_df): Update use_def_ref.
1344         (forward_propagate_into): Use get_def_for_use instead of use-def
1345         chains.
1346         (fwprop_init): Call build_single_def_use_links and let it initialize
1347         dataflow.
1348         (fwprop_done): Free use_def_ref.
1349         (fwprop_addr): Eliminate duplicate call to df_set_flags.
1350         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
1351         df_rd_simulate_one_insn): New.
1352         (df_rd_bb_local_compute_process_def): Update head comment.
1353         (df_chain_create_bb): Use the new RD simulation functions.
1354         * df.h (df_rd_simulate_artificial_defs_at_top, 
1355         df_rd_simulate_one_insn): New.
1356         * opts.c (decode_options): Enable fwprop at -O1.
1357         * doc/invoke.texi (-fforward-propagate): Document this.
1358
1359 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1360
1361         PR c/24581
1362         * c-typeck.c (build_binary_op): Handle arithmetic between one real
1363         and one complex operand specially.
1364         * tree-complex.c (some_nonzerop): Do not identify a real value as
1365         zero if flag_signed_zeros.
1366
1367 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1368
1369         PR rtl-optimization/33928
1370         * loop-invariant.c (record_use): Fix && vs. || mishap.
1371
1372 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1373
1374         PR rtl-optimization/33928
1375         * loop-invariant.c (struct use): Add addr_use_p.
1376         (struct def): Add n_addr_uses.
1377         (struct invariant): Add cheap_address.
1378         (create_new_invariant): Set cheap_address.
1379         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
1380         (record_uses): Pass df_ref to record_use.
1381         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1382         used only as such.
1383
1384 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1385
1386         * config/sh/sh.c: Do not include c-pragma.h.
1387
1388 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1389
1390         * config/spu/spu.c: Remove include of c-common.h.
1391
1392 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
1393
1394         PR c/39037
1395         * c-common.h (mark_valid_location_for_stdc_pragma,
1396         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1397         clear_float_const_decimal64, float_const_decimal64_p): New.
1398         * c.opt (Wunsuffixed-float-constants): New.
1399         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1400         unsuffixed float constant, handle new warning.
1401         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1402         * c-decl.c (c_scope): New flag float_const_decimal64.
1403         (set_float_const_decimal64, clear_float_const_decimal64,
1404         float_const_decimal64_p): New.
1405         (push_scope): Set new flag.
1406         * c-parser.c (c_parser_translation_unit): Mark when it's valid
1407         to use STDC pragmas.
1408         (c_parser_external_declaration): Ditto.
1409         (c_parser_compound_statement_nostart): Ditto.
1410         * c-pragma.c (valid_location_for_stdc_pragma,
1411         mark_valid_location_for_stdc_pragma,
1412         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1413         handle_pragma_float_const_decimal64): New.
1414         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1415         * cp/semantics.c (valid_location_for_stdc_pragma_p,
1416         set_float_const_decimal64, clear_float_const_decimal64,
1417         float_const_decimal64_p): New dummy functions.
1418         * doc/extend.texi (Decimal Float): Remove statement that the
1419         pragma, and suffix for double constants, are not supported.
1420         * doc/invoke.texi (Warning Options): List new option.
1421         (-Wunsuffixed-float-constants): New.
1422
1423 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
1424
1425         * config/i386/i386.c: Do not include c-common.h.
1426
1427 2009-05-07  Mark Heffernan  <meheff@google.com>
1428
1429         * doc/invoke.texi (Debugging Options): Document change of debugging
1430         dump location.
1431         * opts.c (decode_options): Make dump_base_name relative to
1432         aux_base_name directory.
1433
1434 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
1435
1436         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1437         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1438
1439 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
1440
1441         * Makefile.in (install-plugin): Simplify a bit.
1442
1443 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
1444
1445         * Makefile.in (OBJS-common): Add regcprop.o.
1446         (regcprop.o): New.
1447         * timevar.def (TV_CPROP_REGISTERS): New.
1448         * regrename.c (regrename_optimize): Return 0.
1449         (rest_of_handle_regrename): Delete.
1450         (pass_rename_registers): Point to regrename_optimize.
1451         (struct value_data_entry, struct value_data, 
1452         kill_value_one_regno, kill_value_regno, kill_value,
1453         set_value_regno, init_value_data, kill_clobbered_value,
1454         kill_set_value, kill_autoinc_value, copy_value,
1455         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1456         replace_oldest_value_reg, replace_oldest_value_addr,
1457         replace_oldest_value_mem, copyprop_hardreg_forward_1,
1458         debug_value_data, validate_value_data): Move...
1459         * regcprop.c: ... here.
1460         (rest_of_handle_cprop): Delete.
1461         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1462
1463 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
1464
1465         PR middle-end/40057
1466         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1467         GEN_INT for 1 << bitnum.
1468         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1469         build_int_cst_type.
1470
1471 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
1472
1473         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
1474         Remove wrong description of "nand" operation.
1475
1476 2009-05-06  Richard Guenther  <rguenther@suse.de>
1477             Adam Nemet  <anemet@caviumnetworks.com>
1478
1479         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1480         comment.  Add that if LHS is not a gimple register, then RHS1 has
1481         to be a single object (GIMPLE_SINGLE_RHS).
1482
1483 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
1484
1485         * expr.c (get_def_for_expr): Move it up in the file.
1486         (store_field): When expanding a bit-field store, look at the
1487         defining gimple stmt for the masking conversion.
1488
1489 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
1490
1491         PR middle-end/39986
1492         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1493         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1494         32-bit memcpy into long.
1495
1496 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
1497
1498         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1499         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1500         new_reg_loc_descr.
1501         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1502         instead of appending DW_OP_deref*.
1503
1504 2009-05-06  Michael Matz  <matz@suse.de>
1505
1506         PR middle-end/40021
1507         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1508         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1509
1510 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
1511
1512         * Makefile.in (install-plugin): Fix srcdir handling.
1513
1514 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
1515
1516         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1517         when processing for not_regs_needed bitmap.
1518         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1519         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
1520         handling it for rhs. 
1521
1522 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1523
1524         * config/i386/i386.md (unnamed inc/dec peephole): Use
1525         optimize_insn_for_size_p instead of optimize_size.
1526         * config/i386/predicates.md (incdec_operand): Likewise.
1527         (aligned_operand): Likewise.
1528         * config/i386/sse.md (divv8sf3): Likewise.
1529         (sqrtv8sf2): Likewise.
1530
1531 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1532
1533         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1534
1535         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1536
1537 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1538
1539         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1540         ssemodesuffixf2c with avxmodesuffixf2c.
1541
1542 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
1543
1544         PR c/40032
1545         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1546
1547 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
1548
1549         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1550         (struct tree_base): Adjust spacing for 8 bit boundaries.
1551         (struct tree_decl_common): Add decl_by_reference_flag bit.
1552         (DECL_BY_REFERENCE): Adjust.
1553         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1554         print DECL_BY_REFERENCE bit.
1555         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1556         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1557         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1558         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
1559         unconditionally.
1560
1561         PR middle-end/39666
1562         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1563         range of the type, but default label is missing, add it with one
1564         of the existing labels instead of adding a new label for it.
1565
1566 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
1567
1568         * dwarf.h: Remove.
1569
1570 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
1571
1572         * Makefile.in (enable_plugin, plugin_includedir): New.
1573         (install): Depend on install-plugin.
1574         (PLUGIN_HEADERS): New.
1575         (install-plugin): New.
1576         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1577
1578 2009-05-05  Richard Guenther  <rguenther@suse.de>
1579
1580         PR tree-optimization/40022
1581         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1582         the only vuse.
1583         (phivn_valid_p): Fix tuplification error, simplify.
1584         (phiprop_insert_phi): Add dumps.
1585         (propagate_with_phi): Simplify.
1586
1587 2009-05-05  Richard Guenther  <rguenther@suse.de>
1588
1589         PR middle-end/40023
1590         * builtins.c (gimplify_va_arg_expr): Properly build the address.
1591
1592 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
1593
1594         * tree.h (strip_float_extensions): Remove duplicate declaration.
1595         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1596         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1597         block_ultimate_origin): Rearrange the declarations line to match the
1598         comment that indicates the .c file which the functions are defined.
1599         (dwarf2out_*, set_decl_rtl): Add comment.
1600         (get_base_address): Adjust comment.
1601         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1602         declarations line and add comment.
1603         (is_builtin_name): Add blank after function name, for clarity.
1604
1605 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1606
1607         * attribs.c (decl_attributes): Use %qE for identifiers in
1608         diagnostics.
1609         * cgraphunit.c (verify_cgraph_node): Translate function names to
1610         locale character set in diagnostics.
1611         * coverage.c (get_coverage_counts): Use %qE for identifiers in
1612         diagnostics.
1613         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1614         Document that functions are named in UTF-8.
1615         * expr.c (expand_expr_real_1): Translate function names to locale
1616         character set in diagnostics.
1617         * gimplify.c (omp_notice_variable, omp_is_private,
1618         gimplify_scan_omp_clauses): Use %qE for identifiers in
1619         diagnostics.
1620         * langhooks.c (lhd_print_error_function): Translate function names
1621         to locale character set.
1622         * langhooks.h (decl_printable_name): Document that return value is
1623         in internal character set.
1624         * stmt.c: Include pretty-print.h
1625         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1626         diagnostics.
1627         (resolve_operand_name_1): Translate named operand name to locale
1628         character set.
1629         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1630         diagnostics.
1631         * toplev.c (announce_function): Translate function names to locale
1632         character set.
1633         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1634         (default_tree_printer): Use pp_identifier or translate identifiers
1635         to locale character set.  Mark "<anonymous>" for translation.
1636         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1637         for identifiers in diagnostics.
1638         * tree.c (handle_dll_attribute): Use %qE for identifiers in
1639         diagnostics.
1640         * varasm.c (output_constructor): Use %qE for identifiers in
1641         diagnostics.
1642
1643 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
1644
1645         * configure.ac: use ` ` instead of $()
1646         * configure: Regenerate.
1647
1648 2009-05-05  Ben Elliston  <bje@au.ibm.com>
1649
1650         * config/pa/linux-atomic.c: Eliminate conditional include of
1651         errno.h on non-LP64 systems to simplify build requirements.
1652
1653 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1654
1655         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1656         diagnostics.
1657         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1658         and pass value to identifier_to_locale.
1659         (warn_variable_length_array): Make name a tree.
1660         (grokdeclarator): Separate diagnostic texts for named and unnamed
1661         declarators.  Use %qE for named declarators.
1662         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1663         diagnostics.
1664         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1665         identifiers in diagnostics.
1666         * c-typeck.c (push_member_name, start_init): Pass identifiers to
1667         identifier_to_locale.  Mark "anonymous" strings for translation.
1668
1669 2009-05-04  Michael Eager <eager@eagercon.com>
1670
1671         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
1672         address for DImode/DFmode only if double-precision FP regs.
1673
1674 2009-05-04  Michael Eager <eager@eagercon.com>
1675
1676         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1677         TARGET_SINGLE_FLOAT check.
1678
1679 2009-05-04  Michael Eager <eager@eagercon.com>
1680
1681         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1682
1683 2009-05-04  Michael Eager <eager@eagercon.com>
1684
1685         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1686         * config/rs6000/t-xilinx: New
1687
1688 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
1689
1690         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
1691         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1692         * gcc/explow.c (memory_address): Use target hook.
1693         * gcc/targhooks.c (default_legitimize_address): New.
1694         * gcc/targhooks.h (default_legitimize_address): New.
1695         * gcc/target.h (legitimize_address): New.
1696         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1697         (TARGET_INITIALIZER): Include it.
1698         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1699
1700         * config/bfin/bfin-protos.h (legitimize_address): Remove.
1701         * config/bfin/bfin.c (legitimize_address): Remove.
1702         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
1703         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1704         Remove.
1705         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1706         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1707
1708         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1709         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1710         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1711         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1712         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1713         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1714         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1715         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1716         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1717         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1718         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1719         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1720         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1721         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1722         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1723         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1724         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1725         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1726         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1727         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1728         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1729         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1730         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1731
1732         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1733         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1734         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1735         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1736         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1737         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1738         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1739         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1740         (thumb_legitimize_address): Delete.
1741         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1742         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1743         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1744         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1745         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
1746         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1747         Delete.
1748         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1749         Delete.
1750
1751         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1752         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1753         * config/m32r/m32r.c (m32r_legitimize_address): New.
1754         * config/m68k/m68k.c (m68k_legitimize_address): New.
1755         * config/score/score.c (score_legitimize_address): Standardize.
1756         * config/score/score3.c (score3_legitimize_address): Standardize.
1757         * config/score/score3.h (score3_legitimize_address): Adjust.
1758         * config/score/score7.c (score7_legitimize_address): Standardize.
1759         * config/score/score7.h (score7_legitimize_address): Adjust.
1760         * config/sh/sh.c (sh_legitimize_address): New.
1761         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1762
1763         * gcc/config/s390/s390.c (legitimize_address): Rename to...
1764         (s390_legitimize_address): ... this.
1765         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1766         (sparc_legitimize_address): ... this.
1767         * gcc/config/i386/i386.c (legitimize_address): Rename to...
1768         (ix86_legitimize_address): ... this.
1769         * gcc/config/avr/avr.c (legitimize_address): Rename to...
1770         (avr_legitimize_address): ... this.
1771         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1772         (mn10300_legitimize_address): ... this.
1773         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1774         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1775         (alpha_expand_mov): Adjust call.
1776
1777         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1778         * config/spu/spu.c (spu_legitimize_address): Likewise.
1779         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1780         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1781
1782 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1783
1784         * intl.c (locale_encoding, locale_utf8): New.
1785         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1786         * intl.h (locale_encoding, locale_utf8): Declare.
1787         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
1788         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1789         New.
1790         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1791         argument.
1792         (pp_tree_identifier): Define to call pp_base_tree_identifier.
1793         (pp_base_tree_identifier): Declare as function.
1794         (identifier_to_locale): Declare.
1795         * Makefile.in (pretty-print.o): Update dependencies.
1796         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
1797
1798 2009-05-04  Richard Guenther  <rguenther@suse.de>
1799
1800         PR middle-end/40015
1801         * builtins.c (fold_builtin_memory_op): Do not decay to element
1802         type if the size matches the whole array.
1803
1804 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
1805
1806         * expmed.c (synth_mult): When trying out a shift, pass the result
1807         of a signed shift.
1808
1809 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
1810
1811         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1812         (shiftsub1_cost): New.
1813         (init_expmed): Compute shiftsub1_cost.
1814         (synth_mult): Optimize multiplications by constants of the form
1815         -(2^^m-1) for some constant positive integer m.
1816
1817 2009-05-03  Richard Guenther  <rguenther@suse.de>
1818
1819         PR c/39983
1820         * c-typeck.c (array_to_pointer_conversion): Do not built
1821         ADDR_EXPRs of arrays of pointer-to-element type.
1822         * c-gimplify.c (c_gimplify_expr): Revert change fixing
1823         up wrong ADDR_EXPRs after-the-fact.
1824         * c-common.c (strict_aliasing_warning): Strip pointer
1825         conversions for obtaining the original type.
1826         * builtins.c (fold_builtin_memset): Handle array types.
1827         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1828         and array types
1829
1830 2009-05-03  Richard Guenther  <rguenther@suse.de>
1831
1832         PR middle-end/23329
1833         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1834         Do not lose casts from array types with unknown extent to array
1835         types with known extent.
1836         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1837         alias set compatibility.
1838
1839 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1840
1841         * flags.h (extra_warnings): Delete.
1842         * toplev.c (process_options): Handle Wuninitialized here.
1843         * opts.c (extra_warnings): Delete.
1844         (set_Wextra): Delete.
1845         (common_handle_option): -Wextra can be handled automatically.
1846         * c-opts.c (c_common_handle_option): Delete obsolete code.
1847         (c_common_post_options): Simplify comment.
1848         * common.opt (W): Add Var.
1849         (Wextra): Add Var.
1850         (Wuninitialized): Initialize to -1.
1851
1852 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
1853             Richard Guenther  <rguenther@suse.de>
1854
1855         * expr.c (get_def_for_expr): New function.
1856         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
1857         SSA rather than trees.
1858         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
1859         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
1860         
1861 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
1862
1863         * c-common.c (reswords): Add _Imaginary.
1864         * c-common.c (enum rid): Add RID_IMAGINARY.
1865
1866 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
1867
1868         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
1869         Patch by Richard Guenther.
1870
1871 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
1872
1873         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
1874         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1875         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
1876         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
1877         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
1878         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
1879         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
1880         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
1881         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
1882         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
1883         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
1884         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
1885         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
1886         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
1887         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
1888         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
1889         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
1890         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
1891
1892 2009-05-02  Richard Guenther  <rguenther@suse.de>
1893
1894         PR tree-optimization/39940
1895         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
1896         doing so.
1897
1898 2009-05-02  Richard Guenther  <rguenther@suse.de>
1899
1900         PR middle-end/40001
1901         * tree-ssa.c (execute_update_addresses_taken): Properly check
1902         if we can mark a variable DECL_GIMPLE_REG_P.
1903         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
1904         back to the end of the function.
1905         (is_gimple_reg_type): Remove complex type special casing.
1906         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
1907         if not optimizing.
1908
1909 2009-05-02  Ben Elliston  <bje@au.ibm.com>
1910
1911         * doc/collect2.texi (Collect2): Document search path behaviour
1912         when configured with --with-ld.
1913
1914 2009-05-02  Jan Hubicka  <jh@suse.cz>
1915
1916         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
1917         parameter; update callers.
1918         (coalesce_cost_edge): EH edges are costier because they needs
1919         splitting even if not critical and even more costier when there are
1920         multiple EH predecestors.
1921
1922 2009-05-02  Jan Hubicka  <jh@suse.cz>
1923
1924         * except.c (remove_eh_handler_and_replace): Handle updating after
1925         removing TRY blocks.
1926
1927 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
1928
1929         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1930
1931 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
1932
1933         * varasm.c: Do not include c-pragma.h.
1934         * attribs.c: Do not incude c-common.h.
1935
1936 2009-05-01  Michael Matz  <matz@suse.de>
1937
1938         * calls.c (initialize_argument_information): Handle SSA names like
1939         decls with a non MEM_P DECL_RTL.
1940
1941 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
1942
1943         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1944         * ipa-utils.c: Likewise.
1945         * ipa-type-escape.c: Likewise.
1946         * cgraphunit.c Do not include c-common.h.
1947         * ipa-pure-const.c: Likewise.
1948         * tree-if-conv.c: Likewise.
1949         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1950         * ipa-struct-reorg.c: Likewise.
1951         * tree-nomudflap.c: Likewise.
1952         * tree-ssa-structalias.c: Likewise.
1953
1954 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
1955
1956         * store-motion.c: Many cleanups to make this pass a first-class
1957         citizen instead of an appendix to gcse load motion.  Add TODO list
1958         to make this pass faster/cleaner/better.
1959
1960         (struct ls_expr): Post gcse.c-split cleanups.
1961         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
1962         "stores" field to "avail_stores".
1963         (pre_ldst_mems): Rename to store_motion_mems.
1964         (pre_ldst_table): Rename to store_motion_mems_table.
1965         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
1966         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1967         (ldst_entry): Rename to st_expr_entry, update users.
1968         (free_ldst_entry): Rename to free_st_expr_entry, update users.
1969         (free_ldst_mems): Rename to free_store_motion_mems, update users.
1970         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1971         update caller.
1972         (first_ls_expr): Rename to first_st_expr, update users.
1973         (next_ls_expr): Rename to next_st_expr, update users.
1974         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
1975         fields properly for store motion instead of names inherited from load
1976         motion in gcse.c.
1977         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1978         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
1979         are done with it.
1980
1981         (ae_kill): Rename to st_kill, update users.
1982         (ae_gen): Rename to st_avloc, update users.
1983         (transp): Rename to st_transp, update users.
1984         (pre_insert_map): Rename to st_insert_map, update users.
1985         (pre_delete_map): Rename to st_delete_map, update users.
1986         (insert_store, build_store_vectors, free_store_memory,
1987         one_store_motion_pass): Update for abovementioned changes.
1988
1989         (gcse_subst_count, gcse_create_count): Remove.
1990         (one_store_motion_pass): New statistics counters "n_stores_deleted"
1991         and "n_stores_created", local variables.
1992
1993         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
1994         use for_each_rtx.
1995
1996         (regvec, compute_store_table_current_insn): Remove.
1997         (reg_set_info, reg_clear_last_set): Remove.
1998         (compute_store_table): Use DF caches instead of local dataflow
1999         solvers.
2000
2001 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
2002
2003         * c-objc-common.c (c_tree_printer): Print identifiers with
2004         pp_identifier, not pp_string.  Mark "({anonymous})" for
2005         translation.
2006         * c-pretty-print.c (pp_c_ws_string): New.
2007         (pp_c_cv_qualifier, pp_c_type_specifier,
2008         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2009         pp_c_storage_class_specifier, pp_c_function_specifier,
2010         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2011         pp_c_primary_expression, pp_c_postfix_expression,
2012         pp_c_unary_expression, pp_c_shift_expression,
2013         pp_c_relational_expression, pp_c_equality_expression,
2014         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2015         use pp_string and pp_c_ws_string in place of pp_identifier and
2016         pp_c_identifier for non-identifiers.  Mark English strings for
2017         translation.
2018         * c-pretty-print.h (pp_c_ws_string): Declare.
2019
2020 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
2021             Roland McGrath <roland@redhat.com>
2022
2023         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
2024         (ENABLE_LD_BUILDID): New configuration option.
2025         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2026         (LINK_BUILDID_SPEC): New macro.
2027         (init_spec): If defined, prepend it between LINK_EH_SPEC and
2028         link_spec.
2029         * doc/install.texi: Document --enable-linker-build-id option.
2030         * configure: Rebuild.
2031         * config.in: Rebuild.
2032
2033 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
2034
2035         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2036         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2037         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
2038         MIPS_GP_SAVE_AREA_SIZE.
2039         * config/mips/mips.c (struct mips_frame_info): Update comment
2040         before arg_pointer_offset and hard_frame_pointer_offset.
2041         (mips_compute_frame_info): Update diagram before function: to
2042         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2043         indicate the position of frame_pointer_rtx with -fstack-protector and
2044         to show args_size.  Don't allocate cprestore area for leaf functions
2045         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
2046         cprestore_size.
2047         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2048
2049 2009-04-30  Michael Matz  <matz@suse.de>
2050
2051         PR tree-optimization/39955
2052         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
2053
2054 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2055
2056         * ira.c (setup_cover_and_important_classes):  Use safe macro
2057         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2058         directly.
2059         * genpreds.c (write_tm_preds_h):  Output suitable definition of
2060         REG_CLASS_FOR_CONSTRAINT.
2061
2062 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2063
2064         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2065         instead of an int.
2066         * bitmap.c (bitmap_descriptor): Likewise.
2067         * ggc-common.c (loc_descriptor): Likewise.
2068         * varray.c (varray_descriptor): Likewise.
2069         * vec.c (vec_descriptor): Likewise.
2070
2071 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2072
2073         * Makefile.in (dce.o): Add $(EXCEPT_H).
2074         * dce.c: Include except.h and delete redundant vector definitions.
2075         (deletable_insn_p): Return false for non-call insns that can throw
2076         if DF is running.
2077
2078 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2079
2080         * gcse.c (ae_gen): Remove.
2081         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2082         and make non-static function to make it available in store-motion.c.
2083         Update call sites with search-and-replace.
2084         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2085         extract_mentioned_regs, extract_mentioned_regs_helper,
2086         find_moveable_store, compute_store_table, load_kills_store, find_loads,
2087         store_killed_in_insn, store_killed_after, store_killed_before,
2088         build_store_vectors, insert_insn_start_basic_block, insert-store,
2089         remove_reachable_equiv_notes, replace_store_insn, delete_store,
2090         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2091         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2092         * store-motion.c: ...new file.  Also copy data structures from gcse.c
2093         and clean up to remove parts not used by store motion.
2094         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2095         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2096
2097 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2098
2099         PR target/38571
2100         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2101         when optimizing for size.
2102
2103 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
2104
2105         * gcse.c (gcse_constant_p): Fix typo in last change.
2106
2107 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2108
2109         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2110
2111 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2112
2113         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2114
2115 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
2116
2117         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2118         CONST_HIGH_PART result.
2119
2120 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
2121
2122         * config/avr/avr.c (initial_elimination_offset): Rename to
2123         avr_initial_elimination_offset.
2124         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2125         change return type to bool.
2126         (avr_can_eliminate): New function.
2127         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2128         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2129         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
2130         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
2131         avr_initial_elimination_offset.
2132         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2133         (avr_initial_elimination_offset): Define.
2134
2135 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
2136             Steven Bosscher  <steven@gcc.gnu.org>
2137
2138         PR rtl-optimization/39938
2139         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2140         * cfgrtl.c: Include insn-attr.h.
2141         (rest_of_pass_free_cfg): New function.
2142         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2143         * resource.c (init_resource_info): Remove call to df_analyze.
2144
2145 2009-04-29  Richard Guenther  <rguenther@suse.de>
2146
2147         PR target/39943
2148         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2149         allow conversion to signed integers.
2150
2151 2009-04-29  Richard Guenther  <rguenther@suse.de>
2152
2153         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2154         shifts of floating point vectors if the shift amount is
2155         a constant multiple of the element size.
2156
2157 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2158             Michael Matz  <matz@suse.de>
2159
2160         PR middle-end/39927
2161         PR bootstrap/39929
2162         * tree-outof-ssa.c (emit_partition_copy): New function.
2163         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2164         insert_part_to_rtx_on_edge): Perform the partition base var
2165         copy using emit_partition_copy.
2166         (insert_value_copy_on_edge): Convert constants to the right mode.
2167         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2168         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2169
2170 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2171
2172         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2173         scan backwards to try to find a constant to initialize it.
2174
2175         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2176         insn before the loop_end instruction, don't look past labels.
2177
2178 2009-04-29  Richard Guenther  <rguenther@suse.de>
2179
2180         PR middle-end/39937
2181         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2182         loose type conversions.
2183         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
2184         stmts only if there are no uses of its definition.
2185
2186 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2187
2188         * config/bfin/bfin.h (splitting_loops): Declare.
2189         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2190         Reorder bit definitions to be ascending.
2191         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2192         * config/bfin/bfin.c (splitting_loops): New variable.
2193         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2194         (struct loop_info): Remove members INIT and LOOP_INIT.
2195         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
2196         the LSETUP sequence.  Allow LC to be loaded from any register, but
2197         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
2198         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2199         set to 1.
2200         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2201         of reload_completed.
2202
2203         From Jie Zhang:
2204         * config/bfin/bfin.md (movsi_insn): Refine constraints.
2205
2206 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
2207
2208         * Makefile.in (PLUGIN_VERSION_H): New.
2209         (OBJS-common): Remove plugin-version.o.
2210         (plugin.o): Depend on (PLUGIN_VERSION_H).
2211         (plugin-version.o): Remove.
2212         * configure: Regenerate
2213         * configure.ac: Create plugin-version.h.
2214         * gcc-plugin.h (plugin_gcc_version): Remove.
2215         (plugin_default_version_check): Change signature.
2216         * plugin-version.c: Remove.
2217         * plugin.c: Include plugin-version.h.
2218         (str_plugin_gcc_version_name): Remove.
2219         (try_init_one_plugin): Pass gcc version to plugin_init.
2220         (plugin_default_version_check): Both gcc and plugin versions are now
2221         arguments.
2222
2223 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2224         
2225         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2226         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
2227         Remove special case testing for last insn of inner loops. Don't fail
2228         if the loop ends with a jump, emit an extra nop instead.
2229
2230         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2231         DREGS rather than comparing directly.  Remove code that tries to
2232         account for latencies.
2233
2234 2009-04-29  Richard Guenther  <rguenther@suse.de>
2235
2236         PR tree-optimization/39941
2237         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2238         eliminating an indirect call.
2239
2240 2009-04-29  Richard Guenther  <rguenther@suse.de>
2241
2242         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2243         parameter.  Allow invariants as base if !require_lvalue.
2244         (verify_gimple_assign_single): Adjust.
2245
2246 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2247
2248         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2249         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
2250         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2251         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
2252         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2253         a VEC_SELECT.
2254         * config/bfin/bfin.c (bfin_expand_builtin,
2255         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
2256
2257 2009-04-28  Richard Guenther  <rguenther@suse.de>
2258
2259         * tree-vect-loop.c (get_initial_def_for_induction): Use
2260         correct types for pointer increment.
2261
2262 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2263
2264         * toplev.c (print_version): Update GMP version string calculation.
2265
2266 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2267
2268         PR rtl-optimization/39938
2269         * resource.c (init_resource_info): Add call to df_analyze.
2270
2271 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2272
2273         * config/alpha/alpha.md (usegp): Cast the result of
2274         alpha_find_lo_sum_using_gp to enum attr_usegp.
2275         * config/alpha/alpha.c (override_options): Remove end-of-structure
2276         marker element from cpu_table.  Use array size of cpu_table to handle
2277         -mcpu and -mtune options.
2278         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2279
2280 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
2281
2282         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2283         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
2284         tune_32 and tune_64.
2285         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2286         support on PowerPC.
2287         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2288         * config/rs6000/option-defaults.h: ... here.  New file.
2289         (OPT_64, OPT_32): Define.
2290         (MASK_64BIT): Define to 0 if not already defined.
2291         (OPT_ARCH64, OPT_ARCH32): Define.
2292         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2293         and tune_64.
2294
2295 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2296
2297         * config/arm/arm.c (arm_override_options): Emit error on using
2298         fpa with AAPCS.
2299
2300 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2301
2302         PR rtl-optimization/39914
2303         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2304         registers for allocnos created from user-defined variables only
2305         when not optimizing.
2306
2307 2009-04-28  Richard Guenther  <rguenther@suse.de>
2308
2309         PR middle-end/39937
2310         * fold-const.c (fold_binary): Use distribute_real_division only
2311         on float types.
2312
2313 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
2314
2315         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2316         add hpux-stdint.h to tm_file.
2317         (hppa[12]*-*-hpux11*): Ditto.
2318         (ia64*-*-hpux*): Ditto.
2319         * config/hpux-stdint.h: New.
2320         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
2321         __STDC_EXT__ for all compiles.
2322         * config/pa/pa-hpux.h: Ditto.
2323         * config/pa/pa-hpux10.h: Ditto.
2324         * config/pa/pa-hpux11.h: Ditto.
2325
2326 2009-04-28  Catherine Moore  <clm@codesourcery.com>
2327
2328         * debug.h (set_name): Add comment.
2329
2330 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
2331
2332         PR target/39929
2333         * config/darwin.c (machopic_gen_offset): Check
2334         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2335         * config/arm/arm.c (require_pic_register): Likewise.
2336
2337 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
2338
2339         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2340         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2341         m32c_promote_prototypes): Delete.
2342
2343 2009-04-28  Michael Matz  <matz@suse.de>
2344
2345         PR middle-end/39922
2346         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2347         constants.
2348
2349 2009-04-28  Richard Guenther  <rguenther@suse.de>
2350
2351         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
2352
2353 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2354
2355         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2356         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2357         * config/arm/arm-tune.md: Regenerate.
2358
2359 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
2360
2361         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2362         block if there are complex incoming edges.
2363         (sel_merge_blocks): Remove useless assert.
2364         (sel_redirect_edge_and_branch): Check that edge was redirected.
2365         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2366         (sel_find_rgns): Delete declaration.
2367         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2368         the region when it is not a preheader.
2369
2370 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2371
2372         PR c/39323
2373         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2374
2375 2009-04-28  Richard Guenther  <rguenther@suse.de>
2376
2377         * tree.h (SSA_NAME_VALUE): Remove.
2378         (struct tree_ssa_name): Remove value_handle member.
2379         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2380         array for jump threading.
2381         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2382         SSA_NAME_VALUEs.
2383         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2384         * tree-flow.h (threadedge_initialize_values): Declare.
2385         (threadedge_finalize_values): Likewise.
2386         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2387         (SSA_NAME_VALUE): Define.
2388         (threadedge_initialize_values): New function.
2389         (threadedge_finalize_values): Likewise.
2390         * tree-ssa-dom.c (ssa_name_values): New global variable.
2391         (SSA_NAME_VALUE): Define.
2392         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
2393
2394 2009-04-28  Ira Rosen  <irar@il.ibm.com>
2395
2396         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2397         Use REPORT_VECTORIZED_LOCATIONS instead 
2398         REPORT_VECTORIZED_LOOPS.
2399         * tree-vectorizer.c (vect_verbosity_level): Make static.
2400         (vect_loop_location): Rename to vect_location.
2401         (vect_set_verbosity_level): Update comment.
2402         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2403         and vect_location.
2404         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2405         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2406         instead REPORT_UNVECTORIZED_LOOPS.
2407         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2408         and vect_loop_def to vect_external_def and vect_internal_def.
2409         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
2410         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
2411         REPORT_UNVECTORIZED_LOCATIONS.
2412         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2413         and vect_used_in_loop and to vect_unused_in_scope and 
2414         vect_used_in_scope.
2415         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2416         (vect_verbosity_level): Remove declaration.
2417         (vect_analyze_operations): Likewise.
2418         (vect_analyze_stmt): Declare.
2419         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2420         REPORT_UNVECTORIZED_LOCATIONS.
2421         (vect_get_loop_niters): Fix indentation.
2422         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2423         (vect_analyze_loop_operations): New function.
2424         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2425         vect_analyze_operations.
2426         (vect_is_simple_reduction): Use new names.
2427         (vectorizable_live_operation, vect_transform_loop): Likewise.
2428         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2429         to specify whether the data references can be a part of interleaving
2430         chain.
2431         (vect_analyze_data_ref_dependence): Use new names.
2432         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2433         (vect_create_addr_base_for_vector_ref): Remove redundant code.
2434         * tree-vect-patterns.c (widened_name_p): Use new names.
2435         (vect_recog_dot_prod_pattern): Likewise.
2436         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2437         (process_use, vect_mark_stmts_to_be_vectorized, 
2438         vect_model_simple_cost, vect_model_store_cost,
2439         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2440         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2441         vectorizable_operation, vectorizable_type_demotion,
2442         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2443         vectorizable_condition): Likewise.
2444         (vect_analyze_operations): Split into vect_analyze_loop_operations
2445         and ...
2446         (vect_analyze_stmt): ... new function.
2447         (new_stmt_vec_info): Use new names.
2448         (vect_is_simple_use): Use new names and fix comment.
2449         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2450         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2451
2452 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2453
2454         PR target/39911
2455         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2456         and integer modes for x87 operands.  Do not ICE for unsupported size,
2457         generate error instead.  Generate error for unsupported operand types.
2458         ['z']: Do not handle HImode memory operands specially.  Warning
2459         for floating-point operands.  Fallthru to 'Z' for unsupported operand
2460         types.  Do not ICE for unsupported size, generate error instead.
2461         (output_387_binary_op): Use %Z to output operands.
2462         (output_fp_compare): Ditto.
2463         (output_387_reg_move): Ditto.
2464
2465 2009-04-28  Ben Elliston  <bje@au.ibm.com>
2466
2467         PR c++/35652
2468         Revert:
2469
2470         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2471
2472         * builtins.c (c_strlen): Do not warn here.
2473         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2474         * c-common.c (pointer_int_sum): Take an explicit location.
2475         Warn about offsets out of bounds.
2476         * c-common.h (pointer_int_sum): Adjust declaration.
2477
2478 2009-04-27  Ian Lance Taylor  <iant@google.com>
2479
2480         * collect2.c (is_ctor_dtor): Change type of ret field in struct
2481         names to symkind.
2482         * dce.c (run_fast_df_dce): Change type of old_flags to int.
2483         * df-core.c (df_set_flags): Change return type to int.  Change
2484         type of old_flags to int.
2485         (df_clear_flags): Likewise.
2486         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2487         (df_get_conditional_uses): Likewise.
2488         * df.h (df_set_flags, df_clear_flags): Update declarations.
2489         * dwarf2out.c (struct indirect_string_node): Change type of form
2490         field to enum dwarf_form.
2491         (AT_string_form): Change return type to enum dwarf_form.
2492         * fixed-value.c (fixed_compare): Add cast to enum type.
2493         * fwprop.c (update_df): Change 0 to VOIDmode.
2494         * gensupport.c: Change 0 to UNKNOWN.
2495         * gimple.h (gimple_cond_code): Add cast to enum type.
2496         * haifa-sched.c (reemit_notes): Add cast to enum type.
2497         * hooks.c (hook_int_void_no_regs): Remove function.
2498         * hooks.h (hook_int_void_no_regs): Remove declaration.
2499         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
2500         * predict.c (combine_predictions_for_insn): Add casts to enum type.
2501         * real.c (real_arithmetic): Add cast to enum type.
2502         (real_compare): Likewise.
2503         * target.h (struct gcc_target): Change return type of
2504         branch_target_register_class to enum reg_class.
2505         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2506         default_branch_target_register_class.
2507         * targhooks.c (default_branch_target_register_class): New function.
2508         * targhooks.h (default_branch_target_register_class): Declare.
2509         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
2510         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2511         cast to int.
2512         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2513         ERROR_MARK.
2514         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2515         vect_uninitialized_def.  Change 0 to ERROR_MARK.
2516         * tree-vect-stmts.c (supportable_widening_operation): Don't
2517         initialize icode1 and icode2.
2518         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
2519         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2520         and to STD_C89.
2521         (cmn_err_flag_specs): Change 0 to STD_C89.
2522         (cmn_err_char_table): Likewise.
2523         * config/arm/arm.c (get_arm_condition_code): Change type of code
2524         to enum arm_cond_code.
2525         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2526         (IWMMXT_BUILTIN2): Likewise.
2527         (neon_builtin_type_bits): Don't define typedef.
2528         (neon_builtin_datum): Change type of bits field to int.
2529         (arm_expand_neon_args): Add cast to enum type.
2530         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2531         TLS_MODEL_NONE.
2532         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
2533         casts to enum type.
2534         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2535         MIPS_FP_COND_f.
2536         * config/mips/mips.md (jal_macro): Return enum constant.
2537         (single_insn): Likewise.
2538         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2539         CODE_FOR_nothing.
2540         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2541         casts to enum type.
2542         * config/s390/s390.c (s390_tune_flags): Change type to int.
2543         (s390_arch_flags): Likewise.
2544         (s390_handle_arch_option): Change flags field of struct pta to int.
2545         * config/s390/s390.h (s390_tune_flags): Update declaration.
2546         (s390_arch_flags): Likewise.
2547         * config/sh/sh.c (prepare_move_operands): Compare
2548         tls_symbolic_operand result with enum constant.
2549         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2550         (sh_expand_prologue): Add cast to enum type.
2551         (sh_expand_epilogue): Likewise.
2552         (tls_symbolic_operand): Change return type to enum tls_model.
2553         (fpscr_set_from_mem): Add cast to enum type.
2554         (legitimize_pic_address): Compare tls_symbolic_operand result with
2555         enum constant.
2556         (sh_target_reg_class): Change return type to enum reg_class.
2557         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2558         PROCESSOR_xxx.
2559         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2560         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
2561         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2562         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2563         (delayed_branch, tls_call_delay): Likewise.
2564         (eligible_for_sibcall_delay): Likewise.
2565         (eligible_for_return_delay): Likewise. 
2566         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2567         (spu_expand_builtin_1): Likewise.
2568
2569         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2570         for all types of conversions.
2571         (output_init_element): Issue -Wc++-compat warning if needed when
2572         initializing a bitfield with enum type.
2573         * c-parser.c (c_parser_expression): Set original_type to
2574         original_type of right hand operand of comman operator.
2575
2576 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2577
2578         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2579         grammar nits.
2580         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
2581         * doc/cpp.texi (Standard Predefined Macros)
2582         (Implementation-defined behavior): Likewise.
2583         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
2584         * doc/gimple.texi (GIMPLE Exception Handling)
2585         (@code{GIMPLE_ASSIGN}): Likewise.
2586         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
2587         * doc/invoke.texi (Warning Options, Optimize Options)
2588         (AVR Options, Darwin Options): Likewise.
2589         (Optimize Options): Reformulate -fwhole-program description.
2590         * doc/loop.texi (Lambda): Likewise.
2591         * doc/md.texi (Output Template, Define Constraints)
2592         (Standard Names, Insn Splitting): Likewise.
2593         * doc/options.texi (Option properties): Likewise.
2594         * doc/passes.texi (Tree-SSA passes): Likewise.
2595         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2596         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2597         (File Names and DBX): Likewise.
2598         * doc/trouble.texi (Incompatibilities): Likewise.
2599
2600 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2601
2602         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2603         instruction is correct.
2604
2605 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2606
2607         Allow non-constant arguments to conversion intrinsics.
2608         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2609         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2610         * spu.c (print_operand): Handle 'v' and 'w'.
2611         (exp2_immediate_p, spu_gen_exp2): Define.
2612         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2613         spu_convtf_1): Update parameter descriptions.
2614         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
2615         * constraints.md ('v', 'w'): New.
2616         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2617         Remove.
2618         (i2f, I2F): New define_mode_attr.
2619         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2620         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2621         fixuns_truncv4sfv4si2):  Update to use mode attribute.
2622         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2623         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2624         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2625         patterns for combine.
2626
2627 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
2628
2629         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2630         (cprop, hoist, pre, store_motion): New debug counters.
2631         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2632         is not an RTL pass anymore.
2633         (pass_profiling): Remove extern decl for pass removed in 2005.
2634         (pass_gcse, pass_jump_bypass): Remove.
2635         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2636         to 0 for clean state.
2637         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2638         * cse.c (gate_handle_cse_after_global_opts,
2639         rest_of_handle_cse_after_global_opts): New functions.
2640         (pass_cse_after_global_opts): New pass, does local CSE.
2641         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2642         (TV_CPROP): New timevar.
2643         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2644         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2645         (gcse_main, recompute_all_luids): Remove.
2646         (compute_hash_table_work): Call max_reg_num instead of reading
2647         max_gcse_regno.
2648         (cprop_jump): Don't set run_jump_opt_after_gcse.
2649         (constprop_register): Always allow to alter jumps.
2650         (cprop_insn): Likewise.
2651         (do_local_cprop): Likewise.
2652         (local_cprop_pass): Likewise.  Return non-zero if something changed.
2653         (cprop): Remove function, fold interesting bits into one_cprop_pass.
2654         (find_implicit_sets): Add note about missed optimization opportunity.
2655         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2656         pass_rtl_cprop execute function.
2657         Don't bother tracking the pass number, each pass gets its own dumpfile
2658         now anyway.
2659         Always allow to alter jumpsand bypass jumps.
2660         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2661         will just find no suitable set.
2662         (pre_edge_insert): Fix dumping, this function is for PRE only.
2663         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2664         pass_rtl_pre execute function.
2665         (hoist_code): Return non-zero if something changed.  Keep track of
2666         substitutions and insertions for statistics gathering similar to PRE.
2667         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2668         called from the pass_rtl_hoist execute function.  Show pass statistics.
2669         (compute_store_table): Use max_reg_num directly instead of using the
2670         formerly global max_gcse_regno.
2671         (build_store_vectors): Likewise.
2672         (replace_store_insn): Fix dumping.
2673         (store_motion): Rename to ...
2674         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
2675         pass, called from the pass_rtl_store_motion execute function.  Keep
2676         track of substitutions and insertions for statistics gathering similar
2677         to PRE.
2678         (bypass_jumps): Remove, fold interesting bits into ...
2679         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
2680         from the pass_rtl_cprop execute function.
2681         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2682         pass_jump_bypass): Remove.
2683         (gate_handle_gcse, rest_of_handle_gcse): Remove.
2684         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2685         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2686         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2687         (gate_rtl_store_motion, execute_rtl_store_motion,
2688         pass_rtl_store_motion): New.
2689         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2690         make it clear that -fcse-skip-blocks is a no-op for backward compat.
2691         * passes.c (init_optimization_passes): Remove pass_gcse and
2692         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
2693         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
2694         instead of pass_jump_bypass.
2695
2696 2009-04-27  Richard Guenther  <rguenther@suse.de>
2697
2698         PR middle-end/39928
2699         * gimplify.c (gimplify_expr): If we are required to create
2700         a temporary make sure it ends up as register.
2701
2702 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
2703
2704         PR target/39903
2705         * config/i386/i386.c (construct_container): Don't call
2706         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2707         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2708
2709 2009-04-27  Michael Matz  <matz@suse.de>
2710
2711         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2712         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2713         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2714         (dump_replaceable_exprs): Take a bitmap.
2715         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2716         array.
2717         (expand_gimple_basic_block): Likewise.
2718         * tree-ssa-ter.c (struct temp_expr_table_d): Make
2719         replaceable_expressions member a bitmap.
2720         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2721         (mark_replaceable): Likewise.
2722         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2723         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2724
2725 2009-04-27  Richard Guenther  <rguenther@suse.de>
2726
2727         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2728         (verify_stmts): Dispatch to gimple/type verification code.
2729         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2730         issue with call argument types.
2731
2732 2009-04-27  Michael Matz  <matz@suse.de>
2733
2734         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2735         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2736         to above.
2737
2738 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
2739             Eric Botcazou  <ebotcazou@adacore.com>
2740
2741         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2742         a label's basic block.
2743         (mark_target_live_regs): Tidy and rework obsolete comments.
2744         Change back DF problem to LIVE.  If a label starts a basic block,
2745         assume that all registers that used to be live then still are.
2746         (init_resource_info): If a label starts a basic block, set its
2747         BLOCK_FOR_INSN accordingly.
2748         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2749
2750 2009-04-27  Richard Guenther  <rguenther@suse.de>
2751
2752         * tree-flow-inline.h (function_ann): Remove.
2753         (get_function_ann): Likewise.
2754         * tree-dfa.c (create_function_ann): Remove.
2755         * tree-flow.h (struct static_var_ann_d): Remove.
2756         (struct function_ann_d): Likewise.
2757         (union tree_ann_d): Remove fdecl member.
2758         (function_ann_t): Remove.
2759         (function_ann, get_function_ann, create_function_ann): Remove
2760         declarations.
2761
2762 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
2763
2764         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2765
2766 2009-04-27  Jan Hubicka  <jh@suse.cz>
2767
2768         * ipa-pure-const.c (struct funct_state_d): New fields
2769         state_previously_known, looping_previously_known; remove
2770         state_set_in_source.
2771         (analyze_function): Use new fields.
2772         (propagate): Avoid assumption that state_set_in_source imply
2773         nonlooping.
2774
2775         * tree-ssa-loop-niter.c (finite_loop_p): New function.
2776         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2777         * cfgloop.h (finite_loop_p): Declare.
2778
2779 2009-04-26  Michael Matz  <matz@suse.de>
2780
2781         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
2782
2783 2009-04-26  Michael Matz  <matz@suse.de>
2784
2785         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2786         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2787         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2788         pass_mark_used_blocks): Remove.
2789         * tree-optimize.c (pass_free_datastructures,
2790         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2791         * passes.c (init_optimization_passes): Don't call
2792         pass_mark_used_blocks, remove dead code.
2793
2794 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
2795
2796         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2797         * tree-ssa-live.h (register_ssa_partition): Likewise.
2798
2799 2009-04-26  Michael Matz  <matz@suse.de>
2800
2801         Expand from SSA.
2802         * builtins.c (fold_builtin_next_arg): Handle SSA names.
2803         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2804         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2805         SSA names. 
2806         (compare_pairs): Swap cost comparison.
2807         (coalesce_ssa_name): Don't use change_partition_var.
2808         * tree-nrv.c (struct nrv_data): Add modified member.
2809         (finalize_nrv_r): Set it.
2810         (tree_nrv): Use it to update statements.
2811         (pass_nrv): Require PROP_ssa.
2812         * tree-mudflap.c (mf_decl_cache_locals,
2813         mf_build_check_statement_for): Use make_rename_temp.
2814         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2815         * alias.c (find_base_decl): Handle SSA names.
2816         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2817         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2818         * rtl.h (set_reg_attrs_for_parm): Declare.
2819         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2820         to "optimized", remove unused locals at finish.
2821         (execute_free_datastructures): Make global, call
2822         delete_tree_cfg_annotations.
2823         (execute_free_cfg_annotations): Don't call
2824         delete_tree_cfg_annotations.
2825
2826         * ssaexpand.h: New file.
2827         * expr.c (toplevel): Include ssaexpand.h.
2828         (expand_assignment): Handle SSA names the same as register variables.
2829         (expand_expr_real_1): Expand SSA names.
2830         * cfgexpand.c (toplevel): Include ssaexpand.h.
2831         (SA): New global variable.
2832         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2833         (SSAVAR): New macro.
2834         (set_rtl): New helper function.
2835         (add_stack_var): Deal with SSA names, use set_rtl.
2836         (expand_one_stack_var_at): Likewise.
2837         (expand_one_stack_var): Deal with SSA names.
2838         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2839         before unique numbers.
2840         (expand_stack_vars): Use set_rtl.
2841         (expand_one_var): Accept SSA names, add asserts for them, feed them
2842         to above subroutines.
2843         (expand_used_vars): Expand all partitions (without default defs),
2844         then only the local decls (ignoring those expanded already).
2845         (expand_gimple_cond): Remove edges when jumpif() expands an
2846         unconditional jump.
2847         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
2848         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
2849         SSA name.
2850         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
2851         members of SA; deal with PARM_DECL partitions here; expand
2852         all PHI nodes, free tree datastructures and SA.  Commit instructions
2853         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
2854         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
2855         info and statements at start, collect garbage at finish.
2856         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
2857         (VAR_ANN_PARTITION) Remove.
2858         (change_partition_var): Don't declare.
2859         (partition_to_var): Always return SSA names.
2860         (var_to_partition): Only accept SSA names.
2861         (register_ssa_partition): Only check argument.
2862         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
2863         member.
2864         (delete_var_map): Don't free it.
2865         (var_union): Only accept SSA names, simplify.
2866         (partition_view_init): Mark only useful SSA names as used.
2867         (partition_view_fini): Only deal with SSA names.
2868         (change_partition_var): Remove.
2869         (dump_var_map): Use ssa_name instead of partition_to_var member.
2870         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
2871         basic blocks.
2872         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
2873         (struct _elim_graph): New member const_dests; nodes member vector of
2874         ints.
2875         (set_location_for_edge): New static helper.
2876         (create_temp): Remove.
2877         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
2878         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
2879         (new_elim_graph): Allocate const_dests member.
2880         (clean_elim_graph): Truncate const_dests member.
2881         (delete_elim_graph): Free const_dests member.
2882         (elim_graph_size): Adapt to new type of nodes member.
2883         (elim_graph_add_node): Likewise.
2884         (eliminate_name): Likewise.
2885         (eliminate_build): Don't take basic block argument, deal only with
2886         partition numbers, not variables.
2887         (get_temp_reg): New static helper.
2888         (elim_create): Use it, deal with RTL temporaries instead of trees.
2889         (eliminate_phi): Adjust all calls to new signature.
2890         (assign_vars, replace_use_variable, replace_def_variable): Remove.
2891         (rewrite_trees): Only do checking.
2892         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
2893         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
2894         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
2895         contains_tree_r, MAX_STMTS_IN_LATCH,
2896         process_single_block_loop_latch, analyze_edges_for_bb,
2897         perform_edge_inserts): Remove.
2898         (expand_phi_nodes): New global function.
2899         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
2900         functions, initialize new parameter, remember partitions having a
2901         default def.
2902         (finish_out_of_ssa): New global function.
2903         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
2904         don't reset in_ssa_p here, don't disable TER when mudflap.
2905         (pass_del_ssa): Remove.
2906         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
2907         partition members.
2908         (execute_free_datastructures): Declare.
2909         * Makefile.in (SSAEXPAND_H): New variable.
2910         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
2911         * basic-block.h (commit_one_edge_insertion): Declare.
2912         * passes.c (init_optimization_passes): Move pass_nrv and
2913         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
2914         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
2915         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
2916         (redirect_branch_edge): Deal with super block when expanding, split
2917         out jump patching itself into ...
2918         (patch_jump_insn): ... here, new static helper.
2919
2920 2009-04-26  Michael Matz  <matz@suse.de>
2921
2922         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
2923         beyond num_ssa_names.
2924         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2925         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2926
2927 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
2928
2929         PR inline-asm/39543
2930         * fwprop.c (forward_propagate_asm): New function.
2931         (forward_propagate_and_simplify): Propagate also into __asm, if it
2932         doesn't increase the number of referenced registers.
2933
2934         PR c/39889
2935         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2936
2937 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
2938
2939         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2940         note_nonlocal_vla_type for nonlocal VLAs.
2941         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2942         contains_remapped_vars, remap_vla_decls): New functions.
2943         (convert_nonlocal_reference_stmt): If not optimizing, call
2944         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2945         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2946         if it wasn't found in var_map.
2947         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
2948         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2949         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2950         declare_vars.
2951         * gimplify.c (nonlocal_vlas): New variable.
2952         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2953         referenced VLAs.
2954         (gimplify_body): Create and destroy nonlocal_vlas.
2955
2956         * dwarf2out.c (loc_descr_plus_const): New function.
2957         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2958         mem_loc_descriptor, loc_descriptor_from_tree_1,
2959         descr_info_loc, gen_variable_die): Use it.
2960
2961         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2962         !TREE_STATIC VAR_DECLs.
2963         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
2964         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
2965         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
2966         DECL_BY_REFERENCE is valid.
2967         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2968         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2969         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2970         Copy DECL_BY_REFERENCE.
2971         (struct nesting_copy_body_data): New type.
2972         (nesting_copy_decl): New function.
2973         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2974         if they have variable length.
2975
2976 2009-04-26  Michael Matz  <matz@suse.de>
2977
2978         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
2979         mark new temporaries for renaming.
2980
2981 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
2982
2983         PR c/39581
2984         * c-decl.c (global_bindings_p): Return negative value.
2985         (c_variable_size): New.  Based on variable_size from
2986         stor-layout.c.
2987         (grokdeclarator): Call c_variable_size not variable_size.
2988
2989 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
2990
2991         * config/i386/i386.c (print_operand) ['z']: Fix typo.
2992
2993 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
2994
2995         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
2996         Redefine it to just use mingw/include.
2997         (ASM_SPEC): Rules for -m32 and -m64.
2998         (LINK_SPEC): Use Likewise.
2999         (SPEC_32): New define.
3000         (SPEC_64): Likewise.
3001         (SUB_LINK_SPEC): Likewise.
3002         (MULTILIB_DEFAULTS): New define.
3003         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3004         Add multilib options.
3005         (MULTILIB_DIRNAMES): Likewise.
3006         (MULTILIB_OSDIRNAMES): Likewise.
3007         (LIBGCC): Likewise.
3008         (INSTALL_LIBGCC): Likewise.
3009
3010 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3011
3012         PR c/39556
3013         * c-tree.h (enum c_inline_static_type): New.
3014         (record_inline_static): Declare.
3015         * c-decl.c (struct c_inline_static, c_inline_statics,
3016         record_inline_static, check_inline_statics): New.
3017         (pop_file_scope): Call check_inline_statics.
3018         (start_decl): Call record_inline_static instead of pedwarning
3019         directly for static in inline function.
3020         * c-typeck.c (build_external_ref): Call record_inline_static
3021         instead of pedwarning directly for static referenced in inline
3022         function.
3023
3024 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
3025
3026         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3027         not new but only being rescanned.
3028         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3029         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3030         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3031         record_set_info, compute_set, grealloc): Remove.
3032         (recompute_all_luids): New function.
3033         (gcse_main): Don't compute sets, and don't do related memory
3034         allocations/free-ing.  If something changed before the end of the
3035         pass, update LUIDs using recompute_all_luids.
3036         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
3037         (free_gcse_mem): Don't free it either.
3038         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3039         Use the df insn LUIDs.
3040         (load_killed_in_block): Likewise.
3041         (compute_hash_table_work): Don't compute reg_set_in_block.
3042         (compute_transp): Use DF_REG_DEF_CHAINs.
3043         (local_cprop_pass): Don't use compute_sets and related functions.
3044         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3045         Use get_max_uid() instead of max_cuid.
3046         (insert_insn_end_basic_block, pre_insert_copy_insn,
3047         update_ld_motion_stores): Don't try to
3048         keep reg_set tables up to date.
3049         (pre_insert_copies): Use df insn LUIDs.
3050         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3051         (reg_set_info): Don't use extra bitmap argument.
3052         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
3053         information to compute regs_set_in_block.
3054         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3055         (bypass_jumps): Don't use compute_sets and friends.
3056
3057 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3058
3059         PR testsuite/39710
3060         * opts.c (undocumented_msg): Do not leave blank even with
3061         ENABLE_CHECKING.
3062
3063 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3064
3065         * c-decl.c (build_enumerator): Allow values folding to integer
3066         constants but not integer constant expressions with a pedwarn if
3067         pedantic.
3068
3069 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3070
3071         PR c/39582
3072         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3073         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3074         type is an integer constant.
3075
3076 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3077
3078         PR target/39897
3079         * config/i386/i386.c (print_operand) ['z']: Revert handling of
3080         HImode operands.
3081
3082 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3083
3084         PR c/39564
3085         * c-decl.c (grokdeclarator): Diagnose declarations of functions
3086         with variably modified return type and no storage class
3087         specifiers, except for the case of nested functions.  Distinguish
3088         extern declarations of functions with variably modified return
3089         types from those of objects with variably modified types.
3090
3091 2009-04-25  Jan Hubicka  <jh@suse.cz>
3092
3093         * tree.c (list_equal_p): New function.
3094         * tree.h (list_equal_p): Declare.
3095         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3096         basic_block_def, basic_block, const_basic_block): New.
3097         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3098         (redirect_eh_edge): New function.
3099         (make_eh_edge_update_phi): EH edges are not abnormal.
3100         * except.c: Include tree-flow.h.
3101         (list_match): New function.
3102         (eh_region_replaceable_by_p): New function.
3103         (replace_region): New function.
3104         (hash_type_list): New function.
3105         (hash_eh_region): New function.
3106         (eh_regions_equal_p): New function.
3107         (merge_peers): New function.
3108         (remove_unreachable_regions): Verify EH tree when checking;
3109         merge peers.
3110         (copy_eh_region_1): New function.
3111         (copy_eh_region): New function.
3112         (push_reachable_handler): New function.
3113         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3114         regions without label but with live RESX.
3115         * except.h (redirect_eh_edge_to_label): New.
3116         * tree-flow.h (redirect_eh_edge): New.
3117         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3118         basic_block_def, basic_block, const_basic_block): Remove.
3119         * Makefile.in (except.o): Add dependency on tree-flow.h
3120         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3121         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3122         Remove.
3123
3124 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
3125
3126         PR bootstrap/39645
3127         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3128         on the destination of memcpy.
3129
3130 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
3131
3132         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3133         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3134         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3135
3136 2009-04-25  Jan Hubicka  <jh@suse.cz>
3137
3138         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3139         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3140         to be reached by different label than left.
3141         (update_eh_edges): Update comment; remove edge_to_remove if possible
3142         and return true if suceeded.
3143         (cleanup_empty_eh): Accept sharing map; handle shared regions.
3144         (cleanup_eh): Compute sharing map.
3145         * except.c (remove_eh_handler_and_replace): Add argument if we should
3146         update regions.
3147         (remove_unreachable_regions): Update for label sharing.
3148         (label_to_region_map): Likewise.
3149         (get_next_region_sharing_label): New function.
3150         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3151         prev_try pointers.
3152         (remove_eh_handler): Update.
3153         (remove_eh_region_and_replace_by_outer_of): New function.
3154         * except.h (struct eh_region): Add next_region_sharing_label.
3155         (remove_eh_region_and_replace_by_outer_of,
3156         get_next_region_sharing_label): Declare.
3157         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3158
3159 2009-04-25  Jan Hubicka  <jh@suse.cz>
3160
3161         * tree-cfg.c (split_critical_edges): Split also edges where we can't
3162         insert code even if they are not critical.
3163
3164 2009-04-25  Jan Hubicka  <jh@suse.cz>
3165
3166         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3167         (gimple_can_remove_branch_p): EH edges won't remove branch by
3168         redirection.
3169         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3170         updating of non-abnormal EH edges.
3171         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3172         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3173         (split_critical_edges): Split also edges where emitting code on them
3174         will lead to splitting later.
3175
3176 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3177             H.J. Lu  <hongjiu.lu@intel.com>
3178
3179         PR target/39590
3180         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3181         the configured assembler supports fildq and fistpq mnemonics.
3182         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3183         * configure: Regenerated.
3184         * config.in: Ditto.
3185
3186         * config/i386/i386.c (print_operand): Handle 'Z'.
3187         ['z']: Remove handling of special fild/fist suffixes.
3188         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3189         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3190         suffix of fild insn.
3191         (*floatsi<mode>2_vector_mixed): Ditto.
3192         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3193         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3194         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3195         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3196         * config/i386/gas.h (GAS_MNEMONICS): Remove.
3197
3198 2009-04-25  Ben Elliston  <bje@au.ibm.com>
3199  
3200         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3201         the source of a set operation.
3202
3203 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
3204
3205         * target.h (struct gcc_target): Add case_values_threshold field.
3206         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3207         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3208         * targhooks.c (default_case_values_threshold): New function.
3209         * targhooks.h (default_case_values_threshold): Declare function.
3210         * stmt.c (expand_case): Use case_values_threshold target hook.
3211         * expr.h (case_values_threshold): Remove declartation.
3212         * expr.c (case_values_threshold): Remove function.
3213         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3214
3215         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3216         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3217         (avr_case_values_threshold): Declare as static.
3218         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3219
3220         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3221         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3222         (mn10300_case_values_threshold): New function.
3223
3224 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3225
3226         * ira.c (setup_cover_and_important_classes): Add enum cast.
3227
3228 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3229
3230         * genpreds.c (write_enum_constraint_num): Output definition of
3231         CONSTRAINT_NUM_DEFINED_P macro.
3232         * ira.c (setup_cover_and_important_classes): Use
3233         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3234         
3235 2009-04-24  DJ Delorie  <dj@redhat.com>
3236
3237         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3238         __SH2A_SINGLE_ONLY__ also.
3239
3240 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
3241
3242         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3243         (movdf_internal): Ditto.
3244         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3245         SFmode and DFmode constants.
3246         (ia64_print_operand): Add 'G' format for printing
3247         floating point constants.
3248
3249 2009-04-24  Richard Guenther  <rguenther@suse.de>
3250
3251         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3252         from unsigned additions.
3253
3254 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
3255
3256         * c-typeck.c (set_init_index): Allow array designators that are
3257         not integer constant expressions with a pedwarn if pedantic.
3258
3259 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3260
3261         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3262         zero if no overlap in nonzero bits between the operands.
3263
3264 2009-04-24  Ian Lance Taylor  <iant@google.com>
3265
3266         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3267         (record_dead_and_set_regs): Likewise.
3268         * df.h (struct df_mw_hardreg): Change flags field to int.
3269         (struct df_base_ref): Likewise.
3270         (struct df): Change changeable_flags field to int.
3271         * df-scan.c (df_defs_record): Change clobber_flags to int.
3272         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3273         constants rather than #define macros.
3274         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3275         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3276         (enum dwarf_calling_convention): Likewise.
3277         (enum dwarf_line_number_x_ops): Likewise.
3278         (enum dwarf_call_frame_info): Likewise.
3279         (enum dwarf_source_language): Likewise.
3280         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3281         (add_calling_convention_attribute): Likewise.
3282         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3283         (combine_comparisons): Change compcode to int.  Add cast to enum type.
3284         * genrecog.c (maybe_both_true_2): Change c to int.
3285         (write_switch): Likewise.  Add cast to enum type.
3286         * gimplify.c (gimplify_omp_for): Handle return values from
3287         gimplify_expr using MIN rather than bitwise or.
3288         (gimplify_expr): Add cast to enum type.
3289         * ipa-prop.c (update_jump_functions_after_inlining): Change
3290         IPA_BOTTOM to IPA_JF_UNKNOWN.
3291         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3292         Add casts to enum type.
3293         (setup_cover_and_important_classes): Change cl to int.  Add casts
3294         to enum type.
3295         (setup_class_translate): Change cl and mode to int.
3296         (ira_init_once): Change mode to int.
3297         (free_register_move_costs): Likewise.
3298         (setup_prohibited_mode_move_regs): Add casts to enum type.
3299         * langhooks.c (add_builtin_function_common): Rework assertion that
3300         value fits bitfield.
3301         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3302         * omega.c (omega_do_elimination): Avoid math on enum types.
3303         * optabs.c (expand_vec_shift_expr): Remove casts to int.
3304         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
3305         int local to handle integral_argment value.
3306         * regmove.c (try_auto_increment): Change PUT_MODE to
3307         PUT_REG_NOTE_KIND.
3308         * reload.c (push_secondary_reload): Add casts to enum type.
3309         (secondary_reload_class, find_valid_class): Likewise.
3310         * reload1.c (emit_input_reload_insns): Likewise.
3311         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3312         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3313         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3314         constant.
3315         * tree.c (build_common_builtin_nodes): Add casts to enum type.
3316         * tree-complex.c (complex_lattice_t): Typedef to int rather than
3317         enum type.
3318         (expand_complex_libcall): Add casts to enum type.
3319         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3320         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3321         with ERROR_MARK, not NUM_TREE_CODES.
3322         (vect_create_epilog_for_reduction): Likewise.
3323         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
3324         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
3325         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3326         enum machine_mode.
3327         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3328         vect_unused_in_loop.  Change 0 to loop_vect.
3329         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
3330         * var-tracking.c (get_init_value): Change return type to enum
3331         var_init_status.
3332         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3333         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3334         arm_fp_model.
3335         (arm_override_options): Add casts to enum type.
3336         (arm_emit_tls_decoration): Likewise.
3337         * config/i386/i386.c (ix86_function_specific_restore): Add casts
3338         to enum type.
3339         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3340         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3341         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3342         enum type.
3343         * config/s390/s390.c (code_for_builtin_64): Change to array of
3344         enum insn_code.
3345         (code_for_builtin_31): Likewise.
3346         (s390_expand_builtin): Change code_for_builtin to enum insn_code
3347         const *.
3348         * config/sparc/sparc.c (sparc_override_options): Change value
3349         field in struct code_model to enum cmodel.  In initializer change
3350         0 to NULL and add cast to enum type.
3351
3352         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3353         Change all callers.  Issue a -Wc++-compat warning using
3354         lhs_origtype if necessary.
3355         (convert_for_assignment): Issue -Wc++-compat warnings about
3356         invalid conversions to enum type on assignment.
3357         * c-common.h (build_modify_expr): Update declaration.
3358
3359 2009-04-24  Nick Clifton  <nickc@redhat.com>
3360
3361         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3362         (function_arg_advance): Likewise.
3363         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3364         5th alternative.
3365
3366 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3367
3368         * config/s390/constraints.md ('I', 'J'): Fix condition.
3369
3370 2009-04-24  Diego Novillo  <dnovillo@google.com>
3371
3372         * gengtype-parse.c (parse_error): Add newline after message.
3373
3374 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3375
3376         * config/i386/sse.md (avxmodesuffixs): Removed.
3377         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3378         (*avx_pinsr<ssevecsize>): This.
3379
3380 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3381
3382         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3383         follow chains of regs with a single definition, and allow expressions
3384         that are function_invariant_p.
3385         (simple_rhs_p): Allow expressions that are function_invariant_p.
3386
3387 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
3388
3389         PR middle-end/39867
3390         * fold-const.c (fold_cond_expr_with_comparison): When folding
3391         > and >= to MAX, make sure the MAX uses the same type as the
3392         comparison's operands.
3393
3394 2009-04-24  Nick Clifton  <nickc@redhat.com>
3395
3396         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3397         addressing for DImode accesses.
3398         (frv_print_operand_address): Handle PLUS case.
3399         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
3400
3401 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
3402
3403         PR rtl-optimization/39794
3404         * alias.c (canon_true_dependence): Add x_addr argument.
3405         * rtl.h (canon_true_dependence): Adjust prototype.
3406         * cse.c (check_dependence): Adjust canon_true_dependence callers.
3407         * cselib.c (cselib_invalidate_mem): Likewise.
3408         * gcse.c (compute_transp): Likewise.
3409         * dse.c (scan_reads_nospill): Likewise.
3410         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
3411         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3412         canon_base_addr of the group, plus optional offset.
3413         (struct group_info): Rename canon_base_mem to
3414         canon_base_addr.
3415         (get_group_info): Set canon_base_addr to canon_rtx of base, not
3416         canon_rtx of base_mem.
3417
3418 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
3419
3420         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3421         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3422
3423 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3424
3425         * config/spu/spu-builtins.h: Delete file.
3426
3427         * config/spu/spu.h (enum spu_builtin_type): Move here from
3428         spu-builtins.h.
3429         (struct spu_builtin_description): Likewise.  Add GTY marker.
3430         Do not use enum spu_function_code or enum insn_code.
3431         (spu_builtins): Add extern declaration.
3432
3433         * config/spu/spu.c: Do not include "spu-builtins.h".
3434         (enum spu_function_code, enum spu_builtin_type_index,
3435         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3436         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3437         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3438         unsigned_V2DI_type_node): Move here from spu-builtins.h.
3439         (spu_builtin_types): Make static.  Add GTY marker.
3440         (spu_builtins): Add extern declaration with GTY marker.
3441         Include "gt-spu.h".
3442
3443         * config/spu/spu-c.c: Do not include "spu-builtins.h".
3444         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3445         Check programmatically whether all parameters are scalar.
3446
3447         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3448
3449 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3450
3451         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3452         assignment from the constructor either if the target is volatile.
3453
3454 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
3455
3456         * config/arm/arm.md (insv): Do not share operands[0].
3457
3458 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
3459
3460         * config/vxlib-tls.c (active_tls_threads): Delete.
3461         (delete_hook_installed): New.
3462         (tls_delete_hook): Don't delete the delete hook.
3463         (tls_destructor): Delete it here.
3464         (__gthread_set_specific): Adjust installing the delete hook.
3465         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3466         __gthread_leave_tsd_dtor_context.
3467
3468 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
3469
3470         * c-format.c (gcc_tdiag_char_table): Add support for %E.
3471
3472 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
3473
3474         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3475         enum type.
3476         (alpha_rtx_costs): Ditto.
3477         (emit_unlikely_jump): Use add_reg_note.
3478         (emit_frame_store_1): Ditto.
3479         (alpha_expand_prologue): Ditto.
3480         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3481         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3482
3483 2009-04-23  Nick Clifton  <nickc@redhat.com>
3484
3485         * config/v850/v850.md (epilogue): Remove suppressed code.
3486         (return): Rename to return_simple and remove test of frame size.
3487         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3488         to gen_return_simple.
3489
3490 2009-04-22  Jing Yu  <jingyu@google.com>
3491
3492         PR testsuite/39781
3493         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3494
3495 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3496
3497         PR C/31499
3498         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3499         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
3500         value is a VECTOR_CST, the element type is the element type of the
3501         vector.
3502
3503 2009-04-22  DJ Delorie  <dj@redhat.com>
3504
3505         * config/m32c/m32c.h: Update GTY annotations to new syntax.
3506
3507 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
3508
3509         * alias.c (find_base_term): Move around LO_SUM case, so that
3510         CONST falls through into PLUS/MINUS handling.
3511
3512         PR c/39855
3513         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3514         into 0, use omit_one_operand.
3515
3516 2009-04-23  Ben Elliston  <bje@au.ibm.com>
3517
3518         * config/rs6000/linux-unwind.h (get_regs): Remove type
3519         puns. Change the type of `pc' to an array of unsigned ints and
3520         update all users.  Constify frame24.
3521
3522 2009-04-22  DJ Delorie  <dj@redhat.com>
3523
3524         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3525         declarations before code.
3526         (current_function_special_page_vector): Likewise.
3527         (m32c_expand_insv): Silence a warning.
3528
3529 2009-04-21  Taras Glek  <tglek@mozilla.com>
3530
3531         * alias.c: Update GTY annotations to new syntax.
3532         * basic-block.h: Likewise.
3533         * bitmap.h: Likewise.
3534         * c-common.h: Likewise.
3535         * c-decl.c: Likewise.
3536         * c-parser.c: Likewise.
3537         * c-pragma.c: Likewise.
3538         * c-tree.h: Likewise.
3539         * cfgloop.h: Likewise.
3540         * cgraph.h: Likewise.
3541         * config/alpha/alpha.c: Likewise.
3542         * config/arm/arm.h: Likewise.
3543         * config/avr/avr.h: Likewise.
3544         * config/bfin/bfin.c: Likewise.
3545         * config/cris/cris.c: Likewise.
3546         * config/darwin.c: Likewise.
3547         * config/frv/frv.c: Likewise.
3548         * config/i386/i386.c: Likewise.
3549         * config/i386/i386.h: Likewise.
3550         * config/i386/winnt.c: Likewise.
3551         * config/ia64/ia64.h: Likewise.
3552         * config/iq2000/iq2000.c: Likewise.
3553         * config/mips/mips.c: Likewise.
3554         * config/mmix/mmix.h: Likewise.
3555         * config/pa/pa.c: Likewise.
3556         * config/pa/pa.h: Likewise.
3557         * config/rs6000/rs6000.c: Likewise.
3558         * config/s390/s390.c: Likewise.
3559         * config/sparc/sparc.c: Likewise.
3560         * config/xtensa/xtensa.c: Likewise.
3561         * cselib.h: Likewise.
3562         * dbxout.c: Likewise.
3563         * dwarf2out.c: Likewise.
3564         * except.c: Likewise.
3565         * except.h: Likewise.
3566         * fixed-value.h: Likewise.
3567         * function.c: Likewise.
3568         * function.h: Likewise.
3569         * gimple.h: Likewise.
3570         * integrate.c: Likewise.
3571         * optabs.c: Likewise.
3572         * output.h: Likewise.
3573         * real.h: Likewise.
3574         * rtl.h: Likewise.
3575         * stringpool.c: Likewise.
3576         * tree-data-ref.c: Likewise.
3577         * tree-flow.h: Likewise.
3578         * tree-scalar-evolution.c: Likewise.
3579         * tree-ssa-address.c: Likewise.
3580         * tree-ssa-alias.h: Likewise.
3581         * tree-ssa-operands.h: Likewise.
3582         * tree.c: Likewise.
3583         * tree.h: Likewise.
3584         * varasm.c: Likewise.
3585         * varray.h: Likewise.
3586         * vec.h: Likewise.
3587         * coretypes.h: Do not define GTY macro if it is already defined.
3588         * doc/gty.texi: Update GTY documentation to new syntax.
3589         * gengtype-lex.l: Enforce attribute-like syntax for GTY
3590         annotations on structs.
3591         * gengtype-parse.c: Likewise.
3592
3593 2009-04-22  Mark Heffernan  <meheff@google.com>
3594
3595         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
3596
3597 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3598
3599         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3600         where appropriate.
3601
3602 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3603
3604         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3605         the same as a PLUS without a shift.  Increase the cost of a
3606         CONST_INT in MULT.
3607
3608 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3609
3610         * Makefile.in: Update dependencies.
3611         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
3612         * errors.h: Remove bogus comment about compatibility.
3613         (warning): Update declaration.
3614         * genautomata.c: Update all calls to warning.
3615         * gimple.c: Do not include errors.h. Include toplev.h.
3616         * tree-ssa-structalias.c: Do not include errors.h.
3617         * omega.c: Likewise.
3618         * tree-ssa-reassoc.c: Likewise.
3619         * config/spu/spu-c.c: Likewise.
3620         * config/spu/t-spu-elf: Update dependencies.
3621
3622 2009-04-22  Richard Guenther  <rguenther@suse.de>
3623
3624         PR tree-optimization/39824
3625         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3626         make sure the types are compatible.
3627
3628 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3629
3630         PR c++/14875
3631         * c-common.c (c_parse_error): Take a token_flags parameter.
3632         Use token_type for the token type instead.
3633         Pass token_flags to cpp_type2name.
3634         * c-common.h (c_parse_error): Update declaration.
3635         * c-parser.c (c_parser_error): Pass 0 as token flags.
3636
3637 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
3638
3639         PR rtl-optimization/39580
3640         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
3641         
3642 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3643
3644         * function.c (expand_function_end): Do not emit a jump to the "naked"
3645         return label for fall-through returns.
3646         * except.c (sjlj_emit_function_exit): Always place the call to the
3647         unregister function at the location installed by expand_function_end.
3648
3649 2009-04-22  Richard Guenther  <rguenther@suse.de>
3650
3651         PR tree-optimization/39845
3652         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3653         (gen_inbound_check): Likewise.
3654
3655 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3656
3657         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3658         padding for PPC.
3659         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3660         * config/vxlib.c (__gthread_once): Add race guard for PPC.
3661
3662 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3663
3664         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3665         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3666         shift counts to avoid out-of-bounds array accesses.
3667
3668 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3669
3670         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3671         (Pmode): Move above.
3672
3673 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
3674
3675         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3676         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3677         GET_CODE macro.  Use IN_RANGE macro where appropriate.
3678         * config/alpha/alpha.h: Ditto.
3679         * config/alpha/alpha.md: Ditto.
3680         * config/alpha/constraints.md: Ditto.
3681         * config/alpha/predicates.md: Ditto.
3682         
3683 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3684
3685         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3686         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3687         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3688         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3689         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3690         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3691         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3692         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3693         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3694         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3695         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3696         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3697         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3698         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3699         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3700         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3701         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3702         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3703         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3704         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3705         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3706         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3707         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3708         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3709         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3710         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3711         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3712
3713 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3714
3715         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3716         references from comments.
3717         * cfgbuild.c: (count_basic_blocks): Delete.
3718         (find_basic_blocks_1): Delete.
3719         (find_basic_blocks): Delete.
3720         * except.c (finish_eh_generation): Make static.  Move comment from
3721         except.h here.  Remove find_basic_blocks references from comments.
3722         * except.h (finish_eh_generation): Delete.
3723         * basic-block.h (find_basic_blocks): Delete.
3724         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3725
3726 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3727
3728         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
3729         (sdbout_parms):  Likewise.
3730
3731 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
3732
3733         * config/sh/sh.c (prepare_cbranch_operands): Use
3734         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3735         (expand_cbranchdi4): Likewise.
3736         (from_compare): Add cast to enum type.
3737         (expand_cbranchsi4): Use add_reg_note.
3738         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3739         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3740         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3741         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3742         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3743         instead of CODE_FOR_nothing.
3744         (cbranchdi4): Likewise.  Fix the order of arguments for
3745         gen_rtx_fmt_ee.
3746         (push_fpscr): Use add_reg_note.
3747         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3748         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3749         
3750 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
3751
3752         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3753         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3754         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3755         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3756         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3757         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3758         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3759         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3760         config/alpha/x-vms, config/arc/t-arc,
3761         config/arm/README-interworking, config/arm/arm-c.c,
3762         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3763         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3764         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3765         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3766         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3767         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3768         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3769         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3770         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3771         config/cris/t-elfmulti, config/crx/t-crx,
3772         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3773         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3774         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3775         config/h8300/t-h8300, config/i386/athlon.md,
3776         config/i386/darwin-libgcc.10.4.ver,
3777         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3778         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3779         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3780         config/i386/t-linux64, config/i386/t-nwld,
3781         config/i386/t-rtems-i386, config/i386/t-sol2-10,
3782         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3783         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3784         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3785         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3786         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3787         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3788         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3789         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3790         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3791         config/m68k/t-uclinux, config/mcore/t-mcore,
3792         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3793         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3794         config/mips/crtn.asm, config/mips/irix-crti.asm,
3795         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3796         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3797         config/mips/mips-fixed.md, config/mips/sb1.md,
3798         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3799         config/mips/t-iris6, config/mips/t-isa3264,
3800         config/mips/t-libgcc-mips16, config/mips/t-linux64,
3801         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3802         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3803         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3804         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3805         config/mn10300/t-linux, config/mn10300/t-mn10300,
3806         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3807         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3808         config/picochip/libgccExtras/clzsi2.asm,
3809         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3810         config/rs6000/darwin-libgcc.10.4.ver,
3811         config/rs6000/darwin-libgcc.10.5.ver,
3812         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3813         config/rs6000/t-aix43, config/rs6000/t-aix52,
3814         config/rs6000/t-darwin, config/rs6000/t-fprules,
3815         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3816         config/rs6000/t-lynx, config/rs6000/t-netbsd,
3817         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3818         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3819         config/rs6000/t-rtems, config/rs6000/t-spe,
3820         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3821         config/score/t-score-elf, config/sh/divcost-analysis,
3822         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3823         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3824         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3825         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3826         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3827         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3828         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3829         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3830         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3831         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3832         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3833         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3834         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3835         limitx.h, version.c, xcoff.h: Add copyright and license notices.
3836         * config/h8300/genmova.sh: Include copyright and license notices
3837         in generated output.
3838         * config/h8300/mova.md: Regenerate.
3839         * doc/install.texi2html: Include word "Copyright" in copyright
3840         notice and use name "Free Software Foundation, Inc.".
3841         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3842         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3843         ChangeLog-2007, ChangeLog-2008: Correct dates.
3844
3845 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3846
3847         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
3848         NE_EXPR operations as well.
3849         * c-parser.c (c_parser_condition): Do not set location information on
3850         the condition.
3851         (c_parser_conditional_expression): Likewise.
3852         (c_parser_binary_expression): Set location information on operators.
3853         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
3854         TRUTH_NOT_EXPR has been folded.
3855         * fold-const.c (fold_truth_not_expr): Copy location information from
3856         the incoming expression to the outgoing one.
3857         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
3858         recursive calls on the LHS of the operator but pass that of the
3859         operator to recursive calls on the RHS of the operator.  Set it
3860         on the COND_EXPR.
3861         (shortcut_cond_expr): Set the locus of the operator on the second
3862         COND_EXPR and that of the expression on the first in degenerate cases.
3863         Pass the locus of the expression to calls to shortcut_cond_r.
3864         Set the locus of the 'then' block on the associated jump, if any.
3865         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
3866         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
3867         expression to call to gimplify_boolean_expr.
3868
3869 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
3870
3871         * config.gcc: Add additional configuration for
3872         i686-w64-mingw* and x86_64-w64-mingw* triplet.
3873         * config/i386/mingw-w64.h: New mingw-w64 specific header.
3874         (CPP_SPEC): Redefine for allowing -municode option.
3875         (STARTFILE_SPEC): Likewise.
3876         * config/i386/t-mingw-w64: New.
3877         * config/i386/mingw-w64.opt: New.
3878         (municode): Add new target option.
3879         * doc/invoke.texi (municode): Add documentation for new option.
3880
3881 2009-04-21  Ian Lance Taylor  <iant@google.com>
3882
3883         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3884         Correct test for number of arguments.
3885         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3886
3887 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
3888
3889         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
3890         argument of emit_library_call.
3891
3892 2009-04-21  Richard Guenther  <rguenther@suse.de>
3893
3894         PR middle-end/39829
3895         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
3896         inside VIEW_CONVERT_EXPRs.
3897
3898 2009-04-21  Martin Jambor  <mjambor@suse.cz>
3899
3900         * tree-switch-conversion.c (build_constructors): Split a long line.
3901         (constructor_contains_same_values_p): New function.
3902         (build_one_array): Create assigns of constants if possible, do not
3903         call mark_sym_for_renaming, call update_stmt.
3904         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
3905         make_rename_temp.  Do not call mark_symbols_for_renaming, call
3906         update_stmt.
3907         (gen_def_assigns): Do not call mark_symbols_for_renaming or
3908         find_new_referenced_vars, call update_stmt.
3909         (gen_inbound_check): Use create_tmp_var and create ssa names manually
3910         instead of calling make_rename_temp.  Do not call
3911         find_new_referenced_vars or mark_symbols_for_renaming, call
3912         update_stmt.
3913
3914 2009-04-21  Richard Guenther  <rguenther@suse.de>
3915
3916         PR tree-optimization/39827
3917         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
3918         (tree_ssa_phiprop): Pass the correct array size.
3919
3920 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
3921
3922         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
3923
3924 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3925
3926         PR 16202
3927         * c-typeck.c (lvalue_p): Move declaration ...
3928         * c-common.h (lvalue_p): ... to here.
3929         * c-common.c (candidate_equal_p): New.
3930         (add_tlist): Use it.
3931         (merge_tlist): Use it.
3932         (warn_for_collisions_1): Likewise.
3933         (warning_candidate_p): Accept more candidates.
3934         (verify_tree): A warning candidate can be an expression. Use
3935         candidate_equal_p.
3936
3937 2009-04-21  Ben Elliston  <bje@au.ibm.com>
3938
3939         PR target/5267
3940         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3941         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3942         options.  Remove -mcall-solaris documentation.
3943
3944 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3945
3946         PR c++/13358
3947         * doc/invoke.texi (-Wlong-long): Update description.
3948         * c-lex (interpret_integer): Only warn if there was no previous
3949         overflow and -Wlong-long is enabled.
3950         * c-decl.c (declspecs_add_type): Drop redundant flags.
3951         * c.opt (Wlong-long): Init to -1.
3952         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3953         and front-end warn_long_long. Wlong-long only depends on other
3954         flags if it is uninitialized.
3955         * c-parser.c (disable_extension_diagnostics): warn_long_long is
3956         the same for CPP and FE.
3957         (restore_extension_diagnostics): Likewise.
3958
3959 2009-04-20  Ian Lance Taylor  <iant@google.com>
3960
3961         Fix enum conversions which are invalid in C++:
3962         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
3963         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
3964         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
3965         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
3966         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
3967         (dbxout_parms): Likewise.
3968         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
3969         (df_clear_flags): Likewise.
3970         * df-problems.c (df_rd_bb_local_compute_process_def): Change
3971         top_flag parameter to int.
3972         (df_chain_create_bb_process_use): Likewise.
3973         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3974         Remove cast.
3975         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3976         (df_ref_create_structure, df_def_record_1): Likewise.
3977         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3978         (df_notes_rescan): Change 0 to VOIDmode in function call.
3979         (df_get_call_refs, df_insn_refs_collect): Likewise.
3980         (df_bb_regs_collect): Likewise.
3981         (df_entry_block_defs_collect): Likewise.
3982         (df_exit_block_uses_collect): Likewise.
3983         * df.h: Update declarations.
3984         * double-int.c (double_int_divmod): Add cast to enum type.
3985         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
3986         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
3987         (based_loc_descr): Likewise.
3988         (loc_descriptor_from_tree_1): Change first_op and second_op to
3989         enum dwarf_location_atom.  Add cast to enum type.
3990         * expmed.c (init_expmed): Change 0 to SET in function call.
3991         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
3992         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
3993         (do_store_flag): Likewise.
3994         * fixed-value.h (struct fixed_value): Change mode to enum
3995         machine_mode.
3996         * function.c (assign_parms): Change 0 to VOIDmode in function call.
3997         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
3998         function call.
3999         (insert_insn_decl, insert_decl, insert_state): Likewise.
4000         (automata_list_finish): Likewise.
4001         * genrecog.c (process_define_predicate): Add cast to enum type.
4002         * gensupport.c (init_predicate_table): Add cast to enum type.
4003         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4004         function call.
4005         (gimple_build_call_1, gimple_build_label): Likewise.
4006         (gimple_build_goto, gimple_build_asm_1): Likewise.
4007         (gimple_build_switch_1, gimple_build_cdt): Likewise.
4008         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
4009         (enum fallback): Rename from enum fallback_t.
4010         (fallback_t): Typedef as int.
4011         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4012         GSI_SAME_STMT in function call.
4013         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4014         enum type.
4015         (setup_reg_class_relations): Likewise.
4016         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
4017         (setup_prohibited_class_mode_regs): Add cast to enum type.
4018         (setup_prohibited_mode_move_regs): Likewise.
4019         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
4020         (record_address_regs): Change i to enum reg_class.
4021         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4022         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4023         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4024         (GET_MODE_2XWIDER_MODE): Likewise.
4025         (GET_CLASS_NARROWEST_MODE): Likewise.
4026         * omp-low.c (expand_omp_for): Add cast to enum type.
4027         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4028         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4029         * postreload.c (reload_cse_simplify_operands): Change rclass local
4030         to enum reg_class.
4031         * predict.c (combine_predictions_for_insn): Change best_predictor
4032         and predictor to enum br_predictor.
4033         (combine_predictions_for_bb): Likewise.
4034         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4035         use SET_PREDICT_EXPR_OUTCOME.
4036         * real.c (real_arithmetic): Change icode to code in function call.
4037         * reginfo.c (init_move_cost): Add casts to enum type.
4038         (init_reg_sets_1, init_fake_stack_mems): Likewise.
4039         * regmove.c (regclass_compatible_p): Change class0 and class1 to
4040         enum reg_class.
4041         * reload.c (find_valid_class): Add casts to enum type.
4042         (push_reload): Change 0 to NO_REGS in function call.
4043         (find_reloads): Change this_alternative to array of enum
4044         reg_class.  Remove some now-unnecessary casts.
4045         (make_memloc): Change 0 to VOIDmode in function call.
4046         * reload1.c (reload): Change 0 to VOIDmode in function call.
4047         (eliminate_regs_1, elimination_effects): Likewise.
4048         (eliminate_regs_in_insn): Likewise.
4049         (emit_input_reload_insns): Add cast to enum type.
4050         (delete_output_reload): Change 0 to VOIDmode in function call.
4051         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4052         to enum type in function call.
4053         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4054         (SET_PREDICT_EXPR_OUTCOME): Define.
4055         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
4056         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4057         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4058         (dump_function): Likewise.
4059         * tree-dump.h: Update declarations.
4060         * tree-pass.h: Update declarations.
4061         * varasm.c (assemble_integer): Change mclass to enum mode_class.
4062         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4063         enum type.
4064         (arm_rtx_costs_1): Correct parenthesization.
4065         (arm_rtx_costs): Add casts to enum type.
4066         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4067         (vfp_emit_fstmd): Use add_rg_note.
4068         (emit_multi_reg_push, emit_sfm): Likewise.
4069         (thumb_set_frame_pointer): Likewise.
4070         (arm_expand_prologue): Likewise.
4071         (arm_regno_class): Change return type to enum reg_class.
4072         (thumb1_expand_prologue): Use add_reg_note.
4073         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4074         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4075         in function call.
4076         * config/arm/gentune.sh: Add cast to enum type.
4077         * config/arm/arm-tune.md: Rebuild.
4078         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4079         (ix86_split_fp_branch, predict_jump): Likewise.
4080         (ix86_expand_multi_arg_builtin): Change sub_code from enum
4081         insn_code to enum rtx_code.
4082         (ix86_builtin_vectorized_function): Add cast to enum type.
4083         * config/i386/i386.md (truncdfsf2): Change slot to enum
4084         ix86_stack_slot.
4085         (truncxf<mode>2, isinf<mode>2): Likewise.
4086         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4087         enum type.
4088         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4089         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4090         (insert_bundle_state): Change 1 to INSERT in function call.
4091         (ia64_add_bundle_selector_before): Likewise.
4092         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4093         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4094         (restore_stack_nonlocal): Likewise.
4095         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4096         function call.
4097         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4098         function call.
4099         (mips_rtx_costs): Likewise.
4100         (mips_override_options): Add casts to enum type.
4101         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4102         in function call.
4103         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4104         (store_reg, set_reg_plus_d): Likewise.
4105         (hppa_expand_prologue, hppa_profile_hook): Likewise.
4106         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4107         cast to enum type.
4108         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4109         function call.
4110         (emit_unlikely_jump): Use add_reg_note.
4111         (rs6000_emit_allocate_stack): Likewise.
4112         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4113         (output_toc): Change 1 to INSERT in function call.
4114         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4115         (rs6000_initialize_trampoline): Likewise.
4116         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4117         function call.
4118         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4119         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4120         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4121         (save_gprs): Use add_reg_note.
4122         (s390_emit_prologue): Likewise.
4123         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4124         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4125         (sparc_fold_builtin): Add cast to enum type.
4126         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4127         enum insn_code.
4128         (spu_expand_prologue): Use add_reg_note.
4129         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
4130
4131 2009-04-20  Ian Lance Taylor  <iant@google.com>
4132
4133         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4134         (c_parser_postfix_expression_after_primary): Get VEC for list of
4135         arguments.  Get original types of arguments.  Call
4136         build_function_call_vec.
4137         (cached_expr_list_1, cached_expr_list_2): New static variables.
4138         (c_parser_expr_list): Change return type to VEC *.  Add
4139         p_orig_types parameter.  Change all callers.
4140         (c_parser_release_expr): New static function.
4141         (c_parser_vec_to_tree_list): New static function.
4142         * c-typeck.c (build_function_call): Rewrite to build a VEC and
4143         call build_function_call_vec.
4144         (build_function_call_vec): New function, based on old
4145         build_function_call.
4146         (convert_arguments): Remove nargs and argarray parameters.  Change
4147         values to a VEC.  Add origtypes parameter.
4148         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
4149         (convert_for_assignment): Add origtype parameter.  Change all
4150         callers.  If warn_cxx_compat, check for conversion to an enum
4151         type when calling a function.
4152         (store_init_value): Add origtype parameter.  Change all callers.
4153         (digest_init): Likewise.
4154         (struct init_node): Add origtype field.
4155         (add_pending_init): Add origtype parameter.  Change all callers.
4156         (output_init_element): Likewise.
4157         (output_pending_init_elements): Pass origtype from init_node to
4158         output_init_element.
4159         (process_init_element): Pass origtype from c_expr to
4160         output_init_element.
4161         (c_finish_return): Add origtype parameter.  Change all callers.
4162         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
4163         caller.
4164         (sync_resolve_params): Likewise.
4165         (sync_resolve_return): Change params to first_param.  Change caller.
4166         (resolve_overloaded_builtins): Change params to VEC *.  Change
4167         callers.  Save first parameter around call to build_function_call_vec.
4168         * c-decl.c (finish_decl): Add origtype parameter.  Change all
4169         callers.  Call build_function_call_vec rather than
4170         build_function_call for cleanup.
4171         * c-tree.h: Update declarations.
4172         * c-common.h: Update declarations.
4173         * stub-objc.c (objc_rewrite_function_call): Change parameter from
4174         params to first_param.
4175         * target.h (struct gcc_target): Change resolve_overloaded_builtin
4176         params parameter from tree to void *.
4177         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4178         Change arglist parameter to have type void *, and to be a pointer
4179         to a VEC.
4180         * config/rs6000/rs6000-protos.h
4181         (altivec_resolve_overloaded_builtin): Update declaration.
4182         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4183         fnargs parameter to have type void *, and to be a pointer to a
4184         VEC.  Call build_function_call_vec instead of
4185         build_function_call.
4186         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
4187
4188 2009-04-20  Joey Ye  <joey.ye@intel.com>
4189             Xuepeng Guo  <xuepeng.guo@intel.com>
4190             H.J. Lu  <hongjiu.lu@intel.com>
4191
4192         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4193
4194         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4195         (IX86_LEA_PRIORITY): Likewise.
4196         (distance_non_agu_define): New function.
4197         (distance_agu_use): Likewise.
4198         (ix86_lea_for_add_ok): Likewise.
4199         (ix86_dep_by_shift_count): Likewise.
4200
4201         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4202         should split for LEA.
4203
4204         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4205         function.
4206         (ix86_dep_by_shift_count): Likewise.
4207
4208 2009-04-20  Richard Guenther  <rguenther@suse.de>
4209
4210         * expr.c (handled_component_p): Move ...
4211         * tree.h (handled_component_p): ... here.
4212         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4213         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4214         and REALPART_EXPR to be in one group.
4215
4216 2009-04-20  Richard Guenther  <rguenther@suse.de>
4217
4218         * basic-block.h (get_all_dominated_blocks): Declare.
4219         * dominance.c (get_all_dominated_blocks): New function.
4220         * tree-cfg.c (get_all_dominated_blocks): Remove.
4221         (remove_edge_and_dominated_blocks): Adjust.
4222         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4223         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
4224         instead of recursing.
4225
4226 2009-04-20  Doug Kwan  <dougkwan@google.com>
4227
4228         * cgraph.h (cgraph_node_ptr): New type for vector functions.
4229         (struct cgraph_node_set_def): New type.
4230         (cgraph_node_set) New type. Also declare vector functions.
4231         (struct cgraph_node_set_element_def): New type.
4232         (cgraph_node_set_element): Ditto.
4233         (cgraph_node_set_iterator): New iterator type.
4234         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4235         cgraph_node_set_remove, dump_cgraph_node_set,
4236         debug_cgraph_node_set): New prototypes.
4237         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4238         cgraph_node_set_size): New inlines.
4239         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4240         including cgraph.h.
4241         (struct ipa_opt_pass): Add struct cgraph_node_set_def
4242         argument to function 'write_summary'.
4243         * ipa.c: Include ggc.h.
4244         (hash_cgraph_node_set_element,
4245         eq_cgraph_node_set_element, cgraph_node_set_new,
4246         cgraph_node_set_add, cgraph_node_set_remove,
4247         cgraph_node_set_find, dump_cgraph_node_set,
4248         debug_cgraph_node_set): New functions.
4249         * Makefile.in (ipa.o): Add dependency on GGC_H.
4250
4251 2009-04-20  Ira Rosen  <irar@il.ibm.com>
4252
4253         PR tree-optimization/39675
4254         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
4255         check of the return code of vect_schedule_slp. Check that
4256         stmt_vec_info still exists for the statement, before checking its
4257         vectorization type.
4258
4259 2009-04-20  Michael Matz  <matz@suse.de>
4260
4261         * Makefile.in (generated_files): Take out $(simple_generated_c).
4262
4263 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
4264
4265         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
4266         (UINTPTR_TYPE):  Likewise.
4267
4268 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4269
4270         PR c/37481
4271         * c-typeck.c (digest_init): Check for initializing an array with a
4272         string literal.
4273
4274 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4275
4276         PR c/19771
4277         * c-semantics.c (pop_stmt_list): Propagate
4278         STATEMENT_LIST_HAS_LABEL to parent statement list.
4279
4280 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
4281
4282         * config/mips/mips.h (mips_tune_attr): New macro.
4283         * config/mips/mips.md (cpu): Use it.
4284
4285 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4286
4287         PR c/38243
4288         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4289         declaring a tag.
4290
4291 2009-04-19  Diego Novillo  <dnovillo@google.com>
4292
4293         * toplev.c (compile_file): Move call to coverage_finish ...
4294         * cgraphunit.c (ipa_passes): ... here.
4295         Call cgraph_process_new_functions.
4296         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4297         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4298
4299 2009-04-19  Jan Hubicka  <jh@suse.cz>
4300
4301         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4302         cfun.
4303         (dump_cgraph_node): Dump can throw external flag.
4304         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4305
4306 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4307
4308         PR c/32061
4309         PR c++/36954
4310         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4311         * common.opt (Wlogical-op): Move from here...
4312         * c.opt (Wlogical-op): ... to here.
4313         * c-typeck.c (parser_build_binary_op): Update call to
4314         warn_logical_operator.
4315         * c-opts.c (c_common_post_options): Enable warn_logical_op with
4316         extra_warnings.
4317         * c-common.c (warn_logical_op): Update.
4318         * c-common.h (warn_logical_op): Update declaration.
4319
4320 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4321
4322         * tree.c (protected_set_expr_location): Fix formatting.
4323
4324 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4325
4326         PR c/27676
4327         * c-typeck.c (readonly_warning): new.
4328         (build_unary_op, build_modify_expr): Use readonly_warning for
4329         storing into something readonly but not const-qualified.
4330
4331 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4332
4333         PR c/22367
4334         * c-typeck.c (build_unary_op): Check for taking address of
4335         expression of type void.
4336
4337 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4338
4339         PR c/35210
4340         * c-typeck.c (build_function_call): Check for calling a function
4341         with qualified void return types.  Call require_complete_type when
4342         generating a trap.
4343
4344 2009-04-18  Jan Hubicka  <jh@suse.cz>
4345
4346         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4347         Set nothrow flag.
4348         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4349         can_throw_external flag.
4350         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4351         * ipa-pure-const.c (ignore_edge): New function.
4352         (propagate): Compute order for NOTHROW computation; set NOTHROWs
4353         only over can_throw_external edges.
4354         (local_pure_const): Add nothrow flag.
4355         * ipa-utils.c (searchc): Add ignore_edge callback.
4356         (ipa_utils_reduced_inorder): Add ignore_edge callback.
4357         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4358         (set_nothrow_function_flags): Update cgraph.
4359         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4360
4361 2009-04-18  Richard Guenther  <rguenther@suse.de>
4362
4363         PR middle-end/39804
4364         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4365         (fold_stmt): ... this and ...
4366         (fold_stmt_inplace): ... this.
4367         (fold_stmt_1): Fold references in calls and asms.
4368         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4369
4370 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4371
4372         * tree-vrp.c (ssa_name_nonzero_p): Remove.
4373         * tree.h: Remove the prototype for ssa_name_nonzero_p.
4374
4375 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4376
4377         * tree.c (function_args_count): Remove.
4378         * tree.h: Remove the prototype for function_args_count.
4379
4380 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4381
4382         * tree-iterator.c (expr_only): Remove.
4383         * tree.h: Remove the prototype for expr_only.
4384
4385 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4386
4387         * reginfo.c (cannot_change_mode_set_regs): Remove.
4388         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4389
4390 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
4391
4392         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4393         whether operands 0 and 1 overlaps.
4394
4395 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4396
4397         PR middle-end/36902
4398         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4399         pointer. Use warning_at instead of warning.
4400         (search_for_addr_array): Likewise.
4401         (check_array_bounds): Likewise.
4402         (check_all_array_refs): Check that the incoming edge is not in the
4403         list of edges to be removed.
4404         (check_all_array_refs): Avoid the temporal pointer.
4405         (vrp_visit_cond_stmt): Fix typo.
4406         (simplify_switch_using_ranges): Handle the case where the switch
4407         index is an integer constant.
4408
4409 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
4410
4411         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4412
4413 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4414
4415         * doc/extend.texi, doc/invoke.texi: Fix typos.
4416
4417 2009-04-17  Cary Coutant  <ccoutant@google.com>
4418
4419         * tree-flow-inline.h (get_lineno): Fix inverted test.
4420
4421 2009-04-17  Diego Novillo  <dnovillo@google.com>
4422
4423         * tree-ssa-pre.c (create_expression_by_pieces): Remove
4424         assertion for AVAIL_OUT.
4425
4426 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
4427
4428         PR target/38627
4429         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4430         * config/sh/linux-atomic.asm: Likewise.
4431
4432 2009-04-17  Diego Novillo  <dnovillo@google.com>
4433
4434         * except.c (debug_eh_tree): New.
4435         (struct eh_region, struct eh_status): Move ...
4436         * except.h: ... here.
4437         (add_type_for_runtime): Declare extern.
4438         (lookup_type_for_runtime): Likewise.
4439         (debug_eh_tree): Declare.
4440         * Makefile.in (GTFILES): List except.h before except.c
4441
4442 2009-04-17  Diego Novillo  <dnovillo@google.com>
4443
4444         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
4445         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4446         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4447         (find_vars_r): ... here.
4448         * tree-flow.h (find_referenced_vars_in): Declare.
4449         * tree-ssa-pre.c (create_expression_by_pieces): Assert
4450         that AVAIL_OUT exists for BLOCK.
4451         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4452         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4453         (tree-parloops.o): Likewise.
4454
4455 2009-04-17  Simon Baldwin  <simonb@google.com>
4456
4457         * toplev.c (default_tree_printer): Add handling for %E format.
4458
4459 2009-04-17  Diego Novillo  <dnovillo@google.com>
4460
4461         * tree-pretty-print.c (dump_generic_node): Add break after
4462         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
4463         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
4464         FUNCTION_TYPE together.  Call print_struct_decl when printing
4465         structures and TDF_SLIM is not given.
4466         (print_struct_decl): Fix logic for detecting recursion.
4467
4468 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4469
4470         PR 31567
4471         * gcc.c (create_at_file): New.
4472         (compile_input_file_p): New.
4473         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4474         * main.c (main): Update call to toplev_main.
4475         * toplev.c (toplev_main): Change signature. Call expandargv.
4476         * toplev.h (toplev_main): Change signature.
4477
4478 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4479
4480         * dwarf2out.c (field_byte_offset): Use the type size as the field size
4481         if the latter is not constant.
4482
4483 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
4484
4485         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4486
4487 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4488
4489         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4490         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4491
4492 2009-04-17  Richard Guenther  <rguenther@suse.de>
4493
4494         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4495         Handle component references view-converting an invariant address.
4496
4497 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
4498
4499         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4500         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4501         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4502         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4503         Use @deftypevr rather than @deftypevar.
4504
4505 2009-04-17  Richard Guenther  <rguenther@suse.de>
4506
4507         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
4508         (get_prop_source_stmt): Likewise.
4509         (can_propagate_from): Likewise.
4510
4511 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
4512
4513         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4514         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4515         (--with-multilib-list): Add default value.
4516         * configure: Regenerate.
4517         * Makefile.in (TM_ENDIAN_CONFIG): Define.
4518         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4519         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4520         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4521         Don't add default cpu to multilib list unnecessarily, but do enable
4522         the relevant compiler option..
4523         Add support for --with-multilib-list=<blank> and
4524         --with-multilib-list=!<somelib> to supress unwanted multilibs.
4525         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4526         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4527         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4528         TM_MULTILIB_CONFIG.
4529         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4530         (MULTILIB_OSDIRNAMES): New variable.
4531         * config/sh/t-1e: Delete file.
4532         * config/sh/t-mlib-sh1: Delete file.
4533         * config/sh/t-mlib-sh2: Delete file.
4534         * config/sh/t-mlib-sh2a: Delete file.
4535         * config/sh/t-mlib-sh2a-nofpu: Delete file.
4536         * config/sh/t-mlib-sh2a-single: Delete file.
4537         * config/sh/t-mlib-sh2a-single-only: Delete file.
4538         * config/sh/t-mlib-sh2e: Delete file.
4539         * config/sh/t-mlib-sh3e: Delete file.
4540         * config/sh/t-mlib-sh4: Delete file.
4541         * config/sh/t-mlib-sh4-nofpu: Delete file.
4542         * config/sh/t-mlib-sh4-single: Delete file.
4543         * config/sh/t-mlib-sh4-single-only: Delete file.
4544         * config/sh/t-mlib-sh4a: Delete file.
4545         * config/sh/t-mlib-sh4a-nofpu: Delete file.
4546         * config/sh/t-mlib-sh4a-single: Delete file.
4547         * config/sh/t-mlib-sh4a-single-only: Delete file.
4548         * config/sh/t-mlib-sh4al: Delete file.
4549         * config/sh/t-mlib-sh5-32media: Delete file.
4550         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4551         * config/sh/t-mlib-sh5-64media: Delete file.
4552         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4553         * config/sh/t-mlib-sh5-compact: Delete file.
4554         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4555         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4556         * doc/install.texi (Options specification): Add
4557         --with-multilib-list and --with-endian.
4558
4559 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4560
4561         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4562         REVISION_c.
4563         (OBJS-common): Add plugin-version.o.
4564         (plugin-version.o): New.
4565         * gcc-plugin.h (plugin_gcc_version): New.
4566         (plugin_default_version_check): New.
4567         (plugin_init_func, plugin_init): Add version argument.
4568         * plugin-version.c: New.
4569         * plugin.c (str_plugin_gcc_version_name): New.
4570         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4571         pass it to the init function.
4572         (plugin_default_version_check): New.
4573
4574 2009-04-17  Richard Guenther  <rguenther@suse.de>
4575
4576         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4577         for decl-vs-decl disambiguation.
4578
4579 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4580
4581         * config/s390/s390.h (s390_tune_attr): New macro definition.
4582         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4583
4584 2009-04-17  Richard Guenther  <rguenther@suse.de>
4585
4586         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4587         (fold_stmt_r): Likewise.
4588         (maybe_fold_reference): New function.
4589         (fold_gimple_assign): Handle cases fold_stmt_r did.
4590         (fold_stmt): Do not use fold_stmt_r.
4591         (fold_stmt_inplace): Likewise.
4592
4593 2009-04-17  Richard Guenther  <rguenther@suse.de>
4594
4595         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4596         (record_equivalences_from_stmt): Remove useless checks and
4597         simplifications.
4598         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4599         the type is already suitable.
4600
4601 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
4602
4603         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4604
4605 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
4606
4607         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4608         (CMPtype): Define as __gcc_CMPtype.
4609
4610 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
4611
4612         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4613         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4614
4615 2009-04-17  Richard Guenther  <rguenther@suse.de>
4616
4617         PR tree-optimization/39746
4618         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4619         special-casing for builtins and static variable use/def.
4620         (call_may_clobber_ref_p_1): Likewise.
4621
4622 2009-04-16  Ian Lance Taylor  <iant@google.com>
4623
4624         * df.h: Include "timevar.h".
4625         (struct df_problem): Change tv_id field to timevar_id_t.
4626         * tree-pass.h: Include "timevar.h".
4627         (struct opt_pass): Change tv_id field to timevar_id_t.
4628         * timevar.h (timevar_id_t): Define TV_NONE.
4629         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4630         TV_NONE rather than tv_id != 0.
4631         (execute_one_pass): Likewise.
4632         * Makefile.in (DF_H): Add $(TIMEVAR_H).
4633         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
4634         dependencies to $(TREE_PASS_H).
4635         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4636         to TV_NONE.
4637         (pass_branch_target_load_optimize2): Likewise.
4638         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4639         (pass_outof_cfg_layout_mode): Likewise.
4640         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4641         (pass_rebuild_cgraph_edges): Likewise.
4642         (pass_remove_cgraph_callee_edges): Likewise.
4643         * df-core.c (pass_df_initialize_opt): Likewise.
4644         (pass_df_initialize_no_opt): Likewise.
4645         (pass_df_finish): Likewise.
4646         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4647         * except.c (pass_set_nothrow_function_flags): Likewise.
4648         (pass_convert_to_eh_region_ranges): Likewise.
4649         * final.c (pass_compute_alignments): Likewise.
4650         * function.c (pass_instantiate_virtual_regs): Likewise.
4651         (pass_init_function): Likewise.
4652         (pass_leaf_regs): Likewise.
4653         (pass_match_asm_constraints): Likewise.
4654         * gimple-low.c (pass_lower_cf): Likewise.
4655         (pass_mark_used_blocks): Likewise.
4656         * init-regs.c (pass_initialize_regs): Likewise.
4657         * integrate.c (pass_initial_value_sets): Likewise.
4658         * ira.c (pass_ira): Likewise.
4659         * jump.c (pass_cleanup_barriers): Likewise.
4660         * omp-low.c (pass_expand_omp): Likewise.
4661         (pass_lower_omp): Likewise.
4662         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4663         * recog.c (pass_split_all_insns): Likewise.
4664         (pass_split_after_reload): Likewise.
4665         (pass_split_before_regstack): Likewise.
4666         (pass_split_before_sched2): Likewise.
4667         (pass_split_for_shorten_branches): Likewise.
4668         * reginfo.c (pass_reginfo_init): Likewise.
4669         (pass_subregs_of_mode_init): Likewise.
4670         (pass_subregs_of_mode_finish): Likewise.
4671         * passes.c (pass_postreload): Likewise.
4672         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4673         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4674         (pass_warn_function_return): Likewise.
4675         (pass_warn_function_noreturn): Likewise.
4676         * tree-complex.c (pass_lower_complex): Likewise.
4677         (pass_lower_complex_O0): Likewise.
4678         * tree-if-conv.c (pass_if_conversion): Likewise.
4679         * tree-into-ssa.c (pass_build_ssa): Likewise.
4680         * tree-mudflap.c (pass_mudflap_1): Likewise.
4681         (pass_mudflap_2): Likewise.
4682         * tree-nomudflap.c (pass_mudflap_1): Likewise.
4683         (pass_mudflap_2): Likewise.
4684         * tree-nrv.c (pass_return_slot): Likewise.
4685         * tree-object-size.c (pass_object_sizes): Likewise.
4686         * tree-optimize.c (pass_all_optimizations): Likewise.
4687         (pass_early_local_passes): Likewise.
4688         (pass_all_early_optimizations): Likewise.
4689         (pass_cleanup_cfg): Likewise.
4690         (pass_cleanup_cfg_post_optimizing): Likewise.
4691         (pass_free_datastructures): Likewise.
4692         (pass_free_cfg_annotations): Likewise.
4693         (pass_fixup_cfg): Likewise.
4694         (pass_init_datastructures): Likewise.
4695         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4696         (pass_late_warn_uninitialized): Likewise.
4697         (pass_update_address_taken): Likewise.
4698         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4699         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4700         (pass_cse_sincos): Likewise.
4701         (pass_convert_to_rsqrt): Likewise.
4702         * tree-ssa-structalias.c (pass_build_alias): Likewise.
4703         * tree-stdarg.c (pass_stdarg): Likewise.
4704         * tree-tailcall.c (pass_tail_recursion): Likewise.
4705         (pass_tail_calls): Likewise.
4706         * tree-vect-generic.c (pass_lower_vector): Likewise.
4707         (pass_lower_vector_ssa): Likewise.
4708         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4709
4710 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
4711
4712         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4713         XLR entry.
4714         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4715         Handle -march=xlr.
4716         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4717         logical and signext.
4718
4719 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4720
4721         PR target/39767
4722         * config/sh/predicates.md (arith_operand): Check if the operand
4723         of TRUNCATE is a REG.
4724
4725 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4726
4727         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4728         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4729
4730 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4731
4732         * tree-iterator.c (tsi_split_statement_list_after,
4733         tsi_split_statement_list_before): Remove.
4734         * tree-iterator.h: Remove the prototypes for
4735         tsi_split_statement_list_after and tsi_split_statement_list_before.
4736
4737 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4738
4739         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4740         * tree-ssa-propagate.h: Remove the prototype for
4741         stmt_makes_single_load.
4742
4743 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4744
4745         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4746         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4747
4748 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4749
4750         * tree-iterator.c (EXPR_LAST_BODY): Remove.
4751
4752 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4753
4754         * except.c (eh_region_outer_p): Remove.
4755         * except.h: Remove the prototype for eh_region_outer_p.
4756
4757 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4758
4759         * function.c (current_function_assembler_name): Remove.
4760         * function.h: Remove the prototype for
4761         current_function_assembler_name.
4762
4763 2009-04-16  Ian Lance Taylor  <iant@google.com>
4764
4765         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
4766         (add_reg_note): Call alloc_reg_note.
4767         * rtl.h (alloc_reg_note): Declare.
4768         * combine.c (try_combine): Use alloc_reg_note.
4769         (recog_for_combine, move_deaths): Likewise.
4770         (distribute_notes): Use alloc_reg_note and add_reg_note.
4771         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4772         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4773         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4774
4775 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
4776
4777         PR rtl-optimization/39762
4778         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4779         ira_may_move_out_cost): Add comments about way of their usage.
4780         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
4781
4782         * ira-conflicts.c (process_regs_for_copy): Use function
4783         ira_get_register_move_cost instead of global
4784         ira_register_move_cost.
4785
4786         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4787         color_pass, move_spill_restore, update_curr_costs): Ditto.
4788
4789         * ira-lives.c (process_single_reg_class_operands): Ditto.
4790
4791         * ira-emit.c (emit_move_list): Ditto.
4792
4793         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4794         (record_reg_classes): Ditto.  Use functions
4795         ira_get_register_move_cost and ira_get_may_move_cost instead of
4796         global vars ira_register_move_cost, ira_may_move_out_cost and
4797         ira_may_move_in_cost.
4798         (record_address_regs): Don't call ira_init_register_move_cost.
4799         Use function ira_get_may_move_cost instead of global
4800         ira_may_move_in_cost.
4801         (process_bb_node_for_hard_reg_moves): Use function
4802         ira_get_register_move_cost instead of global ira_register_move_cost.
4803         (ira_costs): Don't call ira_init_register_move_cost.
4804
4805 2009-04-16  Richard Guenther  <rguenther@suse.de>
4806
4807         * tree-cfg.c (verify_gimple_assign_binary):
4808         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4809         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4810         (create_general_new_stmt): Note that this function is broken.
4811
4812 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4813
4814         * common.opt (fhelp): Add Var(help_flag).
4815         * gcc-plugin.h (plugin_info): Add help.
4816         * plugin.c (plugin_name_args): Add help.
4817         (register_plugin_info): Set plugin->help.
4818         (print_help_one_plugin): New.
4819         (print_plugins_help): New.
4820         * plugin.h (print_plugins_help): New.
4821         * toplev.c (toplev_main): Call print_plugins_help if needed.
4822
4823 2009-04-16  Richard Guenther  <rguenther@suse.de>
4824
4825         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4826         (gimple_ior_addresses_taken_1): New function.
4827         (gimple_ior_addresses_taken): Likewise.
4828         * gimple.h (struct gimple_statement_with_ops_base): Remove
4829         addresses_taken member.
4830         (gimple_ior_addresses_taken): Declare.
4831         (gimple_addresses_taken, gimple_addresses_taken_ptr,
4832         gimple_set_addresses_taken): Remove.
4833         * ipa-reference.c (mark_address): New function.
4834         (scan_stmt_for_static_refs): Use it for marking addresses taken.
4835         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4836         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
4837         (gimple_add_to_addresses_taken): Remove.
4838         (get_tmr_operands): Call mark_address_taken.
4839         (get_asm_expr_operands): Likewise.
4840         (get_expr_operands): Likewise.
4841         (build_ssa_operands): Do not clear the addresses_taken bitmap.
4842         (free_stmt_operands): Do not free it.
4843         * tree-ssa.c (delete_tree_ssa): Likewise.
4844         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
4845
4846 2009-04-16  Richard Guenther  <rguenther@suse.de>
4847
4848         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
4849         (walk_stmt_load_store_ops): Likewise.
4850         * gimple.c (get_base_loadstore): New function.
4851         (walk_stmt_load_store_addr_ops): Likewise.
4852         (walk_stmt_load_store_ops): Likewise.
4853         * ipa-pure-const.c (check_op): Simplify.
4854         (check_load, check_store): New functions.
4855         (check_stmt): Use walk_stmt_load_store_ops.
4856         * ipa-reference.c (mark_load): Adjust signature.
4857         (mark_store): Likewise.
4858         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
4859
4860 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4861
4862         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
4863         (plugin_info): New.
4864         * opts.c (common_handle_option): Don't call print_version.
4865         * plugin.c (plugin_name_args): Add version.
4866         (register_plugin_info): New.
4867         (register_callback): Handle PLUGIN_INFO.
4868         (try_init_one_plugin): New.
4869         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
4870         if failed to init.
4871         (finalize_one_plugin): New.
4872         (finalize_plugins): New.
4873         (print_one_plugin): New.
4874         (print_plugins_versions): New.
4875         * plugin.h (print_plugins_versions): New.
4876         (finalize_plugins): New.
4877         * toplev.c (compile_file): Don't call initialize_plugins.
4878         (print_version): Call print_plugins_versions.
4879         (toplev_main): Call initialize_plugins. Print version if needed.
4880         Call finalize_plugins.
4881
4882 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4883
4884         * common.opt (fversion): New.
4885         * gcc.c (print_version): New.
4886         (process_command): Don't print the version. Just set print_version.
4887         (main): Print version. Call subprocesses if print_version and
4888         verbose_flag are set.
4889         * opts.c (common_handle_option): Handle OPT_fversion.
4890
4891 2009-04-16  Richard Guenther  <rguenther@suse.de>
4892             Ira Rosen  <irar@il.ibm.com>
4893
4894         PR tree-optimization/39698
4895         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
4896         type of the reduction variable.  Only generate the def if
4897         it is needed.
4898
4899         * omp-low.c (expand_omp_for_generic): When converting to a pointer
4900         make sure to first convert to an integer of the same precision.
4901         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
4902         the type of the evolution correctly in computing the new
4903         induction variable base.
4904
4905 2009-04-16  Richard Guenther  <rguenther@suse.de>
4906
4907         PR middle-end/39625
4908         * tree-cfg.c (make_blocks): Split statements with to-be
4909         abnormal SSA names on the lhs.
4910
4911 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
4912
4913         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
4914         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
4915         * c-typeck.c (really_start_incremental_init): Likewise.
4916         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
4917         (TARGET_INITIALIZER): Remove it.
4918         * target.h (struct target): Remove vector_opaque_p.
4919         * tree.c (build_opaque_vector_type): New.
4920         * tree.h (TYPE_VECTOR_OPAQUE): New.
4921         (build_opaque_vector_type): Declare.
4922         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
4923         * config/rs6000/rs6000.c (build_opaque_vector_type,
4924         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4925         (rs6000_init_builtins): Use build_opaque_vector_type for
4926         opaque_V4SI_type_node.
4927
4928 2009-04-15  Catherine Moore  <clm@codesourcery.com>
4929
4930         * debug.h (set_name):  Declare.
4931         * dwarf2out.c (dwarf2out_set_name): Declare.
4932         (dwarf2_debug_hooks): Add set_name.
4933         (find_AT_string): New.
4934         (add_AT_string): Call find_AT_string.
4935         (dwarf2out_set_name): New.
4936         * cp/decl.c (grokdeclarator): Call set_name.
4937         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4938         * debug.c (do_nothing_debug_hooks):  Likewise.
4939         * dbxout.c (dbx_debug_hooks): Likewise.
4940         * sdbout.c (sdb_debug_hooks): Likewise.
4941
4942 2009-04-15  Michael Eager  <eager@eagercon.com>
4943
4944         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4945         reg for single-precision FPU.
4946         * config/rs6000/rs6000.md (movsi_internal1): Only for
4947         !TARGET_SINGLE_FPU.
4948         (movsi_internal1_single): New. Add pattern to move SI values to/from
4949         single-precision FP regs.
4950
4951 2009-04-15  Richard Guenther  <rguenther@suse.de>
4952
4953         * omp-low.c (lower_rec_input_clauses): Build correct address
4954         expressions.
4955         (expand_omp_for_generic): Fix multiplication type.
4956         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
4957         (generate_memset_zero): Fix types.
4958         * tree-profile.c (prepare_instrumented_value): Correctly
4959         widen a pointer.
4960
4961 2009-04-15  Ian Lance Taylor  <iant@google.com>
4962
4963         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
4964         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
4965         for -Wall and for -Wc++-compat.
4966         (c_common_post_options): For C++, set warn_enum_compare if not
4967         already set.
4968         * c-tree.h (struct c_expr): Add field original_type.
4969         (build_external_ref): Update declaration.
4970         * c-parser.c (c_parser_braced_init): Set original_type.
4971         (c_parser_initelt): Likewise.
4972         (c_parser_expr_no_commas): Likewise.
4973         (c_parser_conditional_expression): Likewise.
4974         (c_parser_cast_expression): Likewise.
4975         (c_parser_unary_expression): Likewise.  Pull setting of
4976         original_code to top of function.
4977         (c_parser_sizeof_expression): Set original_type.
4978         (c_parser_alignof_expression): Likewise.
4979         (c_parser_postfix_expression): Likewise.  Pull setting of
4980         original_code to top of function.
4981         (c_parser_postfix_expression_after_paren_type): Set original_type.
4982         (c_parser_postfix_expression_after_primary): Likewise.
4983         (c_parser_expression): Likewise.
4984         * c-typeck.c (build_external_ref): Add type parameter.  Change all
4985         callers.
4986         (c_expr_sizeof_expr): Set original_type field.
4987         (parser_build_unary_op): Likewise.
4988         (parser_build_binary_op): Likewise.  Optionally warn about
4989         comparisons of enums of different types.
4990         (digest_init): Set original_type field.
4991         (really_start_incremental_init): Likewise.
4992         (push_init_level, pop_init_level): Likewise.
4993         * doc/invoke.texi (Warning Options): -Wenum-compare now
4994         supported in C.
4995
4996 2009-04-15  Richard Guenther  <rguenther@suse.de>
4997
4998         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
4999         out a necessary conversion.
5000         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5001         names we didn't value number.
5002         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5003
5004 2009-04-15  Richard Guenther  <rguenther@suse.de>
5005
5006         PR tree-optimization/39764
5007         * tree-ssa-ccp.c (get_value): Canonicalize value with
5008         canonicalize_float_value.
5009
5010 2009-04-15  Jan Hubicka  <jh@suse.cz>
5011
5012         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5013         Wrong version of patch.
5014
5015 2009-04-15  Jan Hubicka  <jh@suse.cz>
5016
5017         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5018
5019 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
5020
5021         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5022         our distinct integral and vector types.
5023
5024 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
5025
5026         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5027         * init.c (build_vtbl_address): Remove call to assemble_external.
5028
5029 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
5030
5031         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5032         output for other floating point modes.
5033
5034 2009-04-14  Diego Novillo  <dnovillo@google.com>
5035
5036         * diagnostic.c (diagnostic_report_diagnostic): Do not
5037         warn about loaded plugins for DK_ERROR and DK_WARNING.
5038         * c-decl.c (declspecs_add_type): Move call to
5039         invoke_plugin_callbacks ...
5040         * c-parser.c (c_parser_declspecs): ... here.
5041         * plugin.c (dump_active_plugins): Tidy output.
5042
5043 2009-04-14  Diego Novillo  <dnovillo@google.com>
5044             Le-Chun Wu  <lcwu@google.com>
5045
5046         * configure.ac: Add --enable-plugin support.
5047         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5048         * Makefile.in (PLUGIN_H): Define.
5049         Export ENABLE_PLUGIN and GMPINC to site.exp.
5050         Add PLUGINLIBS to link command.
5051         Add/modify dependencies for plugin.o and files including plugin.h.
5052         (plugin.o): New.
5053         * config.in: Regenerate.
5054
5055         * opts.c (common_handle_option): Handle OPT_fplugin_ and
5056         OPT_fplugin_arg_.
5057
5058 2009-04-14  Le-Chun Wu  <lcwu@google.com>
5059
5060         * tree-pass.h (register_one_dump_file): Add a prototype for
5061         register_one_dump_file.
5062         * toplev.c (compile_file): Call initialize_plugins.
5063         (do_compile): Call invoke_plugin_callbacks.
5064         (toplev_main): Call invoke_plugin_callbacks.
5065         * common.opt: Add -fplugin= and -fplugin-arg-.
5066         * gcc-plugin.h: New public header file for plugins to include.
5067         * plugin.c: New source file.
5068         * plugin.h: New internal header file.
5069         * passes.c (register_one_dump_file): Make it external.
5070
5071         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5072
5073 2009-04-14  Diego Novillo  <dnovillo@google.com>
5074
5075         * doc/plugins.texi: New.
5076         * doc/gccint.texi: Add reference to Plugins chapter.
5077         * doc/invoke.texi: Document -fplugin and -fplugin-arg
5078         * diagnostic.c (diagnostic_report_diagnostic): Warn about
5079         loaded plugins, if any.
5080         * timevar.def (TV_PLUGIN_INIT): Define.
5081         (TV_PLUGIN_RUN): Define.
5082         * plugin.c: Include timevar.h
5083         (plugins_active_p): New.
5084         (dump_active_plugins): New.
5085         (debug_active_plugins): New.
5086
5087 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
5088
5089         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5090         library paths.
5091         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5092
5093 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
5094
5095         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5096         the same as a minus without a shift.
5097
5098 2009-04-14  Nick Clifton  <nickc@redhat.com>
5099
5100         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5101         comparisons with small integers will always produce a short
5102         branch.
5103
5104 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
5105
5106         Merge:
5107         2008-12-19  Diego Novillo  <dnovillo@google.com>
5108
5109         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
5110
5111 2009-04-14  Richard Guenther  <rguenther@suse.de>
5112
5113         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5114         verification.
5115         (verify_gimple_assign_binary): Likewise.  Handle shifts and
5116         rotates correctly.
5117         (verify_gimple_phi): Print the mismatched argument position.
5118         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5119         Fix types.
5120         (vect_update_init_of_dr): Likewise.
5121         * matrix-reorg.c (transform_access_sites): Do what the
5122         comment suggests.
5123         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5124
5125 2009-04-13  Michael Eager  <eager@eagercon.com>
5126
5127         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5128         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5129         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
5130         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
5131         remove duplicate config
5132
5133 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5134
5135         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5136         file_name:line_number type locator of the call site.
5137
5138 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5139
5140         * genautomata.c: Put blank after comma.
5141         (automaton_decls): New.
5142         (struct unit_usage): Add comments to member next.
5143         (store_alt_unit_usage): Keep the list ordered.
5144         (unit_present_on_list_p, equal_alternatives_p): New.
5145         (check_regexp_units_distribution): Check units distribution
5146         correctness correctly.
5147         (main): Don't write automata if error is found.  Return correct
5148         exit code.
5149
5150         * config/m68k/cf.md (cfv4_ds): Remove.
5151         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5152         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5153
5154         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5155         power4-load-ext, power4-store, power4-store-update,
5156         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5157         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5158         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5159         power4-sqrt, power4-isync): Modify reservation to make correct
5160         unit distribution to automata.
5161
5162         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5163         power5-store-update, power5-two, power5-three, power5-lmul,
5164         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
5165
5166 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
5167
5168         * except.c (pass_set_nothrow_function_flags): Set name and add
5169         TODO_dump_func.
5170         (set_nothrow_function_flags): Mention in the dump file when
5171         changing a function to nothrow.
5172
5173 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
5174
5175         PR/39066
5176         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5177         instead of unsigned long.
5178
5179 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5180
5181         * config/arm/arm.c (return_used_this_function): Remove.
5182         (arm_output_function_prologue): Remove use of
5183         return_used_this_function.
5184         (output_return_instruction): Replace use of
5185         return_used_this_function
5186         by cfun->machine->return_used_this_function.
5187         (arm_output_epilogue): Likewise.
5188         (arm_output_function_epilogue): Likewise.
5189         (thumb_unexpanded_epilogue): Likewise.
5190         * config/arm/arm.h (struct machine_function):
5191         New member return_used_this_function.
5192
5193 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
5194
5195         * doc/install.texi: Correct description of default directory for
5196         --with-gxx-include-dir.
5197
5198 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5199
5200         * fold-const.c (build_range_check): Properly deal with enumeral and
5201         boolean base types.
5202
5203 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
5204
5205         * doc/invoke.texi (max_gcse_passes): Remove documentation.
5206         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5207         * params.h (MAX_GCSE_PASSES): Remove.
5208         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5209         in sequence.  Remove ability to run multiple passes.
5210         (bypass_jumps): Report run as third CPROP pass.
5211
5212 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
5213
5214         PR middle-end/39651
5215         * except.c (can_throw_external): Look at each insn in a SEQUENCE
5216         when deciding whether the whole SEQUENCE can throw.
5217
5218 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
5219
5220         PR target/39740
5221         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5222         offseted label references.
5223
5224 2009-04-11  Jan Hubicka  <jh@suse.cz>
5225
5226         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5227
5228 2009-04-11  Richard Guenther  <rguenther@suse.de>
5229
5230         PR middle-end/39732
5231         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5232         return variables as TREE_ADDRESSABLE.
5233
5234 2009-04-11  Richard Guenther  <rguenther@suse.de>
5235
5236         PR tree-optimization/39713
5237         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5238         reference trees have SSA_NAME operands.
5239
5240 2009-04-11  Richard Guenther  <rguenther@suse.de>
5241
5242         PR c/39712
5243         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5244         address expressions.
5245
5246 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5247
5248         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
5249         match changes in Cygwin 1.7
5250         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5251         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
5252
5253 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5254
5255         PR tree-optimization/39701
5256         * doc/invoke.texi (Optimization Options): Document change in
5257         meaning and initialization of -fdelete-null-pointer-checks.
5258
5259 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5260
5261         PR middle-end/39701
5262         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5263
5264         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5265         here.
5266
5267         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5268
5269 2009-04-10  Chao-ying Fu  <fu@mips.com>
5270
5271         * doc/tm.texi (Instruction Output): Document
5272         TARGET_ASM_FINAL_POSTSCAN_INSN.
5273         * target.h (final_postscan_insn): New field in asm_out.
5274         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5275         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5276         * final.c (final_scan_insn): Call
5277         targetm.asm_out.final_postscan_insn after outputting
5278         an asm macro and a normal instruction.
5279
5280         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5281         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5282         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5283         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5284         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5285
5286 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5287
5288         PR middle-end/39701
5289         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5290         variables as non-NULL even with -fdelete-null-pointer-checks.
5291
5292 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5293
5294         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5295
5296 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
5297
5298         PR target/39678
5299         * config/i386/i386.c (classify_argument): Handle SCmode with
5300         (bit_offset % 64) != 0.
5301
5302 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
5303
5304         * doc/invoke.texi (Optimize Options): Add cross-reference to
5305         -Q --help=optimizers examples.
5306
5307 2009-04-10  Ben Elliston  <bje@au.ibm.com>
5308
5309         PR target/36800
5310         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5311         regalign for the reg == fpr and TDmode case.
5312
5313 2009-04-09  David Ayers  <ayers@fsfe.org>
5314
5315         PR objc/29200
5316         * objc/objc-act.c (warn_with_method): Remove helper function.
5317         (check_duplicates): Call warning and inform directly.
5318         (really_start_method): Likewise.
5319
5320 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5321
5322         * expmed.c (expand_divmod): Always use a comparison for a division
5323         by a large unsigned integer.
5324
5325         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5326         for things others than variables or functions as nonzero.
5327
5328 2009-04-09  Nick Clifton  <nickc@redhat.com>
5329
5330         * unwind-compat.c: Change copyright header to refer to version
5331         3 of the GNU General Public License with version 3.1 of the
5332         GCC Runtime Library Exception and to point readers at the
5333         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
5334         * config/alpha/crtfastmath.c: Likewise.
5335         * config/alpha/linux-unwind.h: Likewise.
5336         * config/alpha/qrnnd.asm: Likewise.
5337         * config/alpha/vms-crt0-64.c: Likewise.
5338         * config/alpha/vms-crt0.c: Likewise.
5339         * config/alpha/vms-dwarf2.asm: Likewise.
5340         * config/alpha/vms-dwarf2eh.asm: Likewise.
5341         * config/alpha/vms-psxcrt0-64.c: Likewise.
5342         * config/alpha/vms-psxcrt0.c: Likewise.
5343         * config/alpha/vms_tramp.asm: Likewise.
5344         * config/arc/initfini.c: Likewise.
5345         * config/arc/lib1funcs.asm: Likewise.
5346         * config/arm/bpabi-v6m.S: Likewise.
5347         * config/arm/bpabi.S: Likewise.
5348         * config/arm/bpabi.c: Likewise.
5349         * config/arm/crti.asm: Likewise.
5350         * config/arm/crtn.asm: Likewise.
5351         * config/arm/ieee754-df.S: Likewise.
5352         * config/arm/ieee754-sf.S: Likewise.
5353         * config/arm/lib1funcs.asm: Likewise.
5354         * config/arm/libunwind.S: Likewise.
5355         * config/arm/linux-atomic.c: Likewise.
5356         * config/arm/mmintrin.h: Likewise.
5357         * config/arm/pr-support.c: Likewise.
5358         * config/arm/unaligned-funcs.c: Likewise.
5359         * config/arm/unwind-arm.c: Likewise.
5360         * config/arm/unwind-arm.h: Likewise.
5361         * config/avr/libgcc.S: Likewise.
5362         * config/bfin/crti.s: Likewise.
5363         * config/bfin/crtlibid.s: Likewise.
5364         * config/bfin/crtn.s: Likewise.
5365         * config/bfin/lib1funcs.asm: Likewise.
5366         * config/bfin/linux-unwind.h: Likewise.
5367         * config/cris/arit.c: Likewise.
5368         * config/cris/cris_abi_symbol.c: Likewise.
5369         * config/darwin-64.c: Likewise.
5370         * config/darwin-crt2.c: Likewise.
5371         * config/darwin-crt3.c: Likewise.
5372         * config/darwin.h: Likewise.
5373         * config/dbxelf.h: Likewise.
5374         * config/dfp-bit.c: Likewise.
5375         * config/dfp-bit.h: Likewise.
5376         * config/elfos.h: Likewise.
5377         * config/fixed-bit.c: Likewise.
5378         * config/fixed-bit.h: Likewise.
5379         * config/fp-bit.c: Likewise.
5380         * config/fp-bit.h: Likewise.
5381         * config/fr30/crti.asm: Likewise.
5382         * config/fr30/crtn.asm: Likewise.
5383         * config/fr30/lib1funcs.asm: Likewise.
5384         * config/freebsd-spec.h: Likewise.
5385         * config/frv/cmovd.c: Likewise.
5386         * config/frv/cmovh.c: Likewise.
5387         * config/frv/cmovw.c: Likewise.
5388         * config/frv/frvbegin.c: Likewise.
5389         * config/frv/frvend.c: Likewise.
5390         * config/frv/lib1funcs.asm: Likewise.
5391         * config/glibc-stdint.h: Likewise.
5392         * config/h8300/clzhi2.c: Likewise.
5393         * config/h8300/crti.asm: Likewise.
5394         * config/h8300/crtn.asm: Likewise.
5395         * config/h8300/ctzhi2.c: Likewise.
5396         * config/h8300/fixunssfsi.c: Likewise.
5397         * config/h8300/lib1funcs.asm: Likewise.
5398         * config/h8300/parityhi2.c: Likewise.
5399         * config/h8300/popcounthi2.c: Likewise.
5400         * config/i386/ammintrin.h: Likewise.
5401         * config/i386/att.h: Likewise.
5402         * config/i386/avxintrin.h: Likewise.
5403         * config/i386/biarch64.h: Likewise.
5404         * config/i386/bmmintrin.h: Likewise.
5405         * config/i386/cpuid.h: Likewise.
5406         * config/i386/cross-stdarg.h: Likewise.
5407         * config/i386/crtfastmath.c: Likewise.
5408         * config/i386/crtprec.c: Likewise.
5409         * config/i386/cygming-crtbegin.c: Likewise.
5410         * config/i386/cygming-crtend.c: Likewise.
5411         * config/i386/cygwin.asm: Likewise.
5412         * config/i386/emmintrin.h: Likewise.
5413         * config/i386/gmm_malloc.h: Likewise.
5414         * config/i386/gthr-win32.c: Likewise.
5415         * config/i386/i386.h: Likewise.
5416         * config/i386/immintrin.h: Likewise.
5417         * config/i386/linux-unwind.h: Likewise.
5418         * config/i386/linux64.h: Likewise.
5419         * config/i386/mm3dnow.h: Likewise.
5420         * config/i386/mmintrin-common.h: Likewise.
5421         * config/i386/mmintrin.h: Likewise.
5422         * config/i386/nmmintrin.h: Likewise.
5423         * config/i386/pmm_malloc.h: Likewise.
5424         * config/i386/pmmintrin.h: Likewise.
5425         * config/i386/smmintrin.h: Likewise.
5426         * config/i386/sol2-c1.asm: Likewise.
5427         * config/i386/sol2-ci.asm: Likewise.
5428         * config/i386/sol2-cn.asm: Likewise.
5429         * config/i386/sol2-gc1.asm: Likewise.
5430         * config/i386/tmmintrin.h: Likewise.
5431         * config/i386/unix.h: Likewise.
5432         * config/i386/w32-unwind.h: Likewise.
5433         * config/i386/wmmintrin.h: Likewise.
5434         * config/i386/x86-64.h: Likewise.
5435         * config/i386/x86intrin.h: Likewise.
5436         * config/i386/xmmintrin.h: Likewise.
5437         * config/ia64/crtbegin.asm: Likewise.
5438         * config/ia64/crtend.asm: Likewise.
5439         * config/ia64/crtfastmath.c: Likewise.
5440         * config/ia64/crti.asm: Likewise.
5441         * config/ia64/crtn.asm: Likewise.
5442         * config/ia64/fde-glibc.c: Likewise.
5443         * config/ia64/lib1funcs.asm: Likewise.
5444         * config/ia64/linux-unwind.h: Likewise.
5445         * config/ia64/quadlib.c: Likewise.
5446         * config/ia64/unwind-ia64.c: Likewise.
5447         * config/linux.h: Likewise.
5448         * config/m32c/m32c-lib1.S: Likewise.
5449         * config/m32c/m32c-lib2-trapv.c: Likewise.
5450         * config/m32c/m32c-lib2.c: Likewise.
5451         * config/m32r/initfini.c: Likewise.
5452         * config/m68hc11/larith.asm: Likewise.
5453         * config/m68hc11/m68hc11-crt0.S: Likewise.
5454         * config/m68k/cf.md: Likewise.
5455         * config/m68k/crti.s: Likewise.
5456         * config/m68k/crtn.s: Likewise.
5457         * config/m68k/lb1sf68.asm: Likewise.
5458         * config/m68k/linux-unwind.h: Likewise.
5459         * config/mcore/crti.asm: Likewise.
5460         * config/mcore/crtn.asm: Likewise.
5461         * config/mcore/lib1.asm: Likewise.
5462         * config/mips/linux-unwind.h: Likewise.
5463         * config/mips/loongson.h: Likewise.
5464         * config/mips/mips16.S: Likewise.
5465         * config/mmix/crti.asm: Likewise.
5466         * config/mmix/crtn.asm: Likewise.
5467         * config/pa/fptr.c: Likewise.
5468         * config/pa/hpux-unwind.h: Likewise.
5469         * config/pa/lib2funcs.asm: Likewise.
5470         * config/pa/linux-atomic.c: Likewise.
5471         * config/pa/linux-unwind.h: Likewise.
5472         * config/pa/milli64.S: Likewise.
5473         * config/pa/quadlib.c: Likewise.
5474         * config/pa/stublib.c: Likewise.
5475         * config/picochip/libgccExtras/adddi3.asm: Likewise.
5476         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5477         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5478         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5479         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5480         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5481         * config/picochip/libgccExtras/divmod15.asm: Likewise.
5482         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5483         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5484         * config/picochip/libgccExtras/longjmp.asm: Likewise.
5485         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5486         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5487         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5488         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5489         * config/picochip/libgccExtras/setjmp.asm: Likewise.
5490         * config/picochip/libgccExtras/subdi3.asm: Likewise.
5491         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5492         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5493         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5494         * config/rs6000/750cl.h: Likewise.
5495         * config/rs6000/altivec.h: Likewise.
5496         * config/rs6000/biarch64.h: Likewise.
5497         * config/rs6000/crtresfpr.asm: Likewise.
5498         * config/rs6000/crtresgpr.asm: Likewise.
5499         * config/rs6000/crtresxfpr.asm: Likewise.
5500         * config/rs6000/crtresxgpr.asm: Likewise.
5501         * config/rs6000/crtsavfpr.asm: Likewise.
5502         * config/rs6000/crtsavgpr.asm: Likewise.
5503         * config/rs6000/darwin-asm.h: Likewise.
5504         * config/rs6000/darwin-fallback.c: Likewise.
5505         * config/rs6000/darwin-fpsave.asm: Likewise.
5506         * config/rs6000/darwin-ldouble.c: Likewise.
5507         * config/rs6000/darwin-tramp.asm: Likewise.
5508         * config/rs6000/darwin-unwind.h: Likewise.
5509         * config/rs6000/darwin-vecsave.asm: Likewise.
5510         * config/rs6000/darwin-world.asm: Likewise.
5511         * config/rs6000/e500crtres32gpr.asm: Likewise.
5512         * config/rs6000/e500crtres64gpr.asm: Likewise.
5513         * config/rs6000/e500crtres64gprctr.asm: Likewise.
5514         * config/rs6000/e500crtrest32gpr.asm: Likewise.
5515         * config/rs6000/e500crtrest64gpr.asm: Likewise.
5516         * config/rs6000/e500crtresx32gpr.asm: Likewise.
5517         * config/rs6000/e500crtresx64gpr.asm: Likewise.
5518         * config/rs6000/e500crtsav32gpr.asm: Likewise.
5519         * config/rs6000/e500crtsav64gpr.asm: Likewise.
5520         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5521         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5522         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5523         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5524         * config/rs6000/eabi-ci.asm: Likewise.
5525         * config/rs6000/eabi-cn.asm: Likewise.
5526         * config/rs6000/eabi.asm: Likewise.
5527         * config/rs6000/linux-unwind.h: Likewise.
5528         * config/rs6000/linux64.h: Likewise.
5529         * config/rs6000/paired.h: Likewise.
5530         * config/rs6000/paired.md: Likewise.
5531         * config/rs6000/ppc64-fp.c: Likewise.
5532         * config/rs6000/ppu_intrinsics.h: Likewise.
5533         * config/rs6000/rs6000.h: Likewise.
5534         * config/rs6000/si2vmx.h: Likewise.
5535         * config/rs6000/sol-ci.asm: Likewise.
5536         * config/rs6000/sol-cn.asm: Likewise.
5537         * config/rs6000/spe.h: Likewise.
5538         * config/rs6000/spu2vmx.h: Likewise.
5539         * config/rs6000/sysv4.h: Likewise.
5540         * config/rs6000/tramp.asm: Likewise.
5541         * config/rs6000/vec_types.h: Likewise.
5542         * config/s390/linux-unwind.h: Likewise.
5543         * config/s390/tpf-unwind.h: Likewise.
5544         * config/score/crti.asm: Likewise.
5545         * config/score/crtn.asm: Likewise.
5546         * config/sh/crt1.asm: Likewise.
5547         * config/sh/crti.asm: Likewise.
5548         * config/sh/crtn.asm: Likewise.
5549         * config/sh/divtab-sh4-300.c: Likewise.
5550         * config/sh/divtab-sh4.c: Likewise.
5551         * config/sh/divtab.c: Likewise.
5552         * config/sh/lib1funcs-4-300.asm: Likewise.
5553         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5554         * config/sh/lib1funcs.asm: Likewise.
5555         * config/sh/lib1funcs.h: Likewise.
5556         * config/sh/linux-atomic.asm: Likewise.
5557         * config/sh/linux-unwind.h: Likewise.
5558         * config/sh/shmedia.h: Likewise.
5559         * config/sh/sshmedia.h: Likewise.
5560         * config/sh/ushmedia.h: Likewise.
5561         * config/sparc/crtfastmath.c: Likewise.
5562         * config/sparc/linux-unwind.h: Likewise.
5563         * config/sparc/sol2-c1.asm: Likewise.
5564         * config/sparc/sol2-ci.asm: Likewise.
5565         * config/sparc/sol2-cn.asm: Likewise.
5566         * config/spu/divmodti4.c: Likewise.
5567         * config/spu/divv2df3.c: Likewise.
5568         * config/spu/float_disf.c: Likewise.
5569         * config/spu/float_unsdidf.c: Likewise.
5570         * config/spu/float_unsdisf.c: Likewise.
5571         * config/spu/float_unssidf.c: Likewise.
5572         * config/spu/mfc_multi_tag_release.c: Likewise.
5573         * config/spu/mfc_multi_tag_reserve.c: Likewise.
5574         * config/spu/mfc_tag_release.c: Likewise.
5575         * config/spu/mfc_tag_reserve.c: Likewise.
5576         * config/spu/mfc_tag_table.c: Likewise.
5577         * config/spu/multi3.c: Likewise.
5578         * config/spu/spu_internals.h: Likewise.
5579         * config/spu/spu_intrinsics.h: Likewise.
5580         * config/spu/spu_mfcio.h: Likewise.
5581         * config/spu/vec_types.h: Likewise.
5582         * config/spu/vmx2spu.h: Likewise.
5583         * config/stormy16/stormy16-lib2.c: Likewise.
5584         * config/svr4.h: Likewise.
5585         * config/sync.c: Likewise.
5586         * config/v850/lib1funcs.asm: Likewise.
5587         * config/vxlib-tls.c: Likewise.
5588         * config/vxlib.c: Likewise.
5589         * config/vxworks-dummy.h: Likewise.
5590         * config/xtensa/crti.asm: Likewise.
5591         * config/xtensa/crtn.asm: Likewise.
5592         * config/xtensa/ieee754-df.S: Likewise.
5593         * config/xtensa/ieee754-sf.S: Likewise.
5594         * config/xtensa/lib1funcs.asm: Likewise.
5595         * config/xtensa/lib2funcs.S: Likewise.
5596         * config/xtensa/linux-unwind.h: Likewise.
5597         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5598         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5599         * coretypes.h: Likewise.
5600         * crtstuff.c: Likewise.
5601         * defaults.h: Likewise.
5602         * dwarf2.h: Likewise.
5603         * emutls.c: Likewise.
5604         * gbl-ctors.h: Likewise.
5605         * gcov-io.h: Likewise.
5606         * ginclude/float.h: Likewise.
5607         * ginclude/iso646.h: Likewise.
5608         * ginclude/stdarg.h: Likewise.
5609         * ginclude/stdbool.h: Likewise.
5610         * ginclude/stddef.h: Likewise.
5611         * ginclude/stdfix.h: Likewise.
5612         * ginclude/stdint-gcc.h: Likewise.
5613         * ginclude/tgmath.h: Likewise.
5614         * gthr-aix.h: Likewise.
5615         * gthr-dce.h: Likewise.
5616         * gthr-gnat.c: Likewise.
5617         * gthr-gnat.h: Likewise.
5618         * gthr-lynx.h: Likewise.
5619         * gthr-mipssde.h: Likewise.
5620         * gthr-nks.h: Likewise.
5621         * gthr-posix.c: Likewise.
5622         * gthr-posix.h: Likewise.
5623         * gthr-posix95.h: Likewise.
5624         * gthr-rtems.h: Likewise.
5625         * gthr-single.h: Likewise.
5626         * gthr-solaris.h: Likewise.
5627         * gthr-tpf.h: Likewise.
5628         * gthr-vxworks.h: Likewise.
5629         * gthr-win32.h: Likewise.
5630         * gthr.h: Likewise.
5631         * libgcc2.c: Likewise.
5632         * libgcc2.h: Likewise.
5633         * libgcov.c: Likewise.
5634         * tsystem.h: Likewise.
5635         * typeclass.h: Likewise.
5636         * unwind-c.c: Likewise.
5637         * unwind-compat.h: Likewise.
5638         * unwind-dw2-fde-compat.c: Likewise.
5639         * unwind-dw2-fde-darwin.c: Likewise.
5640         * unwind-dw2-fde-glibc.c: Likewise.
5641         * unwind-dw2-fde.c: Likewise.
5642         * unwind-dw2-fde.h: Likewise.
5643         * unwind-dw2.c: Likewise.
5644         * unwind-dw2.h: Likewise.
5645         * unwind-generic.h: Likewise.
5646         * unwind-pe.h: Likewise.
5647         * unwind-sjlj.c: Likewise.
5648         * unwind.inc: Likewise.
5649         * config/arm/neon-gen.ml: Change generated copyright header to
5650         refer to version 3 of the GNU General Public License with
5651         version 3.1 of the GCC Runtime Library Exception and to point
5652         readers at the COPYING3 and COPYING3.RUNTIME files and the
5653         FSF's license web page.
5654         * config/arm/arm_neon.h: Regenerate.
5655
5656 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
5657
5658         * config/cris/cris.md: Change copyright header to refer to version
5659         3 of the GNU General Public License.
5660         * doc/install.texi2html: Change copyright header to refer to version
5661         3 of the GNU General Public License and to point readers at the
5662         COPYING3 file and the FSF's license web page.
5663         * config/vax/linux.h: Likewise.
5664
5665 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5666
5667         * config/i386/i386.md (cmpcc): New.
5668         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5669         (sync_compare_and_swap_cc*): Delete.
5670
5671         * config/s390/s390.c (s390_compare_emitted): Remove.
5672         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5673         s390_compare_emitted used to be handled.  Assert that modes match.
5674         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5675         refer to sync_compare_and_swap_ccsi.
5676         * config/s390/s390.h (s390_compare_emitted): Remove.
5677         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5678         instead of s390_compare_emitted.
5679         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5680         instead of s390_compare_emitted.
5681         * config/s390/s390.md (cmpcc): New.
5682         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5683         CC_REGNUM, do not pretend it's set.
5684         (sync_compare_and_swap_cc*): Delete.
5685         * config/s390/predicates.md (cc_reg_operand): New.
5686
5687         * expr.c (sync_compare_and_swap_cc): Delete.
5688         * optabs.h (sync_compare_and_swap_cc): Delete.
5689         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5690         is being used with can_compare_p.
5691         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5692         (find_cc_set): New.
5693         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5694         look for a MODE_CC set instead.  Use emit_store_flag.
5695         (expand_compare_and_swap_loop): Likewise, with some additional
5696         complication to avoid a force_reg when useless.  Use
5697         emit_cmp_and_jump_insns.
5698         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5699         * doc/md.texi (sync_compare_and_swap_cc): Merge with
5700         sync_compare_and_swap documentation.
5701
5702 2009-04-09  Jan Hubicka  <jh@suse.cz>
5703
5704         * except.c (find_prev_try): Break out from ....
5705         (duplicate_eh_regions): ... here; properly update prev_try pointers
5706         when duplication part of tree.
5707         (dump_eh_tree): Improve dumping.
5708         (verify_eh_region): New.
5709         (verify_eh_tree): Use it.
5710
5711 2009-04-06  Richard Guenther  <rguenther@suse.de>
5712
5713         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5714         &ARRAY addresses by adjusting their types and prepending
5715         a conversion.
5716         * tree-cfg.c (verify_gimple_assign_single): Verify that
5717         addresses are correct.
5718
5719 2009-04-09  Richard Guenther  <rguenther@suse.de>
5720
5721         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5722         indices into an array reference if possible.
5723         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5724         Fold POINTER_PLUS_EXPR statements with invariant address.
5725
5726 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
5727
5728         PR target/39634
5729         * config.gcc (powerpc64-*-linux*): Always build biarch.
5730
5731 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
5732
5733         PR c/39613
5734         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5735         it and pedwarn if this results in an INTEGER_CST.
5736
5737 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5738
5739         * doc/install.texi: Update minimum GMP version.  Remove obsolete
5740         text in MPFR section.
5741
5742 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
5743
5744         * dwarf2out.c (class_scope_p): New static inline.
5745         (class_or_namespace_scope_p): Use it.
5746         (gen_variable_die): Use DW_TAG_member tag for static data member
5747         declarations instead of DW_TAG_variable.
5748
5749         PR middle-end/39573
5750         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5751         variables.
5752
5753 2009-04-08  Richard Guenther  <rguenther@suse.de>
5754
5755         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5756         valueize random data.
5757
5758 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
5759
5760         * config.gcc (aix tm_file):  Add aix-stdint.h.
5761         (aix tm clause use_gcc_stdint):  Set to wrap.
5762         * config/rs6000/aix-stdint.h:  New file.
5763
5764 2009-04-08  Richard Guenther  <rguenther@suse.de>
5765
5766         PR middle-end/36291
5767         * tree-dfa.c (add_referenced_var): Do not recurse into
5768         global initializers.
5769         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5770         exposed variables.
5771         (fold_const_aggregate_ref): Likewise.
5772
5773 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
5774
5775         * recog.c (ordered_comparison_operator): New.
5776         * gensupport.c (std_preds): Add it.
5777         * doc/md.texi (Machine-Independent Predicates): Document it.
5778
5779 2009-04-08  Jan Hubicka  <jh@suse.cz>
5780
5781         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5782         * function.h (rtl_eh): Remove exception_handler_label_map.
5783         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5784         remove_exception_handler_label, for_each_eh_label_1): Remove.
5785         (rtl_remove_unreachable_regions): Remove.
5786         (convert_from_eh_region_ranges): Do not remove unreachable regions.
5787         (find_exception_handler_labels): Don't build the hashtable.
5788         (maybe_remove_eh_handler): Remove.
5789         (for_each_eh_label): Rewrite to walk the tree.
5790         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5791         * except.h (maybe_remove_eh_handler): Remove.
5792         * passes.c (init_optimization_passes): Schedule second EH cleanup
5793         before out-of-ssa.
5794         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5795         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5796
5797 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
5798
5799         * genoutput.c (validate_optab_operands): New.
5800         (gen_insn, gen_expand): Call it.
5801
5802         * genflags.c (gen_insn): Detect misused iterators.
5803         (main): Pass line_no to gen_insn, exit with status 1 on error.
5804
5805         * genextract.c (line_no): Make global.
5806         (VEC_safe_set_locstr): Change assertion to error message.
5807         (main): Exit with status 1 on error.
5808
5809 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
5810
5811         PR c/39614
5812         PR c/39673
5813         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5814         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5815         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5816         * c-convert.c (convert): Do not call fold on results of conversion
5817         functions when the result is a C_MAYBE_CONST_EXPR.
5818         * c-parser.c (c_parser_postfix_expression): Do not fold condition
5819         of __builtin_choose_expr.
5820         * c-typeck.c (remove_c_maybe_const_expr): New.
5821         (build_unary_op, build_conditional_expr, build_compound_expr,
5822         build_binary_op, c_objc_common_truthvalue_conversion): Call
5823         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5824         integer operands.
5825
5826 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
5827
5828         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
5829         CODE to produce a new one. Add a prototype to use fold_convert_const
5830
5831 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5832
5833         PR bootstrap/39660
5834         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5835         mix declarations and code.
5836
5837 2009-04-08  Ben Elliston  <bje@au.ibm.com>
5838
5839         * gcc.c: Replace `CC' with `GCC' throughout.
5840
5841 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
5842
5843         * doc/invoke.texi: Document Atom support.
5844
5845 2009-04-07  Jason Merrill  <jason@redhat.com>
5846
5847         PR c++/25185
5848         * c-common.h, c-common.c: Add flag_pretty_templates.
5849         * c-opts.c (c_common_handle_option): Set it.
5850         * c.opt: Add -fno-pretty-templates.
5851         * doc/invoke.texi (C++ Dialect Options): Likewise.
5852
5853 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
5854
5855         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
5856         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5857         (ia64_expand_builtin): Likewise.
5858
5859 2009-04-07  Martin Jambor  <mjambor@suse.cz>
5860
5861         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
5862         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
5863         ADDR_EXPRS are include too.
5864
5865 2009-04-07  Richard Guenther  <rguenther@suse.de>
5866
5867         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
5868         decls are only used if passes as parameters or if they are
5869         local statics and the call is not to a builtin.
5870         (call_may_clobber_ref_p_1): Likewise.
5871
5872 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5873
5874         * expr.c (do_store_flag): Remove last argument.  Simplify code
5875         to avoid duplication of tests already done by can_compare_p.
5876         (expand_expr_real_1): Adjust caller.
5877
5878 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5879
5880         * optabs.c (can_compare_p): Test the predicate of a
5881         cbranch and cstore pattern.
5882
5883 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5884
5885         * expr.c (convert_move): Use emit_store_flag instead of
5886         "emulating" it.
5887
5888 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5889
5890         * config/i386/i386.c (ix86_compare_emitted): Remove.
5891         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
5892         ix86_compare_op0 like ix86_compare_emitted used to be handled.
5893         * config/i386/i386.h (ix86_compare_emitted): Remove.
5894         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
5895         instead of ix86_compare_emitted.
5896         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
5897
5898 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
5899
5900         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
5901         Add t-sysroot-suffix to tmake_file.
5902         * config/print-sysroot-suffix.sh: New file.
5903         * config/t-sysroot-suffix: New file.
5904
5905 2009-04-07  Ben Elliston  <bje@au.ibm.com>
5906
5907         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
5908         as the latter produces a warning when the target does not support
5909         infinity.
5910
5911 2009-04-07  Ben Elliston  <bje@au.ibm.com>
5912
5913         * dfp.c: Replace type punning assignments with memcpy throughout.
5914         * Makefile.in (dfp.o-warn): Remove.
5915
5916 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
5917
5918         PR target/39634
5919         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
5920         Include soft-fp/t-softfp after rs6000/t-linux64.
5921
5922 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5923
5924         * stor-layout.c (set_sizetype): Use the full precision of their
5925         machine mode for bitsize types.
5926
5927 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
5928
5929         * config/i386/i386.md: Revert 2 accidental checkins.
5930
5931 2009-04-06  Joey Ye  <joey.ye@intel.com>
5932             Xuepeng Guo  <xuepeng.guo@intel.com>
5933             H.J. Lu  <hongjiu.lu@intel.com>
5934
5935         Atom pipeline model, tuning and insn selection.
5936         * config.gcc (atom): Add atom config options and target.
5937
5938         * config/i386/atom.md: New.
5939
5940         * config/i386/i386.c (atom_cost): New cost.
5941         (m_ATOM): New macro flag.
5942         (initial_ix86_tune_features): Set m_ATOM.
5943         (x86_accumulate_outgoing_args): Likewise.
5944         (x86_arch_always_fancy_math_387): Likewise.
5945         (processor_target): Add Atom cost.
5946         (cpu_names): Add Atom cpu name.
5947         (override_options): Set Atom ISA.
5948         (ix86_issue_rate): New case PROCESSOR_ATOM.
5949         (ix86_adjust_cost): Likewise.
5950
5951         * config/i386/i386.h (TARGET_ATOM): New target macro.
5952         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5953         (TARGET_OPT_AGU): New target option.
5954         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5955         (processor_type): Add PROCESSOR_ATOM.
5956
5957         * config/i386/i386.md (cpu): Add new value "atom".
5958         (use_carry, movu): New attr.
5959         (atom.md): Include atom.md.
5960         (adddi3_carry_rex64): Set attr "use_carry".
5961         (addqi3_carry): Likewise.
5962         (addhi3_carry): Likewise.
5963         (addsi3_carry): Likewise.
5964         (*addsi3_carry_zext): Likewise.
5965         (subdi3_carry_rex64): Likewise.
5966         (subqi3_carry): Likewise.
5967         (subhi3_carry): Likewise.
5968         (subsi3_carry): Likewise.
5969         (x86_movdicc_0_m1_rex64): Likewise.
5970         (*x86_movdicc_0_m1_se): Likewise.
5971         (x86_movsicc_0_m1): Likewise.
5972         (*x86_movsicc_0_m1_se): Likewise.
5973         (*adddi_1_rex64): Emit add insn as much as possible.
5974         (*addsi_1): Likewise.
5975         (return_internal): Set atom_unit.
5976         (return_internal_long): Likewise.
5977         (return_pop_internal): Likewise.
5978         (*rcpsf2_sse): Set atom_sse_attr attr.
5979         (*qrt<mode>2_sse): Likewise.
5980         (*prefetch_sse): Likewise.
5981
5982         * config/i386/i386-c.c (ix86_target_macros_internal): New case
5983         PROCESSOR_ATOM.
5984         (ix86_target_macros_internal): Likewise.
5985
5986         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
5987         (*prefetch_sse_rex): Likewise.
5988         (sse_rcpv4sf2): Likewise.
5989         (sse_vmrcpv4sf2): Likewise.
5990         (sse_sqrtv4sf2): Likewise.
5991         (<sse>_vmsqrt<mode>2): Likewise.
5992         (sse_ldmxcsr): Likewise.
5993         (sse_stmxcsr): Likewise.
5994         (*sse_sfence): Likewise.
5995         (sse2_clflush): Likewise.
5996         (*sse2_mfence): Likewise.
5997         (*sse2_lfence): Likewise.
5998         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
5999         (<sse>_movup<ssemodesuffixf2c>): Likewise.
6000         (avx_movdqu<avxmodesuffix>): Likewise.
6001         (avx_lddqu<avxmodesuffix>): Likewise.
6002         (sse2_movntv2di): Change attr "type" to "ssemov".
6003         (sse2_movntsi): Likewise.
6004         (rsqrtv8sf2): Change attr "type" to "sseadd".
6005         (sse3_addsubv2df3): Set attr "atom_unit".
6006         (sse3_h<plusminus_insn>v4sf3): Likewise.
6007         (*sse2_pmaddwd): Likewise.
6008         (*vec_extractv2di_1_rex64): Likewise.
6009         (*vec_extractv2di_1_avx): Likewise.
6010         (sse2_psadbw): Likewise.
6011         (ssse3_phaddwv8hi3): Likewise.
6012         (ssse3_phaddwv4hi3): Likewise.
6013         (ssse3_phadddv4si3): Likewise.
6014         (ssse3_phadddv2si3): Likewise.
6015         (ssse3_phaddswv8hi3): Likewise.
6016         (ssse3_phaddswv4hi3): Likewise.
6017         (ssse3_phsubwv8hi3): Likewise.
6018         (ssse3_phsubwv4hi3): Likewise.
6019         (ssse3_phsubdv4si3): Likewise.
6020         (ssse3_phsubdv2si3): Likewise.
6021         (ssse3_phsubswv8hi3): Likewise.
6022         (ssse3_phsubswv4hi3): Likewise.
6023         (ssse3_pmaddubsw128): Likewise.
6024         (sse3_pmaddubsw: Likewise.
6025         (ssse3_palignrti): Likewise.
6026         (ssse3_palignrdi): Likewise.
6027
6028 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
6029
6030         * doc/install.texi (Specific): Fix two cross-references to MinGW.
6031
6032 2009-04-06  Richard Guenther  <rguenther@suse.de>
6033
6034         PR tree-optimization/28868
6035         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6036         of which PHI results we inserted.
6037         (insert_into_preds_of_block): Record inserted PHIs.
6038         (eliminate): Eliminate redundant PHI nodes.
6039         (init_pre): Init inserted_phi_names.
6040
6041 2009-04-06  Richard Guenther  <rguenther@suse.de>
6042
6043         PR tree-optimization/39643
6044         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6045         IMAGPART_EXPRs of complex constants.
6046         (execute_fold_all_builtins): If we folded a call queue
6047         TODO_update_address_taken.
6048
6049 2009-04-06  Jan Hubicka  <jh@suse.cz>
6050
6051         PR middle-end/39659
6052         * except.c (remove_unreachable_regions): Propagate may_contain_throw
6053         flag.
6054
6055 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
6056
6057         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6058         delay slot.
6059         (ic_invalidate_array): Likewise.
6060
6061 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6062
6063         * calls.c (emit_library_call_value_1): Fix a problem with parameter
6064         alignment for library calls.
6065
6066 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
6067
6068         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
6069         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
6070         * config/i386/mingw-stdint.h:  New file.
6071
6072 2009-04-05  Richard Guenther  <rguenther@suse.de>
6073
6074         PR tree-optimization/39648
6075         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6076         our &A vs. &A[0] IL deficiencies.
6077
6078 2009-04-04  Jan Hubicka  <jh@suse.cz>
6079
6080         * except.c (sjlj_find_directly_reachable_regions): Be ready for
6081         removed toplevel regions.
6082         (sjlj_mark_call_sites): Likewise.
6083
6084 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
6085
6086         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
6087         (cygwin tm clause use_gcc_stdint):  Set to wrap.
6088         * config/i386/cygwin-stdint.h:  New file.
6089
6090 2009-04-04  Richard Guenther  <rguenther@suse.de>
6091
6092         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6093         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6094         single-argument PHIs if we are in loop-closed SSA form.
6095         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6096         for the pre-condition.
6097         (slpeel_tree_peel_loop_to_edge): Likewise.
6098         (vect_build_loop_niters): Take an optional sequence to append stmts.
6099         (vect_generate_tmps_on_preheader): Likewise.
6100         (vect_do_peeling_for_loop_bound): Take extra guards for the
6101         pre-condition.
6102         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
6103         the cost model check.
6104         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
6105         guards if we are going to peel.  Do not apply versioning in that case.
6106         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6107         (vect_do_peeling_for_loop_bound): Likewise.
6108         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6109         loop bound only record extra pre-conditions, do not apply loop
6110         versioning.
6111
6112 2009-04-04  Richard Guenther  <rguenther@suse.de>
6113
6114         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6115         renaming code.
6116
6117 2009-04-04  Jan Hubicka  <jh@suse.cz>
6118
6119         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6120         last_basic_block for size of bb->index indexed array.
6121         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6122         compute_out, link_btr_uses, build_btr_def_use_webs,
6123         build_btr_def_use_webs, migrate_btr_defs): Likewise.
6124
6125 2009-04-04  Jan Hubicka  <jh@suse.cz>
6126
6127         * except.c (remove_eh_handler_and_replace): Break out from ...
6128         (remove_eh_handler): ... here.
6129         (bring_to_root): New function.
6130         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6131         handled ones, bring others to root of tree.
6132
6133 2009-04-04  Jan Hubicka  <jh@suse.cz>
6134
6135         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6136         (all_phis_safe_to_merge): New function.
6137         (update_info): New structure.
6138         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6139         (cleanup_empty_eh): Update SSA if possible.
6140
6141 2009-04-04  Richard Guenther  <rguenther@suse.de>
6142
6143         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6144         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6145         (append_vuse): Likewise.
6146
6147 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
6148
6149         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6150         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6151         instead of REG_UNSAVED for DW_CFA_undefined.
6152         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6153         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6154         outermost frame.
6155
6156 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
6157
6158         PR target/39501
6159         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6160         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6161         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6162
6163 2009-04-04  Richard Guenther  <rguenther@suse.de>
6164
6165         PR tree-optimization/8781
6166         PR tree-optimization/37892
6167         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6168         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6169         (valueize_refs): Call it for *& valueizations.
6170         (shared_reference_ops_from_ref): Rename to ...
6171         (valueize_shared_reference_ops_from_ref): ... this and valueize.
6172         (shared_reference_ops_from_call): Rename to ...
6173         (valueize_shared_reference_ops_from_call): ... this and valueize.
6174         (vn_reference_lookup): Update.
6175         (visit_reference_op_call): Likewise.
6176         * tree-ssa-pre.c (phi_translate_1): Fold *&.
6177         (eliminate): Value-replace the call address in call statements.
6178
6179 2009-04-04  Richard Guenther  <rguenther@suse.de>
6180
6181         PR tree-optimization/39636
6182         * tree-ssa-forwprop.c
6183         (forward_propagate_addr_into_variable_array_index): Check for
6184         GIMPLE_ASSIGN before accessing the rhs code.
6185
6186 2009-04-03  Jason Merrill  <jason@redhat.com>
6187
6188         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6189
6190 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
6191
6192         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6193         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6194         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6195         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6196         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6197         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6198         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6199         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6200         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6201         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6202         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6203         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6204         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6205         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6206         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6207         Use fr_reg_or_fp01_operand instead of fr_register_operand
6208
6209         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6210         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6211         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6212
6213 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
6214
6215         PR rtl-optimization/39607
6216         PR rtl-optimization/39631
6217
6218         Revert:
6219
6220         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6221         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6222         instead of DF_LR_OUT.
6223         * ira-lives.c (process_bb_node_lives): Ditto.
6224         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6225         instead of DF_LR_{OUT,IN}.
6226         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6227         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6228
6229 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
6230
6231         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6232         (execute_lower_omp): Always run but take the short way out if -fopenmp
6233         is not given.
6234         (gate_lower_omp): Remove, forcing the pass manager to always run the
6235         pass and always set PROP_gimple_lomp.
6236         (pass_lower_omp): Remove gate function.
6237         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6238         PROP_trees.  Instead, require it.
6239         * ipa-cp.c (pass_ipa_cp): Likewise.
6240         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6241         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6242         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6243         and PROP_gimple_leh.
6244
6245 2009-04-03  Richard Guenther  <rguenther@suse.de>
6246
6247         PR middle-end/13146
6248         PR tree-optimization/23940
6249         PR tree-optimization/33237
6250         PR middle-end/33974
6251         PR middle-end/34093
6252         PR tree-optimization/36201
6253         PR tree-optimization/36230
6254         PR tree-optimization/38049
6255         PR tree-optimization/38207
6256         PR tree-optimization/38230
6257         PR tree-optimization/38301
6258         PR tree-optimization/38585
6259         PR middle-end/38895
6260         PR tree-optimization/38985
6261         PR tree-optimization/39299
6262         * tree-ssa-structalias.h: Remove.
6263         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6264         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6265         (struct vuse_element_d): Remove.
6266         (struct vuse_vec_d): Likewise.
6267         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6268         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6269         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6270         VUSE_ELEMENT_VAR): Likewise.
6271         (struct voptype_d): Likewise.
6272         (NUM_VOP_FREE_BUCKETS): Likewise.
6273         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6274         (struct stmt_operands_d): Remove.
6275         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6276         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6277         VDEF_NUM, VDEF_VECT): Likewise.
6278         (copy_virtual_operands): Remove.
6279         (operand_build_cmp): Likewise.
6280         (create_ssa_artificial_load_stmt): Likewise.
6281         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6282         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6283         vuse_index and mayuse_index members.  Pack and move done and iter_type
6284         members to the front.
6285         (SSA_OP_VMAYUSE): Remove.
6286         (SSA_OP_VIRTUAL_USES): Adjust.
6287         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6288         (unlink_stmt_vdef): Declare.
6289         (add_to_addressable_set): Remove.
6290         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6291         (vrp_visit_stmt): Likewise.
6292         * doc/tree-ssa.texi (Alias analysis): Update.
6293         * doc/invoke.texi (max-aliased-vops): Remove docs.
6294         (avg-aliased-vops): Likewise.
6295         * tree-into-ssa.c (syms_to_rename): Remove.
6296         (need_to_update_vops_p): Likewise.
6297         (need_to_initialize_update_ssa_p): Rename to ...
6298         (update_ssa_initialized_fn): ... this.  Track function we are
6299         initialized for.
6300         (symbol_marked_for_renaming): Simplify.
6301         (add_new_name_mapping): Do not set need_to_update_vops_p.
6302         (dump_currdefs): Use SYMS_TO_RENAME.
6303         (rewrite_update_stmt): Always walk all uses/defs.
6304         (dump_update_ssa): Adjust.
6305         (init_update_ssa): Take function argument.  Track what we are
6306         initialized for.
6307         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6308         (create_new_def_for): Initialize for cfun, assert we are initialized
6309         for cfun.
6310         (mark_sym_for_renaming): Simplify.
6311         (mark_set_for_renaming): Do not initialize update-ssa.
6312         (need_ssa_update_p): Simplify.  Take function argument.
6313         (name_mappings_registered_p): Assert we ask for the correct function.
6314         (name_registered_for_update_p): Likewise.
6315         (ssa_names_to_replace): Likewise.
6316         (release_ssa_name_after_update_ssa): Likewise.
6317         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
6318         (dump_decl_set): Do not print a newline.
6319         (debug_decl_set): Do it here.
6320         (dump_update_ssa): And here.
6321         * tree-ssa-loop-im.c (move_computations): Adjust.
6322         (movement_possibility): Likewise.
6323         (determine_max_movement): Likewise.
6324         (gather_mem_refs_stmt): Likewise.
6325         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6326         or NAME_MEMORY_TAG.
6327         * tree-complex.c (update_all_vops): Remove.
6328         (expand_complex_move): Adjust.
6329         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6330         Simplify test for memory referencing statement.  Exclude
6331         non-invariant ADDR_EXPRs.
6332         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6333         * tree-loop-distribution.c (generate_memset_zero): Adjust.
6334         (rdg_flag_uses): Likewise.
6335         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6336         related code.
6337         (tree_optimize_tail_calls_1): Also split the
6338         edge from the entry block if we have degenerate PHI nodes in
6339         the first basic block.
6340         * tree.c (init_ttree): Remove memory-tag related code.
6341         (tree_code_size): Likewise.
6342         (tree_node_structure): Likewise.
6343         (build7_stat): Re-write to be build6_stat.
6344         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6345         (SSA_VAR_P): Adjust.
6346         (struct tree_memory_tag): Remove.
6347         (struct tree_memory_partition_tag): Likewise.
6348         (union tree_node): Adjust.
6349         (build7): Re-write to be build6.
6350         * tree-pass.h (pass_reset_cc_flags): Remove.
6351         (TODO_update_address_taken): New flag.
6352         (pass_simple_dse): Remove.
6353         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6354         * params.h (MAX_ALIASED_VOPS): Remove.
6355         (AVG_ALIASED_VOPS): Likewise.
6356         * omp-low.c (expand_omp_taskreg): Update SSA form.
6357         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6358         aliases the lhs in a copy stmt.
6359         * tree-ssa-dse.c (struct address_walk_data): Remove.
6360         (memory_ssa_name_same): Likewise.
6361         (memory_address_same): Likewise.
6362         (get_kill_of_stmt_lhs): Likewise.
6363         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
6364         unused stores.  Look through PHI nodes into post-dominated regions.
6365         (dse_optimize_stmt): Simplify.  Properly remove stores.
6366         (tree_ssa_dse): Compute dominators.
6367         (execute_simple_dse): Remove.
6368         (pass_simple_dse): Likewise.
6369         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6370         gimple_loaded_syms and gimple_stored_syms computation.
6371         * toplev.c (dump_memory_report): Dump alias and pta stats.
6372         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6373         (vn_reference_eq): Likewise.
6374         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6375         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6376         valueize_vuses): Remove.
6377         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
6378         (get_def_ref_stmt_vuse): ... this.
6379         (vn_reference_lookup_2): New function.
6380         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6381         walking equivalent vuses.  Simplify.
6382         (vn_reference_lookup): Likewise.
6383         (vn_reference_insert): Likewise.
6384         (vn_reference_insert_pieces): Likewise.
6385         (visit_reference_op_call): Simplify.
6386         (visit_reference_op_load): Likewise.
6387         (visit_reference_op_store): Likewise.
6388         (init_scc_vn): Remove shared_lookup_vuses initialization.
6389         (free_scc_vn): Remove shared_lookup_vuses freeing.
6390         (sort_vuses, sort_vuses_heap): Remove.
6391         (get_ref_from_reference_ops): Export.
6392         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6393         vector with single vuse pointer.
6394         (vn_reference_lookup_pieces, vn_reference_lookup,
6395         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6396         (shared_vuses_from_stmt): Remove.
6397         (get_ref_from_reference_ops): Declare.
6398         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6399         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6400         memory-tag related code.
6401         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6402         (likely_value): Add comment, skip static-chain of call statements.
6403         (surely_varying_stmt_p): Adjust.
6404         (gimplify_and_update_call_from_tree): Likewise.
6405         (execute_fold_all_builtins): Do not rebuild alias info.
6406         (gimplify_and_update_call_from_tree): Properly update VOPs.
6407         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6408         (copy_ref_info): Remove memory-tag related code.
6409         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6410         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6411         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6412         computation.
6413         * tree-ssa-dom.c (gimple_p): Remove typedef.
6414         (eliminate_redundant_computations): Adjust.
6415         (record_equivalences_from_stmt): Likewise.
6416         (avail_expr_hash): Likewise.
6417         (avail_expr_eq): Likewise.
6418         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
6419         (stmt_makes_single_load): Likewise.
6420         (stmt_makes_single_store): Likewise.
6421         * tree-ssa-alias.c: Rewrite completely.
6422         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6423         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6424         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6425         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6426         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6427         Remove public functions.
6428         (pass_reset_cc_flags): Remove.
6429         (pass_build_alias): Move ...
6430         * tree-ssa-structalias.c (pass_build_alias): ... here.
6431         * tree-ssa-alias.c (may_be_aliased): Move ...
6432         * tree-flow-inline.h (may_be_aliased): ... here.
6433         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6434         count_uses_and_derefs): Move ...
6435         * gimple.c: ... here.
6436         * gimple.h (count_uses_and_derefs): Declare.
6437         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6438         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6439         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6440         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6441         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6442         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6443         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6444         New functions.
6445         * tree-dfa.c (refs_may_alias_p): Move ...
6446         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
6447         * tree-ssa-alias.h: New file.
6448         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6449         (statement_sink_location): Likewise.
6450         * opts.c (decode_options): Do not adjust max-aliased-vops or
6451         avg-aliased-vops values.
6452         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6453         (TV_CALL_CLOBBER): Likewise.
6454         (TV_FLOW_SENSITIVE): Likewise.
6455         (TV_FLOW_INSENSITIVE): Likewise.
6456         (TV_MEMORY_PARTITIONING): Likewise.
6457         (TV_ALIAS_STMT_WALK): New timevar.
6458         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6459         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6460         (get_address_description): Remove memory-tag related code.
6461         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6462         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6463         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6464         and immediate uses in statements.  Document.
6465         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6466         (dump_symbols): Remove.
6467         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6468         * alias.c (get_deref_alias_set): New function split out from ...
6469         (get_alias_set): ... here.
6470         * alias.h (get_deref_alias_set): Declare.
6471         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6472         type parameter.  Remove restrict pointer handling.  Create a
6473         ref-all pointer in case type-based alias sets do not conflict.
6474         (vect_analyze_data_refs): Remove SMT related code.
6475         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6476         (vectorizable_load): Likewise.
6477         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6478         (DR_SYMBOL_TAG, DR_VOPS): Remove.
6479         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6480         Ignore vops and SMTs.
6481         (dr_analyze_alias): Likewise..
6482         (free_data_ref): Likewise.
6483         (create_data_ref): Likewise.
6484         (analyze_all_data_dependences): Likewise.
6485         (get_references_in_stmt): Adjust.
6486         * tree-flow-inline.h (gimple_aliases_computed_p,
6487         gimple_addressable_vars, gimple_call_clobbered_vars,
6488         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6489         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6490         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6491         gimple_mem_ref_stats): Remove.
6492         (gimple_vop): New function.
6493         (op_iter_next_use): Remove vuses and mayuses cases.
6494         (op_iter_next_def): Remove vdefs case.
6495         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6496         (clear_and_done_ssa_iter): Do not set removed fields.
6497         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
6498         Assert we are not iterating over vuses or vdefs if not also
6499         iterating over uses or defs.
6500         (op_iter_init_use): Likewise.
6501         (op_iter_init_def): Likewise.
6502         (op_iter_next_vdef): Remove.
6503         (op_iter_next_mustdef): Likewise.
6504         (op_iter_init_vdef): Likewise.
6505         (compare_ssa_operands_equal): Likewise.
6506         (link_use_stmts_after): Handle vuse operand.
6507         (is_call_used): Use is_call_clobbered.
6508         (is_call_clobbered): Global variables are always call clobbered,
6509         query the call-clobbers bitmap.
6510         (mark_call_clobbered): Ignore global variables.
6511         (clear_call_clobbered): Likewise.
6512         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6513         virtual operands sanity check.
6514         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6515         Remove.
6516         (TARGET_MEM_REF): Remove TMR_TAG operand.
6517         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6518         Remove call-clobber related code.
6519         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
6520         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6521         partitions or escape reason.
6522         (get_single_def_stmt, get_single_def_stmt_from_phi,
6523         get_single_def_stmt_with_phi): Remove.
6524         (dump_referenced_vars): Tidy.
6525         (get_ref_base_and_extent): Allow bare decls.
6526         (collect_dfa_stats): Adjust.
6527         * graphite.c (rename_variables_in_stmt): Adjust.
6528         (graphite_copy_stmts_from_block): Likewise.
6529         (translate_clast): Likewise.
6530         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6531         (EXPR_DIES): New.
6532         (translate_vuse_through_block): Use the oracle.
6533         (phi_translate_1): Adjust.
6534         (value_dies_in_block_x): Use the oracle.  Cache the outcome
6535         in EXPR_DIES.
6536         (valid_in_sets): Check if the VUSE for
6537         a REFERENCE is available.
6538         (eliminate): Do not remove stmts during elimination,
6539         instead queue and remove them afterwards.
6540         (do_pre): Do not rebuild alias info.
6541         (pass_pre): Run TODO_rebuild_alias before PRE.
6542         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6543         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6544         (mark_all_v_defs_stmt): Remove.
6545         (mark_all_v_defs_seq): Adjust.
6546         (sra_replace): Likewise.
6547         (scalarize_use): Likewise.
6548         (scalarize_copy): Likewise.
6549         (scalarize_init): Likewise.
6550         (scalarize_ldst): Likewise.
6551         (todoflags): Remove.
6552         (tree_sra): Do not rebuild alias info.
6553         (tree_sra_early): Adjust.
6554         (pass_sra): Run TODO_update_address_taken before SRA.
6555         * tree-predcom.c (set_alias_info): Remove.
6556         (prepare_initializers_chain): Do not call it.
6557         (mark_virtual_ops_for_renaming): Adjust.
6558         (mark_virtual_ops_for_renaming_list): Remove.
6559         (initialize_root_vars): Adjust.
6560         (initialize_root_vars_lm): Likewise.
6561         (prepare_initializers_chain): Likewise.
6562         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6563         (may_propagate_copy_into_stmt): Likewise.
6564         (merge_alias_info): Do nothing for now.
6565         (propagate_tree_value_into_stmt): Adjust.
6566         (stmt_may_generate_copy): Likewise.
6567         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6568         not mark symbols for renaming.
6569         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6570         with the same statement, make sure to update the new pointed-to one.
6571         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6572         call statements, do not mark symbols for renaming.
6573         (mark_operand_necessary): Dump something.
6574         (ref_may_be_aliased): New function.
6575         (mark_aliased_reaching_defs_necessary_1): New helper function.
6576         (mark_aliased_reaching_defs_necessary): Likewise.
6577         (mark_all_reaching_defs_necessary_1): Likewise.
6578         (mark_all_reaching_defs_necessary): Likewise.
6579         (propagate_necessity): Do not process virtual PHIs.  For
6580         non-aliased loads mark all reaching definitions as necessary.
6581         For aliased loads and stores mark the immediate dominating
6582         aliased clobbers as necessary.
6583         (visited): New global static.
6584         (perform_tree_ssa_dce): Free visited bitmap after propagating
6585         necessity.
6586         (remove_dead_phis): Perform simple dead virtual PHI removal.
6587         (remove_dead_stmt): Properly unlink virtual operands when
6588         removing stores.
6589         (eliminate_unnecessary_stmts): Schedule PHI removal after
6590         stmt removal.
6591         * tree-ssa-ter.c (is_replaceable_p): Adjust.
6592         (process_replaceable): Likewise.
6593         (find_replaceable_in_bb): Likewise.
6594         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6595         based on the single gimple vop.
6596         (verify_flow_insensitive_alias_info): Remove.
6597         (verify_flow_sensitive_alias_info): Likewise.
6598         (verify_call_clobbering): Likewise.
6599         (verify_memory_partitions): Likewise.
6600         (verify_alias_info): Likewise.
6601         (verify_ssa): Adjust..
6602         (execute_update_addresses_taken): Export.  Update SSA
6603         manually.  Optimize only when optimizing.  Use a local bitmap.
6604         (pass_update_address_taken): Remove TODO_update_ssa, add
6605         TODO_dump_func.
6606         (pass_update_address_taken): Just use TODO_update_address_taken.
6607         (init_tree_ssa): Do not initialize addressable_vars.
6608         (verify_ssa): Verify new VUSE / VDEF properties.
6609         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6610         Do not call verify_alias_info.
6611         (delete_tree_ssa): Clear the VUSE, VDEF operands.
6612         Do not free the loaded and stored syms bitmaps.  Reset the escaped
6613         and callused solutions.  Do not free addressable_vars.
6614         Remove memory-tag related code.
6615         (warn_uninitialized_var): Aliases are always available.
6616         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6617         * lambda-code.c (can_put_in_inner_loop): Adjust.
6618         (can_put_after_inner_loop): Likewise.
6619         (perfect_nestify): Likewise.
6620         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6621         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6622         (vectorizable_conversion): Do not mark symbols for renaming.
6623         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6624         (expand_call_inline): Unlink the calls virtual operands before
6625         replacing it.
6626         (tree_function_versioning): Do not call update_ssa if we are not
6627         updating clones.  Simplify.
6628         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6629         (propagate_with_phi): Likewise..
6630         * tree-outof-ssa.c (create_temp): Remove memory tag and call
6631         clobber code.  Assert we are not aliased or global.
6632         * tree-flow.h: Include tree-ssa-alias.h
6633         (enum escape_type): Remove.
6634         (struct mem_sym_stats_d): Likewise.
6635         (struct mem_ref_stats_d): Likewise.
6636         (struct gimple_df): Add vop member.  Remove global_var,
6637         call_clobbered_vars, call_used_vars, addressable_vars,
6638         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
6639         escaped and callused members.
6640         (struct ptr_info_def): Remove all members, add points-to solution
6641         member pt.
6642         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6643         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6644         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6645         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6646         (tree-ssa-alias.o): Likewise.
6647         (toplev.o): Add tree-ssa-alias.h
6648         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6649         * gimple.c (gimple_set_bb): Fix off-by-one error.
6650         (is_gimple_reg): Do not handle memory tags.
6651         (gimple_copy): Also copy virtual operands.
6652         Delay updating the statement.  Do not reset loaded and stored syms.
6653         (gimple_set_stored_syms): Remove.
6654         (gimple_set_loaded_syms): Likewise.
6655         (gimple_call_copy_skip_args): Copy the virtual operands
6656         and mark the new statement modified.
6657         * tree-ssa-structalias.c (may_alias_p): Remove.
6658         (set_uids_in_ptset): Take the alias set to prune with as
6659         parameter.  Fold in the alias test of may_alias_p.
6660         (compute_points_to_sets): Compute whether a ptr is dereferenced
6661         in a local sbitmap.
6662         (process_constraint): Deal with &ANYTHING on the lhs, reject all
6663         other ADDRESSOF constraints on the lhs.
6664         (get_constraint_for_component_ref): Assert that we don't get
6665         ADDRESSOF constraints from the base of the reference.
6666         Properly generate UNKNOWN_OFFSET for DEREF if needed.
6667         (struct variable_info): Remove collapsed_to member.
6668         (get_varinfo_fc): Remove.
6669         (new_var_info): Do not set collapsed_to.
6670         (dump_constraint): Do not follow cycles.
6671         (dump_constraint_graph): Likewise.
6672         (build_pred_graph): Likewise.
6673         (build_succ_graph): Likewise.
6674         (rewrite_constraints): Likewise.
6675         (do_simple_structure_copy): Remove.
6676         (do_rhs_deref_structure_copy): Remove.
6677         (do_lhs_deref_structure_copy): Remove.
6678         (collapse_rest_of_var): Remove.
6679         (do_structure_copy): Re-implement.
6680         (pta_stats): New global variable.
6681         (dump_pta_stats): New function.
6682         (struct constraint_expr): Make offset signed.
6683         (UNKNOWN_OFFSET): Define special value.
6684         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6685         (solution_set_expand): New helper function split out from ...
6686         (do_sd_constraint): ... here.
6687         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
6688         (do_ds_constraint): Likewise.
6689         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
6690         and CALLUSED = *CALLUSED.
6691         (set_union_with_increment): Make inc argument signed.
6692         (type_safe): Remove.
6693         (get_constraint_for_ptr_offset): Handle unknown and negative
6694         constant offsets.
6695         (first_vi_for_offset): Handle offsets before start.  Bail
6696         out early for offsets beyond the variable extent.
6697         (first_or_preceding_vi_for_offset): New function.
6698         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6699         Together with ESCAPED = *ESCAPED this properly computes reachability.
6700         (find_what_var_points_to): New function.
6701         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6702         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6703         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6704         pt_solutions_intersect): New functions.
6705         (compute_call_used_vars): Remove.
6706         (compute_may_aliases): New main entry into PTA computation.
6707         * gimple.h (gimple_p): New typedef.
6708         (struct gimple_statement_base): Remove references_memory_p.
6709         (struct gimple_statement_with_memory_ops_base): Remove
6710         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
6711         members.
6712         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6713         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6714         gimple_set_references_memory): Remove.
6715         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6716         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6717         New functions.
6718         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6719         (verify_expr): Allow RESULT_DECL.
6720         (gimple_duplicate_bb): Do not copy virtual operands.
6721         (gimple_duplicate_sese_region): Adjust.
6722         (gimple_duplicate_sese_tail): Likewise.
6723         (mark_virtual_ops_in_region): Remove.
6724         (move_sese_region_to_fn): Do not call it.
6725         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6726         and pass_simple_dse.
6727         (execute_function_todo): Handle TODO_update_address_taken,
6728         call execute_update_addresses_taken for TODO_rebuild_alias.
6729         (execute_todo): Adjust.
6730         (execute_one_pass): Init dump files early.
6731         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6732         call-clobbered.
6733         (create_general_new_stmt): Clear vops.
6734         * tree-ssa-reassoc.c (get_rank): Adjust.
6735         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6736         symbols for renaming.
6737         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6738         (PARAM_AVG_ALIASED_VOPS): Likewise.
6739         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6740         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
6741         * tree-ssa-operands.c: Simplify for new virtual operand representation.
6742         (operand_build_cmp, copy_virtual_operands,
6743         create_ssa_artificial_load_stmt, add_to_addressable_set,
6744         gimple_add_to_addresses_taken): Remove public functions.
6745         (unlink_stmt_vdef): New function.
6746
6747 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
6748
6749         * config.gcc (powerpc-*-linux*): Merge variants.
6750
6751 2009-04-02  Chao-ying Fu  <fu@mips.com>
6752             James Grosbach  <james.grosbach@microchip.com>
6753
6754         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6755         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6756         cop0_sp_offset.
6757         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6758         keep_interrupts_masked_p, use_debug_exception_return_p.
6759         (mips_attribute_table): Add interrupt, use_shadow_register_set,
6760         keep_interrupts_masked, use_debug_exception_return.
6761         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6762         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6763         New functions.
6764         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6765         (mips_print_operand): Process COP0 registers to print $0 .. $31
6766         correctly for GAS to process.
6767         (mips_interrupt_extra_call_saved_reg_p): New function.
6768         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6769         extra registers.
6770         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6771         (mips_compute_frame_info): Add supports for interrupt context that
6772         includes doubleword accumulators and COP0 registers.
6773         (mips_for_each_saved_acc): New function.
6774         (mips_for_each_saved_gpr_and_fpr): Change the function name from
6775         mips_for_each_saved_reg.
6776         (mips_save_reg): Save accumulators.
6777         (mips_kernel_reg_p): A new for_each_rtx callback.
6778         (mips_expand_prologue): Support interrupt handlers.
6779         (mips_restore_reg): Restore accumulators.
6780         (mips_expand_epilogue): Support interrupt handlers.
6781         (mips_can_use_return_insn): Return false for interrupt handlers.
6782         (mips_epilogue_uses): New function.
6783         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6784         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6785         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6786         cop0_move): New instructions.
6787         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6788         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6789         defines.
6790         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6791         New defines.
6792         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6793         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6794         interrupt handlers, we use K0 as the temporary register.
6795         (EPILOGUE_USES): Change to a function call.
6796         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6797         handlers, we use K0 as the temporary register.
6798
6799         * doc/extend.texi (Function Attributes): Document interrupt,
6800         use_shadow_register_set, keep_interrupts_masked,
6801         use_debug_exception_return for MIPS attributes.
6802
6803 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
6804
6805         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6806         Remove a number of t-files from tmake_file.
6807         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6808         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6809         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6810         target_prototype, not TARGET_PROTOTYPE.
6811         (LINK_OS_GNU_SPEC): Define.
6812         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6813         and darwin-ldoubdle.c.
6814
6815 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6816
6817         PR driver/39293
6818         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6819         (cpp_options): Ditto.
6820         (default_compilers): Ditto.
6821         (display_help): Ditto.
6822         (process_command): Ditto.
6823         (do_spec_1): Ditto.
6824         (set_input): Use lbasename instead of duplicate code.
6825         (save_temps_prefix): New static for -save-temps=obj.
6826         (save_temps_length): Ditto.
6827
6828         * doc/invoke.texi (-save-temps=obj): Document new variant to
6829         -save-temps switch.
6830
6831 2009-04-02  Jeff Law  <law@redhat.com>
6832
6833         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6834         variable.
6835
6836 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6837
6838         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6839         * configure: Regenerated.
6840
6841 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6842
6843         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
6844         share the argument list.
6845
6846 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6847
6848         Merge
6849
6850         2009-02-12  Diego Novillo  <dnovillo@google.com>
6851
6852         * varpool.c (debug_varpool): New.
6853         * cgraph.h (debug_varpool): Declare.
6854
6855 2009-04-02  Jan Hubicka  <jh@suse.cz>
6856
6857         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
6858         pass.
6859
6860 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6861
6862         * config/i386/i386.c (ix86_abi): Move initialization to ...
6863         (override_options): Here.
6864
6865 2009-04-02  Christian Bruel  <christian.bruel@st.com>
6866
6867         * config/sh/sh.c (sh_dwarf_register_span): New function.
6868         (TARGET_DWARF_REGISTER_SPAN): Define.
6869         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
6870
6871 2009-04-02  Ira Rosen  <irar@il.ibm.com>
6872
6873         PR tree-optimization/39595
6874         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
6875         interleaved loads group is not  greater than the SLP group size.
6876
6877 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6878
6879         * builtins.c (is_builtin_name): New.
6880         (called_as_built_in): Use is_builtin_name.
6881         * tree.h (is_builtin_name): New.
6882         * varasm.c (incorporeal_function_p): Use is_builtin_name
6883
6884 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
6885
6886         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
6887
6888 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
6889
6890         PR c++/26693
6891         * c-decl.c (clone_underlying_type): Move this ...
6892         * c-common.c (set_underlying_type): ... here.
6893         Also, make sure the function properly sets TYPE_STUB_DECL() on
6894         the newly created typedef variant type.
6895         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
6896         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
6897         points.
6898
6899 2009-04-02  Richard Guenther  <rguenther@suse.de>
6900
6901         PR tree-optimization/37221
6902         * tree-flow.h (degenerate_phi_result): Declare.
6903         * tree-ssa-dom.c (degenerate_phi_result): Export.
6904         * tree-scalar-evolution.c (analyze_initial_condition): If
6905         the initial condition is defined by a degenerate PHI node
6906         use the degenerate value.
6907
6908 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
6909
6910         PR rtl-optimization/39588
6911         * combine.c (merge_outer_ops): Do not set the constant when this
6912         is not necessary.
6913         (simplify_shift_const_1): Do not modify it either in this case.
6914
6915 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
6916
6917         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
6918         tuning is deprecated if -mtune value is set to an Itanium1 variant.
6919
6920 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
6921
6922         PR c/29027
6923         * c-lex.c (interpret_float): Default (no suffix) is double.
6924
6925 2009-04-1  Xinliang David Li  <davidxl@google.com>
6926
6927         * config/i386/i386.c (legitimate_constant_p): Recognize
6928         all one vector constant.
6929
6930 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6931
6932         * config/vax/vax.c: Add #includes to silence warnings.
6933         Change #include order to silence two warnings.
6934
6935 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6936
6937         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
6938         (ASM_SPEC): Pass -k to the assembler for PIC code.
6939
6940 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6941
6942         * config.gcc: Add vax-*-linux* to the switch.
6943         * config/vax/linux.h: New file. (TARGET_VERSION,
6944         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6945
6946 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6947
6948         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
6949         Use predicate macros instead of GET_CODE() == foo.
6950         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
6951         ashlsi3, rotrsi3, <unnamed>): Likewise.
6952
6953 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6954
6955         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
6956         jbbccihi, jbbccisi): Remova trailing whitespace.
6957         * config/vax/constraints.md: Likewise.
6958         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6959         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6960         * config/vax/predicates.md: Likewise.
6961         * config/vax/vax.c (print_operand_address, vax_output_int_move,
6962         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
6963         * config/vax/vax.h: Likewise.
6964         * config/vax/vax.md (nonlocal_goto): Likewise.
6965
6966 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6967
6968         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
6969         (indirectable_address_p, adjacent_operands_p): Add spaces around
6970         braces.
6971         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
6972
6973 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6974
6975         * config/vax/vax.c (legitimate_constant_address_p,
6976         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
6977         index_term_p, reg_plus_index_p, legitimate_address_p,
6978         vax_mode_dependent_address_p): Update comments to match functions
6979         modified by the recent int->bool conversion.
6980
6981 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6982
6983         * config/vax/builtins.md: Update copyright message.
6984         * config/vax/constraints.md: Likewise.
6985         * config/vax/netbsd-elf.h: Likewise.
6986         * config/vax/predicates.md: Likewise.
6987         * config/vax/vax-protos.h: Likewise.
6988         * config/vax/vax.c: Likewise.
6989         * config/vax/vax.h: Likewise.
6990         * config/vax/vax.md: Likewise.
6991         * config/vax/vax.opt: Likewise.
6992
6993 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6994
6995         * config/vax/builtins.md (ffssi2, ffssi2_internal,
6996         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
6997         * config/vax/constraints.md (B, R): Likewise.
6998         * config/vax/predicates.md (external_memory_operand,
6999         nonimmediate_addsub_di_operand): Likewise.
7000         * config/vax/vax.c (vax_output_int_add): Likewise.
7001         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
7002         untyped_call): Likewise.
7003
7004 2009-04-01  Matt Thomas  <matt@3am-software.com>
7005
7006         * config/vax/predicates.md: New file.
7007         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
7008         external_const_operand, nonsymbolic_operand, external_memory_operand,
7009         indirect_memory_operand, indexed_memory_operand,
7010         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7011         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7012         predicate.
7013         * config/vax/constraints.md: New file.
7014         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7015         New constraint.
7016         * config/vax/builtins.md: New file.
7017         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7018         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7019         jbbccisi): Define.
7020         * config/vax/vax.opt (mqmath): Add option.
7021         * config/vax/vax.md (isfx): Extend with DI.
7022         (VAXintQH, VAXintQHSD): Define.
7023         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7024         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7025         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7026         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7027         (movdi): Update constraints and use vax_output_int_move().
7028         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7029         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7030         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7031         nonlocal_goto): New.
7032         (mov<mode>): Extend accepted operand types.
7033         (subdi3_old): Rename from subdi3, change update constraints and use
7034         a new implementation.
7035         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
7036         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7037         MOVE_RATIO, CLEAR_RATIO): Define.
7038         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7039         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7040         (PRINT_OPERAND): Redefine using a function instead of inlined code.
7041         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7042         (split_quadword_operands): Make static and really allow variable
7043         splitting.
7044         (print_operand_address): Update for PIC generation.
7045         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7046         indexable_address_p, fixup_mathdi_operand,
7047         vax_expand_addsub_di_operands, adjacent_operands_p): New.
7048         (vax_float_literal, legitimate_constant_p,
7049         indirectable_constant_address_p, index_term_p,
7050         reg_plus_index_p): Return bool instead of int.
7051         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7052         where needed.
7053         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7054         generation.
7055         (vax_output_conditional_branch): Indent.
7056         (legitimate_constant_address_p, indirectable_constant_address_p,
7057         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7058         vax_mode_dependent_address_p): Return bool instead of int, update for
7059         PIC generation.
7060         * config/vax/vax-protos.h (legitimate_constant_address_p,
7061         legitimate_constant_p, legitimate_address_p,
7062         vax_mode_dependent_address_p): Change declaration to bool.
7063         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7064         vax_expand_addsub_di_operands, vax_output_int_subtract,
7065         vax_output_movmemsi): Declare.
7066         (split_quadword_operands, vax_float_literal): Delete declaration.
7067         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7068         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7069         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7070         ASM_OUTPUT_DWARF_PCREL): Define.
7071         (ASM_SPEC): Change definition to allow PIC generation.
7072
7073 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
7074
7075         * doc/sourcebuild.texi: Update front-end requirements.
7076
7077 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7078
7079         PR target/39226
7080         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7081         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7082         (booldi3_internal3): Use boolean_or_operator instead of
7083         boolean_operator.
7084
7085 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
7086
7087         PR c/39605
7088         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7089         declarator whose size is not an integer constant expression but
7090         folds to an integer constant, then treat it as a constant
7091         subsequently.
7092
7093 2009-04-01  Richard Guenther  <rguenther@suse.de>
7094
7095         * fold-const.c (fold_plusminus_mult_expr): Do not fold
7096         i * 4 + 2 to (i * 2 + 1) * 2.
7097
7098 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7099
7100         PR c/37772
7101         * c-parser.c (c_parser_asm_statement): Skip until close paren and
7102         return if c_parser_asm_string_literal returned NULL.
7103
7104 2009-04-01  Nick Clifton  <nickc@redhat.com>
7105
7106         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7107         already defined.
7108         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7109         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
7110         other typedefs to avoid conflicts with libgcc2.c.  Define labels
7111         to gain 16-bit bit-manipulation functions from libgcc2.c and then
7112         include it.
7113         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
7114         to gain 16-bit trapping arithmetic functions from libgcc2.c and
7115         then include it.
7116
7117 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
7118
7119         * varasm.c (default_function_rodata_section): Declare DOT as
7120         const char*.
7121
7122 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
7123             Andrey Galkin  <agalkin@hypercom.com>
7124
7125         PR/39492
7126         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7127         Make object_name unique for each process.
7128
7129 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7130
7131         PR other/39591
7132         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7133         addressable variables in the parallel that could go out of scope while
7134         running queued tasks.
7135
7136 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
7137
7138         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7139         (CASE_VALUES_THRESHOLD): Redefine.
7140         * config/avr/avr.c (avr_override_options): Remove initialization of
7141         avr_case_values_threshold variable.
7142         (avr_case_values_threshold): Remove variable. Add new function.
7143         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7144         * config/avr/avr.opt (mno-tablejump): Remove option.
7145         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7146
7147 2009-04-01  DJ Delorie  <dj@redhat.com>
7148
7149         * varasm.c (default_function_rodata_section): Don't assume
7150         anything about where the first '.' in the section name is.
7151
7152 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
7153
7154         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7155         rs6000_emit_stack_tie.
7156
7157 2009-03-31  Ian Lance Taylor  <iant@google.com>
7158
7159         * tree-eh.c (tree_remove_unreachable_handlers): Compare
7160         gimple_code with GIMPLE_RESX, not RESX.
7161
7162 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7163
7164         * c-common.c (c_get_ident): New.
7165         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
7166
7167 2009-04-01  Ben Elliston  <bje@au.ibm.com>
7168
7169         * config/rs6000/sysv4.opt (msdata): Improve option description.
7170
7171 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
7172
7173         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7174         (divdf3_internal_lat): Remove.
7175         (divxf3_internal_lat): Remove.
7176         (divxf3_internal_thr): Remove.
7177         (divxf): Use divxf3_internal.
7178         * config/ia64/div.md (divsf3_internal_lat): New.
7179         (divdf3_internal_lat): New.
7180         (divxf3_internal): New.
7181
7182 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7183
7184         PR c/448
7185         * Makefile.in (USE_GCC_STDINT): Define.
7186         (stmp-int-hdrs): Install stdint.h if applicable.
7187         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7188         if known.
7189         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7190         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7191         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7192         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7193         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7194         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7195         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7196         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7197         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7198         (c_common_nodes_and_builtins): Initialize
7199         underlying_wchar_type_node.  Do not initialize
7200         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
7201         nodes for new types.
7202         (c_stddef_cpp_builtins): Define macros for new types.
7203         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7204         Remove.
7205         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7206         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7207         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7208         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7209         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7210         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7211         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7212         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7213         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7214         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7215         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7216         int16_type_node, int32_type_node, int64_type_node,
7217         uint8_type_node, uint16_type_node, c_uint32_type_node,
7218         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7219         int_least32_type_node, int_least64_type_node,
7220         uint_least8_type_node, uint_least16_type_node,
7221         uint_least32_type_node, uint_least64_type_node,
7222         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7223         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7224         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7225         uintptr_type_node): Define.
7226         * c-cppbuiltin.c (builtin_define_constants,
7227         builtin_define_type_minmax): New.
7228         (builtin_define_stdint_macros): Define more macros.
7229         (c_cpp_builtins): Define more limit macros.
7230         (type_suffix): New.
7231         (builtin_define_type_max): Define in terms of
7232         builtin_define_type_minmax.  Remove is_long parameter.  All
7233         callers changed.
7234         * config.gcc (use_gcc_stdint): Define.
7235         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7236         Add newlib-stdint.h for generic targets.
7237         * config/glibc-stdint.h, config/newlib-stdint.h,
7238         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7239         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7240         * config/score/score.h (UINTPTR_TYPE): Define.
7241         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7242         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7243         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7244         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7245         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7246         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7247         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7248         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7249         * config/spu/spu.h (STDINT_LONG32): Define.
7250         * configure.ac (use_gcc_stdint): Substitute.
7251         * configure: Regenerate.
7252         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7253         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7254         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7255         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7256         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7257         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7258         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7259         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7260         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7261         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7262         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7263         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7264         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7265         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7266         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7267         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7268         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7269         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7270         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7271         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7272         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7273         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7274         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7275         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7276         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7277         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7278         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7279         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7280         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7281
7282 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
7283
7284         * loop-iv.c (suitable_set_for_replacement): Renamed from
7285         simplify_using_assignment; changed to return bool and to accept new
7286         args DEST and SRC.  Return true iff we find a source/destination pair
7287         that can be used to make a replacement, and fill SRC and DEST if so.
7288         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
7289         changed.
7290         (simplify_using_initial_values): Deal with altered regs here and track
7291         more precisely the effect they have on the validity of our expression.
7292
7293         * loop-iv.c (simplify_using_condition): A condition of the form
7294         (EQ REG CONST) can be used to simply make a substitution.
7295         (simplify_using_initial_values): Keep track of conditions we have seen
7296         and keep using them to simplify new expressions, while applying the
7297         same substitutions to them as to the expression.
7298
7299         * simplify-rtx.c (simplify_relational_operation_1): Simplify
7300         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7301         GEU/LTU reversed.
7302
7303         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
7304         changed.  Use this when trying to improve the upper bound.
7305         Generate the comparison by using simplify_gen_relational.
7306
7307         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7308
7309         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7310         functions.
7311         (simplify_using_assignment, simplify_using_initial_values): Call
7312         replace_in_expr to make replacements.  Call replace_single_def_regs
7313         once on the initial version of the expression.
7314
7315 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7316
7317         PR target/27237
7318         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
7319
7320 2009-03-31  Richard Guenther  <rguenther@suse.de>
7321
7322         PR middle-end/31029
7323         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7324         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
7325
7326 2009-03-31  Richard Guenther  <rguenther@suse.de>
7327
7328         * tree.h (div_if_zero_remainder): Declare.
7329         * fold-const.c (div_if_zero_remainder): Export.
7330         * tree-ssa-forwprop.c
7331         (forward_propagate_addr_into_variable_array_index): Handle
7332         constant array index addition outside of the variable index.
7333
7334 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7335
7336         PR target/39592
7337         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7338         define_splits, floatunssi<mode>2): Require x87 conversions from
7339         DImode to be permitted.
7340
7341 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7342
7343         PR preprocessor/15638
7344         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7345
7346 2009-03-31  Richard Guenther  <rguenther@suse.de>
7347
7348         PR middle-end/23401
7349         PR middle-end/27810
7350         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7351         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7352         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7353         a separate statement.
7354         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7355         (lookup_tmp_var): Likewise.
7356         (is_gimple_formal_tmp_or_call_rhs): Remove.
7357         (is_gimple_reg_or_call_rhs): Rename to ...
7358         (is_gimple_reg_rhs_or_call): ... this.
7359         (is_gimple_mem_or_call_rhs): Rename to ...
7360         (is_gimple_mem_rhs_or_call): ... this.
7361         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
7362         DECL_GIMPLE_REG_P only if is_formal is true.
7363         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
7364         for non-proper post-modify expression gimplification.
7365         (gimplify_self_mod_expr): For post-modify expressions gimplify
7366         the lvalue to a minimal lvalue.
7367         (rhs_predicate_for): Remove formal temp case.
7368         (gimplify_modify_expr_rhs): Likewise.
7369         (gimplify_addr_expr): Use is_gimple_reg.
7370         (gimplify_expr): Remove formal temp cases.
7371         (gimple_regimplify_operands): Likewise.
7372         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7373         and FILTER_EXPR like constants.
7374         * gimple.c (walk_gimple_op): Fix val_only initialization, use
7375         is_gimple_reg.
7376         (is_gimple_formal_tmp_rhs): Remove.
7377         (is_gimple_reg_rhs): Remove special casing.
7378         (is_gimple_mem_rhs): Fix.
7379         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7380         (is_gimple_formal_tmp_var): Remove.
7381         (is_gimple_formal_tmp_reg): Likewise.
7382         (is_gimple_min_lval): Allow invariant component ref parts.
7383         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7384         is_gimple_formal_tmp_reg): Remove declarations.
7385         * tree-cfg.c (verify_expr): Verify that variables with address
7386         taken do not have DECL_GIMPLE_REG_P set.
7387         * tree-mudflap.c (mf_build_check_statement_for): Use
7388         force_gimple_operand instead of gimplify_expr.
7389
7390 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
7391
7392         * modulo-sched.c (sms_schedule_by_order): Pass the actual
7393         schedulable rows to compute_split_row.
7394
7395 2009-03-31  Ben Elliston  <bje@au.ibm.com>
7396
7397         PR target/31635
7398         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7399         OPT_mvrsave.
7400
7401 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7402
7403         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7404         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7405         * configure: Regenerate.
7406         * config.in: Regenerate.
7407         * config/rs6000/rs6000.opt (mtls-markers): Add.
7408         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7409         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7410         (tls_ld_aix, tls_ld_sysv): Likewise.
7411         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7412         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7413
7414 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7415
7416         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7417
7418 2009-03-30  Jan Hubicka  <jh@suse.cz>
7419
7420         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7421         out of RESX.
7422         (tree_remove_unreachable_handlers): Cleanup EH predecestor
7423         detection and label handling.
7424
7425 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7426
7427         * ira-int.h (ira_allocno): Rename left_conflicts_num to
7428         left_conflicts_size.
7429         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7430         ALLOCNO_LEFT_CONFLICTS_SIZE.
7431
7432         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7433         remove_allocno_from_bucket_and_push,
7434         allocno_spill_priority_compare, push_allocnos_to_stack,
7435         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7436         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7437         (setup_allocno_left_conflicts_num): Ditto.  Rename to
7438         setup_allocno_left_conflicts_size.
7439         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7440         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7441         setup_allocno_left_conflicts_size instead of
7442         setup_allocno_left_conflicts_num.
7443
7444         * ira-build.c (ira_create_allocno): Use
7445         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7446         ALLOCNO_LEFT_CONFLICTS_NUM.
7447
7448 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7449
7450         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7451         instead of DF_LR_OUT.
7452
7453         * ira-lives.c (process_bb_node_lives): Ditto.
7454
7455         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7456         instead of DF_LR_{OUT,IN}.
7457
7458         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7459
7460         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7461
7462 2009-03-30  Jan Hubicka  <jh@suse.cz>
7463
7464         * except.c (label_to_region_map): Fix thinko.
7465
7466 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
7467
7468         PR middle-end/38237
7469         * tree.h (tree_find_value): New declaration.
7470         * tree.c (tree_find_value): New function.
7471         * varasm.c (assemble_external): Avoid duplicate entries on lists.
7472
7473 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
7474
7475         PR debug/39563
7476         * c-decl.c (struct c_binding): Add locus field.
7477         (bind): Add locus argument, set locus field from it.
7478         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7479         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7480         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7481         implicitly_declare, undeclared_variable, lookup_label,
7482         declare_label, c_make_fname_decl, c_builtin_function,
7483         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7484         bind callers.
7485
7486 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7487
7488         PR target/38781
7489         * config/i386/i386.c (classify_argument): Check total size of
7490         structure.
7491
7492 2009-03-30  Martin Jambor  <mjambor@suse.cz>
7493
7494         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7495         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7496         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7497         respectively.
7498
7499         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7500         seen_variable_array_ref while also traversing a union.
7501
7502         * tree-inline.c (optimize_inline_calls): Do not call
7503         cgraph_node_remove_callees.
7504         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7505         (pass_remove_cgraph_callee_edges): New variable.
7506         * passes.c (init_optimization_passes): Add
7507         pass_remove_cgraph_callee_edges after early inlining and before all
7508         late intraprocedural passes.
7509
7510         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7511
7512 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7513
7514         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7515         Fix typos in names.
7516
7517 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7518
7519         * combine.c (simplify_comparison): Use have_insn_for.
7520         * dojump.c (do_jump): Likewise.
7521
7522 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7523
7524         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7525         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7526         sparc_compare_op0 like sparc_compare_emitted used to be handled.
7527         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7528         instead of sparc_compare_emitted.
7529         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7530         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7531         instead of sparc_compare_emitted.
7532
7533 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7534
7535         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7536         enter/exit cfglayout mode.
7537         (pass_partition_block): Require it.
7538         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7539         (combine_instructions): Track basic blocks instead of labels.
7540         (update_cfg_for_uncondjump): New.
7541         (try_combine): Use it.  Update jumps after rescanning.
7542         (pass_combine): Require PROP_cfglayout.
7543         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7544
7545 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7546
7547         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7548         Provide/destroy PROP_cfglayout respectively.
7549         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7550         * tree-pass.h (PROP_cfglayout): New.
7551
7552 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7553
7554         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7555         fold_convert_const_fixed_from_fixed,
7556         fold_convert_const_fixed_from_int,
7557         fold_convert_const_fixed_from_real, fold_negate_const): Do not
7558         set TREE_CONSTANT_OVERFLOW.
7559         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7560         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7561
7562 2009-03-30  Ira Rosen  <irar@il.ibm.com>
7563
7564         * tree-vect-loop-manip.c: New file.
7565         * tree-vectorizer.c: Update documentation and included files.
7566         (vect_loop_location): Make extern.
7567         (rename_use_op): Move to tree-vect-loop-manip.c
7568         (rename_variables_in_bb, rename_variables_in_loop,
7569         slpeel_update_phis_for_duplicate_loop,
7570         slpeel_update_phi_nodes_for_guard1,
7571         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7572         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7573         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
7574         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
7575         find_loop_location): Likewise.
7576         (new_stmt_vec_info): Move to tree-vect-stmts.c.
7577         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7578         get_vectype_for_scalar_type, vect_is_simple_use,
7579         supportable_widening_operation, supportable_narrowing_operation):
7580         Likewise.
7581         (bb_in_loop_p): Move to tree-vect-loop.c.
7582         (new_loop_vec_info, destroy_loop_vec_info,
7583         reduction_code_for_scalar_code, report_vect_op,
7584         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7585         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7586         (vect_supportable_dr_alignment): Likewise.
7587         * tree-vectorizer.h (tree-data-ref.h): Include.
7588         (vect_loop_location): Declare.
7589         Reorganize function declarations according to the new file structure.
7590         * tree-vect-loop.c: New file.
7591         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
7592         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7593         * tree-vect-data-refs.c: New file.
7594         * tree-vect-patterns.c (timevar.h): Don't include.
7595         * tree-vect-stmts.c: New file.
7596         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
7597         tree-vect-slp.c, tree-vect-loop.c.
7598         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7599         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
7600         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7601         (tree-vect-analyze.o): Remove.
7602         (tree-vect-transform.o): Likewise.
7603         (tree-vect-data-refs.o): Add rule.
7604         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
7605         tree-vect-slp.o): Likewise.
7606         (tree-vect-patterns.o): Remove redundant dependencies.
7607         (tree-vectorizer.o): Likewise.
7608         * tree-vect-slp.c: New file.
7609
7610 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7611
7612         * optc-gen.awk: Warn if an option flag has multiple different
7613         help strings.
7614
7615 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7616
7617         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7618         -floop-block): Document dependences on PPL, CLooG and Graphite.
7619
7620 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7621
7622         PR rtl-optimization/323
7623         * c-common.c (c_fully_fold, convert_and_check,
7624         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7625         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7626         * c-common.def (EXCESS_PRECISION_EXPR): New.
7627         * c-cppbuiltin.c (builtin_define_float_constants): Define
7628         constants with enough digits for long double.
7629         * c-lex.c (interpret_float): Interpret constant with excess
7630         precision where appropriate.
7631         * c-opts.c (c_common_post_options): Set
7632         flag_excess_precision_cmdline.  Give an error for
7633         -fexcess-precision=standard for C++ for processors where the
7634         option is significant.
7635         * c-parser.c (c_parser_conditional_expression): Handle excess
7636         precision in condition.
7637         * c-typeck.c (convert_arguments): Handle arguments with excess
7638         precision.
7639         (build_unary_op): Move excess precision outside operation.
7640         (build_conditional_expr): Likewise.
7641         (build_compound_expr): Likewise.
7642         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7643         (build_modify_expr): Handle excess precision in RHS.
7644         (convert_for_assignment): Handle excess precision in converted
7645         value.
7646         (digest_init, output_init_element, process_init_element): Handle
7647         excess precision in initializer.
7648         (c_finish_return): Handle excess precision in return value.
7649         (build_binary_op): Handle excess precision in operands and add
7650         excess precision as needed for operation.
7651         * common.opt (-fexcess-precision=): New option.
7652         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7653         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7654         For standard excess precision, output explicit conversion to and
7655         truncation from XFmode.
7656         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7657         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7658         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7659         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7660         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7661         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7662         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7663         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7664         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7665         define_splits, sqrt<mode>2): Disable where appropriate for
7666         standard excess precision.
7667         * convert.c (convert_to_real): Do not shorten arithmetic to type
7668         for which excess precision would be used.
7669         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7670         * doc/invoke.texi (-fexcess-precision=): Document option.
7671         (-mfpmath=): Correct index entry.
7672         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7673         flag_excess_precision): New.
7674         * langhooks.c (lhd_post_options): Set
7675         flag_excess_precision_cmdline.
7676         * opts.c (common_handle_option): Handle -fexcess-precision=.
7677         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7678         init_excess_precision): New.
7679         (lang_dependent_init_target): Call init_excess_precision.
7680         * tree.c (excess_precision_type): New.
7681         * tree.h (excess_precision_type): Declare.
7682
7683 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7684
7685         PR c/35235
7686         * c-typeck.c (build_component_ref): Do not copy qualifiers from
7687         non-lvalue to component.
7688
7689 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7690
7691         PR preprocessor/34695
7692         * Makefile.in (c-opts.o): Depend on c-tree.h.
7693         * c-common.c: Move down include of diagnostic.h.
7694         (done_lexing, c_cpp_error): New.
7695         * c-common.h (done_lexing): Declare.
7696         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7697         (parse_in).
7698         * c-opts.c: Include c-tree.h.
7699         (c_common_init_options): Set preprocessor error callback.
7700         (c_common_handle_option): Do not set preprocessor
7701         inhibit_warnings, warnings_are_errors, warn_system_headers,
7702         pedantic_errors or inhibit_warnings flags.
7703         (c_common_post_options): Do not check cpp_errors (parse_in).
7704         (c_common_finish): Do not output dependencies if there were
7705         errors.  Do not check return value of cpp_finish.
7706         * c-ppoutput.c (pp_file_change): Set input_location.
7707         * c-tree.h (c_cpp_error): Declare.
7708         * diagnostic.c (diagnostic_set_info_translated): Also initialize
7709         override_column.
7710         (diagnostic_build_prefix): Check override_column.
7711         * diagnostic.h (diagnostic_info): Add override_column field.
7712         (diagnostic_override_column): Define.
7713
7714 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
7715
7716         * c-common.c (c_expand_expr, c_staticp): Remove.
7717         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7718         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7719         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7720         * c-gimplify.c (gimplify_compound_literal_expr,
7721         optimize_compound_literals_in_ctor): Remove.
7722         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7723         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7724         * c-semantics.c (emit_local_var): Remove.
7725
7726         * langhooks-def.h (lhd_expand_expr): Remove.
7727         * langhooks.c (lhd_expand_expr): Remove.
7728         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7729
7730         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7731         handling from c-semantics.c; don't call into langhook.
7732         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7733         * gimplify.c (gimplify_compound_literal_expr,
7734         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7735         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7736         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7737         as was done in c-gimplify.c.
7738         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7739         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7740         Move from c-common.h.
7741         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
7742
7743         * tree.c (staticp): Do not call langhook.
7744         * langhooks.c (lhd_staticp): Delete.
7745         * langhooks-def.h (lhd_staticp): Delete prototype.
7746         (LANG_HOOKS_STATICP): Delete.
7747         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7748
7749         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7750         instead of DECL_STMTs.
7751
7752 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7753
7754         PR c/456
7755         PR c/5675
7756         PR c/19976
7757         PR c/29116
7758         PR c/31871
7759         PR c/35198
7760         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7761         void_type_node.
7762         (fold_call_expr): Return a NOP_EXPR from folding rather than the
7763         contained expression.
7764         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
7765         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
7766         conditional expressions for C.
7767         (decl_constant_value_for_optimization): Move from
7768         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
7769         whether optimizing and that the expression is a VAR_DECL not of
7770         array type instead of doing such checks in the caller.  Do not
7771         check pedantic.  Call gcc_unreachable for C++.
7772         * c-common.def (C_MAYBE_CONST_EXPR): New.
7773         * c-common.h (c_fully_fold, c_save_expr,
7774         decl_constant_value_for_optimization): New prototypes.
7775         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7776         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7777         EXPR_INT_CONST_OPERANDS): Define.
7778         * c-convert.c (convert): Strip nops from expression.
7779         * c-decl.c (groktypename): Take extra parameters expr and
7780         expr_const_operands.  Update call to grokdeclarator.
7781         (start_decl): Update call to grokdeclarator.  Add statement for
7782         expressions used in type of decl.
7783         (grokparm): Update call to grokdeclarator.
7784         (push_parm_decl): Update call to grokdeclarator.
7785         (build_compound_literal): Add parameter non_const and build a
7786         C_MAYBE_COSNT_EXPR if applicable.
7787         (grokdeclarator): Take extra parameters expr and
7788         expr_const_operands.  Track expressions used in declaration
7789         specifiers and declarators.  Fold array sizes and track whether
7790         they are constant expressions and whether they are integer
7791         constant expressions.
7792         (parser_xref_tag): Set expr and expr_const_operands fields in
7793         return value.
7794         (grokfield): Update call to grokdeclarator.
7795         (start_function): Update call to grokdeclarator.
7796         (build_null_declspecs): Set expr and expr_const_operands fields in
7797         return value.
7798         (declspecs_add_type): Handle expressions in typeof specifiers.
7799         * c-parser.c (c_parser_declspecs): Set expr and
7800         expr_const_operands fields for declaration specifiers.
7801         (c_parser_enum_specifier): Likewise.
7802         (c_parser_struct_or_union_specifier): Likewise.
7803         (c_parser_typeof_specifier): Likewise.  Update call to
7804         groktypename.  Fold expression as needed.  Return expressions with
7805         type instead of adding statements.
7806         (c_parser_attributes): Update calls to c_parser_expr_list.
7807         (c_parser_statement_after_labels): Fold expression before passing
7808         to objc_build_throw_stmt.
7809         (c_parser_condition): Fold expression.
7810         (c_parser_asm_operands): Fold expression.
7811         (c_parser_conditional_expression): Use c_save_expr.  Update call
7812         to build_conditional_expr.
7813         (c_parser_alignof_expression): Update call to groktypename.
7814         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7815         original_code.  Fold expression argument of va_arg.  Create
7816         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7817         argument to va_arg.  Update calls to groktypename.  Fold array
7818         index for offsetof.  Verify that first argument to
7819         __builtin_choose_expr has integer type.
7820         (c_parser_postfix_expression_after_paren_type): Update calls to
7821         groktypename and build_compound_literal.  Handle expressions with
7822         side effects in type name.
7823         (c_parser_postfix_expression_after_primary): Update call to
7824         c_parser_expr_list.  Set original_code for calls to
7825         __builtin_constant_p.
7826         (c_parser_expr_list): Take extra parameter fold_p.  Fold
7827         expressions if requested.
7828         (c_parser_objc_type_name): Update call to groktypename.
7829         (c_parser_objc_synchronized_statement): Fold expression.
7830         (c_parser_objc_receiver): Fold expression.
7831         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7832         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7833         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7834         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7835         (struct c_typespec): Add elements expr and expr_const_operands.
7836         (struct c_declspecs): Add elements expr and expr_const_operands.
7837         (groktypename, build_conditional_expr, build_compound_literal):
7838         Update prototypes.
7839         (in_late_binary_op): Declare.
7840         * c-typeck.c (note_integer_operands): New function.
7841         (in_late_binary_op): New variable.
7842         (decl_constant_value_for_broken_optimization): Move to c-common.c
7843         and rename to decl_constant_value_for_optimization.
7844         (default_function_array_conversion): Do not strip nops.
7845         (default_conversion): Do not call
7846         decl_constant_value_for_broken_optimization.
7847         (build_array_ref): Do not fold result.
7848         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
7849         result when operand is a VLA.
7850         (c_expr_sizeof_type): Update call to groktypename.  Handle
7851         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
7852         result when operand names a VLA type.
7853         (build_function_call): Update call to build_compound_literal.
7854         Only fold result for calls to __builtin_* functions.  Strip
7855         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
7856         the function designator.
7857         (convert_arguments): Fold arguments.  Update call to
7858         convert_for_assignment.
7859         (build_unary_op): Handle increment and decrement of
7860         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
7861         decrement earlier.  Fold operand of increment and decrement.
7862         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
7863         built for integer operand.  Wrap returns that are INTEGER_CSTs
7864         without being integer constant expressions or that have integer
7865         constant operands without being INTEGER_CSTs.
7866         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
7867         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
7868         result is an integer constant expression or can be used in
7869         unevaluated parts of one and avoid folding and wrap as
7870         appropriate.  Fold operands before possibly doing -Wsign-compare
7871         warnings.
7872         (build_compound_expr): Wrap result for C99 if operands can be used
7873         in integer constant expressions.
7874         (build_c_cast): Update call to digest_init.  Do not ignore
7875         overflow from casting floating-point constants to integers.  Wrap
7876         results that could be confused with integer constant expressions,
7877         null pointer constants or floating-point constants.
7878         (c_cast_expr): Update call to groktypename.  Handle expressions
7879         included in type name.
7880         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
7881         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
7882         Update calls to convert_for_assignment.
7883         (convert_for_assignment): Take new parameter
7884         null_pointer_constant.  Do not strip nops or call
7885         decl_constant_value_for_broken_optimization.  Set
7886         in_late_binary_op for conversions to boolean.
7887         (store_init_value): Update call to digest_init.
7888         (digest_init): Take new parameter null_pointer_constant.  Do not
7889         call decl_constant_value_for_broken_optimization.  pedwarn for
7890         initializers not constant expressions.  Update calls to
7891         convert_for_assignment.
7892         (constructor_nonconst): New.
7893         (struct constructor_stack): Add nonconst element.
7894         (really_start_incremental_init, push_init_level, pop_init_level):
7895         Handle constructor_nonconst and nonconst element.
7896         (set_init_index): Call constant_expression_warning for array
7897         designators.
7898         (output_init_element): Fold value.  Set constructor_nonconst as
7899         applicable.  pedwarn for initializers not constant expressions.
7900         Update call to digest_init.  Call constant_expression_warning
7901         where constant initializers are required.
7902         (process_init_element): Use c_save_expr.
7903         (c_finish_goto_ptr): Fold expression.
7904         (c_finish_return): Fold return value.  Update call to
7905         convert_for_assignment.
7906         (c_start_case): Fold switch expression.
7907         (c_process_expr_stmt): Fold expression.
7908         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
7909         ensure statement expression is not evaluated in constant expression.
7910         (build_binary_op): Track whether results are integer constant
7911         expressions or may occur in such, disable folding and wrap results
7912         as applicable.  Fold operands for -Wsign-compare warnings unless
7913         in_late_binary_op.
7914         (c_objc_common_truthvalue_conversion): Handle results folded to
7915         integer constants that are not integer constant expressions.
7916         * doc/extend.texi: Document when typeof operands are evaluated,
7917         that condition of __builtin_choose_expr is an integer constant
7918         expression, and more about use of __builtin_constant_p in
7919         initializers.
7920
7921 2009-03-29  Richard Guenther  <rguenther@suse.de>
7922
7923         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7924         propagate addresses of array references.
7925
7926 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
7927
7928         * regmove.c (perhaps_ends_bb_p): Remove.
7929         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
7930         from INSN and check that the main loop stays within that basic block.
7931         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7932         (regmove_forward_pass): Split out from regmove_optimize.  Use
7933         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7934         (regmove_backward_pass): Split out from regmove_optimize.  Use
7935         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7936         (regmove_optimize): Simplify.
7937
7938 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7939
7940         PR target/39545
7941         * config/i386/i386.c (classify_argument): Ignore flexible array
7942         member in struct and warn ABI change.
7943
7944 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7945
7946         * config/i386/i386-protos.h (ix86_agi_dependent): New.
7947
7948         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7949         (ix86_adjust_cost): Updated.
7950
7951 2009-03-29  Jan Hubicka  <jh@suse.cz>
7952
7953         PR middle-end/28850
7954         * tree-pass.h (pass_cleanup_eh): New function.
7955         (remove_unreachable_regions): Break code handling RTL
7956         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7957         that can not be reached by runtime.
7958         (can_be_reached_by_runtime): New function.
7959         (label_to_region_map): New function.
7960         (num_eh_regions): New function.
7961         (rtl_remove_unreachable_regions): New function.
7962         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
7963         (remove_eh_region): New function.
7964         * except.h: Include sbitmap and vecprim.
7965         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
7966         num_eh_regions): Declare.
7967         * passes.c (init_optimization_passes): Schedule cleanup_eh.
7968         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
7969         * tree-eh.c (tree_remove_unreachable_handlers): New function.
7970         (tree_empty_eh_handler_p): New function.
7971         (cleanup_empty_eh): New function.
7972         (cleanup_eh): New function.
7973         (pass_cleanup_eh): New function.
7974
7975 2009-03-29  Jan Hubicka  <jh@suse.cz>
7976
7977         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
7978         for removed regions.
7979
7980 2009-03-29  Jan Hubicka  <jh@suse.cz>
7981
7982         * except.c (dump_eh_tree): Dump all datastructures.
7983
7984 2009-03-29  Jan Hubicka  <jh@suse.cz>
7985
7986         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
7987         (duplicate_eh_regions_1): Likewise.
7988         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
7989         vector; call EH verification.
7990         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
7991         Be ready for region being removed.
7992
7993 2009-03-29  Jan Hubicka  <jh@suse.cz>
7994
7995         * bitmap.c (bitmap_last_set_bit): New function.
7996         * bitmap.h (bitmap_last_set_bit): Declare.
7997
7998 2009-03-29  David Ayers  <ayers@fsfe.org>
7999
8000         PR objc/27377
8001         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8002         by calling objc_compare_types and surpress warnings about
8003         incompatible C pointers that are compatible ObjC pointers.
8004
8005 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
8006
8007         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8008         call initialize_inline_failed.
8009         (initialize_inline_failed): Move it from here ...
8010         * cgraph.c (initialize_inline_failed): ... to here.
8011         (cgraph_create_edge): Call initialize_inline_failed rather than
8012         setting inline_failed directly.
8013
8014 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8015
8016         PR target/32542
8017         * sysv4.opt (msdata): Improve comment.
8018         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8019         * sysv4.h (SVR4_ASM_SPEC): Likewise.
8020
8021 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8022
8023         PR target/30451
8024         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8025         load and store attributes.
8026
8027 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8028
8029         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8030         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8031         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8032         * doc/extend.texi (X86 Built-in Functions): Add index entries for
8033         __builtin_infq and __builtin_huge_valq.
8034
8035 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
8036
8037         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8038         atmega8m1 devices.
8039         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8040         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8041
8042 2009-03-28  Xinliang David Li  <davidxl@google.com>
8043
8044         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
8045         (do_dbg_cnt): New function.
8046
8047 2009-03-28  Jan Hubicka  <jh@suse.cz>
8048
8049         Merge from pretty-ipa:
8050
8051         2009-03-27  Jan Hubicka  <jh@suse.cz>
8052
8053         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8054         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8055         * passes.c (function_called_by_processed_nodes_p): New.
8056         * ipa-pure-const.c (check_call): Fix handling of operands.
8057         (analyze_function): Dump debug output for skipped bodies.
8058         (local_pure_const): Use function_called_by_processed_nodes_p.
8059         * dwarf2out.c (reference_to_unused): Use output.
8060         * passes.c (do_per_function_toporder): Likewise.
8061
8062         2008-11-12  Jan Hubicka  <jh@suse.cz>
8063
8064         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8065         * ipa-pure-const.c (funct_state_d): Add can throw field; make
8066         state_set_in_source enum
8067         (check_decl): Ignore memory tags; do not set fake looping flags;
8068         dump diagnostics.
8069         (check_operand, check_tree, check_rhs_var, check_lhs_var,
8070         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8071         (check_call, analyze_function): Rewrite.
8072         (check_stmt): New.
8073         (add_new_function): Update call of analyze_function.
8074         (generate_summary): Add call of analyze_function.
8075         (propagate): Propagate can_throw; handle state_set_in_source correctly.
8076         (local_pure_const): New function.
8077         (pass_local_pure_const): New pass.
8078         * ipa-inline.c (inline_transform): Set after_inlining.
8079         * tree-eh.c (stmt_can_throw_external): New.
8080         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8081         work with aliasing built.
8082         * tree-flow.h (stmt_can_throw_external): New.
8083         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8084         and local pure/const pass in early and late optimization queue.
8085
8086 2009-03-28  Martin Jambor  <mjambor@suse.cz>
8087
8088         * fold-const.c (get_pointer_modulus_and_residue): New parameter
8089         allow_func_align.
8090         (fold_binary): Allow function decl aligment consideration is the
8091         second argument is integer constant one.
8092         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8093         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8094         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8095
8096 2009-03-28  Jan Hubicka  <jh@suse.cz>
8097
8098         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8099         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8100         * function.h (rtl_data): Add nothrow flag.
8101         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8102         set DECL_NOTHROW for AVAILABLE functions.
8103
8104 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
8105
8106         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8107         following vector keyword has expansion starting with pixel or bool
8108         keyword, expand vector to __vector and pixel or bool to __pixel or
8109         __bool.
8110
8111         PR c++/39554
8112         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8113         warn_if_disallowed_function_p): Removed.
8114         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8115         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8116         warning_if_disallowed_function_p.
8117         * flags.h (warn_if_disallowed_function_p,
8118         warn_disallowed_functions): Removed.
8119         * common.opt (Wdisallowed-function-list=): Removed.
8120         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8121
8122 2009-03-28  Richard Guenther  <rguenther@suse.de>
8123
8124         PR tree-optimization/38723
8125         * tree-ssa-pre.c (compute_avail): Add all default definitions to
8126         the entry block.
8127
8128 2009-03-28  Jan Hubicka  <jh@suse.cz>
8129
8130         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8131         test introduced by my previous patch.
8132
8133 2009-03-28  Richard Guenther  <rguenther@suse.de>
8134
8135         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8136         the PHIs value undefined.
8137
8138 2009-03-28  Jan Hubicka  <jh@suse.cz>
8139
8140         * tree-pass.h (pass_fixup_cfg): New pass.
8141         * ipa-inline.c (inline_transform): Set
8142         always_inline_functions_inlined/after_inlining.
8143         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8144         (pass_fixup_cfg): New pass.
8145         * passes.c (init_optimization_passes): Add fixup_cfg.
8146
8147 2009-03-28  Richard Guenther  <rguenther@suse.de>
8148
8149         PR tree-optimization/38458
8150         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8151         argument use the arguments copy-of value.
8152
8153 2009-03-28  Richard Guenther  <rguenther@suse.de>
8154
8155         PR tree-optimization/38180
8156         * tree-ssa-ccp.c (get_default_value): Simplify.
8157         (likely_value): Likewise.
8158         (surely_varying_stmt_p): Properly handle VOP case.
8159         (ccp_initialize): Likewise.
8160         (ccp_fold): Handle propagating through *&.
8161         (fold_const_aggregate_ref): Also handle decls.
8162
8163 2009-03-28  Jan Hubicka  <jh@suse.cz>
8164
8165         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8166         * cgraph.h (cgraph_node): Likewise.
8167         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8168         (cgraph_reset_node): Use process flag.
8169         (cgraph_mark_functions_to_output): Likewise.
8170         (cgraph_expand_function): Likewise.
8171         (cgraph_expand_all_functions): Likewise.
8172         (cgraph_output_in_order): Likewise.
8173         * dwarf2out.c (reference_to_unused): Likewise.
8174         * passes.c do_per_function_toporder): Likewise.
8175
8176 2009-03-28  Jan Hubicka  <jh@suse.cz>
8177
8178         Bring from lto-branch:
8179
8180         2008-09-03  Doug Kwan  <dougkwan@google.com>
8181
8182         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8183         enums instead of reason strings.
8184         * cgraph.c (cgraph_create_edge): Same.
8185         (cgraph_inline_failed_string): New function.
8186         * cgraph.h (cgraph_inline_failed_t): New enum type.
8187         (cgraph_inline_failed_string): New prototype.
8188         (struct cgraph_edge): Change type of INLINED_FAILED from constant
8189         char pointer to cgraph_inline_failed_t.
8190         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8191         (cgraph_default_inline_p): Ditto.
8192         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
8193         to cgraph_inline_failed_t pointer.
8194         * cif-code.def: New file.
8195         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8196         reason string.
8197         (cgraph_check_inline_limits): Change type of REASON to pointer to
8198         cgraph_inline_failed_t.  Replace reason strings with enums.
8199         (cgraph_default_inline_p): Ditto.
8200         (cgraph_recursive_inlining_p): Ditto.
8201         (update_caller_keys): Change type of FAILED_REASON to
8202         cgraph_inline_failed_t.
8203         (cgraph_set_inline_failed): Change type of REASON to pointer to
8204         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
8205         convert enums to strings for text output.
8206         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8207         to be of type cgraph_inline_failed_t.  Replace reason strings with
8208         enums.  Call cgraph_inline_failed_string to covert enums
8209         to strings for text output.
8210         (cgraph_decide_inlining): Replace reason strings with enums.
8211         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8212         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
8213         for text output.
8214         * tree-inline.c (expand_call_inline): Change type of REASON
8215         to cgraph_inline_failed_t.  Replace reason strings with enums.
8216         Call cgraph_inline_failed_string for text output.
8217         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8218         (cgraph.o): Ditto.
8219
8220 2009-03-28  Jan Hubicka  <jh@suse.cz>
8221
8222         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8223         cgraph_clone_node): Remove master clone handling.
8224         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8225         * cgraph.h (master_clone): Remove.
8226         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8227         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8228         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8229
8230 2009-03-28  Jan Hubicka  <jh@suse.cz>
8231
8232         * cgraph.c (cgraph_function_body_availability): Functions declared
8233         inline are always safe to assume that it is not going to be replaced.
8234
8235 2009-03-28  Richard Guenther  <rguenther@suse.de>
8236
8237         PR tree-optimization/38513
8238         * tree-ssa-pre.c (eliminate): Remove redundant stores.
8239         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8240         EXC_PTR_EXPR and FILTER_EXPR.
8241         (get_ref_from_reference_ops): Likewise.
8242
8243 2009-03-28  Richard Guenther  <rguenther@suse.de>
8244
8245         PR tree-optimization/38968
8246         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8247         Use FLOOR_MOD_EXPR to compute misalignment.
8248
8249 2009-03-28  Richard Guenther  <rguenther@suse.de>
8250
8251         PR tree-optimization/37795
8252         * tree.h (combine_comparisons): Declare.
8253         * fold-const.c (combine_comparisons): Export.
8254         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8255         comparisons.
8256         (ifcombine_iforif): Use combine_comparisons.
8257
8258 2009-03-28  Jan Hubicka  <jh@suse.cz>
8259
8260         * tree-eh.c (inlinable_call_p): New function.
8261         (make_eh_edges): Use it.
8262         (verify_eh_edges): Use it.
8263         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8264         * except.c (reachable_next_level): Add inlinable_function argument
8265         (sjlj_find_directly_reachable_regions): Update.
8266         (add_reachable_handler): Do not set saw_any_handlers.
8267         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8268         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8269         Add new inlinable call parameter.
8270         (can_throw_internal, can_throw_external): Update.
8271         * except.h (can_throw_internal_1, can_throw_external_1,
8272         foreach_reachable_handler): Update declaration.
8273
8274 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
8275
8276         * config/arm/t-arm-coff, config/h8300/coff.h,
8277         config/i386/i386-aout.h, config/i386/i386-coff.h,
8278         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8279         config/pdp11/2bsd.h, config/rs6000/aix41.h,
8280         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8281         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8282         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8283         sys-types.h: Remove.
8284         * Makefile.in: Remove protoize and fixproto support and references
8285         in comments.
8286         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8287         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8288         Remove.
8289         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8290         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8291         unprotoize$(exeext).
8292         (rest.encap): Don't depend on $(STMP_FIXPROTO)
8293         (.PHONY): Don't depend on proto.
8294         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8295         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8296         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8297         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8298         build/gen-protos.o, build/scan.o, xsys-protos.h,
8299         build/fix-header$(build_exeext), build/fix-header.o,
8300         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8301         stmp-install-fixproto): Remove.
8302         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8303         SYSCALLS.c or fixproto files.
8304         (install-common): Don't install protoize.
8305         (install-headers-tar, install-headers-cpio, install-headers-cp):
8306         Don't depend on $(STMP_FIXPROTO).
8307         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
8308         install fixproto files or write out fixproto settings.
8309         (uninstall): Don't uninstall protoize.
8310         * config.gcc (use_fixproto): Remove.
8311         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8312         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8313         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8314         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8315         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8316         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8317         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8318         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8319         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8320         * config/t-vxworks (STMP_FIXPROTO): Remove.
8321         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8322         STMP_FIXPROTO): Remove.
8323         * config.in, configure: Regenerate.
8324         * crtstuff.c (gid_t, uid_t): Don't undefine.
8325         * doc/install.texi: Change m68k-coff to m68k-elf in example.
8326         (arm-*-coff, arm-*-aout: Remove target entries.
8327         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8328         Remove mention of AIX 4.1.
8329         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8330         * doc/invoke.texi (Running Protoize): Remove.
8331         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8332         (Protoize Caveats): Remove.
8333         * tsystem.h: Update comments on headers assumed to exist.
8334
8335 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
8336
8337         * genautomata.c: Add a new year to the copyright.  Add a new
8338         reference.
8339         (struct insn_reserv_decl): Add comments for member bypass_list.
8340         (find_bypass): Remove.
8341         (insert_bypass): New.
8342         (process_decls): Use insert_bypass.
8343         (output_internal_insn_latency_func): Output all bypasses with the
8344         same input insn in one switch case.
8345
8346         * rtl.def (define_bypass): Describe bypass choice.
8347         * doc/md.texi (define_bypass): Ditto.
8348
8349 2009-03-27  Richard Guenther  <rguenther@suse.de>
8350
8351         * gimplify.c (mark_addressable): Export.
8352         * tree-flow.h (mark_addressable): Declare.
8353         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8354         * tree-ssa.c (verify_phi_args): Verify that address taken
8355         variables have TREE_ADDRESSABLE set.
8356
8357 2009-03-27  Richard Guenther  <rguenther@suse.de>
8358
8359         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8360         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
8361         Do not mark decls TREE_ADDRESSABLE.
8362         (build_fold_addr_expr): Adjust.
8363         (fold_addr_expr): Remove.
8364         (fold_unary): Use build_fold_addr_expr.
8365         (fold_comparison): Likewise.
8366         (split_address_to_core_and_offset): Likewise.
8367         * coverage.c (tree_coverage_counter_addr): Mark the array decl
8368         TREE_ADDRESSABLE.
8369         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8370         (gimplify_modify_expr_to_memcpy): Mark source and destination
8371         addressable.
8372         * omp-low.c (create_omp_child_function): Mark the object decl
8373         TREE_ADDRESSABLE.
8374         (lower_rec_input_clauses): Mark the var we take the address of
8375         TREE_ADDRESSABLE.
8376         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8377
8378 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8379
8380         PR middle-end/39315
8381         * cfgexpand.c (expand_one_stack_var_at): Change alignment
8382         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8383
8384 2009-03-27  Richard Guenther  <rguenther@suse.de>
8385
8386         PR tree-optimization/39120
8387         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8388         constraints.
8389         (handle_lhs_call): Process return constraints.  Add escape
8390         constraints if necessary.
8391         (handle_const_call): Fill out return constraints.  Make nested
8392         case more precise.  Avoid consttmp if possible.
8393         (handle_pure_call): Fill out return constraints.  Avoid
8394         callused if possible.
8395         (find_func_aliases): Simplify call handling.
8396
8397 2009-03-27  Richard Guenther  <rguenther@suse.de>
8398
8399         PR tree-optimization/39120
8400         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8401         as a representative.
8402         (solve_graph): Do propagate CALLUSED.
8403         (handle_pure_call): Use a scalar constraint from CALLUSED for
8404         the return value.
8405         (find_what_p_points_to): CALLUSED shall not appear in poins-to
8406         solutions.
8407
8408 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8409
8410         PR c/39323
8411         * c-common.c (handle_aligned_attribute): Properly check alignment
8412         overflow.  Use (1U << i) instead of (1 << i).
8413
8414         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
8415
8416         * expr.h (get_mem_align_offset): Updated.
8417
8418         * tree.h (tree_decl_common): Change align to "unsigned int" and
8419         move it before pointer_alias_set.
8420
8421 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8422             Jakub Jelinek  <jakub@redhat.com>
8423
8424         PR target/38034
8425         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8426         gr_register_operand with gr_reg_or_0_operand.
8427         (cmpxchg_rel_di): Likewise.
8428         (sync_lock_test_and_set<mode>): Likewise.
8429
8430 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8431
8432         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8433         (true_regnum): Likewise.
8434
8435         * rtlanal.c (subreg_info): Moved to ...
8436         * rtl.h (subreg_info): Here.  New.
8437         (subreg_get_info): New.
8438
8439         * rtlanal.c (subreg_get_info): Make it extern.
8440
8441 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8442
8443         PR target/39472
8444         * config/i386/i386.c (ix86_abi): New.
8445         (override_options): Handle -mabi=.
8446         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
8447         (ix86_call_abi_override): Likewise.
8448         (init_cumulative_args): Likewise.
8449         (function_arg_advance): Likewise.
8450         (function_arg_64): Likewise.
8451         (function_arg): Likewise.
8452         (ix86_pass_by_reference): Likewise.
8453         (ix86_function_value_regno_p): Likewise.
8454         (ix86_build_builtin_va_list_abi): Likewise.
8455         (setup_incoming_varargs_64): Likewise.
8456         (is_va_list_char_pointer): Likewise.
8457         (ix86_init_machine_status): Likewise.
8458         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
8459         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
8460         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
8461         (ix86_function_abi): Make it static and return enum calling_abi.
8462         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
8463         with ix86_abi.
8464         (ix86_fn_abi_va_list): Updated.
8465
8466         * config/i386/i386.h (ix86_abi): New.
8467         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8468         (CONDITIONAL_REGISTER_USAGE): Likewise.
8469         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8470         (machine_function): Likewise.
8471
8472         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8473         with ix86_abi.
8474         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8475         (STACK_BOUNDARY): Likewise.
8476         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8477
8478         * config/i386/i386.opt (mabi=): New.
8479
8480         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8481         return enum calling_abi.
8482         (ix86_function_type_abi): Likewise.
8483         (ix86_function_abi): Removed.
8484
8485         * doc/invoke.texi: Document -mabi= option for x86.
8486
8487 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8488
8489         * builtins.c (real_dconstp): Delete.
8490         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8491
8492 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
8493             Jakub Jelinek  <jakub@redhat.com>
8494
8495         PR debug/37959
8496         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8497         (gen_subprogram_die): When a function is explicit, generate the
8498         DW_AT_explicit attribute.
8499         * langhooks.h (struct lang_hooks_for_decls): Add
8500         function_decl_explicit_p langhook.
8501         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8502         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8503
8504 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
8505
8506         * builtins.c (fold_builtin_memory_op): Optimize memmove
8507         into memcpy if we can prove source and destination don't overlap.
8508
8509         * tree-inline.c: Include gt-tree-inline.h.
8510         (clone_fn_id_num): New variable.
8511         (clone_function_name): New function.
8512         (tree_function_versioning): Use it.
8513         * Makefile.in (GTFILES): Add tree-inline.c.
8514
8515 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
8516
8517         * BASE-VER: Change to 4.5.0.
8518
8519 2009-03-27  Xinliang David Li  <davidxl@google.com>
8520
8521         PR tree-optimization/39557
8522         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8523
8524 2009-03-27  Xinliang David Li  <davidxl@google.com>
8525
8526         PR tree-optimization/39548
8527         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
8528         candidate check.
8529
8530 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8531
8532         * c-common.c (pointer_int_sum): Use %wd on return from
8533         tree_low_cst.
8534
8535 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8536
8537         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8538         on return from tree_low_cst.
8539
8540 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8541
8542         PR c++/36799
8543         * ginclude/stdarg.h (va_copy): Define also for
8544         __GXX_EXPERIMENTAL_CXX0X__.
8545
8546 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8547
8548         PR c++/35652
8549         * builtins.h (c_strlen): Do not warn here.
8550         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8551         * c-common.c (pointer_int_sum): Take an explicit location.
8552         Warn about offsets out of bounds.
8553         * c-common.h (pointer_int_sum): Adjust declaration.
8554
8555 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8556
8557         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8558         markup glitch.
8559
8560 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
8561
8562         PR c++/39554
8563         * opts.c (warn_if_disallowed_function_p): Don't assume
8564         get_callee_fndecl must return non-NULL.
8565
8566 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8567
8568         PR rtl-optimization/39522
8569         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8570         when reg_reloaded_valid is set.
8571
8572 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8573
8574         * config/spu/divv2df3.c: New file.
8575         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8576         (DPBIT_FUNCS): Filter out _div_df.
8577
8578 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
8579
8580         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8581         a jump insn, count that jump in the distance to the loop start.
8582
8583 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
8584
8585         PR target/39523
8586         * config/sh/sh.c (calc_live_regs): Fix condition for global
8587         registers except PIC_OFFSET_TABLE_REGNUM.
8588
8589 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
8590
8591         PR/39518
8592         * doc/invoke.texi (-mconsole): New.
8593         (-mcygwin): New.
8594         (-mno-cygwin): New.
8595         (-mdll): New.
8596         (-mnop-fun-dllimport): New.
8597         (-mthread): New.
8598         (-mwin32): New.
8599         (-mwindows): New.
8600         (sub section "i386 and x86-64 Windows Options"): New.
8601
8602 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
8603
8604         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8605         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8606
8607 2009-03-25  Richard Guenther  <rguenther@suse.de>
8608
8609         PR middle-end/39497
8610         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8611         of -Wno-error.
8612
8613 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
8614
8615         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8616         neither of haifa/selective schedulers are working.
8617
8618 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8619
8620         * doc/invoke.texi (Debugging Options): Fix description of
8621         -fno-merge-debug-strings.
8622
8623 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
8624
8625         * config/cris/libgcc.ver: New version-script.
8626         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8627
8628         * configure.ac <GAS features, nop mnemonic>: Add pattern
8629         crisv32-*-* for "nop".
8630         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
8631         * configure: Regenerate.
8632
8633 2009-03-24  Ira Rosen  <irar@il.ibm.com>
8634
8635         PR tree-optimization/39529
8636         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8637         mark_sym_for_renaming for the tag copied to the new vector
8638         pointer.
8639
8640 2009-03-24  Arthur Loiret  <aloiret@debian.org>
8641
8642         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
8643         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8644         EXTRA_SPEC_FUNCTIONS.
8645         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8646         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8647         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8648         -march and -mtune options.
8649
8650 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
8651
8652         * config/m68k/t-rtems: Add m5329 multilib.
8653
8654 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
8655             Jakub Jelinek  <jakub@redhat.com>
8656
8657         PR debug/39524
8658         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8659         nodes.
8660
8661 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8662
8663         PR c/39495
8664         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8665         instead of c_parser_expression_conv, if original_code isn't one of the
8666         4 allowed comparison codes, fail.
8667
8668 2009-03-23  Richard Guenther  <rguenther@suse.de>
8669
8670         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8671         * tree.h (struct tree_type): Likewise.
8672         * reload.h (struct insn_chain): Likewise.
8673         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8674         * function.h (struct function): Likewise.
8675         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8676
8677 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8678
8679         PR tree-optimization/39516
8680         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8681
8682 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
8683
8684         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
8685         should be set true if BITS_PER_WORD of target is bigger than 32
8686
8687 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
8688
8689         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8690         Translate -B-options to -rpath-link.  Correct existing
8691         rpath-link and conditionalize on !nostdlib.
8692
8693 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8694
8695         * doc/extend.texi (Function Attributes, Variable Attributes):
8696         Fix typos.
8697         * doc/invoke.texi (Debugging Options, Optimize Options)
8698         (i386 and x86-64 Options, MCore Options): Likewise.
8699
8700 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
8701
8702         PR debug/37890
8703         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8704         it for block local namespace aliases.
8705         (gen_decl_die): Pass context_die to gen_namespace_die.
8706
8707 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8708
8709         PR c/39495
8710         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8711         minimum or maximum value.
8712
8713 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
8714
8715         * reginfo.c (globalize_reg): Recompute derived reg sets.
8716
8717 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
8718
8719         PR target/39063
8720         * libgcc2.c (mprotect): Do not use signed arguments for
8721         VirtualProtect, use DWORD arguments.  Also fix the 'may
8722         be used uninitialized' warning for the np variable.
8723
8724 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8725
8726         PR target/39496
8727         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8728         functions using regparm calling conventions when not optimizing.
8729         (ix86_function_sseregparm): Similarly for sseregparm calling
8730         conventions.
8731
8732 2009-03-19  Li Feng  <nemokingdom@gmail.com>
8733
8734         PR middle-end/39500
8735         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8736         dependence if the first conflict is after niter iterations.
8737
8738 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
8739
8740         PR middle-end/38609
8741         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8742         functions with dynamic stack-pointer adjustments.
8743
8744 2009-03-19  Ben Elliston  <bje@au.ibm.com>
8745
8746         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8747         option; change to -msdata=data.
8748
8749 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8750
8751         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8752         and -fopenmp.
8753
8754 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
8755
8756         PR target/35180
8757         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8758
8759 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
8760
8761         * doc/invoke.texi (Code Gen Options): Expand discussion of
8762         -fno-common.
8763
8764 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
8765
8766         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8767         * matrix-reorg.c (struct matrix_info): Likewise.
8768         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8769         * rtl.h (struct mem_attrs): Likewise.
8770         * df.h (struct df): Likewise.
8771         * tree-data-ref.h (struct data_dependence_relation): Likewise.
8772         * ira-int.h (struct ira_allocno): Likewise.
8773         * df-scan.c (struct df_collection_rec): Likewise.
8774         * ira.c (struct equivalence): Likewise.
8775         * function.c (struct temp_slot): Likewise.
8776         * cfgloop.h (struct loop): Likewise.
8777
8778         PR debug/39485
8779         * function.c (use_register_for_decl): When not optimizing, disregard
8780         register keyword for variables with types containing methods.
8781
8782 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
8783
8784         PR middle-end/39447
8785         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8786         (is_simple_operand): Call contains_component_ref_p before calling data
8787         reference analysis that would fail on COMPONENT_REFs.
8788
8789         * tree-vrp.c (search_for_addr_array): Fix formatting.
8790
8791 2009-03-18  Richard Guenther  <rguenther@suse.de>
8792
8793         * tree-vect-transform.c (vect_loop_versioning): Fold the
8794         generated comparisons.
8795         * tree-vectorizer.c (set_prologue_iterations): Likewise.
8796         (slpeel_tree_peel_loop_to_edge): Likewise.
8797
8798 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8799
8800         PR middle-end/37805
8801         * opts.c (print_specific_help): In addition to `undocumented',
8802         accept `separate' and `joined' flags if passed alone.  Describe
8803         output by the first matched one of those.
8804         (common_handle_option): Skip over empty strings.
8805         * gcc.c (display_help): Fix help string for `--help='.
8806         * doc/invoke.texi (Option Summary, Overall Options): With
8807         `--help=', classes and qualifiers can both be repeated, but
8808         only the latter can be negated.  One should not pass only
8809         negated qualifiers.  Fix markup and examples.
8810
8811         Revert
8812         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
8813         PR middle-end/37805
8814         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8815         and -fhelp=separate.
8816
8817 2009-03-17  Jing Yu  <jingyu@google.com>
8818
8819         PR middle-end/39378
8820         * function.h (struct rtl_data): Move is_thunk from here...
8821         (struct function): ...to here.
8822         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
8823         * varasm.c (assemble_start_function): Change is_thunk from crtl to
8824         cfun.
8825         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8826         cfun.
8827         (alpha_does_function_need_gp, alpha_start_function): Likewise.
8828         (alpha_output_function_end_prologue): Likewise.
8829         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8830         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8831         (rs6000_output_function_epilogue): Likewise.
8832         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
8833
8834 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
8835
8836         PR target/39482
8837         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8838         from different units in a single alternative.
8839         (*truncdfsf_i387): Ditto.
8840         (*truncxfsf2_mixed): Ditto.
8841         (*truncxfdf2_mixed): Ditto.
8842
8843 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
8844
8845         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
8846         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
8847
8848         PR debug/39474
8849         * tree-ssa-live.c (remove_unused_locals): Don't remove local
8850         unused non-artificial variables when not optimizing.
8851
8852         PR debug/39471
8853         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
8854         DW_TAG_imported_module even if decl is IMPORTED_DECL with
8855         NAMESPACE_DECL in its DECL_INITIAL.
8856
8857         PR middle-end/39443
8858         * optabs.c (set_user_assembler_libfunc): New function.
8859         * expr.h (set_user_assembler_libfunc): New prototype.
8860         * c-common.c: Include libfuncs.h.
8861         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
8862         for memcmp, memset, memcpy, memmove and abort.
8863         * Makefile.in (c-common.o): Depend on libfuncs.h.
8864
8865         PR debug/39412
8866         * dwarf2out.c (gen_inlined_enumeration_type_die,
8867         gen_inlined_structure_type_die, gen_inlined_union_type_die,
8868         gen_tagged_type_instantiation_die): Removed.
8869         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
8870         do nothing.
8871
8872 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
8873
8874         PR testsuite/38526
8875         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
8876         its use.
8877         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
8878         (check-parallel-%): Ditto.
8879         (check-consistency): Ditto.
8880
8881 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
8882
8883         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
8884         local variable rhs by NULL_TREE.
8885
8886 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8887
8888         PR target/39477
8889         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
8890
8891 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8892
8893         PR target/39476
8894         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
8895
8896 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8897
8898         PR target/39473
8899         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
8900         for ms->sysv ABI calls only in 64bit mode.
8901
8902         * config/i386/i386.md (untyped_call): Support 32bit.
8903
8904 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
8905
8906         * doc/extend.texi: Replace x86_65 with x86_64.
8907
8908 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
8909
8910         PR tree-optimization/39455
8911         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
8912         mismatches for POINTER_TYPE_P (type).
8913         (number_of_iterations_le): Likewise.
8914
8915 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8916
8917         * config/picochip/picochip.c: Removed profiling support.
8918         * config/picochip/picochip.md: Removed profiling instruction.
8919         * config/picochip/picochip.h: Removed profiling builtin.
8920
8921 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
8922
8923         * doc/install.texi (--with-host-libstdcxx): Document.
8924
8925 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
8926
8927         PR target/34299
8928         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8929         generate a warning if the function name does not begin with
8930         "__vector" and the function has either the 'signal' or 'interrupt'
8931         attribute, from here to ...
8932         (avr_declare_function_name): ...here. New function.
8933         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8934         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8935
8936 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
8937
8938         PR bootstrap/39454
8939         * cse.c (fold_rtx): Don't modify original const_arg1 when
8940         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8941         separate variable instead.
8942         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8943         from out of range shift counts.
8944         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8945
8946 2009-03-13  Catherine Moore  <clm@codesourcery.com>
8947
8948         * config/i386/x-mingw32 (host-mingw32.o): Replace
8949         diagnostic.h with $(DIAGNOSTIC_H).
8950
8951 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
8952
8953         PR target/39431
8954         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8955         predicate.
8956         * config/i386/sync.md (sync_compare_and_swap<mode>,
8957         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8958         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8959         into a register.
8960         (sync_double_compare_and_swapdi_pic,
8961         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8962         cmpxchg8b_pic_memory_operand instead of just memory_operand.
8963
8964 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8965
8966         PR target/39445
8967         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
8968
8969 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8970
8971         PR target/39327
8972         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8973         (avx_addsubv4df3): Likewise.
8974         (*avx_addsubv4sf3): Likewise.
8975         (sse3_addsubv4sf3): Likewise.
8976
8977 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8978
8979         PR target/38824
8980         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
8981
8982 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
8983
8984         PR debug/39432
8985         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
8986         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
8987         registers for allocnos created from user-defined variables.
8988
8989 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8990
8991         PR target/39181
8992         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
8993         of non-integer mode as well.
8994
8995 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
8996
8997         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
8998         for functions for which the parameter types are unknown.
8999
9000 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
9001
9002         PR target/39137
9003         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9004         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9005         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9006         * config/i386/i386.c (ix86_local_alignment): For
9007         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9008         long long variables on the stack to avoid dynamic realignment.
9009         Allow the first argument to be a decl rather than type.
9010         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9011
9012 2009-03-11  Nick Clifton  <nickc@redhat.com>
9013
9014         PR target/5362
9015         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9016         options.
9017         Add description to mno-lsim option.
9018         * config/mcore/mcore.h: Remove comment about deprecated m4align
9019         option.
9020         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9021         * doc/invoke.texi: Add description of mno-lsim and
9022         mstack-increment options.
9023
9024         * config/fr30/fr30.opt: Document the -mno-lsim option.
9025         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9026         and -mno-lsim options.
9027
9028 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9029
9030         * fold-const.c (fold_comparison): Only call fold_inf_compare
9031         if the mode supports infinities.
9032
9033 2009-03-11  Jason Merrill  <jason@redhat.com>
9034
9035         PR debug/39086
9036         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9037         end already did.  Notice GIMPLE_CALL modifications of the result.
9038         Don't copy debug information from an ignored decl or a decl from
9039         another function.
9040
9041 2009-03-10  Richard Guenther  <rguenther@suse.de>
9042             Nathan Froyd  <froydnj@codesourcery.com>
9043
9044         PR middle-end/37850
9045         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
9046         (__divMODE3): Likewise.
9047
9048 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
9049
9050         PR tree-optimization/39394
9051         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9052         DECL_SIZE_UNIT of variable length FIELD_DECLs.
9053
9054 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9055
9056         * recog.c (verfiy_changes): Disallow renaming of hard regs in
9057         inline asms for register asm ("") declarations.
9058
9059 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
9060
9061         * fold-const.c (fold_unary): Fix comment.
9062
9063 2009-03-07  Jan Hubicka  <jh@suse.cz>
9064
9065         PR target/39361
9066         * tree-inline.c (setup_one_parameter): Do replacement of const
9067         argument by constant in SSA form.
9068
9069 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9070
9071         PR middle-end/38028
9072         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9073         determine alignment passed to assign_stack_local.
9074         (assign_parms_unsplit_complex): Likewise.
9075         * except.c (sjlj_build_landing_pads): Likewise.
9076
9077 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9078
9079         PR middle-end/39360
9080         * tree-flow.h (add_referenced_var): Return bool instead of void.
9081         * tree-dfa.c (add_referenced_var): Return result of
9082         referenced_var_check_and_insert call.
9083         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9084         of referenced_var_check_and_insert.
9085
9086         PR debug/39372
9087         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9088         (gen_variable_die): Emit DW_AT_location on abstract static variable's
9089         DIE, don't emit it if abstract origin already has it.
9090         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9091         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9092
9093 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9094
9095         * genpreds.c (needs_variable): Fix parentheses at variable name
9096         detection.
9097         (write_tm_constrs_h): Indent generated code.
9098
9099 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9100
9101         * doc/extend.texi (Function Attributes): Add documentation
9102         for isr attributes.
9103
9104 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9105
9106         PR debug/39387
9107         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9108         take locus from its DECL_SOURCE_LOCATION instead of input_location.
9109
9110 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
9111
9112         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9113         the loop as bad.
9114
9115 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
9116
9117         PR debug/39379
9118         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9119         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9120
9121 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
9122
9123         * config/i386/i386.md (R8_REG, R9_REG): New constants.
9124         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9125         constants instead of magic numbers.
9126         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9127         (QI_REG_P): Ditto.
9128         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9129         (x86_64_ms_abi_int_parameter_registers): Ditto.
9130         (x86_64_int_return_registers): Ditto.
9131         (ix86_maybe_switch_abi): Ditto.
9132         (ix86_expand_call): Ditto for clobbered_registers array.
9133         (ix86_hard_regno_mode_ok): Ditto.
9134         (x86_extended_QIreg_mentioned_p): Ditto.
9135
9136 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
9137
9138         PR tree-optimization/39349
9139         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9140
9141         * combine.c (gen_lowpart_for_combine): Use omode when generating
9142         clobber.
9143
9144 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
9145
9146         PR rtl-optimization/39235
9147         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9148
9149 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9150
9151         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9152
9153 2009-03-04  Richard Guenther  <rguenther@suse.de>
9154
9155         PR tree-optimization/39362
9156         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9157         that occur in abnormal PHIs should be varying.
9158
9159 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9160
9161         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9162         Extend comments.
9163         (simple_iv):  Take loop as an argument instead of statement.
9164         * tree-scalar-evolution.h (simple_iv): Declaration changed.
9165         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9166         to simple_iv.
9167         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9168         Ditto.
9169         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9170         * matrix-reorg.c (analyze_transpose): Ditto.
9171         * tree-data-ref.c (dr_analyze_innermost): Ditto.
9172         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9173         * tree-predcom.c (ref_at_iteration): Ditto.
9174         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9175
9176 2009-03-04  Richard Guenther  <rguenther@suse.de>
9177
9178         PR tree-optimization/39358
9179         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9180         escaped_id and callused_id.
9181         (solve_graph): Likewise.
9182
9183 2009-03-04  Richard Guenther  <rguenther@suse.de>
9184
9185         PR tree-optimization/39339
9186         * tree-sra.c (try_instantiate_multiple_fields): Make it
9187         no longer ICE on the above.
9188
9189 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
9190
9191         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9192         that fits within Pmode.
9193
9194 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9195
9196         PR middle-end/10109
9197         * tm.texi (LIBCALL_VALUE): Update description.
9198
9199 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9200
9201         PR middle-end/34443
9202         * doc/extend.texi (section): Update description.
9203
9204 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
9205
9206         PR middle-end/39345
9207         * tree-inline.c (remapped_type): New.
9208         (can_be_nonlocal): Call remapped_type instead of remap_type.
9209
9210 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9211
9212         PR fortran/39354
9213         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9214         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9215
9216 2009-03-03  Richard Guenther  <rguenther@suse.de>
9217
9218         PR middle-end/39272
9219         * tree.c (tree_nonartificial_location): New function.
9220         * tree.h (tree_nonartificial_location): Declare.
9221         * builtins.c (expand_builtin_memory_chk): Provide location
9222         of the call location for artificial function pieces.
9223         (maybe_emit_chk_warning): Likewise.
9224         (maybe_emit_sprintf_chk_warning): Likewise.
9225         (maybe_emit_free_warning): Likewise.
9226         * expr.c (expand_expr_real_1): Likewise.
9227
9228 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9229
9230         PR tree-optimization/39343
9231         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9232         COMPONENT_REF t has ARRAY_TYPE.
9233
9234 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9235
9236         PR middle-end/39335
9237         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9238         when the type precision of the induction variable should be
9239         larger than the type precision of nit.
9240         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9241         * graphite.c (graphite_loop_normal_form): Same.
9242         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9243
9244 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9245
9246         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9247         (*call_1_rex64_ms_sysv): Use named constants instead of magic
9248         numbers to describe clobbered registers.
9249         (*call_value_0_rex64_ms_sysv): Ditto.
9250         * config/i386/mmx.md (mmx_emms): Ditto.
9251         (mmx_femms): Ditto.
9252
9253 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
9254
9255         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9256         of ABI_64.
9257
9258 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9259
9260         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9261         (spu_section_type_flags): New function.
9262
9263 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9264
9265         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9266         reg_class_contents of FLOAT_REGS into a temporary.
9267
9268 2009-03-02  Richard Guenther  <rguenther@suse.de>
9269             Ira Rosen  <irar@il.ibm.com>
9270
9271         PR tree-optimization/39318
9272         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9273         information to the vectorized statement.
9274
9275 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
9276
9277         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9278         variable.  Use defined names instead of magic constants for REX SSE
9279         registers.
9280
9281 2009-03-01  Richard Guenther  <rguenther@suse.de>
9282
9283         PR tree-optimization/39331
9284         * omp-low.c (lower_send_shared_vars): Do not receive new
9285         values for the reference of DECL_BY_REFERENCE parms or results.
9286
9287 2009-03-01  Jan Hubicka  <jh@suse.cz>
9288
9289         PR debug/39267
9290         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9291         BLOCK_NONLOCALIZED_VAR): New macros.
9292         (tree_block): Add nonlocalized_vars.
9293         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9294         gen_decl_die): Add origin argument.  Allow generation of die with
9295         origin at hand only.
9296         (gen_member_die, gen_type_die_with_usage, force_decl_die,
9297         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9298         of gen_*.
9299         (gen_block_die): Fix checking for unused blocks.
9300         (process_scope_var): Break out from .... ; work with origins only.
9301         (decls_for_scope) ... here; process nonlocalized list.
9302         (dwarf2out_ignore_block): Look for nonlocalized vars.
9303         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9304         vars.
9305         (dump_scope_block): Dump them.
9306         * tree-inline.c (remap_decls): Handle nonlocalized vars.
9307         (remap_block): Likewise.
9308         (can_be_nonlocal): New predicate.
9309         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9310
9311 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9312
9313         * configure: Regenerate.
9314
9315 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9316
9317         * optc-gen.awk: No need to duplicate option flags twice.
9318         Reuse help texts for duplicate options which do not have any.
9319
9320         * gcc.c (display_help): Document --version.
9321
9322         * gcc.c (main): If print_help_list and verbose_flag, ensure
9323         driver output comes before subprocess output.
9324
9325         * optc-gen.awk: Assign all remaining fields to help string,
9326         space-separated, for multi-line help in *.opt.
9327
9328         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9329         -Wno-pedantic-ms-format is for MinGW targets only.
9330
9331         * doc/options.texi (Option file format): Fix bad indentation,
9332         restoring dropped sentence.
9333
9334 2009-02-28  Jan Hubicka  <jh@suse.cz>
9335
9336         * tree-inline.c (tree_function_versioning): Output debug info.
9337
9338 2009-02-28  Jan Hubicka  <jh@suse.cz>
9339
9340         PR debug/39267
9341         * tree-inline.c (setup_one_parameter): Do not copy propagate
9342         arguments when not optimizing.
9343
9344 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9345
9346         PR target/39327
9347         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9348         (avx_addsubv4df3): Likewise.
9349         (*avx_addsubv4sf3): Likewise.
9350         (sse3_addsubv4sf3): Likewise.
9351         (*avx_addsubv2df3): Likewise.
9352         (sse3_addsubv2df3): Likewise.
9353         (avx_unpckhps256): Correct item selectors.
9354         (avx_unpcklps256): Likewise.
9355         (avx_unpckhpd256): Likewise.
9356         (avx_unpcklpd256): Likewise.
9357
9358 2009-02-28  Jan Hubicka  <jh@suse.cz>
9359
9360         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9361         static vars.
9362         (copy_arguments_for_versioning): If var is declared don't declare it.
9363         (tree_function_versioning): First setup substitutions and then copy
9364         args.
9365
9366 2009-02-27  Jan Hubicka  <jh@suse.cz>
9367
9368         PR debug/39267
9369         * cgraph.h (varpool_output_debug_info): Remove.
9370         * cgraphunit.c (varpool_output_debug_info): Remove.
9371         * dwarf2out.c (deferred_locations_struct): New struct
9372         (deferred_locations): New type.
9373         (deferred_locations_list): New static var.
9374         (deffer_location): New function.
9375         (gen_variable_die): Use it.
9376         (decls_for_scope): Output info on local static vars.
9377         (dwarf2out_finish): Process deferred locations.
9378         * varpool.c (varpool_output_debug_info): Remove.
9379
9380 2009-02-27  Jan Hubicka  <jh@suse.cz>
9381
9382         PR debug/39267
9383         * tree.h (TREE_PROTECTED): Fix comment.
9384         (BLOCK_HANDLER_BLOCK): Remove.
9385         (struct tree_block): Remove handler_block add body_block.
9386         (inlined_function_outer_scope_p): New.
9387         (is_body_block): Remove.
9388         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9389         * dwarf2out.c (is_inlined_entry_point): Remove.
9390         (add_high_low_attributes): Use inlined_function_outer_scope_p.
9391         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
9392         code.
9393         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9394         * gimplify.c (gimplify_expr): Gimplify body blocks.
9395         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9396         block with multiple subblocks.
9397         (dump_scope_block): Prettier output; dump more flags and info.
9398         (dump_scope_blocks): New.
9399         (remove_unused_locals): Use dump_scope_blocks.
9400         * tree-flow.h (dump_scope_blocks): Declare.
9401         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9402         * stmt.c (is_body_block): Remove.
9403         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9404         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9405
9406 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
9407
9408         PR middle-end/39308
9409         * graphite.c (graphite_loop_normal_form): Do not call
9410         number_of_iterations_exit from a gcc_assert.
9411
9412 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9413
9414         * config/s390/s390.c (s390_swap_cmp): Look for conditional
9415         jumps if COND is NULL.
9416         (find_cond_jump): New function.
9417         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
9418         * config/s390/s390.md: Remove z10_cobra attribute value.
9419
9420 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
9421
9422         * config/alpha/alpha.h (alpha_expand_mov): Return false if
9423         force_const_mem returns NULL_RTX.
9424
9425 2009-02-26  Jan Hubicka  <jh@suse.cz>
9426
9427         PR debug/39267
9428         * cgraph.h (varpool_output_debug_info): Remove.
9429         * cgraphunit.c (varpool_output_debug_info): Remove.
9430         * dwarf2out.c (deferred_locations_struct): New struct
9431         (deferred_locations): New type.
9432         (deferred_locations_list): New static var.
9433         (deffer_location): New function.
9434         (gen_variable_die): Use it.
9435         (decls_for_scope): Output info on local static vars.
9436         (dwarf2out_finish): Process deferred locations.
9437         * varpool.c (varpool_output_debug_info): Remove.
9438
9439 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9440
9441         PR rtl-optimization/39241
9442         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9443         to subreg_offset_representable_p.
9444
9445 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9446
9447         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9448         execute function prototype.  Get f and nregs from max_reg_num
9449         and get_insns.  Remove the first backward pass as it's dead,
9450         guard the forward pass by flag_expensive_optimizations.
9451         (rest_of_handle_regmove): Delete.
9452         (pass_regmove): Replace it with regmove_optimize.
9453
9454 2009-02-25  Martin Jambor  <mjambor@suse.cz>
9455
9456         PR tree-optimization/39259
9457         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
9458         calls_alloca function flags.
9459         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9460         calls are detected.
9461
9462 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9463
9464         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9465         flags_set_1_rtx, flags_set_1_set): Delete.
9466         (regmove_optimize): Do not call mark_flags_life_zones.
9467
9468 2009-02-24  Julian Brown  <julian@codesourcery.com>
9469
9470         PR target/35965
9471         * config/arm/arm.c (require_pic_register): Only set
9472         cfun->machine->pic_reg once per function.
9473
9474 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
9475
9476         * doc/invoke.texi (Link Options): Document an easier way to pass
9477         options that take arguments to the GNU linker using -Xlinker and -Wl.
9478
9479 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
9480
9481         PR target/33785
9482         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9483
9484 2009-02-24  Richard Guenther  <rguenther@suse.de>
9485
9486         PR debug/39285
9487         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9488
9489 2009-02-24  Richard Guenther  <rguenther@suse.de>
9490             Zdenek Dvorak  <ook@ucw.cz>
9491
9492         PR tree-optimization/39233
9493         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9494         from converting them to a generic type.
9495
9496 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
9497
9498         PR tree-optimization/39260
9499         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9500         contains a condition with a real type.
9501         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9502
9503 2009-02-23  Jason Merrill  <jason@redhat.com>
9504
9505         PR c++/38880
9506         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9507         narrowing_initializer_constant_valid_p.
9508         (narrowing_initializer_constant_valid_p): Don't return
9509         null_pointer_node for adding a pointer to itself.
9510
9511 2009-02-23  Jan Hubicka  <jh@suse.cz>
9512
9513         PR c/12245
9514         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9515         resizing.
9516
9517 2009-02-23  Jan Hubicka  <jh@suse.cz>
9518
9519         PR tree-optimization/37709
9520         * tree.c (block_ultimate_origin): Move here from dwarf2out.
9521         * tree.h (block_ultimate_origin): Declare.
9522         * dwarf2out.c (block_ultimate_origin): Move to tree.c
9523         * tree-ssa-live.c (remove_unused_scope_block_p):
9524         Eliminate blocks containig no instructions nor live variables nor
9525         nested blocks.
9526         (dump_scope_block): New function.
9527         (remove_unused_locals): Enable removal of dead blocks by default;
9528         enable dumping at TDF_DETAILS.
9529
9530 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9531
9532         * config/i386/i386.c (classify_argument): Don't allow COImode
9533         and OImode.
9534         (function_arg_advance_32): Don't allow OImode.
9535         (function_arg_32): Likewise.
9536         (function_value_32): Likewise.
9537         (return_in_memory_32): Likewise.
9538         (function_arg_64): Remove OImode comment.
9539
9540 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9541
9542         PR target/39261
9543         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9544         ix86_expand_vector_set for V4DImode in 64bit mode only.
9545         (ix86_expand_vector_init_one_var): Likewise.
9546
9547 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
9548
9549         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9550
9551 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9552
9553         PR bootstrap/39257
9554         * loop-iv.c: Revert last change.
9555         * emit-rtl.c: Likewise.
9556
9557 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9558
9559         PR target/39256
9560         * config/i386/i386.c (type_natural_mode): Remove an extra
9561         space in the warning message.
9562         (function_value_32): Handle 32-byte vector modes.
9563         (return_in_memory_32): Likewise.
9564
9565 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9566
9567         * loop-iv.c (truncate_value): New function.
9568         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9569         of lowpart_subreg.
9570         (lowpart_subreg): Move to...
9571         * emit-rtl.c: ...here.
9572
9573 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
9574
9575         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9576         accidental and undocumented change at revision 140860.
9577
9578 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
9579
9580         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9581         take gimple_seq * arguments.
9582         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9583         types_compatible_p langhook.
9584
9585 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
9586             Joseph Myers  <joseph@codesourcery.com>
9587
9588         * config/arm/arm.c (arm_builtin_va_list): New function.
9589         (arm_expand_builtin_va_start): Likewise.
9590         (arm_gimplify_va_arg_expr): Likewise.
9591         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9592         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9593         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9594         (va_list_type): New variable.
9595         (arm_mangle_type): Mangle va_list_type appropriately.
9596
9597 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9598
9599         PR middle-end/39157
9600         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9601         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9602         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9603         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9604         parameter to 1000 for -O1 by default.
9605         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9606         parameter.
9607         * loop-invariant.c: Include params.h.
9608         (move_loop_invariants): Don't call move_single_loop_invariants on
9609         very large loops.
9610
9611 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
9612
9613         * calls.c (emit_library_call_value_1): Use slot_offset instead of
9614         offset when calculating bounds for indexing stack_usage_map.  Fixes
9615         a buffer overflow with certain target setups.
9616
9617 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9618
9619         PR target/39240
9620         * calls.c (expand_call): Clear try_tail_call if caller and callee
9621         disagree in promotion of function return value.
9622
9623 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
9624
9625         PR target/39175
9626         * c-common.c (c_determine_visibility): If visibility changed and
9627         DECL_RTL has been already set, call make_decl_rtl to update symbol
9628         flags.
9629
9630 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9631
9632         PR c++/39188
9633         * varasm.c (assemble_variable): Don't check DECL_NAME when
9634         globalizing a variable.
9635
9636 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
9637
9638         PR c/38483
9639         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9640         expression before any __builtin_trap call.
9641         * c-typeck.c (build_function_call): Convert and check function
9642         arguments before generating a call to a trap.  Evaluate the
9643         function arguments before the trap.
9644
9645 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
9646
9647         PR target/39228
9648         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9649         (UNSPEC_FXAM_MEM): New unspec.
9650         (fxam<mode>2_i387_with_temp): New insn and split pattern.
9651         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
9652         memory using fxam<mode>2_i387_with_temp to remove excess precision.
9653
9654 2009-02-19  Richard Guenther  <rguenther@suse.de>
9655
9656         PR tree-optimization/39207
9657         PR tree-optimization/39074
9658         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9659         storedanything_tree): New.
9660         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
9661         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9662         (build_succ_graph): Add edges from STOREDANYTHING to all
9663         non-direct nodes.
9664         (init_base_vars): Initialize STOREDANYTHING.
9665         (compute_points_to_sets): Free substitution info after
9666         building the succ graph.
9667         (ipa_pta_execute): Likewise.
9668
9669         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9670         field.
9671         (do_ds_constraint): Do not add to special var or non-pointer
9672         field solutions.
9673         (type_could_have_pointers): Split out from ...
9674         (could_have_pointers): ... here.  For arrays use the element type.
9675         (create_variable_info_for): Initialize may_have_pointers.
9676         (new_var_info): Likewise.
9677         (handle_lhs_call): Make the HEAP variable unknown-sized.
9678         (intra_create_variable_infos): Use a type with pointers for
9679         PARM_NOALIAS, make it unknown-sized.
9680
9681 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9682
9683         PR target/39224
9684         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
9685
9686 2009-02-18  Jason Merrill  <jason@redhat.com>
9687
9688         PR target/39179
9689         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9690         value if DECL_EXTERNAL.
9691         * tree-sra.c (sra_walk_gimple_assign): Likewise.
9692         * target.h (gcc_target::binds_local_p): Clarify "module".
9693         * tree.h (TREE_PUBLIC): Clarify "module".
9694
9695 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
9696
9697         PR target/38891
9698         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9699         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9700
9701 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
9702
9703         PR target/39082
9704         * c.opt (Wabi): Support C and ObjC.
9705         (Wpsabi): New.
9706
9707         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9708
9709         * config/i386/i386.c (classify_argument): Warn once about the ABI
9710         change when passing union with long double.
9711
9712         * doc/invoke.texi: Update -Wabi for warning psABI changes.
9713
9714 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
9715
9716         PR c/35447
9717         * c-parser.c (c_parser_compound_statement): Always enter and leave
9718         a scope.
9719
9720 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9721
9722         PR target/34587
9723         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9724
9725 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
9726
9727         PR tree-optimization/36922
9728         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9729         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9730         Likewise.
9731
9732 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9733
9734         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9735         to 0 for EABI64.
9736
9737 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9738
9739         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9740
9741 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9742
9743         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9744         tree sharing.
9745
9746 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
9747             Richard Sandiford  <rdsandiford@googlemail.com>
9748
9749         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9750         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9751         (loongson_biadd): ...this.
9752
9753 2009-02-17  Richard Guenther  <rguenther@suse.de>
9754
9755         PR tree-optimization/39202
9756         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9757         a var make sure to follow existing collapses.
9758
9759 2009-02-17  Richard Guenther  <rguenther@suse.de>
9760
9761         PR middle-end/39214
9762         * langhooks.c (lhd_print_error_function): Check for NULL block.
9763
9764 2009-02-17  Richard Guenther  <rguenther@suse.de>
9765
9766         PR tree-optimization/39204
9767         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9768         of the PHI arg.
9769
9770 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
9771
9772         * config/soft-fp/double.h: Update from glibc CVS.
9773
9774 2009-02-17  Richard Guenther  <rguenther@suse.de>
9775
9776         PR tree-optimization/39207
9777         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9778         strict-aliasing warnings for pointers pointing to NULL.
9779
9780 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
9781
9782         PR c/35446
9783         * c-parser.c (c_parser_braced_init): Call pop_init_level when
9784         skipping until next close brace.
9785
9786 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
9787
9788         PR target/37049
9789         * config/i386/i386.c (ix86_expand_push): Set memory alignment
9790         to function argument boundary.
9791
9792 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9793
9794         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9795         in the lea_add. Reload eventually constraints it properly.
9796         * config/picochip/constraints.md: Remove the target constraint
9797         "b", since it is not needed anymore.
9798
9799 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
9800
9801         * gthr-dce.h: Uglify function parameter and local variable names.
9802         * gthr-gnat.h: Likewise.
9803         * gthr-mipssde.h: Likewise.
9804         * gthr-nks.h: Likewise.
9805         * gthr-posix95.h: Likewise.
9806         * gthr-posix.h: Likewise.
9807         * gthr-rtems.h: Likewise.
9808         * gthr-single.h: Likewise.
9809         * gthr-solaris.h: Likewise.
9810         * gthr-tpf.h: Likewise.
9811         * gthr-vxworks.h: Likewise.
9812         * gthr-win32.h: Likewise.
9813
9814 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
9815
9816         PR target/39196
9817         * config/i386/i386.md: Restrict the new peephole2 to move
9818         between MMX/SSE registers.
9819
9820 2009-02-15  Richard Guenther  <rguenther@suse.de>
9821
9822         Revert
9823         2009-02-13  Richard Guenther  <rguenther@suse.de>
9824
9825         * configure.ac: Enable LFS.
9826         * configure: Re-generate.
9827         * config.in: Likewise.
9828
9829 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9830
9831         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9832         spu_srqwbyte, spu_srqwbytebc): Define.
9833         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9834         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9835         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9836         "shrqby_<mode>"): New insn-and-split patterns.
9837         * config/spu/spu.c (expand_builtin_args): Determine and return
9838         number of operands using spu_builtin_description data.
9839         (spu_expand_builtin_1): Use it.
9840
9841 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
9842
9843         PR target/38056
9844         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
9845         TARGET_CONST_GP.
9846
9847 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9848
9849         PR target/39149
9850         * config/i386/i386.c (override_options): Correct warning
9851         messages for -malign-loops, -malign-jumps and -malign-functions.
9852
9853 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9854
9855         PR target/39152
9856         * config/i386/i386.md: Restrict the new peephole2 to move
9857         between the general purpose registers.
9858
9859 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9860
9861         PR target/39162
9862         * config/i386/i386.c (type_natural_mode): Add a new argument.
9863         Return the original mode and warn ABI change if vector size is 32byte.
9864         (function_arg_advance): Updated.
9865         (function_arg): Likewise.
9866         (ix86_function_value): Likewise.
9867         (ix86_return_in_memory): Likewise.
9868         (ix86_sol10_return_in_memory): Likewise.
9869         (ix86_gimplify_va_arg): Likewise.
9870         (function_arg_32): Don't warn ABX ABI change here.
9871         (function_arg_64): Likewise.
9872
9873 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
9874
9875         * loop-iv.c (implies_p): In the final case, test that operands 0
9876         of the two comparisons match.
9877
9878         * config/bfin/bfin.c (find_prev_insn_start): New function.
9879         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
9880         (find_next_insn_start): Move.
9881
9882 2009-02-13  Richard Guenther  <rguenther@suse.de>
9883
9884         * configure.ac: Enable LFS.
9885         * configure: Re-generate.
9886         * config.in: Likewise.
9887
9888 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
9889
9890         PR c/35444
9891         * c-parser.c (c_parser_parms_list_declarator): Discard pending
9892         sizes on syntax error after some arguments have been parsed.
9893
9894 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
9895
9896         * doc/invoke.texi (-fira): Remove.
9897
9898 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9899
9900         * caller-save.c: Replace regclass.c with reginfo.c in comments.
9901         * recog.c: Likewise.
9902         * rtl.h: Likewise.
9903
9904 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
9905
9906         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
9907         (umul_ppmm): Likewise.
9908         (count_leading_zeros): Likewise.
9909         (count_trailing_zeros): Likewise.
9910         (UMUL_TIME): Likewise.
9911
9912 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9913
9914         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
9915         soft-fp/t-softfp to tmake_file.
9916
9917         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
9918         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
9919         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
9920         IA64_BUILTIN_INFQ]: New.
9921         (ia64_init_builtins): Initialize __builtin_infq,
9922         __builtin_fabsq and __builtin_copysignq if not HPUX.
9923         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9924         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9925
9926         * config/ia64/lib1funcs.asm (__divtf3): Define only if
9927         SHARED is defined.
9928         (__fixtfti): Likewise.
9929         (__fixunstfti): Likewise.
9930         (__floattitf): Likewise.
9931
9932         * config/ia64/libgcc-glibc.ver: New.
9933         * config/ia64/t-fprules-softfp: Likewise.
9934         * config/ia64/sfp-machine.h: Likewise.
9935
9936         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9937         (LIBGCC2_TF_CEXT): Likewise.
9938         (TF_SIZE): Likewise.
9939         (TARGET_INIT_LIBFUNCS): Likewise.
9940
9941         * config/ia64/t-glibc (SHLINB_MAPFILES):
9942         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
9943
9944 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9945
9946         * config/i386/i386.c (construct_container): Rewrite processing
9947         BLKmode with X86_64_SSE_CLASS.
9948
9949 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
9950
9951         PR target/39152
9952         * config/i386/i386.md: Replace simplify_replace_rtx with
9953         replace_rtx in the new peephole2.
9954
9955 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
9956
9957         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9958         loop unrolling do not happen at -O2.
9959
9960 2009-02-12  Michael Matz  <matz@suse.de>
9961
9962         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
9963
9964 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
9965
9966         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
9967         for -g3.
9968
9969 2009-02-12  Ben Elliston  <bje@au.ibm.com>
9970
9971         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
9972         patterns when updating the back chain.  Missed in the 2009-02-10
9973         change.
9974
9975 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
9976
9977         * doc/extend.texi (Decimal Floating Types): Update identifier of
9978         draft TR and list of missing support.
9979
9980 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
9981
9982         PR middle-end/39154
9983         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
9984         bit to variable length decl's flags, add it also to its
9985         pointer replacement variable.
9986
9987 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
9988             Jakub Jelinek  <jakub@redhat.com>
9989
9990         PR target/39118
9991         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
9992         (memory_blockage): New expander.
9993         (*memory_blockage): New insn pattern.
9994         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
9995         instead of general blockage at the end of function prologue when
9996         frame pointer is used to access red zone area.  Do not emit blockage
9997         when profiling, it is emitted in generic code.
9998         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
9999         function epilogue when frame pointer is used to access red zone area.
10000
10001 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
10002
10003         PR target/38824
10004         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10005         by arithmetic with memory operands.
10006         * config/i386/predicates.md (commutative_operator): New.
10007
10008 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
10009
10010         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10011         bulleted lists.
10012
10013 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10014
10015         * alias.h (record_alias_subset): Declare.
10016         * alias.c (record_alias_subset): Make global.
10017
10018 2009-02-10  Nick Clifton  <nickc@redhat.com>
10019
10020         * tree-parloops.c: Change license to GPLv3.
10021         * ipa-struct-reorg.c: Change license to GPLv3.
10022         * ipa-struct-reorg.h: Change license to GPLv3.
10023
10024 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
10025
10026         PR c/39084
10027         * c-decl.c (start_struct): Return NULL on error.
10028
10029 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
10030
10031         PR middle-end/39124
10032         * cfgloopmanip.c (remove_path): Call remove_bbs after
10033         cancel_loop_tree, not before it.
10034
10035         PR target/39139
10036         * function.h (struct function): Add has_local_explicit_reg_vars bit.
10037         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10038         VAR_DECLs were seen.
10039         * tree-ssa-live.c (remove_unused_locals): Recompute
10040         cfun->has_local_explicit_reg_vars.
10041         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10042         copies or clearings if cfun->has_local_explicit_reg_vars.
10043
10044 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
10045
10046         PR target/39118
10047         * config/i386/i386.c (expand_prologue): Emit blockage at the end
10048         of function prologue when frame pointer is used to access
10049         red zone area.
10050
10051 2009-02-10  Richard Guenther  <rguenther@suse.de>
10052
10053         PR middle-end/39127
10054         * gimplify.c (gimple_regimplify_operands): Always look if
10055         we need to create a temporary.
10056
10057 2009-02-10  Richard Guenther  <rguenther@suse.de>
10058
10059         PR tree-optimization/39132
10060         * tree-loop-distribution.c (todo): New global var.
10061         (generate_memset_zero): Trigger TODO_rebuild_alias.
10062         (tree_loop_distribution): Return todo.
10063
10064 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
10065
10066         PR target/39119
10067         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10068         (x86_64_reg_class_name): Removed.
10069         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
10070         first one isn't X86_64_SSE_CLASS or any other ones aren't
10071         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
10072         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10073         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
10074         and 3 X86_64_SSEUP_CLASS.
10075         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
10076         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10077
10078 2009-02-10  Ben Elliston  <bje@au.ibm.com>
10079
10080         * config/rs6000/rs6000.md (allocate_stack): Always use an update
10081         form instruction to update the stack back chain word, even if the
10082         user has disabled the generation of update instructions.
10083         (movdi_<mode>_update_stack): New.
10084         (movsi_update_stack): Likewise.
10085         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10086         always use an update form instruction to update the stack back
10087         chain word.
10088
10089 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
10090
10091         PR middle-end/38953
10092         * graphite.c (if_region_set_false_region): After moving a region in
10093         the false branch of a condition, remove the empty dummy basic block.
10094         (gloog): Remove wrong fix for PR38953.
10095
10096 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10097
10098         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10099         generation due to implicit sign extension.
10100
10101 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
10102
10103         PR middle-end/38981
10104         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10105         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10106
10107 2009-02-09  Richard Guenther  <rguenther@suse.de>
10108
10109         PR middle-end/35202
10110         * convert.c (convert_to_real): Disable (float)fn((double)x)
10111         to fnf(x) conversion if errno differences may occur and
10112         -fmath-errno is set.
10113
10114 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
10115
10116         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10117         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10118         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10119
10120 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10121
10122         PR c/35434
10123         * c-common.c (handle_alias_attribute): Disallow attribute for
10124         anything not a FUNCTION_DECL or VAR_DECL.
10125
10126 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
10127
10128         PR c/39035
10129         * real.c (do_compare): Special-case compare of zero against
10130         decimal float value.
10131
10132 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10133
10134         PR c/36432
10135         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10136         as indicating flexible array members unless the field itself is
10137         being declarared as the incomplete array.
10138
10139 2009-02-06  Jan Hubicka  <jh@suse.cz>
10140
10141         PR tree-optimization/38844
10142         * ipa-inline.c (try_inline): Stop inlining recursion when edge
10143         is already inlined.
10144
10145 2009-02-06  Richard Guenther  <rguenther@suse.de>
10146
10147         PR middle-end/38977
10148         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10149         fork because we may expand it as __gcov_fork.
10150
10151 2009-02-06  Nick Clifton  <nickc@redhat.com>
10152
10153         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
10154
10155 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
10156
10157         PR tree-optimization/35659
10158         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10159         vn_phi_eq): Shortcut if hashcode does not match.
10160         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10161         NULL operands.
10162         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10163         and avoid iterative_hash_expr.
10164         (FOR_EACH_VALUE_ID_IN_SET): New.
10165         (value_id_compare): Remove.
10166         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10167         sort expressions by value id.
10168
10169 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10170
10171         PR target/38991
10172         * config/sh/predicates.md (general_movsrc_operand): Don't check
10173         the subreg of system registers here.
10174
10175 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
10176
10177         PR c++/39106
10178         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10179         on the copied decl.
10180
10181 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
10182
10183         PR rtl-optimization/39110
10184         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10185         addresses, not aligned ones.
10186
10187 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
10188             Richard Guenther  <rguenther@suse.de>
10189
10190         PR tree-optimization/39100
10191         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10192         comment says and add edges.
10193
10194 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
10195
10196         PR c/35435
10197         * c-common.c (handle_tls_model_attribute): Ignore attribute for
10198         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10199
10200 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
10201
10202         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10203         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10204         register_bb_in_sese, new_sese, free_sese): Moved.
10205         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10206         outermost_loop_in_scop, build_scop_iteration_domain,
10207         expand_scalar_variables_ssa_name, get_vdef_before_scop,
10208         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10209         Use loop_in_sese_p instead of loop_in_scop_p.
10210         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10211         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10212         (scopdet_basic_block_info): Fix bug in scop detection.
10213         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10214         eq_loop_to_cloog_loop): Remove.
10215         (nb_loops_around_loop_in_scop, nb_loop
10216         ref_nb_loops): Moved here...
10217         * graphite.h (ref_nb_loops): ... from here.
10218         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10219         (loop_domain_dim, loop_iteration_vector_dim): Remove.
10220         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10221         * testsuite/gcc.dg/graphite/scop-19.c: New
10222
10223 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
10224             Hans-Peter Nilsson  <hp@axis.com>
10225
10226         PR rtl-optimization/37889
10227         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10228         Move offset handling from PLUS to before the switch.  Use new
10229         arguments when considering SYMBOL_REFs too.
10230         (rtx_addr_can_trap_p): Pass dummy offset and size.
10231         (enum may_trap_p_flags): Remove.
10232         (may_trap_p_1): Pass size from MEM_SIZE.
10233
10234         PR rtl-optimization/38921
10235         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10236         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10237         * rtlanal.c (may_trap_after_code_motion_p): Delete.
10238         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10239
10240 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
10241
10242         AVX Programming Reference (January, 2009)
10243         * config/i386/sse.md (*vpclmulqdq): New.
10244
10245 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
10246
10247         PR tree-optimization/38977
10248         PR gcov-profile/38292
10249         * calls.c (special_function_p): Disregard __builtin_ prefix.
10250
10251 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10252
10253         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10254         non-indexable addresses even before reload.
10255
10256 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10257
10258         PR c/29129
10259         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10260         as having variable size.  Do not give an error for unnamed
10261         parameters with [*] declarators.  Give a warning for type names
10262         with [*] declarators and mark them as variable size.
10263         * c-parser.c (c_parser_sizeof_expression): Do not give an error
10264         for sizeof applied to [*] type names.
10265
10266 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10267
10268         PR C++/36607
10269         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10270
10271 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10272
10273         * gcc.c (process_command): Update copyright notice dates.
10274         * gcov.c (print_version): Likewise.
10275         * gcov-dump.c (print_version): Likewise.
10276         * mips-tfile.c (main): Likewise.
10277         * mips-tdump.c (main): Likewise.
10278
10279 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10280
10281         PR c/35433
10282         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10283         for composite type involving a zero-length array type.
10284
10285 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10286
10287         PR target/35318
10288         * function.c (match_asm_constraints_1): Skip over
10289         initial optional % in the constraint.
10290
10291         PR inline-asm/39059
10292         * c-parser.c (c_parser_postfix_expression): If fixed point is not
10293         supported, don't accept FIXED_CSTs.
10294         * c-decl.c (finish_declspecs): Error if fixed point is not supported
10295         and _Sat is used without _Fract/_Accum.  Set specs->type to
10296         integer_type_node for cts_fract/cts_accum if fixed point is not
10297         supported.
10298
10299 2009-02-02  Catherine Moore  <clm@codesourcery.com>
10300
10301         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
10302
10303 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
10304
10305         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10306         (ABI_HAS_64BIT_SYMBOLS): Use it.
10307         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10308
10309 2009-02-02  Paul Brook  <paul@codesourcery.com>
10310
10311         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10312
10313 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
10314
10315         PR inline-asm/39058
10316         * recog.h (asm_operand_ok): Add constraints argument.
10317         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
10318         recurse on matching constraint.
10319         (check_asm_operands): Pass constraints as 3rd argument to
10320         asm_operand_ok.  Don't look up matching constraint here.
10321         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10322         to asm_operand_ok.
10323
10324 2009-02-02  Ben Elliston  <bje@au.ibm.com>
10325
10326         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10327         TARGET_NARROW_VOLATILE_BITFIELD macro names.
10328
10329 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10330
10331         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10332         information.  Remove some obsolete information.  Reorganize.
10333
10334         * config/pa/fptr.c: Revert license to GPL 2.
10335         * config/pa/milli64.S: Likewise.
10336
10337 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10338
10339         PR target/38904
10340         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
10341         LIBRARY name in, instead of hard-coding it.
10342         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
10343         extra target make frag to tmake_files according to EH model.
10344         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
10345         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
10346         frags that define makefile variable EH_MODEL appropriately.
10347         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
10348         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
10349         to "-sjlj" according to type of EH configured.
10350         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10351         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
10352         to "_sjlj" according to type of EH configured.
10353         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10354         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
10355         (SHLIB_LINK):  Add missing semicolon to if-else construct.
10356         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10357         string value of "pe_dll" command-line option.
10358         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
10359         (SHLIB_SONAME):  Use it when overriding t-cygming default.
10360         (SHLIB_IMPLIB):  Override t-cygming default.
10361         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10362         string value of "pe_dll" command-line option.
10363
10364 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10365
10366         PR target/38952
10367         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
10368         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
10369
10370 2009-01-31  Richard Guenther  <rguenther@suse.de>
10371
10372         PR tree-optimization/38937
10373         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10374         computing the transitive closure.
10375
10376 2009-01-30  Richard Guenther  <rguenther@suse.de>
10377
10378         PR tree-optimization/39041
10379         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10380         Propagate variable indices only if the types match for this stmt.
10381
10382 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
10383
10384         PR target/39013
10385         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10386         inline but never defined.
10387
10388 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
10389
10390         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10391         (*insv_h_di_reg_extimm): New insn.
10392         (*insv_l<mode>_reg_extimm): New insn.
10393
10394 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10395
10396         * config/picochip/picochip.c (flag_conserve_stack): set
10397         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10398         fconserve-stack. Reduce call-overhead used by inliner.
10399
10400 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10401
10402         PR/38157
10403         * common.opt (flag_conserve_stack): Initialised to zero.
10404
10405 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
10406
10407         PR/39002
10408         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10409         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10410         method.
10411
10412 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
10413
10414         * ira-color.c (allocno_reload_assign): Update comments.
10415         * regmove.c (regmove_optimize): Likewise.
10416
10417         * ra.h: Removed.
10418
10419 2009-01-29  Robert Millan  <rmh@aybabtu.com>
10420
10421         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10422         * config/i386/kopensolaris-gnu.h: New file.  Undefine
10423         `MD_UNWIND_SUPPORT'.
10424         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
10425
10426 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
10427
10428         PR tree-optimization/39007
10429         * tree-loop-distribution.c (generate_builtin): Use
10430         recompute_dominator to compute the immediate dominator of the
10431         basic block just after the loop.
10432
10433 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10434
10435         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10436         (ASM_OUTPUT_DWARF_PCREL): Define.
10437
10438 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
10439
10440         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10441         * doc/passes.texi: Remove entries about regclass, local-alloc, and
10442         global.  Modify entries about regmove and IRA.
10443
10444         * ra-conflict.c: Remove the file.
10445
10446         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10447
10448         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10449         (pass_regclass_init): Rename to pass_reginfo_init.
10450
10451         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10452
10453         * toplev.h (flag_ira): Remove.
10454
10455         * caller-save.c (setup_save_areas): Remove flag_ira.
10456
10457         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
10458
10459         * global.c: Remove the file.
10460
10461         * opts.c (decode_options): Remove flag_ira.
10462
10463         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10464
10465         * regmove.c: Modify file description.
10466         (find_use_as_address, try_auto_increment): Define them only if
10467         AUTO_INC_DEC is defined.
10468         (replacement_quality, replace_in_call_usage, fixup_match_1,
10469         stable_and_no_regs_but_for_p): Remove.
10470         (reg_set_in_bb): Make it static.
10471         (regmove_optimize): Remove flag_ira and code which worked for
10472         !flag_ira.
10473
10474         * local-alloc.c: Remove the file.
10475
10476         * common.opt (fira): Remove.
10477
10478         * ira.c: Include except.h.
10479         (eliminable_regset): Move from global.c.
10480         (mark_elimination): Ditto.  Remove flag_ira.
10481         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10482         equiv_mem_modified, validate_equiv_mem_from_store,
10483         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10484         contains_replace_regs, memref_referenced_p, memref_used_between_p,
10485         no_equiv, recorded_label_ref): Move from local-alloc.c.
10486         (update_equiv_regs): Ditto.  Make it static.
10487         (print_insn_chain, print_insn_chains): Move it from global.c.
10488         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
10489         (build_insn_chain): Ditto.  Make it static.
10490         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
10491         Rename to init_live_subregs.
10492         (gate_ira): Remove flag_ira.
10493
10494         * regclass.c: Rename reginfo.c.  Change file description.
10495         (FORBIDDEN_INC_DEC_CLASSES): Remove.
10496         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
10497         (init_reg_sets_1): Remove code for evaluation of
10498         reg_class_superclasses and losing_caller_save_reg_set.
10499         (init_regs): Remove init_reg_autoinc.
10500         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10501         ok_for_base_p_nonstrict): Remove.
10502         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
10503         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
10504         corresponding entries.
10505         (dump_regclass, record_operand_costs, scan_one_insn,
10506         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10507         record_address_regs, auto_inc_dec_reg_p): Remove.
10508         (gt-regclass.h): Rename to gt-reginfo.h.
10509
10510         * rtl.h (dump_global_regs, retry_global_alloc,
10511         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
10512
10513         * Makefile.in (RA_H): Remove.
10514         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10515         Rename regclass.o to reginfo.o.
10516         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
10517         gt-reginfo.h.
10518         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10519         (GTFILES): Rename regclass.c to reginfo.c.
10520
10521         * passes.c (init_optimization_passes): Remove pass_local_alloc and
10522         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
10523
10524         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10525         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10526         Remove flag_ira.
10527         (finish_spills): Ditto.  Remove code for !flag_ira.
10528
10529 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
10530
10531         PR middle-end/35854
10532         * doc/invoke.texi (rtl debug options): Complete rewrite.
10533         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10534         to auto_inc_dec".
10535         * mode-switching.c (pass_mode_switching): Rename pass from
10536         "mode-sw" to "mode_sw".
10537         * except.c (pass_convert_to_eh_ranges): Rename pass from
10538         "eh-ranges" to "eh_ranges".
10539         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10540         to "subreg1".
10541
10542
10543 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
10544             Alexander Monakov  <amonakov@ispras.ru>
10545
10546         PR middle-end/38857
10547         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10548         register.
10549         (move_exprs_to_boundary): Change return type and pass through
10550         should_move from move_op.  Relax assert.  Update usage ...
10551         (schedule_expr_on_boundary): ... here.  Use should_move instead of
10552         cant_move.
10553         (move_op_orig_expr_found): Indicate that insn was disconnected from
10554         stream.
10555         (code_motion_process_successors): Do not call after_merge_succs
10556         callback if original expression was not found when traversing any of
10557         the branches.
10558         (code_motion_path_driver): Change return type.  Update prototype.
10559         (move_op): Update comment.  Add a new parameter (should_move).  Update
10560         prototype.  Set *should_move based on indication provided by
10561         move_op_orig_expr_found.
10562
10563 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
10564
10565         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10566         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10567         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10568         * config/rs6000/rs6000.c (rs6000_override_options): Default
10569         avoid-indexed-addresses on for Power6, off for everything else.
10570         (avoiding_indexed_address_p): New function.
10571         (rs6000_legitimize_address): Use it.
10572         (rs6000_legitimate_address): Likewise.
10573         * config/rs6000/rs6000.md (movXX_updateX): Likewise
10574
10575 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
10576
10577         PR tree-optimization/38997
10578         * tree-loop-distribution.c (generate_memset_zero): Use
10579         POINTER_PLUS_EXPR for a pointer addition.
10580
10581 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
10582
10583         * config/s390/s390.md (bswap<mode>2): New pattern added.
10584
10585 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10586
10587         * config/s390/s390.md (*tls_load_31): Added type attribute.
10588
10589 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10590
10591         * config/s390/s390.md: Fix a few comments.
10592
10593 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10594
10595         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10596         (*tm<mode>_full): Fixed z10prop attribute.
10597         (*tst<mode>_extimm): Fixed z10prop attribute.
10598         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10599         (*tstqiCCT_cconly): Fixed z10prop attribute.
10600         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10601         (*movsi_larl): Fixed z10prop attribute.
10602         (*movsi_zarch): Fixed z10prop attribute.
10603         (*movsi_eas): Fixed z10prop attribute.
10604         (*movhi): Fixed z10prop attribute.
10605         (*movqi): Fixed z10prop attribute.
10606         (*movstrictqi): Fixed z10prop attribute.
10607         (*mov<mode>): Fixed z10prop attribute.
10608         (*movcc): Fixed z10prop attribute.
10609         (*sethighpartdi_64): Fixed z10prop attribute.
10610         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10611         (*negdi2_sign_cc): Fixed z10prop attribute.
10612         (*negdi2_sign): Fixed z10prop attribute.
10613         (*absdi2_sign_cc): Fixed z10prop attribute.
10614         (*absdi2_sign): Fixed z10prop attribute.
10615         (*negabsdi2_sign_cc): Fixed z10prop attribute.
10616         (*negabsdi2_sign): Fixed z10prop attribute.
10617         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10618         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10619         (doloop_si64): Fixed z10prop attribute.
10620         (doloop_si31): Fixed z10prop attribute.
10621         (doloop_long): Fixed z10prop attribute.
10622         (indirect_jump): Fixed z10prop attribute.
10623         (nop): Fixed z10prop attribute.
10624         (main_base_64): Fixed z10prop attribute.
10625         (reload_base_64): Fixed z10prop attribute.
10626
10627 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10628
10629         PR rtl-optimization/38740
10630         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10631         if !optimize.
10632         * config/mips/mips.c (mips_reorg): Likewise.
10633
10634 2009-01-28  Richard Guenther  <rguenther@suse.de>
10635
10636         PR tree-optimization/38926
10637         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10638         with the correct value id to a value.
10639         (do_regular_insertion): Use the value number of edoubleprime
10640         for the value number of the expr.
10641
10642         Revert
10643         2008-08-21  Richard Guenther  <rguenther@suse.de>
10644
10645         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10646         a PHI ask VN if it is already available.
10647         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10648         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
10649
10650 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10651
10652         PR middle-end/38934
10653         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10654         set to varying whenever max has TREE_OVERFLOW set, similarly
10655         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10656
10657 2009-01-28  Richard Guenther  <rguenther@suse.de>
10658
10659         PR middle-end/38908
10660         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10661         uninitialized aggregate uses in call arguments.
10662
10663 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
10664
10665         PR tree-optimization/38984
10666         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10667         the nothing_id variable if -fno-delete-null-pointer-checks.
10668
10669 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
10670
10671         PR target/38988
10672         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10673         (set_got_offset_rex64): Ditto.
10674
10675 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
10676
10677         PR target/38941
10678         * doc/extend.texi: Improve local variable with asm reg.
10679
10680 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
10681
10682         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10683         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10684         was not supplied then set warn_packed_bitfield_compat to the
10685         default value of 1.
10686         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10687         against 1.
10688
10689 2009-01-27  Richard Guenther  <rguenther@suse.de>
10690
10691         PR tree-optimization/38503
10692         * cfgexpand.c (expand_gimple_basic_block): Ignore
10693         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10694         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10695         variables that cannot have TBAA applied.
10696         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10697         statements.
10698
10699 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
10700
10701         PR middle-end/38969
10702         * calls.c (initialize_argument_information): Do not wrap complex
10703         arguments in SAVE_EXPR.
10704
10705 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
10706
10707         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
10708         (INSTALL_LIBGCC): Revert typo commit.
10709
10710 2009-01-26  Richard Guenther  <rguenther@suse.de>
10711
10712         PR tree-optimization/38745
10713         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10714         from special handling.
10715
10716 2009-01-26  Richard Guenther  <rguenther@suse.de>
10717
10718         PR tree-optimization/38745
10719         * tree-ssa.c (execute_update_addresses_taken): Do not include
10720         variables that cannot possibly be a register in not_reg_needs.
10721         Do not clear TREE_ADDRESSABLE on vars that may not become
10722         registers.
10723         * tree-ssa.c (update_alias_info_1): Include those in the set
10724         of addressable vars.
10725
10726 2009-01-26  Richard Guenther  <rguenther@suse.de>
10727
10728         PR middle-end/38851
10729         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10730         * tree-ssa-dse.c: Include langhooks.h
10731         (execute_simple_dse): Remove stores with zero size.
10732
10733 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
10734
10735         PR c/38957
10736         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10737         as PLUS_EXPR.
10738
10739 2009-01-24  Julian Brown  <julian@codesourcery.com>
10740
10741         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10742         config/arm/linux-atomic.c.
10743         * config/arm/linux-atomic.c: New.
10744
10745 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
10746
10747         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10748         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10749         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10750
10751 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10752
10753         PR c/38938
10754         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
10755         properly.
10756
10757 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
10758
10759         PR tree-optimization/38953
10760         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10761         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10762         (gloog): Split the exit of the scop when the scop exit is a loop exit.
10763         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10764         changed the CFG.
10765
10766 2009-01-24  Paul Brook  <paul@codesourcery.com>
10767
10768         * config/arm/neon.md (neon_type): Move to arm.md.
10769         (neon_mov<VSTRUCT>): Add neon_type attribute.
10770         * config/arm/arm.md (neon_type): Move to here.
10771         (conds): Add "unconditioal" and use as default for NEON insns.
10772
10773 2009-01-24  Ben Elliston  <bje@au.ibm.com>
10774
10775         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10776         void *' warning from -Wc++-compat.
10777         * Makefile.in (dominance.o-warn): Remove.
10778
10779 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
10780
10781         PR tree-optimization/38932
10782         * fold-const.c (fold_unary_ignore_overflow): New.
10783         * tree.h (fold_unary_ignore_overflow): Declare.
10784         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10785         * tree-ssa-sccvn.c (visit_reference_op_load,
10786         simplify_unary_expression): Likewise.
10787
10788 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
10789
10790         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10791         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
10792         regardless of their type.
10793         * c-common.c (handle_packed_attribute): Don't ignore packed on
10794         bitfields.
10795         * c.opt (Wpacked-bitfield-compat): New warning option.
10796         * stor-layout.c (place_field): Warn if offset of a field changed.
10797         * doc/extend.texi (packed): Mention the ABI change.
10798         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10799         (Warning Options): Add it to the list.
10800
10801 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10802
10803         * c-opts.c (c_common_post_options): Fix a typo in comments.
10804
10805 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
10806
10807         PR middle-end/38615
10808         * gimplify.c (gimplify_init_constructor): Fix promotion of const
10809         variables to static.
10810         * doc/invoke.texi (-fmerge-all-constants): Update description.
10811
10812 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
10813
10814         PR target/38931
10815         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10816         (*movdi_1_rex64): Use type "mmx" for alternative 5.
10817
10818 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
10819
10820         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10821         a word boundary.
10822         (LOCAL_ALIGNMENT): Similarly.
10823
10824 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
10825             Joseph Myers  <joseph@codesourcery.com>
10826
10827         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10828         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10829         * config/arm/arm-tune.md: Regenerate.
10830         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10831         -march=iwmmxt2.
10832
10833 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
10834
10835         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10836         version number to five.
10837
10838 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
10839
10840         PR c++/38930
10841         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
10842         * c-common.c (set_underlying_type): Likewise.
10843         (is_typedef_decl ): Likewise
10844         * tree.h: Likewise
10845         (set_underlying_type): Likewise.
10846         (is_typedef_type): Likewise.
10847
10848 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10849
10850         PR middle-end/38587
10851         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
10852         crossing setjmps.
10853
10854 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10855
10856         PR bootstrap/37660
10857         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
10858         (LIBGCC_SPEC):  Don't define.
10859         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
10860
10861 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
10862
10863         PR rtl-optimization/38879
10864         * alias.c (base_alias_check): Unaligned access via AND address can
10865         alias all surrounding object types except those with sizes equal
10866         or wider than the size of unaligned access.
10867
10868 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
10869
10870         PR c++/26693
10871         * c-decl.c (clone_underlying_type): Move this ...
10872         * c-common.c (set_underlying_type): ... here.
10873         Also, make sure the function properly sets TYPE_STUB_DECL() on
10874         the newly created typedef variant type.
10875         (is_typedef_decl ): New entry point.
10876         * tree.h: Added a new member member_types_needing_access_check to
10877         struct tree_decl_non_common.
10878         (set_underlying_type): New entry point.
10879         (is_typedef_type): Likewise.
10880
10881 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
10882
10883         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
10884         Check whether two instructions have memory references that
10885         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
10886         are helper functions for traversing.
10887         * alias.h (insn_alias_sets_confilict_p): New prototypes.
10888         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
10889         not to draw dependency edge for instructions with non-conflicting
10890         alias sets.
10891
10892 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
10893
10894         PR other/38758
10895         * longlong.h: Update copyright years.  Use soft-fp license notice.
10896         Sync __clz_tab declaration with glibc.
10897
10898 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
10899
10900         PR target/30687
10901         * doc/extend.texi (syscall_linkage): New.
10902         (version_id): Modify.
10903
10904 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10905             Richard Guenther  <rguenther@suse.de>
10906
10907         PR tree-optimization/38747
10908         PR tree-optimization/38748
10909         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
10910         conversion if the base address is an indirect reference and the
10911         aliasing sets could cause issues.
10912
10913 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
10914
10915         * common.opt (fgraphite, fgraphite-identity): Add comment for
10916         explaining why these options are not documented.
10917
10918 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
10919
10920         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
10921         gimple_call_lhs is NULL.
10922
10923 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
10924
10925         PR target/38868
10926         * emit-rtl.c (adjust_address_1): Make sure memref is never
10927         overwritten.
10928
10929 2009-01-20  Ben Elliston  <bje@au.ibm.com>
10930
10931         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10932         const qualifier from arg parameter. Remove unnecessary cast to char *.
10933         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10934         const qualifier from arg 2.
10935
10936 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
10937
10938         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
10939
10940 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
10941
10942         PR c/38869
10943         * rtl.h (reinit_regs): New prototype.
10944         * regclass.c: Include ira.h.
10945         (reinit_regs): New.
10946         * Makefile.in (regclass.o): Add ira.h.
10947         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10948
10949 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
10950
10951         PR target/38736
10952         * c-common.c (handle_aligned_attribute): Use
10953         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10954         default alignment value.
10955
10956         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10957
10958         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10959         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10960
10961         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
10962         __BIGGEST_ALIGNMENT__.
10963
10964         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
10965
10966 2009-01-18  Richard Guenther  <rguenther@suse.de>
10967
10968         PR tree-optimization/38819
10969         * tree-flow.h (operation_could_trap_helper_p): Declare.
10970         * tree-eh.c (operation_could_trap_helper_p): Export.
10971         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
10972         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
10973         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
10974         are about to insert a possibly trapping instruction and fail
10975         in this case.
10976
10977 2009-01-18  Andreas Schwab  <schwab@suse.de>
10978
10979         * doc/install.texi (Configuration): Remove obsolete paragraph
10980         about use of --with-gnu-ld with --with-gnu-as.
10981
10982 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
10983
10984         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
10985         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
10986         Follow spelling conventions.
10987
10988 2009-01-18  Ben Elliston  <bje@au.ibm.com>
10989
10990         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
10991         C++ warning about implicit conversion from void * to struct
10992         bitmap_head_def *.
10993         (bitmap_obstack_free): Likewise for bitmap_element *.
10994         * Makefile.in (bitmap.o-warn): Remove.
10995
10996 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
10997
10998         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
10999
11000 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
11001             Tobias Grosser  <tobi.grosser@amd.com>
11002
11003         * graphite.c (graphite_trans_scop_block): Do not block single
11004         nested loops.
11005
11006 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
11007
11008         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11009         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11010         test with assertion.
11011
11012 2009-01-16  Richard Guenther  <rguenther@suse.de>
11013
11014         PR tree-optimization/38835
11015         PR middle-end/36227
11016         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11017         and INT + PTR -> (INT)(PTR p+ INT) folding.
11018         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11019
11020 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
11021
11022         PR target/38554
11023         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11024         the subreg from a lowpart subreg if it is also casting the value.
11025
11026 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11027             Tobias Grosser  <tobi.grosser@amd.com>
11028
11029         * graphite.c (compare_prefix_loops): New.
11030         (build_scop_canonical_schedules): Rewritten.
11031         (graphite_transform_loops): Move build_scop_canonical_schedules
11032         after build_scop_iteration_domain.
11033
11034 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11035             Tobias Grosser  <tobi.grosser@amd.com>
11036
11037         * graphite.c (add_conditions_to_domain): Add the loops to
11038         the dimension of the iteration domain.  Do copy the domain
11039         only when it exists.
11040         (build_scop_conditions_1): Do not call add_conditions_to_domain.
11041         (add_conditions_to_constraints): New.
11042         (can_generate_code_stmt, can_generate_code): Removed.
11043         (gloog): Do not call can_generate_code.
11044         (graphite_transform_loops): Call add_conditions_to_constraints
11045         after building the iteration domain.
11046
11047 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
11048
11049         PR tree-optimization/38789
11050         * tree-ssa-threadedge.c
11051         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11052         __builtin_constant_p.
11053
11054 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
11055
11056         * dce.c (delete_unmarked_insns): Reversed the order that insns are
11057         examined before deleting them.
11058
11059 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
11060
11061         * function.c (aggregate_value_p): Correctly extract the function
11062         type from CALL_EXPR_FN lookup.
11063
11064 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11065
11066         * config/picochip/picochip.c (picochip_override_options): Revert
11067         CFI asm flag disable commited previously.
11068
11069 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11070             Tobias Grosser  <tobi.grosser@amd.com>
11071             Jan Sjodin  <jan.sjodin@amd.com>
11072
11073         * graphite.c (scan_tree_for_params): On substractions negate
11074         all the coefficients of the term.
11075         (clast_to_gcc_expression_red): New.  Handle reduction expressions
11076         of more than two operands.
11077         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11078         (get_vdef_before_scop): Handle also the case of default definitions.
11079
11080 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
11081
11082         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11083         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11084         Also use them when walking CALL_INSN_FUNCTION_USAGE.
11085
11086 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
11087             Joey Ye  <joey.ye@intel.com>
11088
11089         PR middle-end/37843
11090         * cfgexpand.c (expand_stack_alignment): Don't update stack
11091         boundary nor check incoming stack boundary here.
11092         (gimple_expand_cfg): Update stack boundary and check incoming
11093         stack boundary here.
11094
11095 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
11096
11097         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
11098
11099 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
11100
11101         PR rtl-optimization/38245
11102         * calls.c (expand_call): Add stack arguments to
11103         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11104         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11105         in regs and partially in memory or BLKmode arguments.
11106         (emit_library_call_value_1): Add stack arguments to
11107         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11108         ACCUMULATE_OUTGOING_ARGS).
11109         * dce.c: Include tm_p.h.
11110         (find_call_stack_args): New function.
11111         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
11112         argument.
11113         (mark_insn): Call find_call_stack_args for CALL_Ps.
11114         (prescan_insns_for_dce): Walk insns backwards in bb rather than
11115         forwards.  Allocate and free arg_stores bitmap if needed, pass it
11116         down to deletable_insn_p, don't mark stores set in arg_stores
11117         bitmap, clear the bitmap at the beginning of each bb.
11118         * Makefile.in (dce.o): Depend on $(TM_P_H).
11119
11120 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
11121
11122         PR target/22599
11123         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11124         to make sure the insn is a conditional test (bug 22599).  Reformat a
11125         few long lines.
11126
11127 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
11128
11129         PR middle-end/38431
11130         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11131         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11132         (gloog): Do not call cleanup_tree_cfg.
11133         (graphite_transform_loops): Call cleanup_tree_cfg after all
11134         scops have been code generated.
11135
11136 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
11137         * doc/gty.texi (Invoking the garbage collector): Added new node
11138         and section documenting ggc_collect.
11139
11140 2009-01-14  Richard Guenther  <rguenther@suse.de>
11141
11142         PR tree-optimization/38826
11143         PR middle-end/38477
11144         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11145         initialization notes only if we actually emitted a warning.
11146         (intra_create_variable_infos): Add constraints for a result decl
11147         that is passed by hidden reference.
11148         (build_pred_graph): Mark all related variables non-direct on
11149         address-taking.
11150
11151 2009-01-14  Nick Clifton  <nickc@redhat.com>
11152
11153         * ira-conflicts.c: Include addresses.h for the definition of
11154         base_reg_class.
11155         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11156         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
11157
11158 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11159
11160         PR target/38811
11161         * Makefile.in (ira-lives.o): Add except.h.
11162
11163         * ira-lives.c: Include except.h.
11164         (process_bb_node_lives): Process can_throw_internal.
11165
11166 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
11167
11168         PR rtl-optimization/38774
11169         * combine.c (simplify_set): When undoing cc_use change, don't do
11170         PUT_CODE on the newly created comparison, but instead put back the
11171         old comparison.
11172
11173 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
11174
11175         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11176         values.  Remove duplicate arm8 entry.
11177
11178 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11179
11180         PR tree-optimization/38786
11181         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11182         the SSA_NAME case of expand_scalar_variables_expr.
11183         Set the type of an expression to the type of its assign statement.
11184         (expand_scalar_variables_expr): Also gather the scalar computation
11185         used to index the memory access.  Do not pass loop_p.
11186         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
11187         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
11188         the gimple_stmt_iterator where it inserts new code.
11189         Do not pass loop_p.
11190         (copy_bb_and_scalar_dependences): Do not pass loop_p.
11191         (translate_clast): Update call to copy_bb_and_scalar_dependences.
11192
11193 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11194
11195         * graphite.h (debug_value): Removed.
11196         * graphite.c (debug_value): Removed.
11197
11198 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11199
11200         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11201         ldrd/strd with two 32-bit instructions.
11202
11203 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11204
11205         * config/arm/arm.c (struct processors): Pass for speed down into
11206         cost helper functions.
11207         (const_ok_for_op): Handle COMPARE and inequality nodes.
11208         (arm_rtx_costs_1): Rewrite.
11209         (arm_size_rtx_costs): Update prototype.
11210         (arm_rtx_costs): Pass speed down to helper functions.
11211         (arm_slowmul_rtx_costs): Rework cost calculations.
11212         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11213         (arm_9e_rtx_costs): Likewise.
11214
11215 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
11216
11217         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
11218         relocations of local symbols wider than UNITS_PER_WORD are not valid.
11219         (alpha_legitimize_address): Do not split local symbols wider than
11220         UNITS_PER_WORD into HIGH/LO_SUM parts.
11221
11222 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
11223
11224         PR bootstrap/38580
11225         * gcc.c (process_command): Replace call to execvp with calls
11226         to pex_one and exit.
11227
11228 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
11229
11230         PR target/29141
11231         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11232         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11233         variant for devices with 3-byte PC.
11234         (__tablejump_elpm__): New.
11235
11236 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11237
11238         PR c/32041
11239         * c-parser.c (c_parser_postfix_expression): Allow `->' in
11240         offsetof member-designator, handle it as `[0].'.
11241
11242 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11243
11244         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11245         function when not using named sections on targets with named sections
11246         if branch distance is less than 262132.
11247
11248 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
11249
11250         * combine.c (combine_instructions):  Recompute
11251         optimize_this_for_speed_p  for each BB in the main combine loop.
11252
11253 2009-01-12  Tomas Bily  <tbily@suse.cz>
11254
11255         PR middlend/38385
11256         * tree-loop-distribution.c (prop_phis): New function.
11257         (generate_builtin): Call prop_phis.
11258         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
11259
11260 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11261
11262         PR tree-optimization/38807
11263         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11264         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11265
11266 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
11267
11268         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11269         subreg of op0 to the original op0.
11270
11271 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
11272
11273         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
11274
11275 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
11276
11277         PR debug/7055
11278         * mips-tfile.c (parse_def): Fix parsing of def strings
11279         starting with digits.
11280
11281 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
11282
11283         PR target/38695
11284         * config/arm/arm.c (arm_is_long_call_p): Don't call
11285         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11286
11287 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
11288
11289         * regrename.c (regrename_optimize): Fix dumping.
11290         (find_oldest_value_reg): Preserve REG_POINTER.
11291         (copy_hardreg_forward_1): Likewise.
11292
11293 2009-01-09  Diego Novillo  <dnovillo@google.com>
11294
11295         * gimple.h (struct gimple_statement_base) <uid>: Document
11296         the restrictions on its use.
11297         (gimple_uid): Tidy.
11298         (gimple_set_uid): Tidy.
11299
11300 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11301
11302         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11303         zero guard even if align_bytes != 0 and count is smaller than
11304         size_needed.
11305
11306 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
11307
11308         PR rtl-optimization/38495
11309         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
11310         (add_range_and_copies_from_move_list): Print all added ranges.
11311         Add ranges to memory optimized destination.
11312
11313 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11314
11315         PR target/38686
11316         PR target/38708
11317         * config/i386/i386.c (override_options): Reject
11318         -mstringop-strategy=rep_8byte with -m32.
11319         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11320         to 1.  Do count comparison against epilogue_size_needed at compile
11321         time even when count_exp was constant forced into register.  For
11322         size_needed don't jump to epilogue, instead just avoid aligning
11323         and invoke the body algorithm.  If need_zero_guard, add zero guard
11324         even if count is non-zero, but smaller than size_needed + number of
11325         bytes that could be stored for alignment.
11326         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11327         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
11328         but smaller than size_needed + number of bytes that could be stored
11329         for alignment.  Compare size_needed with epilogue_size_needed instead
11330         of desired_align - align, don't adjust size_needed, pass
11331         epilogue_size_needed to the epilogue expanders.
11332
11333         PR c/35742
11334         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
11335
11336 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11337
11338         * pa.c (last_address): Change to unsigned.
11339         (update_total_code_bytes): Change argument to unsigned.  Don't
11340         check if insn addresses are set.
11341         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11342         addresses are not set.
11343         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11344
11345 2009-01-09  Nick Clifton  <nickc@redhat.com>
11346
11347         * config/sh/symbian.c: Replace uses of DECL_INLINE with
11348         DECL_DECLARED_INLINE_P.
11349
11350 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11351
11352         PR middle-end/38347
11353         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11354         GET_MODE (op0) in operand_subword_force calls.
11355
11356         PR middle-end/38771
11357         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11358         fold_convert arg0 operands to TREE_TYPE (op0) first.
11359
11360 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
11361
11362         * params.def (ira-max-conflict-table-size): Decrease default value
11363         to 1000.
11364
11365 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
11366
11367         PR tree-optimization/37031
11368         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11369         on parameter_set.
11370         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11371         allocate it using gc instead of heap, use VEC_quick_push instead of
11372         VEC_safe_push.
11373         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11374         instead of heap, use VEC_quick_push instead of VEC_safe_push.
11375         * tree-data-ref.h (struct access_matrix): Change matrix to gc
11376         allocated vector from heap allocated.
11377         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11378         * tree-loop-linear.c (linear_transform_loops): Allocate nest
11379         vector only after perfect_loop_nest_depth call.
11380
11381 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
11382             Jan Sjodin  <jan.sjodin@amd.com>
11383
11384         PR tree-optimization/38559
11385         * graphite.c (debug_value, copy_constraint,
11386         swap_constraint_variables, scale_constraint_variable, ): New.
11387         (get_lower_bound, get_upper_bound): Removed.
11388         (graphite_trans_bb_strip_mine): Clean up this code that works
11389         only for constant number of iterations.  Fully copy upper and
11390         lower bound constraints, not only the constant part of them.
11391         * graphite.h (debug_value): Declared.
11392
11393 2009-01-08  Ira Rosen  <irar@il.ibm.com>
11394
11395         PR tree-optimization/37194
11396         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
11397         Don't add the cost of cost model guard in prologue to scalar
11398         outside cost in case of known number of iterations.
11399
11400 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11401             Alan Modra  <amodra@bigpond.net.au>
11402
11403         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11404         non-word-aligned REG+CONST addressing.
11405
11406 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11407
11408         PR target/38706
11409         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11410         free_after_compilation when outputting a thunk.
11411         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11412         Do not call free_after_compilation here.
11413
11414 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11415
11416         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
11417         (ix86_valid_target_attribute_inner_p): Ditto.
11418
11419 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
11420
11421         PR tree-optimization/38492
11422         PR tree-optimization/38498
11423         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11424         * tree-chrec.h (scev_is_linear_expression): Declared.
11425         * graphite.c (graphite_cannot_represent_loop_niter): New.
11426         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11427         (graphite_loop_normal_form): Use gcc_assert.
11428         (scan_tree_for_params): Use CASE_CONVERT.
11429         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11430         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11431         Use gcc_assert.  Discard scops that contain unhandled cases.
11432         (build_scop_conditions): Return a boolean status for unhandled cases.
11433         (strip_mine_profitable_p): Print the loop number, not its depth.
11434         (is_interchange_valid): Pass the depth of the loop nest, don't
11435         recompute it wrongly.
11436         (graphite_trans_bb_block): Same.
11437         (graphite_trans_bb_block): Print tentative of loop blocking.
11438         (graphite_trans_scop_block): Do not print that the loop has been
11439         blocked.
11440         (graphite_transform_loops): Do not handle scops that contain condition
11441         scalar phi nodes.
11442
11443 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11444
11445         AVX Programming Reference (December, 2008)
11446         * config/i386/avxintrin.h (_mm256_stream_si256): New.
11447         (_mm256_stream_pd): Likewise.
11448         (_mm256_stream_ps): Likewise.
11449
11450         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11451         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11452         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11453         (bdesc_special_args): Add __builtin_ia32_movntdq256,
11454         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11455         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11456         (ix86_expand_special_args_builtin): Likewise.
11457
11458         * config/i386/sse.md (AVXMODEDI): New.
11459         (avx_movnt<mode>): Likewise.
11460         (avx_movnt<mode>): Likewise.
11461         (<sse>_movnt<mode>): Remove AVX support.
11462         (sse2_movntv2di): Likewise.
11463
11464 2009-01-07  Richard Guenther  <rguenther@suse.de>
11465
11466         PR middle-end/38751
11467         * fold-const.c (extract_muldiv): Remove obsolete comment.
11468         (fold_plusminus_mult_expr): Undo MINUS_EXPR
11469         to PLUS_EXPR canonicalization for the canonicalization.
11470
11471 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
11472
11473         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11474         hosted cross-compilers generating less efficient code.
11475
11476 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11477
11478         * function.h (rtl_data): Add a dbr_scheduled_p field.
11479         * reorg.c (dbr_schedule): Set it.
11480         (gate_handle_delay_slots): Check it.
11481         * config/mips/mips.c (mips_base_delayed_branch): Delete.
11482         (mips_reorg): Check flag_delayed_branch instead of
11483         mips_base_delayed_branch.
11484         (mips_override_options): Don't set mips_base_delayed_branch
11485         or flag_delayed_branch.
11486
11487 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11488
11489         PR rtl-optimization/38426.
11490         * ira.c (ira): Set current_function_is_leaf earlier.
11491
11492 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
11493
11494         PR rtl-optimization/38722
11495         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11496         too early, only set a flag and modify after last possible
11497         undo_all point.
11498
11499 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
11500
11501         PR c/34252
11502         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11503         * real.c (decimal_single_format): Correct values of emin and emax.
11504         (decimal_double_format): Ditto.
11505         (decimal_quad_format): Ditto.
11506         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11507         computation of DECnn_MIN and DECnn_MAX for corrected values of
11508         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
11509         __DECnn_MIN__, and adjust its computation for the corrected value
11510         of emin.
11511
11512 2009-01-06  Jan Hubicka  <jh@suse.cz>
11513
11514         PR target/38744
11515         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
11516
11517 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
11518
11519         * doc/contrib.texi (Contributors): Slightly adjust the end note.
11520         Add Robert Clark to the list of testers.
11521
11522 2009-01-06  Jan Hubicka  <jh@suse.cz>
11523             Kai Tietz  <kai.tietz@onevision.com>
11524
11525         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11526         * config/i386/i386.c (ix86_expand_call): Add clobbers.
11527
11528 2009-01-06  Jan Hubicka  <jh@suse.cz>
11529             Kai Tietz  <kai.tietz@onevision.com>
11530
11531         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11532         for w64 ABI.
11533         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
11534         (ix86_nsaved_regs): Count only general purpose regs.
11535         (ix86_nsaved_sseregs): New.
11536         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11537         to 16 for w64; compute padding and size of sse reg save area.
11538         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11539         general purpose regs.
11540         (ix86_emit_save_sse_regs_using_mov): New.
11541         (ix86_expand_prologue): Save SSE regs if needed.
11542         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11543         (ix86_emit_restore_sse_regs_using_mov): New.
11544         (ix86_expand_epilogue): Save SSE regs if needed.
11545
11546 2009-01-06  Jan Hubicka  <jh@suse.cz>
11547             Kai Tietz  <kai.tietz@onevision.com>
11548
11549         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11550         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11551         functions when accumulate outgoing args is off.
11552
11553 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11554
11555         PR bootstrap/38742
11556         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11557         before using pseudos_have_intersected_live_ranges_p.
11558
11559         * ira-int.h (ira_assert): Always define.
11560
11561 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11562
11563         AVX Programming Reference (December, 2008)
11564         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11565         (_mm256_permute2_pd): Likewise.
11566         (_mm_permute2_ps): Likewise.
11567         (_mm256_permute2_ps): Likewise.
11568         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11569         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11570
11571         * config/i386/i386.c (ix86_builtins): Remove
11572         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11573         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11574         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11575         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11576         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11577         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11578         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11579         __builtin_ia32_vpermil2ps256.
11580         (ix86_init_mmx_sse_builtins): Updated.
11581         (ix86_expand_args_builtin): Likewise.
11582
11583 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11584
11585         * pa.c (output_call): Relocate non-jump insns in the delay slot of
11586         long absolute calls when generating PA 2.0 code.
11587
11588 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
11589
11590         PR rtl-optimization/38583
11591         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11592
11593         * params.def (ira-max-conflict-table-size): New.
11594
11595         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
11596
11597         * ira.h (ira_conflicts_p): New external definition.
11598
11599         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11600         table.  Report this.  Return result of building.
11601         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
11602         building conflict table.
11603
11604         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
11605         (ira_color): Use ira_conflicts_p.
11606
11607         * global.c: Include ira.h.
11608         (pseudo_for_reload_consideration_p, build_insn_chain): Use
11609         ira_conflicts_p.
11610
11611         * Makefile.in (global.o): Add ira.h.
11612
11613         * ira-build.c (mark_all_loops_for_removal,
11614         propagate_some_info_from_allocno): New.
11615         (remove_unnecessary_allocnos): Call
11616         propagate_some_info_from_allocno.
11617         (remove_low_level_allocnos): New.
11618         (remove_unnecessary_regions): Add parameter.  Call
11619         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
11620         parameter to remove_unnecessary_regions.
11621         (ira_build): Remove all regions but root if the conflict table was
11622         not built.  Update conflict hard regs for allocnos crossing calls.
11623
11624         * ira.c (ira_conflicts_p): New global.
11625         (ira): Define and use ira_conflicts_p.
11626
11627         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11628         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
11629         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
11630
11631 2009-01-06  Ben Elliston  <bje@au.ibm.com>
11632
11633         * gengtype-lex.l (YY_NO_INPUT): Define.
11634
11635 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11636
11637         PR c/34911
11638         * c-common.c (handle_vector_size_attribute): Also reject
11639         BOOLEAN_TYPE types.
11640
11641 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
11642
11643         PR tree-optimization/38492
11644         * graphite.c (rename_map_elt, debug_rename_elt,
11645         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11646         rename_map_elt_info, eq_rename_map_elts,
11647         get_new_name_from_old_name, bb_in_sese_p): Moved around.
11648         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11649         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11650         (sese_build_livein_liveouts): New.
11651         (new_sese, free_sese): New.
11652         (new_scop): Call new_sese.
11653         (free_scop): Call free_sese.
11654         (rename_variables_from_edge, rename_phis_end_scop): Removed.
11655         (register_old_new_names): Renamed register_old_and_new_names.
11656         (register_scop_liveout_renames, add_loop_exit_phis,
11657         insert_loop_close_phis, struct igp,
11658         default_liveout_before_guard, add_guard_exit_phis,
11659         insert_guard_phis, copy_renames): New.
11660         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11661         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11662         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11663         (scop_adjust_phis_for_liveouts): New.
11664         (gloog): Call scop_adjust_phis_for_liveouts.
11665
11666         * graphite.h (struct sese): Documented.  Added fields liveout,
11667         num_ver and livein.
11668         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11669         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11670         (struct scop): Added field liveout_renames.
11671         (SCOP_LIVEOUT_RENAMES): New.
11672
11673 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11674
11675         PR tree-optimization/38510
11676         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11677         (translate_clast): Call recompute_all_dominators before
11678         graphite_verify.
11679         (gloog): Call recompute_all_dominators before graphite_verify.
11680
11681 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11682             Jan Sjodin  <jan.sjodin@amd.com>
11683
11684         PR tree-optimization/38500
11685         * graphite.c (create_sese_edges): Call fix_loop_structure after
11686         splitting blocks.
11687
11688 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
11689
11690         * config.gcc: Add m32r*-*-rtems*.
11691         * config/m32r/rtems.h: New file.
11692
11693 2009-01-05  Ben Elliston  <bje@au.ibm.com>
11694
11695         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11696         (.po.pox): Likewise.
11697         (po/gcc.pot): Likewise.
11698
11699 2009-01-04  David S. Miller  <davem@davemloft.net>
11700
11701         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11702         (STARTING_FRAME_OFFSET): Always set to zero.
11703
11704 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11705
11706         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11707         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11708         fixed-point types, and vectors of the same.
11709
11710 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11711
11712         * config/mips/sync.md (*mb_barrier): Rename to...
11713         (*memory_barrier): ...this.
11714
11715 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
11716
11717         * doc/extend.texi (Function Attributes): Move @cindex after @item
11718         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
11719         and put in alphabetical order. Fix 'target' name and put in order.
11720         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11721         typos.
11722
11723 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
11724
11725         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11726         (memory_barrier): Expand as unspec instead of unspec_volatile.
11727         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11728         (*memory_barrier): Define as unspec instead of unspec_volatile.
11729         Use (match_dup 0) as input operand.
11730
11731         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11732         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11733         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
11734         scratch register.  Remove operand 1.
11735         (*stbar): Define as unspec instead of unspec_volatile.
11736         Use (match_dup 0) as input operand, remove (const_int 8).
11737         (*membar): Define as unspec instead of unspec_volatile.
11738         Use (match_dup 0) as input operand, remove input operand 2.
11739
11740         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11741         (memory_barrier): Expand as unspec instead of unspec_volatile.
11742         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11743         (*memory_barrier): Define as unspec instead of unspec_volatile.
11744         Use (match_dup 0) as input operand.
11745
11746         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11747         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11748         Set volatile flag on operand 0.
11749         (*memory_barrier): New insn pattern.
11750
11751         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11752         insn operands.
11753         (*memory_barrier): Use (match_dup 0) as input operand.
11754
11755         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11756         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11757         Set volatile flag on operand 0.
11758         (*mb_internal): New insn pattern.
11759
11760         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11761
11762 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
11763
11764         PR middle-end/38586
11765         * function.c (struct temp_slot): Move to the section of the file
11766         that deals with temp slots.  Remove field 'address'.
11767         (temp_slot_address_table): New hash table of address -> temp slot.
11768         (struct temp_slot_address_entry): New struct, items for the table.
11769         (temp_slot_address_compute_hash, temp_slot_address_hash,
11770         temp_slot_address_eq, insert_temp_slot_address): Support functions
11771         for the new table.
11772         (find_temp_slot_from_address): Rewrite to use the new hash table.
11773         (remove_unused_temp_slot_addresses): Remove addresses of temp
11774         slots that have been made available.
11775         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11776         worker function for remove_unused_temp_slot_addresses.
11777         (assign_stack_temp_for_type): Don't clear the temp slot address list.
11778         Add the temp slot address to the address -> temp slot map.
11779         (update_temp_slot_address): Update via insert_temp_slot_address.
11780         (free_temp_slots): Call remove_unused_temp_slot_addresses.
11781         (pop_temp_slots): Likewise.
11782         (init_temp_slots): Allocate the address -> temp slot map, or empty
11783         the map if it is already allocated.
11784         (prepare_function_start): Initialize temp slot processing.
11785
11786 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
11787
11788         PR middle-end/38584
11789         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11790         Calculate the size of all stack vars assuming no packing of stack
11791         vars will happen, replacing a quadratic algorithm with a linear one.
11792
11793 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
11794
11795         PR target/38707
11796         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11797         can't be used.
11798
11799 2009-01-03  Diego Novillo  <dnovillo@google.com>
11800
11801         * doc/contrib.texi: Update contributions.
11802
11803 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
11804
11805         PR c++/38705
11806         * builtins.c (fold_builtin_memory_op): Give up if either operand
11807         is volatile.  Set srctype or desttype to non-qualified version
11808         of the other type.
11809
11810         PR c/38700
11811         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11812         and FUNCTION_DECLs.
11813
11814 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
11815
11816         PR rtl-optimization/35805
11817         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11818         problem if fast dce is able to remove any instructions.
11819         * dce.c (dce_process_block): Fix dump message.
11820
11821 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
11822
11823         PR 33649
11824         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11825
11826 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
11827
11828         PR middle-end/38690
11829         * tree-flow.h (op_code_prio, op_prio): New prototypes.
11830         * tree-pretty-print.c (op_code_prio): New function.
11831         (op_prio): No longer static.  Use op_code_prio.
11832         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11833         Use op_prio and op_code_prio to determine if () should be
11834         printed around operand(s) or not.
11835
11836         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11837         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11838         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11839         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
11840         pp_character instead of pp_string for single letter printing.
11841
11842 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11843
11844         * doc/extend.texi: Fix '#pragma GCC option' typo.
11845
11846 2009-01-02  Richard Guenther  <rguenther@suse.de>
11847
11848         * doc/install.texi (--enable-checking): Mention different
11849         default for stage1.
11850         (--enable-stage1-checking): Document.
11851
11852 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
11853
11854         PR middle-end/30142
11855         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
11856         case to be an error.
11857
11858 2009-01-02  Ben Elliston  <bje@au.ibm.com>
11859
11860         * config/fp-bit.h (pack_d): Constify argument.
11861         * config/fp-bit.c (makenan): Constify return type. Remove casts.
11862         (isnan): Constify argument.
11863         (isinf): Likewise.
11864         (iszero): Likewise.
11865         (pack_d): Likewise.
11866         (_fpadd_parts): Constify return type.
11867         (_fpmul_parts): Likewise.
11868         (_fpdiv_parts): Likewise.
11869
11870 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
11871
11872         PR c/36489
11873         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
11874         warn about overwriting initializer with side-effects or
11875         -Woverride-init if !IMPLICIT.
11876         (output_init_element): Likewise.  Pass IMPLICIT down to
11877         add_pending_init.
11878         (process_init_element): Add IMPLICIT argument.  Pass it down
11879         to output_init_element.
11880         (push_init_element, pop_init_level, set_designator): Adjust
11881         process_init_element callers.
11882         (set_nonincremental_init, set_nonincremental_init_from_string):
11883         Adjust add_pending_init callers.
11884         (output_pending_init_elements): Adjust output_init_element callers.
11885         * c-tree.h (process_init_element): Adjust prototype.
11886         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
11887         process_init_element callers.
11888
11889 \f
11890 Copyright (C) 2009 Free Software Foundation, Inc.
11891
11892 Copying and distribution of this file, with or without modification,
11893 are permitted in any medium without royalty provided the copyright
11894 notice and this notice are preserved.