OSDN Git Service

7119bcf80d4d7a5ea09215bc1230154f806579c0
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * auto-inc-dec.c: Fix pass description, remove apparent
4         accidental duplication.
5
6 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
7
8         PR middle-end/40147
9         * ipa-utils.h (memory_identifier_string): Moved to ...
10         * tree.h (memory_identifier_string): Here.  Add GTY(()).
11
12 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
13
14         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
15         in the former documentation of...
16         (GO_IF_LEGITIMATE_ADDRESS): ... this.
17         * ira-conflicts.c (get_dup_num): Use address_operand.
18         * targhooks.c (default_legitimate_address_p): New.
19         * targhooks.h (default_legitimate_address_p): New.
20         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
21         Call hook.
22         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
23         * target.h (struct target): Add legitimate_address_p.
24         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
25         (TARGET_INITIALIZER): Include it.
26
27         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
28         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
29         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
30         (TARGET_LEGITIMATE_ADDRESS_P): New.
31
32         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
33         (REG_OK_STRICT_P): Delete.
34         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
35         (frv_legitimate_address_p_1): ... this.
36         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
37         (frv_legitimate_address_p_1): ... the renamed old
38         frv_legitimate_address_p.
39         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
40         (TARGET_LEGITIMATE_ADDRESS_P): New.
41
42         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
43         * config/s390/s390-protos.h (legitimate_address_p): Remove.
44         * config/s390/s390.c (legitimate_address_p): Rename to...
45         (s390_legitimate_address_p): ... this, make static.
46         (legitimize_address): Adjust call.
47         (TARGET_LEGITIMATE_ADDRESS_P): New.
48         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
49
50         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
51         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
52         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
53         (TARGET_LEGITIMATE_ADDRESS_P): New.
54
55         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
56         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
57         * config/spu/spu.c (spu_legitimate_address): Rename to...
58         (spu_legitimate_address_p): ... this, make static.
59         (TARGET_LEGITIMATE_ADDRESS_P): New.
60
61         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
62         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
63         * config/sparc/sparc.c (legitimate_address_p): Rename to...
64         (sparc_legitimate_address_p): ... this, make static and return bool.
65         (legitimize_address): Adjust call.
66         (TARGET_LEGITIMATE_ADDRESS_P): New.
67
68         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
69         * config/i386/i386-protos.h (legitimate_address_p): Remove.
70         * config/i386/i386.c (legitimate_address_p): Rename to...
71         (ix86_legitimate_address_p): ... this, make static.
72         (constant_address_p): Move after it, adjust call.
73         (TARGET_LEGITIMATE_ADDRESS_P): New.
74
75         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
76         * config/avr/avr-protos.h (legitimate_address_p): Remove.
77         * config/avr/avr.c (legitimate_address_p): Rename to...
78         (avr_legitimate_address_p): ... this, make static.
79         (legitimize_address): Adjust call.
80         (TARGET_LEGITIMATE_ADDRESS_P): New.
81
82         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
83         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
84         * config/crx/crx.c (crx_legitimate_address_p): Make static.
85         (TARGET_LEGITIMATE_ADDRESS_P): New.
86
87         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
88         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
89         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
90         (TARGET_LEGITIMATE_ADDRESS_P): New.
91
92         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
93         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
94         Remove.
95         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
96         Make static.
97         (TARGET_LEGITIMATE_ADDRESS_P): New.
98
99         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
100         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
101         Remove.
102         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
103         Rename to...
104         (m68hc11_legitimate_address_p): ... this, make static.
105         (go_if_legitimate_address_internal): Rename to...
106         (m68hc11_legitimate_address_p_1): ... this.
107         (legitimize_address): Adjust call.
108         (TARGET_LEGITIMATE_ADDRESS_P): New.
109
110         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
111         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
112         Remove.
113         * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
114         Make static.
115         (TARGET_LEGITIMATE_ADDRESS_P): New.
116
117         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
118         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
119         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
120         (mn10300_legitimate_address_p): ... this, make static.
121         (TARGET_LEGITIMATE_ADDRESS_P): New.
122
123         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
124         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
125         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
126         (TARGET_LEGITIMATE_ADDRESS_P): New.
127
128         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
129         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
130         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
131         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
132         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
133         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
134         (rs6000_legitimate_address_p): ... this, make static.
135         (TARGET_LEGITIMATE_ADDRESS_P): New.
136         (REG_MODE_OK_FOR_BASE_P): Delete.
137         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
138
139         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
140         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
141         Delete.
142         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
143         static, adjust types.
144         (TARGET_LEGITIMATE_ADDRESS_P): New.
145
146         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
147         * config/score/score.c (score_address_p): Rename to...
148         (score_legitimate_address_p): ... this.
149         (TARGET_LEGITIMATE_ADDRESS_P): New.
150         * config/score/score3.c (score3_address_p): Rename to...
151         (score3_legitimate_address_p): ... this.
152         * config/score/score7.c (score7_address_p): Rename to...
153         (score7_legitimate_address_p): ... this.
154
155         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
156         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
157         GO_IF_LEGITIMATE_ADDRESS): Delete.
158         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
159         thumb2_legitimate_address_p): Delete.
160         (arm_legitimate_address_p): Rename to...
161         (arm_legitimate_address_outer_p): ... this.
162         * config/arm/constraints.md ("Uq"): Adjust call.
163         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
164         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
165         (arm_legitimate_address_outer_p): ... this.
166         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
167         (TARGET_LEGITIMATE_ADDRESS_P): New.
168
169         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
170         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
171         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
172         (TARGET_LEGITIMATE_ADDRESS_P): New.
173
174         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
175         * config/vax/vax-protos.h (legitimate_address_p): Remove.
176         * config/vax/vax.c (legitimate_address_p): Rename to...
177         (vax_legitimate_address_p): ... this, make static.
178         (TARGET_LEGITIMATE_ADDRESS_P): New.
179
180         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
181         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
182         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
183         (TARGET_LEGITIMATE_ADDRESS_P): New.
184
185         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
186         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
187         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
188         (mmix_legitimate_address_p): ... this, make static.
189         (TARGET_LEGITIMATE_ADDRESS_P): New.
190
191         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
192         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
193         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
194         (TARGET_LEGITIMATE_ADDRESS_P): New.
195
196 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
197
198         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
199         of MODE_COMPLEX_INT.
200
201 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
202
203         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
204         LCT_NORMAL in function call.
205         * mips-tdump.c (print_file_desc): Add cast to enum type.
206         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
207         (mark_stabs): Add casts to enum types.
208         (parse_stabs_common): Add casts to enum types.
209         
210 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
211
212         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
213         Check for invalid values of LETTER.
214
215 2009-05-13  Taras Glek  <tglek@mozilla.com>
216
217        * attribs.c moved out attribute registration into register_attribute
218        * doc/plugins.texi Documented register_attribute and PLUGIN_ATTRIBUTES
219        * gcc-plugin.h Added forward decl for register_attribute
220        * plugin.c Added PLUGIN_ATTRIBUTES boilerplate
221        * plugin.h Added PLUGIN_ATTRIBUTES
222
223 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
224
225         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
226         values even in sentinel and empty entries.
227         (ms_printf_flag_specs):  Likewise.
228         (ms_scanf_flag_specs):  Likewise.
229         (ms_strftime_flag_specs):  Likewise.
230         (ms_print_char_table):  Likewise.
231         (ms_scan_char_table):  Likewise.
232         (ms_time_char_table):  Likewise.
233
234 2009-05-13  Doug Kwan  <dougkwan@google.com>
235
236         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
237
238 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
239
240         * config/mips/mips.md (store): Add attributes for QI and HI.
241         Update comment.
242         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
243         (truncdi<mode>2): ... this new pattern.
244
245 2009-05-13  Brad Hards  <bradh@kde.org>
246
247         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
248
249 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
250             Ben Elliston <bje@au.ibm.com>
251
252         PR middle-end/40035
253         * dse.c (check_mem_read_rtx): Guard against width == -1.
254
255 2009-05-13  Michael Matz  <matz@suse.de>
256
257         PR middle-end/39976
258         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
259         (trivially_conflicts_p): New function.
260         (insert_backedge_copies): Use it.
261
262 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
263
264         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
265         (handle_stdc_pragma): Use new enum constant names.
266         (handle_pragma_float_const_decimal64): Ditto.
267
268 2009-05-13  Ian Lance Taylor  <iant@google.com>
269
270         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
271         tree.def.
272
273 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
274
275         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
276         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
277         multilibs.
278         * config/m68k/m68k.h (FL_UCLINUX): Define.
279
280 2009-05-13  Jan Hubicka  <jh@suse.cz>
281
282         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
283
284 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
285
286         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
287         unless -fschedule-insns is specified.
288
289 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
290
291         PR target/39561
292         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
293         TARGET_EXPAND_CBRANCHDI4.
294         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
295         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
296         (cmpeqdi): Fix comment.
297
298 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
299
300         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
301         (sh_legitimate_address_p): Likewise.
302         * config/sh/sh.c (sh_legitimate_index_p): New.
303         (sh_legitimate_address_p): Likewise.
304         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
305         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
306         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
307         (MAYBE_BASE_REGISTER_RTX_P): New macro.
308         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
309         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
310         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
311         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
312         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
313
314 2009-05-12  Jan Hubicka  <jh@suse.cz>
315
316         * tree-inline.c (estimate_operator_cost): Add operands;
317         when division happens by constant, it is cheap.
318         (estimate_num_insns): Loads and stores are not having cost of 0;
319         EH magic stuff is cheap; when computing runtime cost of switch,
320         use log2 base of amount of its cases; builtin_expect has cost of 0;
321         compute cost for moving return value of call.
322         (init_inline_once): Initialize time_based flags.
323         * tree-inline.h (eni_weights_d): Add time_based flag.
324
325 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
326
327         * df-core.c: Update head documentation.
328
329 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
330
331         PR bootstrap/40118
332         * rs6000.c (rs6000_generate_compare): Use op1b instead of
333         shadowing exisiting variable op1.
334
335 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
336
337         PR target/37179
338         * config/i386/driver-i386.c (processor_signatures): New enum.
339         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
340         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
341         processor signature to detect geode processor.
342
343 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
344
345         Revert:
346
347         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
348
349         * optabs.c (prepare_cmp_insn): Temporarily disable test that
350         causes spurious differences between trunk and cond-optab branch.
351
352 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
353
354         * dojump.c (compare_from_rtx): Delete.
355         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
356         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
357         if the comparison does not satisfy the predicate; test predicates for
358         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
359         further if one existing pattern fails.
360         * expr.h (compare_from_rtx): Delete.
361         (prepare_operand): Declare it.
362         * optabs.c: Change "lib call" to "libcall" throughout.
363         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
364         HAVE_conditional_trap, emit_cmp_insn): Delete.
365         (can_compare_p): Delete cmp_optab case.
366         (prepare_float_lib_cmp): Return an rtx and a machine mode.
367         Accept other parameters by value.
368         (prepare_operand): Make non-static.
369         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
370         other parameters by value.  Try to widen operands here based on
371         an optab_methods argument and looking at cbranch_optab.
372         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
373         loop.  Use cbranch_optab directly.
374         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
375         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
376         assertion.
377         (emit_conditional_move, emit_conditional_add): Inline what's needed
378         of compare_from_rtx, using new prepare_cmp_insn for the rest.
379         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
380         with COMPARE.  Move cmov_optab and cstore_optab above
381         with cbranch_optab, move cmp_optab down with ucmp_optab,
382         remove tst_otpab.  Do not initialize trap_rtx.
383         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
384         for trap code.  Do not check HAVE_conditional_trap.  Use
385         prepare_cmp_insn.  Accept no predicate for operand 3.
386         * optabs.h (OTI_cmp): Mark as used only for libcalls.
387         (OTI_ctrap, ctrap_optab): New.
388         (tst_optab): Delete.
389         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
390         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
391         with lookup of ctrap_optab.
392         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
393         setcc_gen_code): Delete.
394         (ctrap_optab): New.
395
396         * combine.c (combine_simplify_rtx, simplify_set): Do not
397         special case comparing against zero for cc0 machines.
398         * simplify-rtx.c (simplify_binary_operation_1): Never remove
399         COMPARE on cc0 machines.
400         (simplify_relational_operation): Return a new expression when
401         a COMPARE could be removed.
402         * final.c (final_scan_insn): Compare cc_status values
403         against LHS of a (compare FOO (const_int 0)) cc0 source.
404         Also check if cc_status.value is the full compare.
405
406         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
407         (cstoreMM4): Document.
408         (conditional_trap): Document ctrapMM4 instead.
409         (sync_compare_and_swapMM): Refer to cbranchcc4.
410         (Dependent Patterns): Eliminate obsolete information referring to
411         the old jump optimization phase.
412         (Canonicalization): Include cbranchcc4 case, omit canonicalization
413         of compares with 0 on cc0 machines.
414         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
415         avoiding references to cc0.  Remove text about storing operands
416         in cmpMM.
417         * doc/tm.texi (Condition Codes): Include blurb on different
418         condition code representations, separate into subsections for
419         CC0, MODE_CC and conditional execution.
420
421         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
422         alpha_emit_setcc): Accept operands and a machine mode.
423         * config/alpha/alpha.c (alpha_emit_conditional_branch):
424         Get code/op0/op1 from operands, use machine mode argument
425         instead of alpha_compare.fp_p.  Emit the branch here.
426         (alpha_emit_setcc): Likewise, and return boolean.
427         (alpha_emit_conditional_move): Likewise.  Assert that
428         cmp_op_mode == cmp_mode, and simplify accordingly.
429         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
430         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
431         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
432         Delete.
433         (stack probe test): Use cbranchdi4.
434         * config/alpha/predicates.md (alpha_cbranch_operator): New.
435
436         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
437         * config/arc/arc.h (movsicc, movsfcc): Use it.
438         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
439         (cbranchsi4, cstoresi4): New.
440         (cmpsi, bCC and sCC expanders): Remove. 
441
442         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
443         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
444         * config/arm/predicates.md (arm_comparison_operator): Only include
445         floating-point operators if there is a hardware floating-point unit.
446         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
447         deferring to cbranch_cc and cstore_cc respectively.
448         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
449         cbranch_cc, cstore_cc): New.
450         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
451         arm_compare_op1.
452         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
453
454         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
455         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
456         as an argument.
457         (adjust_insn_length): Adjust calls.
458         (avr_reorg): Handle (compare (foo) (const_int 0)).
459         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
460         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
461         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
462         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
463         (bCC): Remove.
464         (cbranchqi4, cbranchhi4, cbranchsi4): New.
465         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
466
467         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
468         (cbranchsi4, cstorebi4, cstoresi4): New.
469         (movbisi): This insn is duplicate, split it to zero_extend.
470         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
471         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
472         (bfin_optimize_loop): Use cbranch expander.
473         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
474         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
475         (bfin_bimode_comparison_operator): ... this.
476         (bfin_direct_comparison_operator): New.
477  
478         * config/cris/cris.c (cris_normal_notice_update_cc): Look
479         inside (compare FOO (const_int 0)).
480         (cris_rtx_costs): Handle ZERO_EXTRACT.
481         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
482         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
483         (*tstdi_v32): Delete.
484         (*cmpdi_non_v32): Add M alternative for operand 1.
485         (cmpsi, cmp<mode>): Make private.
486         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
487         with COMPARE.
488         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
489
490         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
491         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
492         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
493         (cc_reg_operand): New.
494         (any_cond): Delete.
495         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
496         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
497         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
498         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
499         crx_expand_scond): Delete.
500
501         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
502         (cbranchsi4): New.
503         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
504         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
505
506         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
507         cstoresi4, cstoresf4, cstoredf4): New.
508         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
509         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
510         Receive the entire operands array.
511         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
512         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
513         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
514         Get test/op0/op1 from the operands array.
515         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
516
517         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
518         (h8300_expand_store): New.
519         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
520         (const_int 0)).
521         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
522         (h8300_expand_store): New.
523         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
524         or do not try to produce (set (cc0) REG).
525         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
526         change a compare into a move to a scratch register.  Disable some
527         peepholes when comparing with zero.
528         (tstsi, tsthi, tstsi, cmpqi): Make private.
529         (cmphi): Delete.
530         (bCC, sCC): Delete.
531         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
532         cstoresi4): New.
533
534         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
535         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
536         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
537         (ix86_emit_i387_log1p): Use cbranchxf2.
538         (ix86_expand_setcc): Return void.
539         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
540         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
541         cmp<MODEF>, cmpcc): Remove.
542         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
543         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
544         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
545         (sCC and bCC expanders): Remove.
546         (stack_protect_test): Use cbranchcc4.
547
548         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
549         Delete.
550         (ia64_expand_compare): Accept three rtx by reference and return void.
551         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
552         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
553         from *expr.  Update *expr with the BImode comparison to do.
554         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
555         cmptf, bCC, sCC, conditional_trap): Delete.
556         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
557         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
558         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
559         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
560         * config/ia64/predicates.md (ia64_cbranch_operator): New.
561
562         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
563         type of last argument.
564         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
565         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
566         use machine mode argument instead of branch_type.  Remove dead
567         code for floating-point comparisons.
568         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
569         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
570         Remove.
571         (cbranchsi4, cstoresi4): New.
572         * config/iq2000/predicates.md (reg_or_const_operand): New.
573
574         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
575         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
576         (b<code>_op): Rewrite to...
577         (bcc_op): ... this, using match_operator.
578         (s<code>_op): Rewrite to...
579         (scc_op): ... this, using match_operator.
580         (s<code>_24_op): Rewrite to...
581         (scc_op_24): ... this, using match_operator.
582         (s<code>_<mode>): Rewrite to...
583         (cstore<mode>4): ... this, using match_operator.
584         (s<code>_<mode>_24): Rewrite to...
585         (cstore<mode>4_24): ... this, using match_operator.
586         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
587         m32c_unpend_compare, m32c_expand_scc): Delete.
588         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
589         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
590         (m32c_expand_movcc): Change NE to EQ if necessary.
591         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
592
593         * config/m32r/m32r-protos.h (gen_cond_store): New.
594         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
595         (gen_cond_store): New, from sCC patterns.
596         (m32r_expand_block_move): Use cbranchsi4.
597         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
598         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
599         (cbranchsi4, cstoresi4): New.
600         
601         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
602         Delete.
603         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
604         (m68hc11_notice_update_cc): Look into a compare with 0.
605         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
606         Delete.
607         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
608         cmphi, cmpqi, bCC): Delete.
609         (cbranchsi4, cbranchhi4, cbranchqi4): New.
610         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
611         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
612         sets with COMPARE.
613
614         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
615         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
616         * config/m68k/constraints.md (H): New.
617         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
618         the define_insn below.
619         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
620         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
621         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
622         patterns): Wrap RHS with COMPARE.
623         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
624         (*cmpdi_internal): Name this pattern.
625         (cmpdi): Change to define_insn.
626         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
627         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
628         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
629         predicate.
630         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
631         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
632         (conditional_trap): Change to...
633         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
634         (*conditional_trap): Use the ordered_comparison_operator and
635         const1_operand predicates.
636         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
637         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
638         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
639         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
640
641         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
642         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
643         (mcore_gen_compare): New. 
644         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
645         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
646         (mcore_gen_compare): ... this.
647         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
648         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
649         (stack probe pattern): Use cbranchsi4.
650
651         * config/mips/predicates.md (mips_cstore_operator): New.
652         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
653         * config/mips/mips.md (any_cond): Delete.
654         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
655         always succeed.
656         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
657         fixuns_truncsfdi2): Use cbranch patterns.
658         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
659         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
660         Adjust call to mips_expand_conditional_branch.
661         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
662         cstore<GPR:mode>4.
663         * config/mips/mips-protos.h (mips_expand_conditional_branch,
664         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
665         * config/mips/mips.c (cmp_operands): Delete.
666         (mips_emit_compare): Get comparison operands from *op0/*op1.
667         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
668         that it succeeds.  Use op0/op1 instead of cmp_operands.
669         (mips_expand_conditional_branch, mips_expand_conditional_move,
670         mips_expand_conditional_trap): Likewise.
671         (mips_block_move_loop): Use cbranch patterns. 
672         * config/mips/mips.h (cmp_operands): Delete.
673
674         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
675         (mmix_gen_compare_reg): Just return a register in the right CC mode.
676         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
677         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
678         (*cmpcc_folded): Rename to...
679         (*cmpdi_folded): this.
680         (*cmpcc): Rename to...
681         (*cmps): ... this.
682         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
683         (bCC): Remove.
684         (cbranchdi4): New.
685         (cbranchdf4): New.  Handle invalid comparisons here.
686         * config/mmix/predicates.md (float_comparison_operator): New.
687
688         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
689         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
690         * config/mn10300/mn10300.md (tst): Delete.
691         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
692         Name these patterns and wrap RHS in a compare.
693         (*cmpsi): Make this pattern private.  Include tst.
694         (*cmpsf): Make this pattern private.
695         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
696         (compare with zero peepholes): Likewise.
697         (bCC): Remove.
698         (cbranchsi4, cbranchsf4): New.
699         (casesi): Use cbranchsi4.
700
701         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
702         hppa_branch_type): Delete.
703         (return_addr_rtx): Use cbranchsi4.
704         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
705         Emit CCFPmode comparison here.
706         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
707         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
708         hppa_branch_type): Delete.
709         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
710         (movsicc, movdicc): Remove references to hppa_compare_op0,
711         hppa_compare_op1 and compare_from_rtx.
712         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
713         (casesi): Use cbranchsi4.
714
715         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
716         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
717         * config/pdp11/pdp11.md (register_or_const0_operand): New.
718         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
719         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
720         (bCC): Delete.
721         (cbranchdf4, cbranchhi4, cbranchqi4): New.
722         (*branch, *branch_inverted): New.
723
724         * config/picochip/picochip.md (cbranchhi4): Use
725         ordered_comparison_operator.
726         (cmphi, bCC): Remove.
727
728         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
729         (trap_comparison_operator): Delete.
730         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
731         rs6000_emit_cbranch): Accept mode and operands.
732         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
733         rs6000_compare_fp_p): Delete.   
734         (rs6000_generate_compare): Accept mode and comparison.  Extract code
735         and op0/op1 from there.  Replace references to rs6000_compare_op0
736         and rs6000_compare_op1.
737         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
738         extract result from passed operands.
739         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
740         extract loc from passed operands.
741         (rs6000_emit_cmove): Likewise.
742         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
743         rs6000_compare_fp_p): Delete.
744         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
745         (cbranch<GPR>4, cbranch<FP>4): New.
746         (cstore<mode>4): New.  Consolidate here all choices about when to use
747         portable or specialized sCC sequences.
748         (stack_protect_test): Use cbranchsi4.
749         (conditional_trap): Replace with ctrap<GPR>4.
750         (conditional trap insn): Replace trap_comparison_operator with
751         ordered_comparison_operator. 
752
753         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
754         (s390_emit_prologue): Use ctrap.
755         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
756         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
757         New predicates replacing...
758         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
759         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
760         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
761         (add<mode>cc): Do not use s390_compare_op0/op1.
762         (s<code>): Change to...
763         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
764         (seq): Change to...
765         (cstorecc4): ... this.  Handle EQ or NE equally.
766         (*sne): Un-privatize for use in cstorecc4.
767         (b<code>): Change to...
768         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
769         (conditional_trap): Replace with...
770         (ctrap<GPR>4, ctrap<FP>4): ... these.
771         (stack_protect): Use cbranchcc4.
772
773         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
774         * config/score/score-protos.h (score_gen_cmp): Delete.
775         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
776         (score_block_move-loop): Use cbranchsi4.
777         * config/score/score.md (cbranchsi4): New.
778         (cmpsi, bCC): Delete.
779         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
780         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
781         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
782         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
783         * config/score/score3.h (score3_gen_cmp): Delete.
784         * config/score/score7.h (score7_gen_cmp): Delete.
785
786         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
787         (sh_emit_scc_to_t): ... this.  Return void.
788         (from_compare): Rename to...
789         (sh_emit_compare_and_branch): ... this.
790         (sh_emit_compare_and_set): New.
791         (sh_expand_t_scc): Accept operands.
792         * config/sh/predicates.md (sh_float_comparison_operator): New.
793         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
794         (prepare_scc_operands): Rename to...
795         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
796         arguments.
797         (sh_emit_cheap_store_flag): New.
798         (sh_emit_set_t_insn): New.
799         (from_compare): Rename to...
800         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
801         handling of TARGET_SH2E floating point to avoid recursive call.
802         Generate branch here.
803         (sh_emit_compare_and_set): New.
804         (sh_expand_t_scc): Get op0/op1 from arguments.
805         (sh_emit_cheap_store_flag): New.
806         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
807         cases.
808         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
809         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
810         (movsicc, movdicc): Do nothing when it recreated operands from
811         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
812         prepare_scc_operands (now sh_emit_scc_to_t).
813         (udivdi3): Use cstoresi4.
814         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
815         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
816         (cbranchint4_media, cbranchfp4_media): New.
817         (casesi): Use cbranchdi4.
818         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
819         Delete.
820         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
821         (movnegt): Remove second operand.
822         (cbranchsf4, cbranchdf4): New.
823         (stack_protect): Use cbranchdi4/cbranchsi4.
824
825         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
826         (gen_compare_reg): Accept comparison, extract part of it to...
827         (gen_compare_reg_1): ... this. 
828         (gen_compare_operator): Delete.
829         (gen_v9_scc): Accept separate destination, comparison code and arms.
830         Do not use sparc_compare_op0/sparc_compare_op1.
831         (emit_scc_insn, emit_conditional_branch_insn): New.
832         (emit_v9_brxx): Make static.  Remove useless assertion.
833         (sparc_emit_float_lib_cmp): Return RTL instead of calling
834         emit_cmp_insn.
835         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
836         * config/sparc/sparc-protos.h (gen_compare_reg,
837         sparc_emit_float_lib_cmp): Adjust prototype.
838         (emit_scc_insn, emit_conditional_branch_insn): New.
839         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
840         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
841         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
842         iterators to the top.
843         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
844         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
845         snedi_special_trunc): Delete.
846         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
847         and snedi_special_trunc.
848         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
849         cbranchdi4, cbranch<F:mode>4): New.
850         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
851         here.  Use gen_compare_reg instead of gen_compare_operator.
852         (conditional_trap): Replace with...
853         (ctrapsi4, ctrapdi4): ... this.
854         (stack_protect_test): Use cbranchcc4.
855
856         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
857         argument to rtx.
858         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
859         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
860         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
861         from operands[0] or operands[3] depending on is_set.
862         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
863         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
864         cmpdf, bCC), sCC: Remove.
865         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
866         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
867         cstoredf4): New.
868         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
869         spu_emit_branch_or_set.
870
871         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
872         Add two arguments.
873         * config/stormy16/stormy16.h (xstormy16_compare_op0,
874         xstormy16_compare_op1): Delete.
875         * config/stormy16/stormy16.c (xstormy16_compare_op0,
876         xstormy16_compare_op1): Delete. 
877         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
878         Adjust calls.
879         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
880         (cmphi, cmpsi, bCC): Remove.
881
882         * config/v850/v850.md (tstsi, cmpsi): Fold into...
883         (*cmpsi): ... this one.
884         (cbranchsi4, cstoresi4): New.
885         (bCC expanders): Delete.
886         (sCC insns): Fold into...
887         (*setcc): ... this one.
888         (casesi): Do not use gen_cmpsi and gen_bgtu. 
889         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
890         (movsicc): Simplify.
891         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
892
893         * config/vax/vax-protos.h (cond_name): New.
894         (vax_output_conditional_branch): Remove.
895         * config/vax/vax.c (cond_name): New.
896         (vax_output_conditional_branch): Remove.
897         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
898         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
899         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
900         (bit<VAXint>): Wrap source with (compare).
901         (b<code> and following unnamed pattern): Rename to *branch and
902         *branch_reversed.  Change macroization to match_operator.
903         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
904
905         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
906         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
907         Change last argument to machine_mode.
908         (xtensa_expand_scc): Add machine_mode argument.
909         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
910         (gen_conditional_move, xtensa_expand_conditional_branch,
911         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
912         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
913         Adjust operand numbers.
914         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
915         Delete.
916         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
917         (cmpsi, cmpsf, b<code>, s<code>): Delete.
918         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
919
920 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
921
922         * optabs.c (prepare_cmp_insn): Temporarily disable test that
923         causes spurious differences between trunk and cond-optab branch.
924
925 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
926
927         PR target/37137
928         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
929
930 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
931
932         * tree.c (iterative_hash_pointer): Delete.
933         (iterative_hash_expr): Short-circuit handling of NULL pointer.
934         Hash UIDs and versions of SSA names.  Don't special-case built-in
935         function declarations.
936
937 2009-05-11  Ian Lance Taylor  <iant@google.com>
938
939         PR bootstrap/40103
940         * graphite.c: Force -Wc++-compat to only be a warning before
941         #including "cloog/cloog.h".
942
943 2009-05-11  Martin Jambor  <mjambor@suse.cz>
944
945         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
946         
947 2009-05-11  Jan Hubicka  <jh@suse.cz>
948
949         * tree-ssa-loop-ivcanon.c: Include target.h
950         (struct loop_size): new structure.
951         (constant_after_peeling): New predicate.
952         (tree_estimate_loop_size): New function.
953         (estimated_unrolled_size): Rewrite for new estimates.
954         (try_unroll_loop_completely): Use new estimates.
955         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
956
957 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
958
959         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
960         libcpp interface change.
961         (spu_macro_to_expand): Likewise.
962
963 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
964
965         PR tree-optimization/40026
966         * gimplify.c (gimplify_init_constructor): Change initial conditional
967         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
968         optimize_compound_literals_in_ctor.
969
970 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
971
972         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
973         New devices.
974         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
975
976 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
977
978         * tree-vect-data-refs.c (vect_analyze_group_access): Use
979         HOST_WIDE_INT for gap.
980
981 2009-05-11  Ira Rosen  <irar@il.ibm.com>
982
983         PR tree-optimization/40074
984         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
985         account in group size and step comparison.
986
987 2009-05-11  Richard Guenther  <rguenther@suse.de>
988
989         * passes.c (init_optimization_passes): Strip now incorrect comment.
990         (execute_function_todo): Do not set PROP_alias.
991         * tree-pass.h (PROP_alias): Remove.
992         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
993         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
994         * tree-nrv.c (pass_return_slot): Likewise.
995         * tree-object-size.c (pass_object_sizes): Likewise.
996         * tree-ssa-dom.c (pass_dominator): Likewise.
997         (pass_phi_only_cprop): Likewise.
998         * tree-ssa-dse.c (pass_dse): Likewise.
999         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1000         (pass_cselim): Likewise.
1001         * tree-ssa-pre.c (pass_pre): Likewise.
1002         (pass_fre): Likewise.
1003         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
1004         * tree-ssa-sink.c (pass_sink_code): Likewise.
1005         * tree-stdarg.c (pass_stdarg): Likewise.
1006         * tree-tailcall.c (pass_tail_calls): Likewise.
1007         * tree-vrp.c (pass_vrp): Likewise.
1008
1009 2009-05-10  Ian Lance Taylor  <iant@google.com>
1010
1011         * basic-block.h (enum profile_status): Break out of struct
1012         control_flow_graph.
1013         * cgraph.h (struct inline_summary): Break out of struct
1014         cgraph_local_info.
1015         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1016         of struct cgraph_order_sort.
1017         * combine.c (enum undo_kind): New enum, broken out of struct undo.
1018         * cse.c (struct branch_path): Break out of struct
1019         cse_basic_block_data.
1020         * except.h (enum eh_region_type): Break out of struct eh_region.
1021         * gcc.c (enum add_del): Break out of struct modify_target.
1022         * genrecog.c (enum decision_type): Break out of struct decision_test.
1023         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1024         ggc_pch_data.
1025         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1026         * regmove.c (enum match_use): New enum, broken out of struct match.
1027         * sched-int.h (enum post_call_group): New enum, broken out of
1028         struct deps.
1029         (struct deps_reg): Break out of struct deps.
1030         * target.h (struct asm_int_op): Break out of struct gcc_target.
1031         * tree-eh.c (struct goto_queue_node): Break out of struct
1032         leh_tf_state.
1033         * tree-inline.h (enum copy_body_cge_which): Break out of
1034         copy_body_data.
1035         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1036
1037         * c-decl.c (in_struct, struct_types): New static variables.
1038         (pushtag): Add loc parameter.  Change all callers.
1039         (lookup_tag): Add ploc parameter.  Change all callers.
1040         (check_compound_literal_type): New function.
1041         (parser_xref_tag): Add loc parameter.  Change all callers.  If
1042         -Wc++-compat, warn about struct/union/enum types defined within a
1043         struct or union.
1044         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1045         and loc parameters.  Change all callers.  Change error calls to
1046         error_at, using loc.  For a redefinition, if the location of the
1047         original definition is known, report it.  Set in_struct and
1048         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
1049         (finish_struct): Add new parameters enclosing_in_struct and
1050         enclosing_struct_types.  Change all callers.  Set
1051         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1052         in the struct.  If in a struct, add this struct to struct_types.
1053         (start_enum): Add loc parameter.  Change all callers.  Use
1054         error_at for errors, using loc.  For a redefinition, if the
1055         location of the original definition is known, report it.  If in a
1056         struct, add this enum type to struct_types.  If -Wc++-compat warn
1057         if in sizeof, typeof, or alignof.
1058         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1059         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
1060         (c_parser_enum_specifier): Get enum location for start_enum.
1061         (c_parser_struct_or_union_specifier): Get struct location for
1062         start_struct.  Save in_struct and struct_types status between
1063         start_struct and finish_struct.
1064         (c_parser_cast_expression): Get location of cast.
1065         (c_parser_alignof_expression): Get location of type.
1066         (c_parser_postfix_expression): Likewise.
1067         (c_parser_postfix_expression_after_paren_type): Add type_loc
1068         parameter.  Change all callers.  Call check_compound_literal_type.
1069         Use type_loc for error about variable size type.
1070         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1071         of an enum constant from an enum type defined in a struct or union.
1072         (c_cast_expr): Add loc parameter.  Change all callers.  If
1073         -Wc++-compat, warn about defining a type in a cast.
1074         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1075         (start_enum, start_struct, finish_struct): Update declarations.
1076         (parser_xref_tag, c_cast_expr): Update declarations.
1077         (check_compound_literal_type): Declare.
1078
1079 2009-05-11  Ben Elliston  <bje@au.ibm.com>
1080
1081         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1082         for recent libcpp interface change.
1083         (rs6000_macro_to_expand): Likewise.
1084
1085 2009-05-10  Michael Matz  <matz@suse.de>
1086
1087         PR target/40031
1088         * config/arm/arm.c (require_pic_register): Emit on entry edge,
1089         not at entry of function.
1090
1091 2009-05-10  Richard Guenther  <rguenther@suse.de>
1092
1093         PR tree-optimization/40081
1094         Revert
1095         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1096         using the main variant of the element type.  Do not fiddle with
1097         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1098
1099         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1100         structs with volatile fields.
1101
1102 2009-05-10  Jan Hubicka  <jh@suse.cz>
1103
1104         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
1105         (estimate_move_cost): Assert that it does not get called for
1106         VOID_TYPE_P.
1107         (estimate_num_insns): Skip VOID types in argument handling.
1108         (optimize_inline_calls): Delete unreachable blocks and verify that
1109         callgraph is valid.
1110
1111 2009-05-10  Jan Hubicka  <jh@suse.cz>
1112
1113         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1114         * cgraph.c (cgraph_mark_address_taken_node): New function.
1115         (dump_cgraph_node): Dump new flag.
1116         * cgraph.h (struct cgraph_node): Add address_taken.
1117         (cgraph_mark_address_taken_node): New function.
1118         * ipa.c (cgraph_postorder): Prioritize functions with address taken
1119         since new direct calls can be born.
1120
1121 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1122
1123         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1124         tok->val.node.node.
1125
1126 2009-05-10  Jan Hubicka  <jh@suse.cz>
1127
1128         PR middle-end/40084
1129         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1130         argument; rewrite.
1131         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1132         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1133         * tree-inline.c (copy_bb): Set frequency correctly.
1134         (fold_marked_statements): Update call to
1135         cgraph_update_edges_for_call_stmt.
1136
1137 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1138
1139         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1140         identifiers in diagnostics.
1141         * config/arm/arm.c (arm_handle_fndecl_attribute,
1142         arm_handle_isr_attribute): Likewise.
1143         * config/avr/avr.c (avr_handle_progmem_attribute,
1144         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1145         Likewise.
1146         * config/bfin/bfin.c (handle_int_attribute,
1147         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1148         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1149         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1150         Likewise.
1151         * config/darwin.c (darwin_handle_kext_attribute,
1152         darwin_handle_weak_import_attribute): Likewise.
1153         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1154         h8300_handle_eightbit_data_attribute,
1155         h8300_handle_tiny_data_attribute): Likewise.
1156         * config/i386/i386.c (ix86_handle_cconv_attribute,
1157         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1158         Likewise.
1159         * config/i386/winnt.c (ix86_handle_shared_attribute,
1160         ix86_handle_selectany_attribute): Likewise.
1161         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1162         * config/m32c/m32c.c (function_vector_handler): Likewise.
1163         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1164         m68hc11_handle_fntype_attribute): Likewise.
1165         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1166         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1167         * config/mips/mips.c (mips_insert_attributes,
1168         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1169         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1170         rs6000_handle_struct_attribute): Likewise.
1171         * config/sh/sh.c (sh_insert_attributes,
1172         sh_handle_resbank_handler_attribute,
1173         sh_handle_interrupt_handler_attribute,
1174         sh2a_handle_function_vector_handler_attribute,
1175         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1176         Likewise.
1177         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1178         * config/spu/spu.c (spu_handle_fndecl_attribute,
1179         spu_handle_vector_attribute): Likewise.
1180         * config/stormy16/stormy16.c
1181         (xstormy16_handle_interrupt_attribute): Likewise.
1182         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1183         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1184
1185 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1186
1187         * pretty-print.h (struct pretty_print_info): Add
1188         translate_identifiers.
1189         (pp_translate_identifiers): New.
1190         (pp_identifier): Only conditionally translate identifier to locale
1191         character set.
1192         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1193         (pp_base_tree_identifier): Only conditionally translate identifier
1194         to locale character set.
1195         * c-pretty-print.c (M_): Define.
1196         (pp_c_type_specifier, pp_c_primary_expression): Mark English
1197         fragments for conditional translation with M_.
1198         * tree-pretty-print.c (maybe_init_pretty_print): Disable
1199         identifier translation.
1200
1201 2009-05-10  Richard Guenther  <rguenther@suse.de>
1202
1203         PR tree-optimization/40081
1204         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1205         using the main variant of the element type.  Do not fiddle with
1206         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1207
1208 2009-05-09  Jan Hubicka  <jh@suse.cz>
1209
1210         PR middle-end/40080
1211         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1212         indirect calls; verify cgraph afterwards.
1213
1214 2009-05-09  Jan Hubicka  <jh@suse.cz>
1215
1216         PR bootstrap/40082
1217         * ipa.c (update_inlined_to_pointer): New function.
1218         (cgraph_remove_unreachable_nodes): Use it.
1219
1220 2009-05-09  Jan Hubicka  <jh@suse.cz>
1221
1222         * tree-eh.c (struct leh_state): Remove prev_try.
1223         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1224         not track prev_try.
1225         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
1226         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1227         remove_eh_handler_and_replace, foreach_reachable_handler,
1228         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1229         * except.h (struct eh_region): Remove eh_region_u_cleanup.
1230         (gen_eh_region_cleanup): Update prototype.
1231
1232 2009-05-09  Jan Hubicka  <jh@suse.cz>
1233
1234         PR middle-end/40043
1235         * except.c (copy_eh_region): Always set prev_try.
1236         (redirect_eh_edge_to_label): Find outer try.
1237         (foreach_reachable_handler): When looking for prev try
1238         handle case where previous try is not going to be taken.
1239
1240 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1241
1242         PR tree-optimization/40049
1243         * tree-vect-stmts.c (vectorizable_operation): If the machine has
1244         only vector/vector shifts, convert the type of the constant to the
1245         appropriate type to avoid building incorrect trees, which
1246         eventually have problems with garbage collection.
1247
1248 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1249
1250         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1251         -1 for complex floating-point types if honoring signed zeros.
1252
1253 2009-05-08  Jan Hubicka  <jh@suse.cz>
1254
1255         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1256         argument; handle correctly when profile is absent.
1257         (build_cgraph_edges): Update.
1258         (rebuild_cgraph_edges): Update.
1259         * cgraph.c: Do not include varray.h.
1260         (cgraph_set_call_stmt_including_clones): New function.
1261         (cgraph_create_edge_including_clones): Likewise
1262         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
1263         (cgraph_update_edges_for_call_stmt): Handle clones.
1264         (cgraph_remove_node): Handle clone tree.
1265         (cgraph_remove_node_and_inline_clones): New function.
1266         (dump_cgraph_node): Dump clone tree.
1267         (cgraph_clone_node): Handle clone tree.
1268         (clone_function_name): Bring here from tree-inline.c.
1269         (cgraph_create_virtual_clone): New function.
1270         * cgraph.h (ipa_replace_map): Move here from ipa.h.
1271         (cgraph_clone_info): New function.
1272         (strut cgraph_node): Add clone_info and new clone tree pointers.
1273         (cgraph_remove_node_and_inline_clones,
1274         cgraph_set_call_stmt_including_clones,
1275         cgraph_create_edge_including_clones,
1276         cgraph_create_virtual_clone): Declare.
1277         (cgraph_function_versioning): Use VEC argument.
1278         (compute_call_stmt_bb_frequency): Update prototype.
1279         (cgraph_materialize_all_clones): New function.
1280         * ipa-cp.c (ipcp_update_cloned_node): Remove.
1281         (ipcp_create_replace_map): Update to VECtors.
1282         (ipcp_update_callgraph): Use virtual clones.
1283         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1284         (ipcp_update_profiling): Do not update local profiling.
1285         (ipcp_insert_stage): Use VECtors and virtual clones.
1286         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1287         (clone_of_p): New function.
1288         (cgraph_preserve_function_body_p): Use clone tree.
1289         (cgraph_optimize): Materialize clones.
1290         (cgraph_function_versioning): Update for VECtors.
1291         (save_inline_function_body): Use clone tree.
1292         (cgraph_materialize_clone): New function.
1293         (cgraph_materialize_all_clones): Likewise.
1294         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1295         * ipa.c: Include gimple.h.
1296         (cgraph_remove_unreachable_nodes): Use clone tree.
1297         * ipa-prop.c (ipa_note_param_call): Update call to
1298         compute_call_stmt_bb_frequencycall.
1299         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
1300         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
1301         (copy_bb): Handle updating of clone tree; add new edge when new call
1302         appears.
1303         (expand_call_inline): Be strict about every call having edge.
1304         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1305         (delete_unreachable_blocks_update_callgraph): New function.
1306         (tree_function_versioning): Use VECtors; always remove unreachable
1307         blocks and fold conditionals.
1308         * tree-inline.h: Do not include varray.h.
1309         (tree_function_versioning): Remove.
1310         * Makefile.in (GTFILES): Remove tree-inline.c
1311         * passes.c (do_per_function): Do only functions having body.
1312         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1313         tree.
1314
1315 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
1316             Andrew Morrow  <acm@google.com>
1317
1318         PR c/36892
1319         * c-common.c (c_common_attribute_table): Permit deprecated
1320         attribute to take an optional argument.
1321         (handle_deprecated_attribute): If the optional argument to
1322         __attribute__((deprecated)) is not a string ignore the attribute
1323         and emit a warning.
1324
1325         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1326         * c-typeck.c (build_component_ref): Likewise.
1327         (build_external_ref): Likewise.
1328
1329         * toplev.c (warn_deprecated_use): Add an attribute argument.
1330         Emit the message associated with __attribute__((deprecated)).
1331
1332         * toplev.h (warn_deprecated_use): Updated.
1333
1334         * doc/extend.texi: Document new optional parameter to
1335         __attribute__((deprecated))
1336
1337 2009-05-08  Michael Eager <eager@eagercon.com>
1338
1339         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1340         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1341
1342 2009-05-08  Richard Guenther  <rguenther@suse.de>
1343
1344         PR tree-optimization/40062
1345         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1346         Avoid exponential behavior.
1347
1348 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1349
1350         PR rtl-optimization/33928
1351         PR 26854
1352         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1353         process_uses, build_single_def_use_links): New.
1354         (update_df): Update use_def_ref.
1355         (forward_propagate_into): Use get_def_for_use instead of use-def
1356         chains.
1357         (fwprop_init): Call build_single_def_use_links and let it initialize
1358         dataflow.
1359         (fwprop_done): Free use_def_ref.
1360         (fwprop_addr): Eliminate duplicate call to df_set_flags.
1361         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
1362         df_rd_simulate_one_insn): New.
1363         (df_rd_bb_local_compute_process_def): Update head comment.
1364         (df_chain_create_bb): Use the new RD simulation functions.
1365         * df.h (df_rd_simulate_artificial_defs_at_top, 
1366         df_rd_simulate_one_insn): New.
1367         * opts.c (decode_options): Enable fwprop at -O1.
1368         * doc/invoke.texi (-fforward-propagate): Document this.
1369
1370 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1371
1372         PR c/24581
1373         * c-typeck.c (build_binary_op): Handle arithmetic between one real
1374         and one complex operand specially.
1375         * tree-complex.c (some_nonzerop): Do not identify a real value as
1376         zero if flag_signed_zeros.
1377
1378 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1379
1380         PR rtl-optimization/33928
1381         * loop-invariant.c (record_use): Fix && vs. || mishap.
1382
1383 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
1384
1385         PR rtl-optimization/33928
1386         * loop-invariant.c (struct use): Add addr_use_p.
1387         (struct def): Add n_addr_uses.
1388         (struct invariant): Add cheap_address.
1389         (create_new_invariant): Set cheap_address.
1390         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
1391         (record_uses): Pass df_ref to record_use.
1392         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1393         used only as such.
1394
1395 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1396
1397         * config/sh/sh.c: Do not include c-pragma.h.
1398
1399 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1400
1401         * config/spu/spu.c: Remove include of c-common.h.
1402
1403 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
1404
1405         PR c/39037
1406         * c-common.h (mark_valid_location_for_stdc_pragma,
1407         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1408         clear_float_const_decimal64, float_const_decimal64_p): New.
1409         * c.opt (Wunsuffixed-float-constants): New.
1410         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1411         unsuffixed float constant, handle new warning.
1412         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1413         * c-decl.c (c_scope): New flag float_const_decimal64.
1414         (set_float_const_decimal64, clear_float_const_decimal64,
1415         float_const_decimal64_p): New.
1416         (push_scope): Set new flag.
1417         * c-parser.c (c_parser_translation_unit): Mark when it's valid
1418         to use STDC pragmas.
1419         (c_parser_external_declaration): Ditto.
1420         (c_parser_compound_statement_nostart): Ditto.
1421         * c-pragma.c (valid_location_for_stdc_pragma,
1422         mark_valid_location_for_stdc_pragma,
1423         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1424         handle_pragma_float_const_decimal64): New.
1425         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1426         * cp/semantics.c (valid_location_for_stdc_pragma_p,
1427         set_float_const_decimal64, clear_float_const_decimal64,
1428         float_const_decimal64_p): New dummy functions.
1429         * doc/extend.texi (Decimal Float): Remove statement that the
1430         pragma, and suffix for double constants, are not supported.
1431         * doc/invoke.texi (Warning Options): List new option.
1432         (-Wunsuffixed-float-constants): New.
1433
1434 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
1435
1436         * config/i386/i386.c: Do not include c-common.h.
1437
1438 2009-05-07  Mark Heffernan  <meheff@google.com>
1439
1440         * doc/invoke.texi (Debugging Options): Document change of debugging
1441         dump location.
1442         * opts.c (decode_options): Make dump_base_name relative to
1443         aux_base_name directory.
1444
1445 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
1446
1447         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1448         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1449
1450 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
1451
1452         * Makefile.in (install-plugin): Simplify a bit.
1453
1454 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
1455
1456         * Makefile.in (OBJS-common): Add regcprop.o.
1457         (regcprop.o): New.
1458         * timevar.def (TV_CPROP_REGISTERS): New.
1459         * regrename.c (regrename_optimize): Return 0.
1460         (rest_of_handle_regrename): Delete.
1461         (pass_rename_registers): Point to regrename_optimize.
1462         (struct value_data_entry, struct value_data, 
1463         kill_value_one_regno, kill_value_regno, kill_value,
1464         set_value_regno, init_value_data, kill_clobbered_value,
1465         kill_set_value, kill_autoinc_value, copy_value,
1466         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1467         replace_oldest_value_reg, replace_oldest_value_addr,
1468         replace_oldest_value_mem, copyprop_hardreg_forward_1,
1469         debug_value_data, validate_value_data): Move...
1470         * regcprop.c: ... here.
1471         (rest_of_handle_cprop): Delete.
1472         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1473
1474 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
1475
1476         PR middle-end/40057
1477         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1478         GEN_INT for 1 << bitnum.
1479         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1480         build_int_cst_type.
1481
1482 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
1483
1484         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
1485         Remove wrong description of "nand" operation.
1486
1487 2009-05-06  Richard Guenther  <rguenther@suse.de>
1488             Adam Nemet  <anemet@caviumnetworks.com>
1489
1490         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1491         comment.  Add that if LHS is not a gimple register, then RHS1 has
1492         to be a single object (GIMPLE_SINGLE_RHS).
1493
1494 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
1495
1496         * expr.c (get_def_for_expr): Move it up in the file.
1497         (store_field): When expanding a bit-field store, look at the
1498         defining gimple stmt for the masking conversion.
1499
1500 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
1501
1502         PR middle-end/39986
1503         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1504         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1505         32-bit memcpy into long.
1506
1507 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
1508
1509         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1510         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1511         new_reg_loc_descr.
1512         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1513         instead of appending DW_OP_deref*.
1514
1515 2009-05-06  Michael Matz  <matz@suse.de>
1516
1517         PR middle-end/40021
1518         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1519         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1520
1521 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
1522
1523         * Makefile.in (install-plugin): Fix srcdir handling.
1524
1525 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
1526
1527         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1528         when processing for not_regs_needed bitmap.
1529         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1530         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
1531         handling it for rhs. 
1532
1533 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1534
1535         * config/i386/i386.md (unnamed inc/dec peephole): Use
1536         optimize_insn_for_size_p instead of optimize_size.
1537         * config/i386/predicates.md (incdec_operand): Likewise.
1538         (aligned_operand): Likewise.
1539         * config/i386/sse.md (divv8sf3): Likewise.
1540         (sqrtv8sf2): Likewise.
1541
1542 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1543
1544         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1545
1546         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1547
1548 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
1549
1550         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1551         ssemodesuffixf2c with avxmodesuffixf2c.
1552
1553 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
1554
1555         PR c/40032
1556         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1557
1558 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
1559
1560         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1561         (struct tree_base): Adjust spacing for 8 bit boundaries.
1562         (struct tree_decl_common): Add decl_by_reference_flag bit.
1563         (DECL_BY_REFERENCE): Adjust.
1564         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1565         print DECL_BY_REFERENCE bit.
1566         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1567         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1568         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1569         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
1570         unconditionally.
1571
1572         PR middle-end/39666
1573         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1574         range of the type, but default label is missing, add it with one
1575         of the existing labels instead of adding a new label for it.
1576
1577 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
1578
1579         * dwarf.h: Remove.
1580
1581 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
1582
1583         * Makefile.in (enable_plugin, plugin_includedir): New.
1584         (install): Depend on install-plugin.
1585         (PLUGIN_HEADERS): New.
1586         (install-plugin): New.
1587         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1588
1589 2009-05-05  Richard Guenther  <rguenther@suse.de>
1590
1591         PR tree-optimization/40022
1592         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1593         the only vuse.
1594         (phivn_valid_p): Fix tuplification error, simplify.
1595         (phiprop_insert_phi): Add dumps.
1596         (propagate_with_phi): Simplify.
1597
1598 2009-05-05  Richard Guenther  <rguenther@suse.de>
1599
1600         PR middle-end/40023
1601         * builtins.c (gimplify_va_arg_expr): Properly build the address.
1602
1603 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
1604
1605         * tree.h (strip_float_extensions): Remove duplicate declaration.
1606         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1607         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1608         block_ultimate_origin): Rearrange the declarations line to match the
1609         comment that indicates the .c file which the functions are defined.
1610         (dwarf2out_*, set_decl_rtl): Add comment.
1611         (get_base_address): Adjust comment.
1612         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1613         declarations line and add comment.
1614         (is_builtin_name): Add blank after function name, for clarity.
1615
1616 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1617
1618         * attribs.c (decl_attributes): Use %qE for identifiers in
1619         diagnostics.
1620         * cgraphunit.c (verify_cgraph_node): Translate function names to
1621         locale character set in diagnostics.
1622         * coverage.c (get_coverage_counts): Use %qE for identifiers in
1623         diagnostics.
1624         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1625         Document that functions are named in UTF-8.
1626         * expr.c (expand_expr_real_1): Translate function names to locale
1627         character set in diagnostics.
1628         * gimplify.c (omp_notice_variable, omp_is_private,
1629         gimplify_scan_omp_clauses): Use %qE for identifiers in
1630         diagnostics.
1631         * langhooks.c (lhd_print_error_function): Translate function names
1632         to locale character set.
1633         * langhooks.h (decl_printable_name): Document that return value is
1634         in internal character set.
1635         * stmt.c: Include pretty-print.h
1636         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1637         diagnostics.
1638         (resolve_operand_name_1): Translate named operand name to locale
1639         character set.
1640         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1641         diagnostics.
1642         * toplev.c (announce_function): Translate function names to locale
1643         character set.
1644         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1645         (default_tree_printer): Use pp_identifier or translate identifiers
1646         to locale character set.  Mark "<anonymous>" for translation.
1647         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1648         for identifiers in diagnostics.
1649         * tree.c (handle_dll_attribute): Use %qE for identifiers in
1650         diagnostics.
1651         * varasm.c (output_constructor): Use %qE for identifiers in
1652         diagnostics.
1653
1654 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
1655
1656         * configure.ac: use ` ` instead of $()
1657         * configure: Regenerate.
1658
1659 2009-05-05  Ben Elliston  <bje@au.ibm.com>
1660
1661         * config/pa/linux-atomic.c: Eliminate conditional include of
1662         errno.h on non-LP64 systems to simplify build requirements.
1663
1664 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1665
1666         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1667         diagnostics.
1668         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1669         and pass value to identifier_to_locale.
1670         (warn_variable_length_array): Make name a tree.
1671         (grokdeclarator): Separate diagnostic texts for named and unnamed
1672         declarators.  Use %qE for named declarators.
1673         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1674         diagnostics.
1675         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1676         identifiers in diagnostics.
1677         * c-typeck.c (push_member_name, start_init): Pass identifiers to
1678         identifier_to_locale.  Mark "anonymous" strings for translation.
1679
1680 2009-05-04  Michael Eager <eager@eagercon.com>
1681
1682         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
1683         address for DImode/DFmode only if double-precision FP regs.
1684
1685 2009-05-04  Michael Eager <eager@eagercon.com>
1686
1687         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1688         TARGET_SINGLE_FLOAT check.
1689
1690 2009-05-04  Michael Eager <eager@eagercon.com>
1691
1692         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1693
1694 2009-05-04  Michael Eager <eager@eagercon.com>
1695
1696         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1697         * config/rs6000/t-xilinx: New
1698
1699 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
1700
1701         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
1702         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1703         * gcc/explow.c (memory_address): Use target hook.
1704         * gcc/targhooks.c (default_legitimize_address): New.
1705         * gcc/targhooks.h (default_legitimize_address): New.
1706         * gcc/target.h (legitimize_address): New.
1707         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1708         (TARGET_INITIALIZER): Include it.
1709         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1710
1711         * config/bfin/bfin-protos.h (legitimize_address): Remove.
1712         * config/bfin/bfin.c (legitimize_address): Remove.
1713         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
1714         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1715         Remove.
1716         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1717         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1718
1719         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1720         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1721         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1722         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1723         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1724         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1725         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1726         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1727         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1728         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1729         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1730         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1731         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1732         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1733         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1734         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1735         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1736         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1737         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1738         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1739         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1740         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1741         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1742
1743         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1744         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1745         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1746         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1747         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1748         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1749         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1750         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1751         (thumb_legitimize_address): Delete.
1752         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1753         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1754         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1755         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1756         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
1757         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1758         Delete.
1759         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1760         Delete.
1761
1762         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1763         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1764         * config/m32r/m32r.c (m32r_legitimize_address): New.
1765         * config/m68k/m68k.c (m68k_legitimize_address): New.
1766         * config/score/score.c (score_legitimize_address): Standardize.
1767         * config/score/score3.c (score3_legitimize_address): Standardize.
1768         * config/score/score3.h (score3_legitimize_address): Adjust.
1769         * config/score/score7.c (score7_legitimize_address): Standardize.
1770         * config/score/score7.h (score7_legitimize_address): Adjust.
1771         * config/sh/sh.c (sh_legitimize_address): New.
1772         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1773
1774         * gcc/config/s390/s390.c (legitimize_address): Rename to...
1775         (s390_legitimize_address): ... this.
1776         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1777         (sparc_legitimize_address): ... this.
1778         * gcc/config/i386/i386.c (legitimize_address): Rename to...
1779         (ix86_legitimize_address): ... this.
1780         * gcc/config/avr/avr.c (legitimize_address): Rename to...
1781         (avr_legitimize_address): ... this.
1782         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1783         (mn10300_legitimize_address): ... this.
1784         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1785         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1786         (alpha_expand_mov): Adjust call.
1787
1788         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1789         * config/spu/spu.c (spu_legitimize_address): Likewise.
1790         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1791         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1792
1793 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
1794
1795         * intl.c (locale_encoding, locale_utf8): New.
1796         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1797         * intl.h (locale_encoding, locale_utf8): Declare.
1798         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
1799         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1800         New.
1801         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1802         argument.
1803         (pp_tree_identifier): Define to call pp_base_tree_identifier.
1804         (pp_base_tree_identifier): Declare as function.
1805         (identifier_to_locale): Declare.
1806         * Makefile.in (pretty-print.o): Update dependencies.
1807         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
1808
1809 2009-05-04  Richard Guenther  <rguenther@suse.de>
1810
1811         PR middle-end/40015
1812         * builtins.c (fold_builtin_memory_op): Do not decay to element
1813         type if the size matches the whole array.
1814
1815 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
1816
1817         * expmed.c (synth_mult): When trying out a shift, pass the result
1818         of a signed shift.
1819
1820 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
1821
1822         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1823         (shiftsub1_cost): New.
1824         (init_expmed): Compute shiftsub1_cost.
1825         (synth_mult): Optimize multiplications by constants of the form
1826         -(2^^m-1) for some constant positive integer m.
1827
1828 2009-05-03  Richard Guenther  <rguenther@suse.de>
1829
1830         PR c/39983
1831         * c-typeck.c (array_to_pointer_conversion): Do not built
1832         ADDR_EXPRs of arrays of pointer-to-element type.
1833         * c-gimplify.c (c_gimplify_expr): Revert change fixing
1834         up wrong ADDR_EXPRs after-the-fact.
1835         * c-common.c (strict_aliasing_warning): Strip pointer
1836         conversions for obtaining the original type.
1837         * builtins.c (fold_builtin_memset): Handle array types.
1838         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1839         and array types
1840
1841 2009-05-03  Richard Guenther  <rguenther@suse.de>
1842
1843         PR middle-end/23329
1844         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1845         Do not lose casts from array types with unknown extent to array
1846         types with known extent.
1847         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1848         alias set compatibility.
1849
1850 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1851
1852         * flags.h (extra_warnings): Delete.
1853         * toplev.c (process_options): Handle Wuninitialized here.
1854         * opts.c (extra_warnings): Delete.
1855         (set_Wextra): Delete.
1856         (common_handle_option): -Wextra can be handled automatically.
1857         * c-opts.c (c_common_handle_option): Delete obsolete code.
1858         (c_common_post_options): Simplify comment.
1859         * common.opt (W): Add Var.
1860         (Wextra): Add Var.
1861         (Wuninitialized): Initialize to -1.
1862
1863 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
1864             Richard Guenther  <rguenther@suse.de>
1865
1866         * expr.c (get_def_for_expr): New function.
1867         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
1868         SSA rather than trees.
1869         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
1870         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
1871         
1872 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
1873
1874         * c-common.c (reswords): Add _Imaginary.
1875         * c-common.c (enum rid): Add RID_IMAGINARY.
1876
1877 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
1878
1879         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
1880         Patch by Richard Guenther.
1881
1882 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
1883
1884         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
1885         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1886         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
1887         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
1888         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
1889         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
1890         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
1891         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
1892         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
1893         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
1894         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
1895         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
1896         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
1897         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
1898         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
1899         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
1900         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
1901         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
1902
1903 2009-05-02  Richard Guenther  <rguenther@suse.de>
1904
1905         PR tree-optimization/39940
1906         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
1907         doing so.
1908
1909 2009-05-02  Richard Guenther  <rguenther@suse.de>
1910
1911         PR middle-end/40001
1912         * tree-ssa.c (execute_update_addresses_taken): Properly check
1913         if we can mark a variable DECL_GIMPLE_REG_P.
1914         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
1915         back to the end of the function.
1916         (is_gimple_reg_type): Remove complex type special casing.
1917         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
1918         if not optimizing.
1919
1920 2009-05-02  Ben Elliston  <bje@au.ibm.com>
1921
1922         * doc/collect2.texi (Collect2): Document search path behaviour
1923         when configured with --with-ld.
1924
1925 2009-05-02  Jan Hubicka  <jh@suse.cz>
1926
1927         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
1928         parameter; update callers.
1929         (coalesce_cost_edge): EH edges are costier because they needs
1930         splitting even if not critical and even more costier when there are
1931         multiple EH predecestors.
1932
1933 2009-05-02  Jan Hubicka  <jh@suse.cz>
1934
1935         * except.c (remove_eh_handler_and_replace): Handle updating after
1936         removing TRY blocks.
1937
1938 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
1939
1940         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1941
1942 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
1943
1944         * varasm.c: Do not include c-pragma.h.
1945         * attribs.c: Do not incude c-common.h.
1946
1947 2009-05-01  Michael Matz  <matz@suse.de>
1948
1949         * calls.c (initialize_argument_information): Handle SSA names like
1950         decls with a non MEM_P DECL_RTL.
1951
1952 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
1953
1954         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1955         * ipa-utils.c: Likewise.
1956         * ipa-type-escape.c: Likewise.
1957         * cgraphunit.c Do not include c-common.h.
1958         * ipa-pure-const.c: Likewise.
1959         * tree-if-conv.c: Likewise.
1960         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1961         * ipa-struct-reorg.c: Likewise.
1962         * tree-nomudflap.c: Likewise.
1963         * tree-ssa-structalias.c: Likewise.
1964
1965 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
1966
1967         * store-motion.c: Many cleanups to make this pass a first-class
1968         citizen instead of an appendix to gcse load motion.  Add TODO list
1969         to make this pass faster/cleaner/better.
1970
1971         (struct ls_expr): Post gcse.c-split cleanups.
1972         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
1973         "stores" field to "avail_stores".
1974         (pre_ldst_mems): Rename to store_motion_mems.
1975         (pre_ldst_table): Rename to store_motion_mems_table.
1976         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
1977         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
1978         (ldst_entry): Rename to st_expr_entry, update users.
1979         (free_ldst_entry): Rename to free_st_expr_entry, update users.
1980         (free_ldst_mems): Rename to free_store_motion_mems, update users.
1981         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
1982         update caller.
1983         (first_ls_expr): Rename to first_st_expr, update users.
1984         (next_ls_expr): Rename to next_st_expr, update users.
1985         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
1986         fields properly for store motion instead of names inherited from load
1987         motion in gcse.c.
1988         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
1989         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
1990         are done with it.
1991
1992         (ae_kill): Rename to st_kill, update users.
1993         (ae_gen): Rename to st_avloc, update users.
1994         (transp): Rename to st_transp, update users.
1995         (pre_insert_map): Rename to st_insert_map, update users.
1996         (pre_delete_map): Rename to st_delete_map, update users.
1997         (insert_store, build_store_vectors, free_store_memory,
1998         one_store_motion_pass): Update for abovementioned changes.
1999
2000         (gcse_subst_count, gcse_create_count): Remove.
2001         (one_store_motion_pass): New statistics counters "n_stores_deleted"
2002         and "n_stores_created", local variables.
2003
2004         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
2005         use for_each_rtx.
2006
2007         (regvec, compute_store_table_current_insn): Remove.
2008         (reg_set_info, reg_clear_last_set): Remove.
2009         (compute_store_table): Use DF caches instead of local dataflow
2010         solvers.
2011
2012 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
2013
2014         * c-objc-common.c (c_tree_printer): Print identifiers with
2015         pp_identifier, not pp_string.  Mark "({anonymous})" for
2016         translation.
2017         * c-pretty-print.c (pp_c_ws_string): New.
2018         (pp_c_cv_qualifier, pp_c_type_specifier,
2019         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2020         pp_c_storage_class_specifier, pp_c_function_specifier,
2021         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2022         pp_c_primary_expression, pp_c_postfix_expression,
2023         pp_c_unary_expression, pp_c_shift_expression,
2024         pp_c_relational_expression, pp_c_equality_expression,
2025         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2026         use pp_string and pp_c_ws_string in place of pp_identifier and
2027         pp_c_identifier for non-identifiers.  Mark English strings for
2028         translation.
2029         * c-pretty-print.h (pp_c_ws_string): Declare.
2030
2031 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
2032             Roland McGrath <roland@redhat.com>
2033
2034         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
2035         (ENABLE_LD_BUILDID): New configuration option.
2036         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2037         (LINK_BUILDID_SPEC): New macro.
2038         (init_spec): If defined, prepend it between LINK_EH_SPEC and
2039         link_spec.
2040         * doc/install.texi: Document --enable-linker-build-id option.
2041         * configure: Rebuild.
2042         * config.in: Rebuild.
2043
2044 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
2045
2046         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2047         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2048         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
2049         MIPS_GP_SAVE_AREA_SIZE.
2050         * config/mips/mips.c (struct mips_frame_info): Update comment
2051         before arg_pointer_offset and hard_frame_pointer_offset.
2052         (mips_compute_frame_info): Update diagram before function: to
2053         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2054         indicate the position of frame_pointer_rtx with -fstack-protector and
2055         to show args_size.  Don't allocate cprestore area for leaf functions
2056         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
2057         cprestore_size.
2058         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2059
2060 2009-04-30  Michael Matz  <matz@suse.de>
2061
2062         PR tree-optimization/39955
2063         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
2064
2065 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2066
2067         * ira.c (setup_cover_and_important_classes):  Use safe macro
2068         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2069         directly.
2070         * genpreds.c (write_tm_preds_h):  Output suitable definition of
2071         REG_CLASS_FOR_CONSTRAINT.
2072
2073 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2074
2075         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2076         instead of an int.
2077         * bitmap.c (bitmap_descriptor): Likewise.
2078         * ggc-common.c (loc_descriptor): Likewise.
2079         * varray.c (varray_descriptor): Likewise.
2080         * vec.c (vec_descriptor): Likewise.
2081
2082 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2083
2084         * Makefile.in (dce.o): Add $(EXCEPT_H).
2085         * dce.c: Include except.h and delete redundant vector definitions.
2086         (deletable_insn_p): Return false for non-call insns that can throw
2087         if DF is running.
2088
2089 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2090
2091         * gcse.c (ae_gen): Remove.
2092         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2093         and make non-static function to make it available in store-motion.c.
2094         Update call sites with search-and-replace.
2095         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2096         extract_mentioned_regs, extract_mentioned_regs_helper,
2097         find_moveable_store, compute_store_table, load_kills_store, find_loads,
2098         store_killed_in_insn, store_killed_after, store_killed_before,
2099         build_store_vectors, insert_insn_start_basic_block, insert-store,
2100         remove_reachable_equiv_notes, replace_store_insn, delete_store,
2101         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2102         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2103         * store-motion.c: ...new file.  Also copy data structures from gcse.c
2104         and clean up to remove parts not used by store motion.
2105         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2106         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2107
2108 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2109
2110         PR target/38571
2111         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2112         when optimizing for size.
2113
2114 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
2115
2116         * gcse.c (gcse_constant_p): Fix typo in last change.
2117
2118 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2119
2120         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2121
2122 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2123
2124         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2125
2126 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
2127
2128         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2129         CONST_HIGH_PART result.
2130
2131 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
2132
2133         * config/avr/avr.c (initial_elimination_offset): Rename to
2134         avr_initial_elimination_offset.
2135         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2136         change return type to bool.
2137         (avr_can_eliminate): New function.
2138         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2139         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2140         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
2141         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
2142         avr_initial_elimination_offset.
2143         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2144         (avr_initial_elimination_offset): Define.
2145
2146 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
2147             Steven Bosscher  <steven@gcc.gnu.org>
2148
2149         PR rtl-optimization/39938
2150         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2151         * cfgrtl.c: Include insn-attr.h.
2152         (rest_of_pass_free_cfg): New function.
2153         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2154         * resource.c (init_resource_info): Remove call to df_analyze.
2155
2156 2009-04-29  Richard Guenther  <rguenther@suse.de>
2157
2158         PR target/39943
2159         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2160         allow conversion to signed integers.
2161
2162 2009-04-29  Richard Guenther  <rguenther@suse.de>
2163
2164         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2165         shifts of floating point vectors if the shift amount is
2166         a constant multiple of the element size.
2167
2168 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2169             Michael Matz  <matz@suse.de>
2170
2171         PR middle-end/39927
2172         PR bootstrap/39929
2173         * tree-outof-ssa.c (emit_partition_copy): New function.
2174         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2175         insert_part_to_rtx_on_edge): Perform the partition base var
2176         copy using emit_partition_copy.
2177         (insert_value_copy_on_edge): Convert constants to the right mode.
2178         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2179         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2180
2181 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2182
2183         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2184         scan backwards to try to find a constant to initialize it.
2185
2186         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2187         insn before the loop_end instruction, don't look past labels.
2188
2189 2009-04-29  Richard Guenther  <rguenther@suse.de>
2190
2191         PR middle-end/39937
2192         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2193         loose type conversions.
2194         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
2195         stmts only if there are no uses of its definition.
2196
2197 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2198
2199         * config/bfin/bfin.h (splitting_loops): Declare.
2200         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2201         Reorder bit definitions to be ascending.
2202         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2203         * config/bfin/bfin.c (splitting_loops): New variable.
2204         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2205         (struct loop_info): Remove members INIT and LOOP_INIT.
2206         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
2207         the LSETUP sequence.  Allow LC to be loaded from any register, but
2208         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
2209         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2210         set to 1.
2211         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2212         of reload_completed.
2213
2214         From Jie Zhang:
2215         * config/bfin/bfin.md (movsi_insn): Refine constraints.
2216
2217 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
2218
2219         * Makefile.in (PLUGIN_VERSION_H): New.
2220         (OBJS-common): Remove plugin-version.o.
2221         (plugin.o): Depend on (PLUGIN_VERSION_H).
2222         (plugin-version.o): Remove.
2223         * configure: Regenerate
2224         * configure.ac: Create plugin-version.h.
2225         * gcc-plugin.h (plugin_gcc_version): Remove.
2226         (plugin_default_version_check): Change signature.
2227         * plugin-version.c: Remove.
2228         * plugin.c: Include plugin-version.h.
2229         (str_plugin_gcc_version_name): Remove.
2230         (try_init_one_plugin): Pass gcc version to plugin_init.
2231         (plugin_default_version_check): Both gcc and plugin versions are now
2232         arguments.
2233
2234 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2235         
2236         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2237         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
2238         Remove special case testing for last insn of inner loops. Don't fail
2239         if the loop ends with a jump, emit an extra nop instead.
2240
2241         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2242         DREGS rather than comparing directly.  Remove code that tries to
2243         account for latencies.
2244
2245 2009-04-29  Richard Guenther  <rguenther@suse.de>
2246
2247         PR tree-optimization/39941
2248         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2249         eliminating an indirect call.
2250
2251 2009-04-29  Richard Guenther  <rguenther@suse.de>
2252
2253         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2254         parameter.  Allow invariants as base if !require_lvalue.
2255         (verify_gimple_assign_single): Adjust.
2256
2257 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2258
2259         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2260         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
2261         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2262         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
2263         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2264         a VEC_SELECT.
2265         * config/bfin/bfin.c (bfin_expand_builtin,
2266         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
2267
2268 2009-04-28  Richard Guenther  <rguenther@suse.de>
2269
2270         * tree-vect-loop.c (get_initial_def_for_induction): Use
2271         correct types for pointer increment.
2272
2273 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2274
2275         * toplev.c (print_version): Update GMP version string calculation.
2276
2277 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2278
2279         PR rtl-optimization/39938
2280         * resource.c (init_resource_info): Add call to df_analyze.
2281
2282 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2283
2284         * config/alpha/alpha.md (usegp): Cast the result of
2285         alpha_find_lo_sum_using_gp to enum attr_usegp.
2286         * config/alpha/alpha.c (override_options): Remove end-of-structure
2287         marker element from cpu_table.  Use array size of cpu_table to handle
2288         -mcpu and -mtune options.
2289         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2290
2291 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
2292
2293         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2294         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
2295         tune_32 and tune_64.
2296         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2297         support on PowerPC.
2298         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2299         * config/rs6000/option-defaults.h: ... here.  New file.
2300         (OPT_64, OPT_32): Define.
2301         (MASK_64BIT): Define to 0 if not already defined.
2302         (OPT_ARCH64, OPT_ARCH32): Define.
2303         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2304         and tune_64.
2305
2306 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2307
2308         * config/arm/arm.c (arm_override_options): Emit error on using
2309         fpa with AAPCS.
2310
2311 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2312
2313         PR rtl-optimization/39914
2314         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2315         registers for allocnos created from user-defined variables only
2316         when not optimizing.
2317
2318 2009-04-28  Richard Guenther  <rguenther@suse.de>
2319
2320         PR middle-end/39937
2321         * fold-const.c (fold_binary): Use distribute_real_division only
2322         on float types.
2323
2324 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
2325
2326         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2327         add hpux-stdint.h to tm_file.
2328         (hppa[12]*-*-hpux11*): Ditto.
2329         (ia64*-*-hpux*): Ditto.
2330         * config/hpux-stdint.h: New.
2331         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
2332         __STDC_EXT__ for all compiles.
2333         * config/pa/pa-hpux.h: Ditto.
2334         * config/pa/pa-hpux10.h: Ditto.
2335         * config/pa/pa-hpux11.h: Ditto.
2336
2337 2009-04-28  Catherine Moore  <clm@codesourcery.com>
2338
2339         * debug.h (set_name): Add comment.
2340
2341 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
2342
2343         PR target/39929
2344         * config/darwin.c (machopic_gen_offset): Check
2345         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2346         * config/arm/arm.c (require_pic_register): Likewise.
2347
2348 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
2349
2350         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2351         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2352         m32c_promote_prototypes): Delete.
2353
2354 2009-04-28  Michael Matz  <matz@suse.de>
2355
2356         PR middle-end/39922
2357         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2358         constants.
2359
2360 2009-04-28  Richard Guenther  <rguenther@suse.de>
2361
2362         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
2363
2364 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2365
2366         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2367         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2368         * config/arm/arm-tune.md: Regenerate.
2369
2370 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
2371
2372         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2373         block if there are complex incoming edges.
2374         (sel_merge_blocks): Remove useless assert.
2375         (sel_redirect_edge_and_branch): Check that edge was redirected.
2376         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2377         (sel_find_rgns): Delete declaration.
2378         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2379         the region when it is not a preheader.
2380
2381 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2382
2383         PR c/39323
2384         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2385
2386 2009-04-28  Richard Guenther  <rguenther@suse.de>
2387
2388         * tree.h (SSA_NAME_VALUE): Remove.
2389         (struct tree_ssa_name): Remove value_handle member.
2390         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2391         array for jump threading.
2392         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2393         SSA_NAME_VALUEs.
2394         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2395         * tree-flow.h (threadedge_initialize_values): Declare.
2396         (threadedge_finalize_values): Likewise.
2397         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2398         (SSA_NAME_VALUE): Define.
2399         (threadedge_initialize_values): New function.
2400         (threadedge_finalize_values): Likewise.
2401         * tree-ssa-dom.c (ssa_name_values): New global variable.
2402         (SSA_NAME_VALUE): Define.
2403         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
2404
2405 2009-04-28  Ira Rosen  <irar@il.ibm.com>
2406
2407         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2408         Use REPORT_VECTORIZED_LOCATIONS instead 
2409         REPORT_VECTORIZED_LOOPS.
2410         * tree-vectorizer.c (vect_verbosity_level): Make static.
2411         (vect_loop_location): Rename to vect_location.
2412         (vect_set_verbosity_level): Update comment.
2413         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2414         and vect_location.
2415         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2416         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2417         instead REPORT_UNVECTORIZED_LOOPS.
2418         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2419         and vect_loop_def to vect_external_def and vect_internal_def.
2420         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
2421         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
2422         REPORT_UNVECTORIZED_LOCATIONS.
2423         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2424         and vect_used_in_loop and to vect_unused_in_scope and 
2425         vect_used_in_scope.
2426         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2427         (vect_verbosity_level): Remove declaration.
2428         (vect_analyze_operations): Likewise.
2429         (vect_analyze_stmt): Declare.
2430         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2431         REPORT_UNVECTORIZED_LOCATIONS.
2432         (vect_get_loop_niters): Fix indentation.
2433         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2434         (vect_analyze_loop_operations): New function.
2435         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2436         vect_analyze_operations.
2437         (vect_is_simple_reduction): Use new names.
2438         (vectorizable_live_operation, vect_transform_loop): Likewise.
2439         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2440         to specify whether the data references can be a part of interleaving
2441         chain.
2442         (vect_analyze_data_ref_dependence): Use new names.
2443         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2444         (vect_create_addr_base_for_vector_ref): Remove redundant code.
2445         * tree-vect-patterns.c (widened_name_p): Use new names.
2446         (vect_recog_dot_prod_pattern): Likewise.
2447         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2448         (process_use, vect_mark_stmts_to_be_vectorized, 
2449         vect_model_simple_cost, vect_model_store_cost,
2450         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2451         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2452         vectorizable_operation, vectorizable_type_demotion,
2453         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2454         vectorizable_condition): Likewise.
2455         (vect_analyze_operations): Split into vect_analyze_loop_operations
2456         and ...
2457         (vect_analyze_stmt): ... new function.
2458         (new_stmt_vec_info): Use new names.
2459         (vect_is_simple_use): Use new names and fix comment.
2460         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2461         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2462
2463 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2464
2465         PR target/39911
2466         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2467         and integer modes for x87 operands.  Do not ICE for unsupported size,
2468         generate error instead.  Generate error for unsupported operand types.
2469         ['z']: Do not handle HImode memory operands specially.  Warning
2470         for floating-point operands.  Fallthru to 'Z' for unsupported operand
2471         types.  Do not ICE for unsupported size, generate error instead.
2472         (output_387_binary_op): Use %Z to output operands.
2473         (output_fp_compare): Ditto.
2474         (output_387_reg_move): Ditto.
2475
2476 2009-04-28  Ben Elliston  <bje@au.ibm.com>
2477
2478         PR c++/35652
2479         Revert:
2480
2481         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2482
2483         * builtins.c (c_strlen): Do not warn here.
2484         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2485         * c-common.c (pointer_int_sum): Take an explicit location.
2486         Warn about offsets out of bounds.
2487         * c-common.h (pointer_int_sum): Adjust declaration.
2488
2489 2009-04-27  Ian Lance Taylor  <iant@google.com>
2490
2491         * collect2.c (is_ctor_dtor): Change type of ret field in struct
2492         names to symkind.
2493         * dce.c (run_fast_df_dce): Change type of old_flags to int.
2494         * df-core.c (df_set_flags): Change return type to int.  Change
2495         type of old_flags to int.
2496         (df_clear_flags): Likewise.
2497         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2498         (df_get_conditional_uses): Likewise.
2499         * df.h (df_set_flags, df_clear_flags): Update declarations.
2500         * dwarf2out.c (struct indirect_string_node): Change type of form
2501         field to enum dwarf_form.
2502         (AT_string_form): Change return type to enum dwarf_form.
2503         * fixed-value.c (fixed_compare): Add cast to enum type.
2504         * fwprop.c (update_df): Change 0 to VOIDmode.
2505         * gensupport.c: Change 0 to UNKNOWN.
2506         * gimple.h (gimple_cond_code): Add cast to enum type.
2507         * haifa-sched.c (reemit_notes): Add cast to enum type.
2508         * hooks.c (hook_int_void_no_regs): Remove function.
2509         * hooks.h (hook_int_void_no_regs): Remove declaration.
2510         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
2511         * predict.c (combine_predictions_for_insn): Add casts to enum type.
2512         * real.c (real_arithmetic): Add cast to enum type.
2513         (real_compare): Likewise.
2514         * target.h (struct gcc_target): Change return type of
2515         branch_target_register_class to enum reg_class.
2516         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2517         default_branch_target_register_class.
2518         * targhooks.c (default_branch_target_register_class): New function.
2519         * targhooks.h (default_branch_target_register_class): Declare.
2520         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
2521         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2522         cast to int.
2523         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2524         ERROR_MARK.
2525         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2526         vect_uninitialized_def.  Change 0 to ERROR_MARK.
2527         * tree-vect-stmts.c (supportable_widening_operation): Don't
2528         initialize icode1 and icode2.
2529         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
2530         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2531         and to STD_C89.
2532         (cmn_err_flag_specs): Change 0 to STD_C89.
2533         (cmn_err_char_table): Likewise.
2534         * config/arm/arm.c (get_arm_condition_code): Change type of code
2535         to enum arm_cond_code.
2536         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2537         (IWMMXT_BUILTIN2): Likewise.
2538         (neon_builtin_type_bits): Don't define typedef.
2539         (neon_builtin_datum): Change type of bits field to int.
2540         (arm_expand_neon_args): Add cast to enum type.
2541         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2542         TLS_MODEL_NONE.
2543         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
2544         casts to enum type.
2545         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2546         MIPS_FP_COND_f.
2547         * config/mips/mips.md (jal_macro): Return enum constant.
2548         (single_insn): Likewise.
2549         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2550         CODE_FOR_nothing.
2551         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2552         casts to enum type.
2553         * config/s390/s390.c (s390_tune_flags): Change type to int.
2554         (s390_arch_flags): Likewise.
2555         (s390_handle_arch_option): Change flags field of struct pta to int.
2556         * config/s390/s390.h (s390_tune_flags): Update declaration.
2557         (s390_arch_flags): Likewise.
2558         * config/sh/sh.c (prepare_move_operands): Compare
2559         tls_symbolic_operand result with enum constant.
2560         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2561         (sh_expand_prologue): Add cast to enum type.
2562         (sh_expand_epilogue): Likewise.
2563         (tls_symbolic_operand): Change return type to enum tls_model.
2564         (fpscr_set_from_mem): Add cast to enum type.
2565         (legitimize_pic_address): Compare tls_symbolic_operand result with
2566         enum constant.
2567         (sh_target_reg_class): Change return type to enum reg_class.
2568         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2569         PROCESSOR_xxx.
2570         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2571         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
2572         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2573         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2574         (delayed_branch, tls_call_delay): Likewise.
2575         (eligible_for_sibcall_delay): Likewise.
2576         (eligible_for_return_delay): Likewise. 
2577         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2578         (spu_expand_builtin_1): Likewise.
2579
2580         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2581         for all types of conversions.
2582         (output_init_element): Issue -Wc++-compat warning if needed when
2583         initializing a bitfield with enum type.
2584         * c-parser.c (c_parser_expression): Set original_type to
2585         original_type of right hand operand of comman operator.
2586
2587 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2588
2589         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2590         grammar nits.
2591         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
2592         * doc/cpp.texi (Standard Predefined Macros)
2593         (Implementation-defined behavior): Likewise.
2594         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
2595         * doc/gimple.texi (GIMPLE Exception Handling)
2596         (@code{GIMPLE_ASSIGN}): Likewise.
2597         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
2598         * doc/invoke.texi (Warning Options, Optimize Options)
2599         (AVR Options, Darwin Options): Likewise.
2600         (Optimize Options): Reformulate -fwhole-program description.
2601         * doc/loop.texi (Lambda): Likewise.
2602         * doc/md.texi (Output Template, Define Constraints)
2603         (Standard Names, Insn Splitting): Likewise.
2604         * doc/options.texi (Option properties): Likewise.
2605         * doc/passes.texi (Tree-SSA passes): Likewise.
2606         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2607         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2608         (File Names and DBX): Likewise.
2609         * doc/trouble.texi (Incompatibilities): Likewise.
2610
2611 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2612
2613         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2614         instruction is correct.
2615
2616 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
2617
2618         Allow non-constant arguments to conversion intrinsics.
2619         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2620         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2621         * spu.c (print_operand): Handle 'v' and 'w'.
2622         (exp2_immediate_p, spu_gen_exp2): Define.
2623         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2624         spu_convtf_1): Update parameter descriptions.
2625         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
2626         * constraints.md ('v', 'w'): New.
2627         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2628         Remove.
2629         (i2f, I2F): New define_mode_attr.
2630         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2631         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2632         fixuns_truncv4sfv4si2):  Update to use mode attribute.
2633         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2634         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2635         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2636         patterns for combine.
2637
2638 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
2639
2640         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2641         (cprop, hoist, pre, store_motion): New debug counters.
2642         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2643         is not an RTL pass anymore.
2644         (pass_profiling): Remove extern decl for pass removed in 2005.
2645         (pass_gcse, pass_jump_bypass): Remove.
2646         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2647         to 0 for clean state.
2648         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2649         * cse.c (gate_handle_cse_after_global_opts,
2650         rest_of_handle_cse_after_global_opts): New functions.
2651         (pass_cse_after_global_opts): New pass, does local CSE.
2652         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2653         (TV_CPROP): New timevar.
2654         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2655         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2656         (gcse_main, recompute_all_luids): Remove.
2657         (compute_hash_table_work): Call max_reg_num instead of reading
2658         max_gcse_regno.
2659         (cprop_jump): Don't set run_jump_opt_after_gcse.
2660         (constprop_register): Always allow to alter jumps.
2661         (cprop_insn): Likewise.
2662         (do_local_cprop): Likewise.
2663         (local_cprop_pass): Likewise.  Return non-zero if something changed.
2664         (cprop): Remove function, fold interesting bits into one_cprop_pass.
2665         (find_implicit_sets): Add note about missed optimization opportunity.
2666         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2667         pass_rtl_cprop execute function.
2668         Don't bother tracking the pass number, each pass gets its own dumpfile
2669         now anyway.
2670         Always allow to alter jumpsand bypass jumps.
2671         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2672         will just find no suitable set.
2673         (pre_edge_insert): Fix dumping, this function is for PRE only.
2674         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2675         pass_rtl_pre execute function.
2676         (hoist_code): Return non-zero if something changed.  Keep track of
2677         substitutions and insertions for statistics gathering similar to PRE.
2678         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2679         called from the pass_rtl_hoist execute function.  Show pass statistics.
2680         (compute_store_table): Use max_reg_num directly instead of using the
2681         formerly global max_gcse_regno.
2682         (build_store_vectors): Likewise.
2683         (replace_store_insn): Fix dumping.
2684         (store_motion): Rename to ...
2685         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
2686         pass, called from the pass_rtl_store_motion execute function.  Keep
2687         track of substitutions and insertions for statistics gathering similar
2688         to PRE.
2689         (bypass_jumps): Remove, fold interesting bits into ...
2690         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
2691         from the pass_rtl_cprop execute function.
2692         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2693         pass_jump_bypass): Remove.
2694         (gate_handle_gcse, rest_of_handle_gcse): Remove.
2695         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2696         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2697         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2698         (gate_rtl_store_motion, execute_rtl_store_motion,
2699         pass_rtl_store_motion): New.
2700         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2701         make it clear that -fcse-skip-blocks is a no-op for backward compat.
2702         * passes.c (init_optimization_passes): Remove pass_gcse and
2703         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
2704         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
2705         instead of pass_jump_bypass.
2706
2707 2009-04-27  Richard Guenther  <rguenther@suse.de>
2708
2709         PR middle-end/39928
2710         * gimplify.c (gimplify_expr): If we are required to create
2711         a temporary make sure it ends up as register.
2712
2713 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
2714
2715         PR target/39903
2716         * config/i386/i386.c (construct_container): Don't call
2717         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2718         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2719
2720 2009-04-27  Michael Matz  <matz@suse.de>
2721
2722         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2723         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2724         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2725         (dump_replaceable_exprs): Take a bitmap.
2726         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2727         array.
2728         (expand_gimple_basic_block): Likewise.
2729         * tree-ssa-ter.c (struct temp_expr_table_d): Make
2730         replaceable_expressions member a bitmap.
2731         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2732         (mark_replaceable): Likewise.
2733         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2734         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2735
2736 2009-04-27  Richard Guenther  <rguenther@suse.de>
2737
2738         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2739         (verify_stmts): Dispatch to gimple/type verification code.
2740         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2741         issue with call argument types.
2742
2743 2009-04-27  Michael Matz  <matz@suse.de>
2744
2745         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2746         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2747         to above.
2748
2749 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
2750             Eric Botcazou  <ebotcazou@adacore.com>
2751
2752         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2753         a label's basic block.
2754         (mark_target_live_regs): Tidy and rework obsolete comments.
2755         Change back DF problem to LIVE.  If a label starts a basic block,
2756         assume that all registers that used to be live then still are.
2757         (init_resource_info): If a label starts a basic block, set its
2758         BLOCK_FOR_INSN accordingly.
2759         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2760
2761 2009-04-27  Richard Guenther  <rguenther@suse.de>
2762
2763         * tree-flow-inline.h (function_ann): Remove.
2764         (get_function_ann): Likewise.
2765         * tree-dfa.c (create_function_ann): Remove.
2766         * tree-flow.h (struct static_var_ann_d): Remove.
2767         (struct function_ann_d): Likewise.
2768         (union tree_ann_d): Remove fdecl member.
2769         (function_ann_t): Remove.
2770         (function_ann, get_function_ann, create_function_ann): Remove
2771         declarations.
2772
2773 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
2774
2775         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2776
2777 2009-04-27  Jan Hubicka  <jh@suse.cz>
2778
2779         * ipa-pure-const.c (struct funct_state_d): New fields
2780         state_previously_known, looping_previously_known; remove
2781         state_set_in_source.
2782         (analyze_function): Use new fields.
2783         (propagate): Avoid assumption that state_set_in_source imply
2784         nonlooping.
2785
2786         * tree-ssa-loop-niter.c (finite_loop_p): New function.
2787         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2788         * cfgloop.h (finite_loop_p): Declare.
2789
2790 2009-04-26  Michael Matz  <matz@suse.de>
2791
2792         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
2793
2794 2009-04-26  Michael Matz  <matz@suse.de>
2795
2796         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2797         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2798         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2799         pass_mark_used_blocks): Remove.
2800         * tree-optimize.c (pass_free_datastructures,
2801         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2802         * passes.c (init_optimization_passes): Don't call
2803         pass_mark_used_blocks, remove dead code.
2804
2805 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
2806
2807         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2808         * tree-ssa-live.h (register_ssa_partition): Likewise.
2809
2810 2009-04-26  Michael Matz  <matz@suse.de>
2811
2812         Expand from SSA.
2813         * builtins.c (fold_builtin_next_arg): Handle SSA names.
2814         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2815         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2816         SSA names. 
2817         (compare_pairs): Swap cost comparison.
2818         (coalesce_ssa_name): Don't use change_partition_var.
2819         * tree-nrv.c (struct nrv_data): Add modified member.
2820         (finalize_nrv_r): Set it.
2821         (tree_nrv): Use it to update statements.
2822         (pass_nrv): Require PROP_ssa.
2823         * tree-mudflap.c (mf_decl_cache_locals,
2824         mf_build_check_statement_for): Use make_rename_temp.
2825         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2826         * alias.c (find_base_decl): Handle SSA names.
2827         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2828         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2829         * rtl.h (set_reg_attrs_for_parm): Declare.
2830         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2831         to "optimized", remove unused locals at finish.
2832         (execute_free_datastructures): Make global, call
2833         delete_tree_cfg_annotations.
2834         (execute_free_cfg_annotations): Don't call
2835         delete_tree_cfg_annotations.
2836
2837         * ssaexpand.h: New file.
2838         * expr.c (toplevel): Include ssaexpand.h.
2839         (expand_assignment): Handle SSA names the same as register variables.
2840         (expand_expr_real_1): Expand SSA names.
2841         * cfgexpand.c (toplevel): Include ssaexpand.h.
2842         (SA): New global variable.
2843         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2844         (SSAVAR): New macro.
2845         (set_rtl): New helper function.
2846         (add_stack_var): Deal with SSA names, use set_rtl.
2847         (expand_one_stack_var_at): Likewise.
2848         (expand_one_stack_var): Deal with SSA names.
2849         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2850         before unique numbers.
2851         (expand_stack_vars): Use set_rtl.
2852         (expand_one_var): Accept SSA names, add asserts for them, feed them
2853         to above subroutines.
2854         (expand_used_vars): Expand all partitions (without default defs),
2855         then only the local decls (ignoring those expanded already).
2856         (expand_gimple_cond): Remove edges when jumpif() expands an
2857         unconditional jump.
2858         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
2859         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
2860         SSA name.
2861         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
2862         members of SA; deal with PARM_DECL partitions here; expand
2863         all PHI nodes, free tree datastructures and SA.  Commit instructions
2864         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
2865         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
2866         info and statements at start, collect garbage at finish.
2867         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
2868         (VAR_ANN_PARTITION) Remove.
2869         (change_partition_var): Don't declare.
2870         (partition_to_var): Always return SSA names.
2871         (var_to_partition): Only accept SSA names.
2872         (register_ssa_partition): Only check argument.
2873         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
2874         member.
2875         (delete_var_map): Don't free it.
2876         (var_union): Only accept SSA names, simplify.
2877         (partition_view_init): Mark only useful SSA names as used.
2878         (partition_view_fini): Only deal with SSA names.
2879         (change_partition_var): Remove.
2880         (dump_var_map): Use ssa_name instead of partition_to_var member.
2881         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
2882         basic blocks.
2883         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
2884         (struct _elim_graph): New member const_dests; nodes member vector of
2885         ints.
2886         (set_location_for_edge): New static helper.
2887         (create_temp): Remove.
2888         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
2889         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
2890         (new_elim_graph): Allocate const_dests member.
2891         (clean_elim_graph): Truncate const_dests member.
2892         (delete_elim_graph): Free const_dests member.
2893         (elim_graph_size): Adapt to new type of nodes member.
2894         (elim_graph_add_node): Likewise.
2895         (eliminate_name): Likewise.
2896         (eliminate_build): Don't take basic block argument, deal only with
2897         partition numbers, not variables.
2898         (get_temp_reg): New static helper.
2899         (elim_create): Use it, deal with RTL temporaries instead of trees.
2900         (eliminate_phi): Adjust all calls to new signature.
2901         (assign_vars, replace_use_variable, replace_def_variable): Remove.
2902         (rewrite_trees): Only do checking.
2903         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
2904         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
2905         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
2906         contains_tree_r, MAX_STMTS_IN_LATCH,
2907         process_single_block_loop_latch, analyze_edges_for_bb,
2908         perform_edge_inserts): Remove.
2909         (expand_phi_nodes): New global function.
2910         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
2911         functions, initialize new parameter, remember partitions having a
2912         default def.
2913         (finish_out_of_ssa): New global function.
2914         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
2915         don't reset in_ssa_p here, don't disable TER when mudflap.
2916         (pass_del_ssa): Remove.
2917         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
2918         partition members.
2919         (execute_free_datastructures): Declare.
2920         * Makefile.in (SSAEXPAND_H): New variable.
2921         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
2922         * basic-block.h (commit_one_edge_insertion): Declare.
2923         * passes.c (init_optimization_passes): Move pass_nrv and
2924         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
2925         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
2926         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
2927         (redirect_branch_edge): Deal with super block when expanding, split
2928         out jump patching itself into ...
2929         (patch_jump_insn): ... here, new static helper.
2930
2931 2009-04-26  Michael Matz  <matz@suse.de>
2932
2933         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
2934         beyond num_ssa_names.
2935         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2936         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2937
2938 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
2939
2940         PR inline-asm/39543
2941         * fwprop.c (forward_propagate_asm): New function.
2942         (forward_propagate_and_simplify): Propagate also into __asm, if it
2943         doesn't increase the number of referenced registers.
2944
2945         PR c/39889
2946         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2947
2948 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
2949
2950         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2951         note_nonlocal_vla_type for nonlocal VLAs.
2952         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2953         contains_remapped_vars, remap_vla_decls): New functions.
2954         (convert_nonlocal_reference_stmt): If not optimizing, call
2955         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2956         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2957         if it wasn't found in var_map.
2958         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
2959         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2960         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2961         declare_vars.
2962         * gimplify.c (nonlocal_vlas): New variable.
2963         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2964         referenced VLAs.
2965         (gimplify_body): Create and destroy nonlocal_vlas.
2966
2967         * dwarf2out.c (loc_descr_plus_const): New function.
2968         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2969         mem_loc_descriptor, loc_descriptor_from_tree_1,
2970         descr_info_loc, gen_variable_die): Use it.
2971
2972         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2973         !TREE_STATIC VAR_DECLs.
2974         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
2975         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
2976         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
2977         DECL_BY_REFERENCE is valid.
2978         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
2979         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
2980         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
2981         Copy DECL_BY_REFERENCE.
2982         (struct nesting_copy_body_data): New type.
2983         (nesting_copy_decl): New function.
2984         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
2985         if they have variable length.
2986
2987 2009-04-26  Michael Matz  <matz@suse.de>
2988
2989         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
2990         mark new temporaries for renaming.
2991
2992 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
2993
2994         PR c/39581
2995         * c-decl.c (global_bindings_p): Return negative value.
2996         (c_variable_size): New.  Based on variable_size from
2997         stor-layout.c.
2998         (grokdeclarator): Call c_variable_size not variable_size.
2999
3000 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
3001
3002         * config/i386/i386.c (print_operand) ['z']: Fix typo.
3003
3004 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
3005
3006         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
3007         Redefine it to just use mingw/include.
3008         (ASM_SPEC): Rules for -m32 and -m64.
3009         (LINK_SPEC): Use Likewise.
3010         (SPEC_32): New define.
3011         (SPEC_64): Likewise.
3012         (SUB_LINK_SPEC): Likewise.
3013         (MULTILIB_DEFAULTS): New define.
3014         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3015         Add multilib options.
3016         (MULTILIB_DIRNAMES): Likewise.
3017         (MULTILIB_OSDIRNAMES): Likewise.
3018         (LIBGCC): Likewise.
3019         (INSTALL_LIBGCC): Likewise.
3020
3021 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3022
3023         PR c/39556
3024         * c-tree.h (enum c_inline_static_type): New.
3025         (record_inline_static): Declare.
3026         * c-decl.c (struct c_inline_static, c_inline_statics,
3027         record_inline_static, check_inline_statics): New.
3028         (pop_file_scope): Call check_inline_statics.
3029         (start_decl): Call record_inline_static instead of pedwarning
3030         directly for static in inline function.
3031         * c-typeck.c (build_external_ref): Call record_inline_static
3032         instead of pedwarning directly for static referenced in inline
3033         function.
3034
3035 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
3036
3037         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3038         not new but only being rescanned.
3039         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3040         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3041         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3042         record_set_info, compute_set, grealloc): Remove.
3043         (recompute_all_luids): New function.
3044         (gcse_main): Don't compute sets, and don't do related memory
3045         allocations/free-ing.  If something changed before the end of the
3046         pass, update LUIDs using recompute_all_luids.
3047         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
3048         (free_gcse_mem): Don't free it either.
3049         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3050         Use the df insn LUIDs.
3051         (load_killed_in_block): Likewise.
3052         (compute_hash_table_work): Don't compute reg_set_in_block.
3053         (compute_transp): Use DF_REG_DEF_CHAINs.
3054         (local_cprop_pass): Don't use compute_sets and related functions.
3055         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3056         Use get_max_uid() instead of max_cuid.
3057         (insert_insn_end_basic_block, pre_insert_copy_insn,
3058         update_ld_motion_stores): Don't try to
3059         keep reg_set tables up to date.
3060         (pre_insert_copies): Use df insn LUIDs.
3061         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3062         (reg_set_info): Don't use extra bitmap argument.
3063         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
3064         information to compute regs_set_in_block.
3065         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3066         (bypass_jumps): Don't use compute_sets and friends.
3067
3068 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3069
3070         PR testsuite/39710
3071         * opts.c (undocumented_msg): Do not leave blank even with
3072         ENABLE_CHECKING.
3073
3074 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3075
3076         * c-decl.c (build_enumerator): Allow values folding to integer
3077         constants but not integer constant expressions with a pedwarn if
3078         pedantic.
3079
3080 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3081
3082         PR c/39582
3083         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3084         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3085         type is an integer constant.
3086
3087 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3088
3089         PR target/39897
3090         * config/i386/i386.c (print_operand) ['z']: Revert handling of
3091         HImode operands.
3092
3093 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3094
3095         PR c/39564
3096         * c-decl.c (grokdeclarator): Diagnose declarations of functions
3097         with variably modified return type and no storage class
3098         specifiers, except for the case of nested functions.  Distinguish
3099         extern declarations of functions with variably modified return
3100         types from those of objects with variably modified types.
3101
3102 2009-04-25  Jan Hubicka  <jh@suse.cz>
3103
3104         * tree.c (list_equal_p): New function.
3105         * tree.h (list_equal_p): Declare.
3106         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3107         basic_block_def, basic_block, const_basic_block): New.
3108         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3109         (redirect_eh_edge): New function.
3110         (make_eh_edge_update_phi): EH edges are not abnormal.
3111         * except.c: Include tree-flow.h.
3112         (list_match): New function.
3113         (eh_region_replaceable_by_p): New function.
3114         (replace_region): New function.
3115         (hash_type_list): New function.
3116         (hash_eh_region): New function.
3117         (eh_regions_equal_p): New function.
3118         (merge_peers): New function.
3119         (remove_unreachable_regions): Verify EH tree when checking;
3120         merge peers.
3121         (copy_eh_region_1): New function.
3122         (copy_eh_region): New function.
3123         (push_reachable_handler): New function.
3124         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3125         regions without label but with live RESX.
3126         * except.h (redirect_eh_edge_to_label): New.
3127         * tree-flow.h (redirect_eh_edge): New.
3128         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3129         basic_block_def, basic_block, const_basic_block): Remove.
3130         * Makefile.in (except.o): Add dependency on tree-flow.h
3131         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3132         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3133         Remove.
3134
3135 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
3136
3137         PR bootstrap/39645
3138         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3139         on the destination of memcpy.
3140
3141 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
3142
3143         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3144         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3145         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3146
3147 2009-04-25  Jan Hubicka  <jh@suse.cz>
3148
3149         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3150         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3151         to be reached by different label than left.
3152         (update_eh_edges): Update comment; remove edge_to_remove if possible
3153         and return true if suceeded.
3154         (cleanup_empty_eh): Accept sharing map; handle shared regions.
3155         (cleanup_eh): Compute sharing map.
3156         * except.c (remove_eh_handler_and_replace): Add argument if we should
3157         update regions.
3158         (remove_unreachable_regions): Update for label sharing.
3159         (label_to_region_map): Likewise.
3160         (get_next_region_sharing_label): New function.
3161         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3162         prev_try pointers.
3163         (remove_eh_handler): Update.
3164         (remove_eh_region_and_replace_by_outer_of): New function.
3165         * except.h (struct eh_region): Add next_region_sharing_label.
3166         (remove_eh_region_and_replace_by_outer_of,
3167         get_next_region_sharing_label): Declare.
3168         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3169
3170 2009-04-25  Jan Hubicka  <jh@suse.cz>
3171
3172         * tree-cfg.c (split_critical_edges): Split also edges where we can't
3173         insert code even if they are not critical.
3174
3175 2009-04-25  Jan Hubicka  <jh@suse.cz>
3176
3177         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3178         (gimple_can_remove_branch_p): EH edges won't remove branch by
3179         redirection.
3180         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3181         updating of non-abnormal EH edges.
3182         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3183         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3184         (split_critical_edges): Split also edges where emitting code on them
3185         will lead to splitting later.
3186
3187 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3188             H.J. Lu  <hongjiu.lu@intel.com>
3189
3190         PR target/39590
3191         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3192         the configured assembler supports fildq and fistpq mnemonics.
3193         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3194         * configure: Regenerated.
3195         * config.in: Ditto.
3196
3197         * config/i386/i386.c (print_operand): Handle 'Z'.
3198         ['z']: Remove handling of special fild/fist suffixes.
3199         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3200         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3201         suffix of fild insn.
3202         (*floatsi<mode>2_vector_mixed): Ditto.
3203         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3204         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3205         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3206         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3207         * config/i386/gas.h (GAS_MNEMONICS): Remove.
3208
3209 2009-04-25  Ben Elliston  <bje@au.ibm.com>
3210  
3211         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3212         the source of a set operation.
3213
3214 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
3215
3216         * target.h (struct gcc_target): Add case_values_threshold field.
3217         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3218         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3219         * targhooks.c (default_case_values_threshold): New function.
3220         * targhooks.h (default_case_values_threshold): Declare function.
3221         * stmt.c (expand_case): Use case_values_threshold target hook.
3222         * expr.h (case_values_threshold): Remove declartation.
3223         * expr.c (case_values_threshold): Remove function.
3224         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3225
3226         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3227         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3228         (avr_case_values_threshold): Declare as static.
3229         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3230
3231         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3232         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3233         (mn10300_case_values_threshold): New function.
3234
3235 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3236
3237         * ira.c (setup_cover_and_important_classes): Add enum cast.
3238
3239 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3240
3241         * genpreds.c (write_enum_constraint_num): Output definition of
3242         CONSTRAINT_NUM_DEFINED_P macro.
3243         * ira.c (setup_cover_and_important_classes): Use
3244         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3245         
3246 2009-04-24  DJ Delorie  <dj@redhat.com>
3247
3248         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3249         __SH2A_SINGLE_ONLY__ also.
3250
3251 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
3252
3253         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3254         (movdf_internal): Ditto.
3255         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3256         SFmode and DFmode constants.
3257         (ia64_print_operand): Add 'G' format for printing
3258         floating point constants.
3259
3260 2009-04-24  Richard Guenther  <rguenther@suse.de>
3261
3262         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3263         from unsigned additions.
3264
3265 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
3266
3267         * c-typeck.c (set_init_index): Allow array designators that are
3268         not integer constant expressions with a pedwarn if pedantic.
3269
3270 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3271
3272         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3273         zero if no overlap in nonzero bits between the operands.
3274
3275 2009-04-24  Ian Lance Taylor  <iant@google.com>
3276
3277         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3278         (record_dead_and_set_regs): Likewise.
3279         * df.h (struct df_mw_hardreg): Change flags field to int.
3280         (struct df_base_ref): Likewise.
3281         (struct df): Change changeable_flags field to int.
3282         * df-scan.c (df_defs_record): Change clobber_flags to int.
3283         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3284         constants rather than #define macros.
3285         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3286         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3287         (enum dwarf_calling_convention): Likewise.
3288         (enum dwarf_line_number_x_ops): Likewise.
3289         (enum dwarf_call_frame_info): Likewise.
3290         (enum dwarf_source_language): Likewise.
3291         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3292         (add_calling_convention_attribute): Likewise.
3293         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3294         (combine_comparisons): Change compcode to int.  Add cast to enum type.
3295         * genrecog.c (maybe_both_true_2): Change c to int.
3296         (write_switch): Likewise.  Add cast to enum type.
3297         * gimplify.c (gimplify_omp_for): Handle return values from
3298         gimplify_expr using MIN rather than bitwise or.
3299         (gimplify_expr): Add cast to enum type.
3300         * ipa-prop.c (update_jump_functions_after_inlining): Change
3301         IPA_BOTTOM to IPA_JF_UNKNOWN.
3302         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3303         Add casts to enum type.
3304         (setup_cover_and_important_classes): Change cl to int.  Add casts
3305         to enum type.
3306         (setup_class_translate): Change cl and mode to int.
3307         (ira_init_once): Change mode to int.
3308         (free_register_move_costs): Likewise.
3309         (setup_prohibited_mode_move_regs): Add casts to enum type.
3310         * langhooks.c (add_builtin_function_common): Rework assertion that
3311         value fits bitfield.
3312         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3313         * omega.c (omega_do_elimination): Avoid math on enum types.
3314         * optabs.c (expand_vec_shift_expr): Remove casts to int.
3315         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
3316         int local to handle integral_argment value.
3317         * regmove.c (try_auto_increment): Change PUT_MODE to
3318         PUT_REG_NOTE_KIND.
3319         * reload.c (push_secondary_reload): Add casts to enum type.
3320         (secondary_reload_class, find_valid_class): Likewise.
3321         * reload1.c (emit_input_reload_insns): Likewise.
3322         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3323         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3324         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3325         constant.
3326         * tree.c (build_common_builtin_nodes): Add casts to enum type.
3327         * tree-complex.c (complex_lattice_t): Typedef to int rather than
3328         enum type.
3329         (expand_complex_libcall): Add casts to enum type.
3330         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3331         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3332         with ERROR_MARK, not NUM_TREE_CODES.
3333         (vect_create_epilog_for_reduction): Likewise.
3334         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
3335         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
3336         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3337         enum machine_mode.
3338         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3339         vect_unused_in_loop.  Change 0 to loop_vect.
3340         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
3341         * var-tracking.c (get_init_value): Change return type to enum
3342         var_init_status.
3343         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3344         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3345         arm_fp_model.
3346         (arm_override_options): Add casts to enum type.
3347         (arm_emit_tls_decoration): Likewise.
3348         * config/i386/i386.c (ix86_function_specific_restore): Add casts
3349         to enum type.
3350         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3351         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3352         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3353         enum type.
3354         * config/s390/s390.c (code_for_builtin_64): Change to array of
3355         enum insn_code.
3356         (code_for_builtin_31): Likewise.
3357         (s390_expand_builtin): Change code_for_builtin to enum insn_code
3358         const *.
3359         * config/sparc/sparc.c (sparc_override_options): Change value
3360         field in struct code_model to enum cmodel.  In initializer change
3361         0 to NULL and add cast to enum type.
3362
3363         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3364         Change all callers.  Issue a -Wc++-compat warning using
3365         lhs_origtype if necessary.
3366         (convert_for_assignment): Issue -Wc++-compat warnings about
3367         invalid conversions to enum type on assignment.
3368         * c-common.h (build_modify_expr): Update declaration.
3369
3370 2009-04-24  Nick Clifton  <nickc@redhat.com>
3371
3372         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3373         (function_arg_advance): Likewise.
3374         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3375         5th alternative.
3376
3377 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3378
3379         * config/s390/constraints.md ('I', 'J'): Fix condition.
3380
3381 2009-04-24  Diego Novillo  <dnovillo@google.com>
3382
3383         * gengtype-parse.c (parse_error): Add newline after message.
3384
3385 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3386
3387         * config/i386/sse.md (avxmodesuffixs): Removed.
3388         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3389         (*avx_pinsr<ssevecsize>): This.
3390
3391 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3392
3393         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3394         follow chains of regs with a single definition, and allow expressions
3395         that are function_invariant_p.
3396         (simple_rhs_p): Allow expressions that are function_invariant_p.
3397
3398 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
3399
3400         PR middle-end/39867
3401         * fold-const.c (fold_cond_expr_with_comparison): When folding
3402         > and >= to MAX, make sure the MAX uses the same type as the
3403         comparison's operands.
3404
3405 2009-04-24  Nick Clifton  <nickc@redhat.com>
3406
3407         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3408         addressing for DImode accesses.
3409         (frv_print_operand_address): Handle PLUS case.
3410         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
3411
3412 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
3413
3414         PR rtl-optimization/39794
3415         * alias.c (canon_true_dependence): Add x_addr argument.
3416         * rtl.h (canon_true_dependence): Adjust prototype.
3417         * cse.c (check_dependence): Adjust canon_true_dependence callers.
3418         * cselib.c (cselib_invalidate_mem): Likewise.
3419         * gcse.c (compute_transp): Likewise.
3420         * dse.c (scan_reads_nospill): Likewise.
3421         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
3422         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3423         canon_base_addr of the group, plus optional offset.
3424         (struct group_info): Rename canon_base_mem to
3425         canon_base_addr.
3426         (get_group_info): Set canon_base_addr to canon_rtx of base, not
3427         canon_rtx of base_mem.
3428
3429 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
3430
3431         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3432         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3433
3434 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3435
3436         * config/spu/spu-builtins.h: Delete file.
3437
3438         * config/spu/spu.h (enum spu_builtin_type): Move here from
3439         spu-builtins.h.
3440         (struct spu_builtin_description): Likewise.  Add GTY marker.
3441         Do not use enum spu_function_code or enum insn_code.
3442         (spu_builtins): Add extern declaration.
3443
3444         * config/spu/spu.c: Do not include "spu-builtins.h".
3445         (enum spu_function_code, enum spu_builtin_type_index,
3446         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3447         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3448         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3449         unsigned_V2DI_type_node): Move here from spu-builtins.h.
3450         (spu_builtin_types): Make static.  Add GTY marker.
3451         (spu_builtins): Add extern declaration with GTY marker.
3452         Include "gt-spu.h".
3453
3454         * config/spu/spu-c.c: Do not include "spu-builtins.h".
3455         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3456         Check programmatically whether all parameters are scalar.
3457
3458         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3459
3460 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
3461
3462         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3463         assignment from the constructor either if the target is volatile.
3464
3465 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
3466
3467         * config/arm/arm.md (insv): Do not share operands[0].
3468
3469 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
3470
3471         * config/vxlib-tls.c (active_tls_threads): Delete.
3472         (delete_hook_installed): New.
3473         (tls_delete_hook): Don't delete the delete hook.
3474         (tls_destructor): Delete it here.
3475         (__gthread_set_specific): Adjust installing the delete hook.
3476         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3477         __gthread_leave_tsd_dtor_context.
3478
3479 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
3480
3481         * c-format.c (gcc_tdiag_char_table): Add support for %E.
3482
3483 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
3484
3485         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3486         enum type.
3487         (alpha_rtx_costs): Ditto.
3488         (emit_unlikely_jump): Use add_reg_note.
3489         (emit_frame_store_1): Ditto.
3490         (alpha_expand_prologue): Ditto.
3491         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3492         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3493
3494 2009-04-23  Nick Clifton  <nickc@redhat.com>
3495
3496         * config/v850/v850.md (epilogue): Remove suppressed code.
3497         (return): Rename to return_simple and remove test of frame size.
3498         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3499         to gen_return_simple.
3500
3501 2009-04-22  Jing Yu  <jingyu@google.com>
3502
3503         PR testsuite/39781
3504         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3505
3506 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3507
3508         PR C/31499
3509         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3510         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
3511         value is a VECTOR_CST, the element type is the element type of the
3512         vector.
3513
3514 2009-04-22  DJ Delorie  <dj@redhat.com>
3515
3516         * config/m32c/m32c.h: Update GTY annotations to new syntax.
3517
3518 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
3519
3520         * alias.c (find_base_term): Move around LO_SUM case, so that
3521         CONST falls through into PLUS/MINUS handling.
3522
3523         PR c/39855
3524         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3525         into 0, use omit_one_operand.
3526
3527 2009-04-23  Ben Elliston  <bje@au.ibm.com>
3528
3529         * config/rs6000/linux-unwind.h (get_regs): Remove type
3530         puns. Change the type of `pc' to an array of unsigned ints and
3531         update all users.  Constify frame24.
3532
3533 2009-04-22  DJ Delorie  <dj@redhat.com>
3534
3535         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3536         declarations before code.
3537         (current_function_special_page_vector): Likewise.
3538         (m32c_expand_insv): Silence a warning.
3539
3540 2009-04-21  Taras Glek  <tglek@mozilla.com>
3541
3542         * alias.c: Update GTY annotations to new syntax.
3543         * basic-block.h: Likewise.
3544         * bitmap.h: Likewise.
3545         * c-common.h: Likewise.
3546         * c-decl.c: Likewise.
3547         * c-parser.c: Likewise.
3548         * c-pragma.c: Likewise.
3549         * c-tree.h: Likewise.
3550         * cfgloop.h: Likewise.
3551         * cgraph.h: Likewise.
3552         * config/alpha/alpha.c: Likewise.
3553         * config/arm/arm.h: Likewise.
3554         * config/avr/avr.h: Likewise.
3555         * config/bfin/bfin.c: Likewise.
3556         * config/cris/cris.c: Likewise.
3557         * config/darwin.c: Likewise.
3558         * config/frv/frv.c: Likewise.
3559         * config/i386/i386.c: Likewise.
3560         * config/i386/i386.h: Likewise.
3561         * config/i386/winnt.c: Likewise.
3562         * config/ia64/ia64.h: Likewise.
3563         * config/iq2000/iq2000.c: Likewise.
3564         * config/mips/mips.c: Likewise.
3565         * config/mmix/mmix.h: Likewise.
3566         * config/pa/pa.c: Likewise.
3567         * config/pa/pa.h: Likewise.
3568         * config/rs6000/rs6000.c: Likewise.
3569         * config/s390/s390.c: Likewise.
3570         * config/sparc/sparc.c: Likewise.
3571         * config/xtensa/xtensa.c: Likewise.
3572         * cselib.h: Likewise.
3573         * dbxout.c: Likewise.
3574         * dwarf2out.c: Likewise.
3575         * except.c: Likewise.
3576         * except.h: Likewise.
3577         * fixed-value.h: Likewise.
3578         * function.c: Likewise.
3579         * function.h: Likewise.
3580         * gimple.h: Likewise.
3581         * integrate.c: Likewise.
3582         * optabs.c: Likewise.
3583         * output.h: Likewise.
3584         * real.h: Likewise.
3585         * rtl.h: Likewise.
3586         * stringpool.c: Likewise.
3587         * tree-data-ref.c: Likewise.
3588         * tree-flow.h: Likewise.
3589         * tree-scalar-evolution.c: Likewise.
3590         * tree-ssa-address.c: Likewise.
3591         * tree-ssa-alias.h: Likewise.
3592         * tree-ssa-operands.h: Likewise.
3593         * tree.c: Likewise.
3594         * tree.h: Likewise.
3595         * varasm.c: Likewise.
3596         * varray.h: Likewise.
3597         * vec.h: Likewise.
3598         * coretypes.h: Do not define GTY macro if it is already defined.
3599         * doc/gty.texi: Update GTY documentation to new syntax.
3600         * gengtype-lex.l: Enforce attribute-like syntax for GTY
3601         annotations on structs.
3602         * gengtype-parse.c: Likewise.
3603
3604 2009-04-22  Mark Heffernan  <meheff@google.com>
3605
3606         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
3607
3608 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3609
3610         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3611         where appropriate.
3612
3613 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
3614
3615         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3616         the same as a PLUS without a shift.  Increase the cost of a
3617         CONST_INT in MULT.
3618
3619 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3620
3621         * Makefile.in: Update dependencies.
3622         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
3623         * errors.h: Remove bogus comment about compatibility.
3624         (warning): Update declaration.
3625         * genautomata.c: Update all calls to warning.
3626         * gimple.c: Do not include errors.h. Include toplev.h.
3627         * tree-ssa-structalias.c: Do not include errors.h.
3628         * omega.c: Likewise.
3629         * tree-ssa-reassoc.c: Likewise.
3630         * config/spu/spu-c.c: Likewise.
3631         * config/spu/t-spu-elf: Update dependencies.
3632
3633 2009-04-22  Richard Guenther  <rguenther@suse.de>
3634
3635         PR tree-optimization/39824
3636         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3637         make sure the types are compatible.
3638
3639 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3640
3641         PR c++/14875
3642         * c-common.c (c_parse_error): Take a token_flags parameter.
3643         Use token_type for the token type instead.
3644         Pass token_flags to cpp_type2name.
3645         * c-common.h (c_parse_error): Update declaration.
3646         * c-parser.c (c_parser_error): Pass 0 as token flags.
3647
3648 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
3649
3650         PR rtl-optimization/39580
3651         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
3652         
3653 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3654
3655         * function.c (expand_function_end): Do not emit a jump to the "naked"
3656         return label for fall-through returns.
3657         * except.c (sjlj_emit_function_exit): Always place the call to the
3658         unregister function at the location installed by expand_function_end.
3659
3660 2009-04-22  Richard Guenther  <rguenther@suse.de>
3661
3662         PR tree-optimization/39845
3663         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3664         (gen_inbound_check): Likewise.
3665
3666 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
3667
3668         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3669         padding for PPC.
3670         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3671         * config/vxlib.c (__gthread_once): Add race guard for PPC.
3672
3673 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3674
3675         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3676         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3677         shift counts to avoid out-of-bounds array accesses.
3678
3679 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3680
3681         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3682         (Pmode): Move above.
3683
3684 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
3685
3686         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3687         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3688         GET_CODE macro.  Use IN_RANGE macro where appropriate.
3689         * config/alpha/alpha.h: Ditto.
3690         * config/alpha/alpha.md: Ditto.
3691         * config/alpha/constraints.md: Ditto.
3692         * config/alpha/predicates.md: Ditto.
3693         
3694 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
3695
3696         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3697         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3698         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3699         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3700         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3701         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3702         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3703         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3704         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3705         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3706         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3707         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3708         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3709         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3710         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3711         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3712         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3713         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3714         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3715         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3716         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3717         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3718         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3719         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3720         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3721         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3722         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3723
3724 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3725
3726         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3727         references from comments.
3728         * cfgbuild.c: (count_basic_blocks): Delete.
3729         (find_basic_blocks_1): Delete.
3730         (find_basic_blocks): Delete.
3731         * except.c (finish_eh_generation): Make static.  Move comment from
3732         except.h here.  Remove find_basic_blocks references from comments.
3733         * except.h (finish_eh_generation): Delete.
3734         * basic-block.h (find_basic_blocks): Delete.
3735         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3736
3737 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
3738
3739         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
3740         (sdbout_parms):  Likewise.
3741
3742 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
3743
3744         * config/sh/sh.c (prepare_cbranch_operands): Use
3745         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3746         (expand_cbranchdi4): Likewise.
3747         (from_compare): Add cast to enum type.
3748         (expand_cbranchsi4): Use add_reg_note.
3749         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3750         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3751         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3752         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3753         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3754         instead of CODE_FOR_nothing.
3755         (cbranchdi4): Likewise.  Fix the order of arguments for
3756         gen_rtx_fmt_ee.
3757         (push_fpscr): Use add_reg_note.
3758         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3759         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3760         
3761 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
3762
3763         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3764         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3765         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3766         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3767         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3768         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3769         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3770         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3771         config/alpha/x-vms, config/arc/t-arc,
3772         config/arm/README-interworking, config/arm/arm-c.c,
3773         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3774         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3775         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3776         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3777         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3778         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3779         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3780         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3781         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3782         config/cris/t-elfmulti, config/crx/t-crx,
3783         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3784         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3785         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3786         config/h8300/t-h8300, config/i386/athlon.md,
3787         config/i386/darwin-libgcc.10.4.ver,
3788         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3789         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3790         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3791         config/i386/t-linux64, config/i386/t-nwld,
3792         config/i386/t-rtems-i386, config/i386/t-sol2-10,
3793         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3794         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3795         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3796         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3797         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3798         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3799         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3800         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3801         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3802         config/m68k/t-uclinux, config/mcore/t-mcore,
3803         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3804         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3805         config/mips/crtn.asm, config/mips/irix-crti.asm,
3806         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3807         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3808         config/mips/mips-fixed.md, config/mips/sb1.md,
3809         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3810         config/mips/t-iris6, config/mips/t-isa3264,
3811         config/mips/t-libgcc-mips16, config/mips/t-linux64,
3812         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3813         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3814         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3815         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3816         config/mn10300/t-linux, config/mn10300/t-mn10300,
3817         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3818         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3819         config/picochip/libgccExtras/clzsi2.asm,
3820         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3821         config/rs6000/darwin-libgcc.10.4.ver,
3822         config/rs6000/darwin-libgcc.10.5.ver,
3823         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3824         config/rs6000/t-aix43, config/rs6000/t-aix52,
3825         config/rs6000/t-darwin, config/rs6000/t-fprules,
3826         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3827         config/rs6000/t-lynx, config/rs6000/t-netbsd,
3828         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3829         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3830         config/rs6000/t-rtems, config/rs6000/t-spe,
3831         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3832         config/score/t-score-elf, config/sh/divcost-analysis,
3833         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3834         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3835         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3836         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3837         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3838         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3839         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3840         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3841         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3842         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3843         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3844         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3845         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3846         limitx.h, version.c, xcoff.h: Add copyright and license notices.
3847         * config/h8300/genmova.sh: Include copyright and license notices
3848         in generated output.
3849         * config/h8300/mova.md: Regenerate.
3850         * doc/install.texi2html: Include word "Copyright" in copyright
3851         notice and use name "Free Software Foundation, Inc.".
3852         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3853         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3854         ChangeLog-2007, ChangeLog-2008: Correct dates.
3855
3856 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
3857
3858         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
3859         NE_EXPR operations as well.
3860         * c-parser.c (c_parser_condition): Do not set location information on
3861         the condition.
3862         (c_parser_conditional_expression): Likewise.
3863         (c_parser_binary_expression): Set location information on operators.
3864         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
3865         TRUTH_NOT_EXPR has been folded.
3866         * fold-const.c (fold_truth_not_expr): Copy location information from
3867         the incoming expression to the outgoing one.
3868         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
3869         recursive calls on the LHS of the operator but pass that of the
3870         operator to recursive calls on the RHS of the operator.  Set it
3871         on the COND_EXPR.
3872         (shortcut_cond_expr): Set the locus of the operator on the second
3873         COND_EXPR and that of the expression on the first in degenerate cases.
3874         Pass the locus of the expression to calls to shortcut_cond_r.
3875         Set the locus of the 'then' block on the associated jump, if any.
3876         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
3877         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
3878         expression to call to gimplify_boolean_expr.
3879
3880 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
3881
3882         * config.gcc: Add additional configuration for
3883         i686-w64-mingw* and x86_64-w64-mingw* triplet.
3884         * config/i386/mingw-w64.h: New mingw-w64 specific header.
3885         (CPP_SPEC): Redefine for allowing -municode option.
3886         (STARTFILE_SPEC): Likewise.
3887         * config/i386/t-mingw-w64: New.
3888         * config/i386/mingw-w64.opt: New.
3889         (municode): Add new target option.
3890         * doc/invoke.texi (municode): Add documentation for new option.
3891
3892 2009-04-21  Ian Lance Taylor  <iant@google.com>
3893
3894         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3895         Correct test for number of arguments.
3896         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3897
3898 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
3899
3900         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
3901         argument of emit_library_call.
3902
3903 2009-04-21  Richard Guenther  <rguenther@suse.de>
3904
3905         PR middle-end/39829
3906         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
3907         inside VIEW_CONVERT_EXPRs.
3908
3909 2009-04-21  Martin Jambor  <mjambor@suse.cz>
3910
3911         * tree-switch-conversion.c (build_constructors): Split a long line.
3912         (constructor_contains_same_values_p): New function.
3913         (build_one_array): Create assigns of constants if possible, do not
3914         call mark_sym_for_renaming, call update_stmt.
3915         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
3916         make_rename_temp.  Do not call mark_symbols_for_renaming, call
3917         update_stmt.
3918         (gen_def_assigns): Do not call mark_symbols_for_renaming or
3919         find_new_referenced_vars, call update_stmt.
3920         (gen_inbound_check): Use create_tmp_var and create ssa names manually
3921         instead of calling make_rename_temp.  Do not call
3922         find_new_referenced_vars or mark_symbols_for_renaming, call
3923         update_stmt.
3924
3925 2009-04-21  Richard Guenther  <rguenther@suse.de>
3926
3927         PR tree-optimization/39827
3928         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
3929         (tree_ssa_phiprop): Pass the correct array size.
3930
3931 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
3932
3933         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
3934
3935 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3936
3937         PR 16202
3938         * c-typeck.c (lvalue_p): Move declaration ...
3939         * c-common.h (lvalue_p): ... to here.
3940         * c-common.c (candidate_equal_p): New.
3941         (add_tlist): Use it.
3942         (merge_tlist): Use it.
3943         (warn_for_collisions_1): Likewise.
3944         (warning_candidate_p): Accept more candidates.
3945         (verify_tree): A warning candidate can be an expression. Use
3946         candidate_equal_p.
3947
3948 2009-04-21  Ben Elliston  <bje@au.ibm.com>
3949
3950         PR target/5267
3951         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3952         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3953         options.  Remove -mcall-solaris documentation.
3954
3955 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3956
3957         PR c++/13358
3958         * doc/invoke.texi (-Wlong-long): Update description.
3959         * c-lex (interpret_integer): Only warn if there was no previous
3960         overflow and -Wlong-long is enabled.
3961         * c-decl.c (declspecs_add_type): Drop redundant flags.
3962         * c.opt (Wlong-long): Init to -1.
3963         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3964         and front-end warn_long_long. Wlong-long only depends on other
3965         flags if it is uninitialized.
3966         * c-parser.c (disable_extension_diagnostics): warn_long_long is
3967         the same for CPP and FE.
3968         (restore_extension_diagnostics): Likewise.
3969
3970 2009-04-20  Ian Lance Taylor  <iant@google.com>
3971
3972         Fix enum conversions which are invalid in C++:
3973         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
3974         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
3975         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
3976         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
3977         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
3978         (dbxout_parms): Likewise.
3979         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
3980         (df_clear_flags): Likewise.
3981         * df-problems.c (df_rd_bb_local_compute_process_def): Change
3982         top_flag parameter to int.
3983         (df_chain_create_bb_process_use): Likewise.
3984         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
3985         Remove cast.
3986         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
3987         (df_ref_create_structure, df_def_record_1): Likewise.
3988         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
3989         (df_notes_rescan): Change 0 to VOIDmode in function call.
3990         (df_get_call_refs, df_insn_refs_collect): Likewise.
3991         (df_bb_regs_collect): Likewise.
3992         (df_entry_block_defs_collect): Likewise.
3993         (df_exit_block_uses_collect): Likewise.
3994         * df.h: Update declarations.
3995         * double-int.c (double_int_divmod): Add cast to enum type.
3996         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
3997         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
3998         (based_loc_descr): Likewise.
3999         (loc_descriptor_from_tree_1): Change first_op and second_op to
4000         enum dwarf_location_atom.  Add cast to enum type.
4001         * expmed.c (init_expmed): Change 0 to SET in function call.
4002         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
4003         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
4004         (do_store_flag): Likewise.
4005         * fixed-value.h (struct fixed_value): Change mode to enum
4006         machine_mode.
4007         * function.c (assign_parms): Change 0 to VOIDmode in function call.
4008         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
4009         function call.
4010         (insert_insn_decl, insert_decl, insert_state): Likewise.
4011         (automata_list_finish): Likewise.
4012         * genrecog.c (process_define_predicate): Add cast to enum type.
4013         * gensupport.c (init_predicate_table): Add cast to enum type.
4014         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4015         function call.
4016         (gimple_build_call_1, gimple_build_label): Likewise.
4017         (gimple_build_goto, gimple_build_asm_1): Likewise.
4018         (gimple_build_switch_1, gimple_build_cdt): Likewise.
4019         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
4020         (enum fallback): Rename from enum fallback_t.
4021         (fallback_t): Typedef as int.
4022         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4023         GSI_SAME_STMT in function call.
4024         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4025         enum type.
4026         (setup_reg_class_relations): Likewise.
4027         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
4028         (setup_prohibited_class_mode_regs): Add cast to enum type.
4029         (setup_prohibited_mode_move_regs): Likewise.
4030         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
4031         (record_address_regs): Change i to enum reg_class.
4032         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4033         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4034         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4035         (GET_MODE_2XWIDER_MODE): Likewise.
4036         (GET_CLASS_NARROWEST_MODE): Likewise.
4037         * omp-low.c (expand_omp_for): Add cast to enum type.
4038         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4039         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4040         * postreload.c (reload_cse_simplify_operands): Change rclass local
4041         to enum reg_class.
4042         * predict.c (combine_predictions_for_insn): Change best_predictor
4043         and predictor to enum br_predictor.
4044         (combine_predictions_for_bb): Likewise.
4045         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4046         use SET_PREDICT_EXPR_OUTCOME.
4047         * real.c (real_arithmetic): Change icode to code in function call.
4048         * reginfo.c (init_move_cost): Add casts to enum type.
4049         (init_reg_sets_1, init_fake_stack_mems): Likewise.
4050         * regmove.c (regclass_compatible_p): Change class0 and class1 to
4051         enum reg_class.
4052         * reload.c (find_valid_class): Add casts to enum type.
4053         (push_reload): Change 0 to NO_REGS in function call.
4054         (find_reloads): Change this_alternative to array of enum
4055         reg_class.  Remove some now-unnecessary casts.
4056         (make_memloc): Change 0 to VOIDmode in function call.
4057         * reload1.c (reload): Change 0 to VOIDmode in function call.
4058         (eliminate_regs_1, elimination_effects): Likewise.
4059         (eliminate_regs_in_insn): Likewise.
4060         (emit_input_reload_insns): Add cast to enum type.
4061         (delete_output_reload): Change 0 to VOIDmode in function call.
4062         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4063         to enum type in function call.
4064         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4065         (SET_PREDICT_EXPR_OUTCOME): Define.
4066         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
4067         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4068         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4069         (dump_function): Likewise.
4070         * tree-dump.h: Update declarations.
4071         * tree-pass.h: Update declarations.
4072         * varasm.c (assemble_integer): Change mclass to enum mode_class.
4073         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4074         enum type.
4075         (arm_rtx_costs_1): Correct parenthesization.
4076         (arm_rtx_costs): Add casts to enum type.
4077         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4078         (vfp_emit_fstmd): Use add_rg_note.
4079         (emit_multi_reg_push, emit_sfm): Likewise.
4080         (thumb_set_frame_pointer): Likewise.
4081         (arm_expand_prologue): Likewise.
4082         (arm_regno_class): Change return type to enum reg_class.
4083         (thumb1_expand_prologue): Use add_reg_note.
4084         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4085         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4086         in function call.
4087         * config/arm/gentune.sh: Add cast to enum type.
4088         * config/arm/arm-tune.md: Rebuild.
4089         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4090         (ix86_split_fp_branch, predict_jump): Likewise.
4091         (ix86_expand_multi_arg_builtin): Change sub_code from enum
4092         insn_code to enum rtx_code.
4093         (ix86_builtin_vectorized_function): Add cast to enum type.
4094         * config/i386/i386.md (truncdfsf2): Change slot to enum
4095         ix86_stack_slot.
4096         (truncxf<mode>2, isinf<mode>2): Likewise.
4097         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4098         enum type.
4099         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4100         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4101         (insert_bundle_state): Change 1 to INSERT in function call.
4102         (ia64_add_bundle_selector_before): Likewise.
4103         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4104         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4105         (restore_stack_nonlocal): Likewise.
4106         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4107         function call.
4108         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4109         function call.
4110         (mips_rtx_costs): Likewise.
4111         (mips_override_options): Add casts to enum type.
4112         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4113         in function call.
4114         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4115         (store_reg, set_reg_plus_d): Likewise.
4116         (hppa_expand_prologue, hppa_profile_hook): Likewise.
4117         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4118         cast to enum type.
4119         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4120         function call.
4121         (emit_unlikely_jump): Use add_reg_note.
4122         (rs6000_emit_allocate_stack): Likewise.
4123         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4124         (output_toc): Change 1 to INSERT in function call.
4125         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4126         (rs6000_initialize_trampoline): Likewise.
4127         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4128         function call.
4129         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4130         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4131         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4132         (save_gprs): Use add_reg_note.
4133         (s390_emit_prologue): Likewise.
4134         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4135         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4136         (sparc_fold_builtin): Add cast to enum type.
4137         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4138         enum insn_code.
4139         (spu_expand_prologue): Use add_reg_note.
4140         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
4141
4142 2009-04-20  Ian Lance Taylor  <iant@google.com>
4143
4144         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4145         (c_parser_postfix_expression_after_primary): Get VEC for list of
4146         arguments.  Get original types of arguments.  Call
4147         build_function_call_vec.
4148         (cached_expr_list_1, cached_expr_list_2): New static variables.
4149         (c_parser_expr_list): Change return type to VEC *.  Add
4150         p_orig_types parameter.  Change all callers.
4151         (c_parser_release_expr): New static function.
4152         (c_parser_vec_to_tree_list): New static function.
4153         * c-typeck.c (build_function_call): Rewrite to build a VEC and
4154         call build_function_call_vec.
4155         (build_function_call_vec): New function, based on old
4156         build_function_call.
4157         (convert_arguments): Remove nargs and argarray parameters.  Change
4158         values to a VEC.  Add origtypes parameter.
4159         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
4160         (convert_for_assignment): Add origtype parameter.  Change all
4161         callers.  If warn_cxx_compat, check for conversion to an enum
4162         type when calling a function.
4163         (store_init_value): Add origtype parameter.  Change all callers.
4164         (digest_init): Likewise.
4165         (struct init_node): Add origtype field.
4166         (add_pending_init): Add origtype parameter.  Change all callers.
4167         (output_init_element): Likewise.
4168         (output_pending_init_elements): Pass origtype from init_node to
4169         output_init_element.
4170         (process_init_element): Pass origtype from c_expr to
4171         output_init_element.
4172         (c_finish_return): Add origtype parameter.  Change all callers.
4173         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
4174         caller.
4175         (sync_resolve_params): Likewise.
4176         (sync_resolve_return): Change params to first_param.  Change caller.
4177         (resolve_overloaded_builtins): Change params to VEC *.  Change
4178         callers.  Save first parameter around call to build_function_call_vec.
4179         * c-decl.c (finish_decl): Add origtype parameter.  Change all
4180         callers.  Call build_function_call_vec rather than
4181         build_function_call for cleanup.
4182         * c-tree.h: Update declarations.
4183         * c-common.h: Update declarations.
4184         * stub-objc.c (objc_rewrite_function_call): Change parameter from
4185         params to first_param.
4186         * target.h (struct gcc_target): Change resolve_overloaded_builtin
4187         params parameter from tree to void *.
4188         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4189         Change arglist parameter to have type void *, and to be a pointer
4190         to a VEC.
4191         * config/rs6000/rs6000-protos.h
4192         (altivec_resolve_overloaded_builtin): Update declaration.
4193         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4194         fnargs parameter to have type void *, and to be a pointer to a
4195         VEC.  Call build_function_call_vec instead of
4196         build_function_call.
4197         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
4198
4199 2009-04-20  Joey Ye  <joey.ye@intel.com>
4200             Xuepeng Guo  <xuepeng.guo@intel.com>
4201             H.J. Lu  <hongjiu.lu@intel.com>
4202
4203         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4204
4205         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4206         (IX86_LEA_PRIORITY): Likewise.
4207         (distance_non_agu_define): New function.
4208         (distance_agu_use): Likewise.
4209         (ix86_lea_for_add_ok): Likewise.
4210         (ix86_dep_by_shift_count): Likewise.
4211
4212         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4213         should split for LEA.
4214
4215         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4216         function.
4217         (ix86_dep_by_shift_count): Likewise.
4218
4219 2009-04-20  Richard Guenther  <rguenther@suse.de>
4220
4221         * expr.c (handled_component_p): Move ...
4222         * tree.h (handled_component_p): ... here.
4223         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4224         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4225         and REALPART_EXPR to be in one group.
4226
4227 2009-04-20  Richard Guenther  <rguenther@suse.de>
4228
4229         * basic-block.h (get_all_dominated_blocks): Declare.
4230         * dominance.c (get_all_dominated_blocks): New function.
4231         * tree-cfg.c (get_all_dominated_blocks): Remove.
4232         (remove_edge_and_dominated_blocks): Adjust.
4233         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4234         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
4235         instead of recursing.
4236
4237 2009-04-20  Doug Kwan  <dougkwan@google.com>
4238
4239         * cgraph.h (cgraph_node_ptr): New type for vector functions.
4240         (struct cgraph_node_set_def): New type.
4241         (cgraph_node_set) New type. Also declare vector functions.
4242         (struct cgraph_node_set_element_def): New type.
4243         (cgraph_node_set_element): Ditto.
4244         (cgraph_node_set_iterator): New iterator type.
4245         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4246         cgraph_node_set_remove, dump_cgraph_node_set,
4247         debug_cgraph_node_set): New prototypes.
4248         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4249         cgraph_node_set_size): New inlines.
4250         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4251         including cgraph.h.
4252         (struct ipa_opt_pass): Add struct cgraph_node_set_def
4253         argument to function 'write_summary'.
4254         * ipa.c: Include ggc.h.
4255         (hash_cgraph_node_set_element,
4256         eq_cgraph_node_set_element, cgraph_node_set_new,
4257         cgraph_node_set_add, cgraph_node_set_remove,
4258         cgraph_node_set_find, dump_cgraph_node_set,
4259         debug_cgraph_node_set): New functions.
4260         * Makefile.in (ipa.o): Add dependency on GGC_H.
4261
4262 2009-04-20  Ira Rosen  <irar@il.ibm.com>
4263
4264         PR tree-optimization/39675
4265         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
4266         check of the return code of vect_schedule_slp. Check that
4267         stmt_vec_info still exists for the statement, before checking its
4268         vectorization type.
4269
4270 2009-04-20  Michael Matz  <matz@suse.de>
4271
4272         * Makefile.in (generated_files): Take out $(simple_generated_c).
4273
4274 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
4275
4276         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
4277         (UINTPTR_TYPE):  Likewise.
4278
4279 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4280
4281         PR c/37481
4282         * c-typeck.c (digest_init): Check for initializing an array with a
4283         string literal.
4284
4285 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4286
4287         PR c/19771
4288         * c-semantics.c (pop_stmt_list): Propagate
4289         STATEMENT_LIST_HAS_LABEL to parent statement list.
4290
4291 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
4292
4293         * config/mips/mips.h (mips_tune_attr): New macro.
4294         * config/mips/mips.md (cpu): Use it.
4295
4296 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4297
4298         PR c/38243
4299         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4300         declaring a tag.
4301
4302 2009-04-19  Diego Novillo  <dnovillo@google.com>
4303
4304         * toplev.c (compile_file): Move call to coverage_finish ...
4305         * cgraphunit.c (ipa_passes): ... here.
4306         Call cgraph_process_new_functions.
4307         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4308         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4309
4310 2009-04-19  Jan Hubicka  <jh@suse.cz>
4311
4312         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4313         cfun.
4314         (dump_cgraph_node): Dump can throw external flag.
4315         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4316
4317 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4318
4319         PR c/32061
4320         PR c++/36954
4321         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4322         * common.opt (Wlogical-op): Move from here...
4323         * c.opt (Wlogical-op): ... to here.
4324         * c-typeck.c (parser_build_binary_op): Update call to
4325         warn_logical_operator.
4326         * c-opts.c (c_common_post_options): Enable warn_logical_op with
4327         extra_warnings.
4328         * c-common.c (warn_logical_op): Update.
4329         * c-common.h (warn_logical_op): Update declaration.
4330
4331 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4332
4333         * tree.c (protected_set_expr_location): Fix formatting.
4334
4335 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4336
4337         PR c/27676
4338         * c-typeck.c (readonly_warning): new.
4339         (build_unary_op, build_modify_expr): Use readonly_warning for
4340         storing into something readonly but not const-qualified.
4341
4342 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4343
4344         PR c/22367
4345         * c-typeck.c (build_unary_op): Check for taking address of
4346         expression of type void.
4347
4348 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
4349
4350         PR c/35210
4351         * c-typeck.c (build_function_call): Check for calling a function
4352         with qualified void return types.  Call require_complete_type when
4353         generating a trap.
4354
4355 2009-04-18  Jan Hubicka  <jh@suse.cz>
4356
4357         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4358         Set nothrow flag.
4359         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4360         can_throw_external flag.
4361         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4362         * ipa-pure-const.c (ignore_edge): New function.
4363         (propagate): Compute order for NOTHROW computation; set NOTHROWs
4364         only over can_throw_external edges.
4365         (local_pure_const): Add nothrow flag.
4366         * ipa-utils.c (searchc): Add ignore_edge callback.
4367         (ipa_utils_reduced_inorder): Add ignore_edge callback.
4368         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4369         (set_nothrow_function_flags): Update cgraph.
4370         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4371
4372 2009-04-18  Richard Guenther  <rguenther@suse.de>
4373
4374         PR middle-end/39804
4375         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4376         (fold_stmt): ... this and ...
4377         (fold_stmt_inplace): ... this.
4378         (fold_stmt_1): Fold references in calls and asms.
4379         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4380
4381 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4382
4383         * tree-vrp.c (ssa_name_nonzero_p): Remove.
4384         * tree.h: Remove the prototype for ssa_name_nonzero_p.
4385
4386 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4387
4388         * tree.c (function_args_count): Remove.
4389         * tree.h: Remove the prototype for function_args_count.
4390
4391 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4392
4393         * tree-iterator.c (expr_only): Remove.
4394         * tree.h: Remove the prototype for expr_only.
4395
4396 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4397
4398         * reginfo.c (cannot_change_mode_set_regs): Remove.
4399         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4400
4401 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
4402
4403         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4404         whether operands 0 and 1 overlaps.
4405
4406 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4407
4408         PR middle-end/36902
4409         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4410         pointer. Use warning_at instead of warning.
4411         (search_for_addr_array): Likewise.
4412         (check_array_bounds): Likewise.
4413         (check_all_array_refs): Check that the incoming edge is not in the
4414         list of edges to be removed.
4415         (check_all_array_refs): Avoid the temporal pointer.
4416         (vrp_visit_cond_stmt): Fix typo.
4417         (simplify_switch_using_ranges): Handle the case where the switch
4418         index is an integer constant.
4419
4420 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
4421
4422         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4423
4424 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
4425
4426         * doc/extend.texi, doc/invoke.texi: Fix typos.
4427
4428 2009-04-17  Cary Coutant  <ccoutant@google.com>
4429
4430         * tree-flow-inline.h (get_lineno): Fix inverted test.
4431
4432 2009-04-17  Diego Novillo  <dnovillo@google.com>
4433
4434         * tree-ssa-pre.c (create_expression_by_pieces): Remove
4435         assertion for AVAIL_OUT.
4436
4437 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
4438
4439         PR target/38627
4440         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4441         * config/sh/linux-atomic.asm: Likewise.
4442
4443 2009-04-17  Diego Novillo  <dnovillo@google.com>
4444
4445         * except.c (debug_eh_tree): New.
4446         (struct eh_region, struct eh_status): Move ...
4447         * except.h: ... here.
4448         (add_type_for_runtime): Declare extern.
4449         (lookup_type_for_runtime): Likewise.
4450         (debug_eh_tree): Declare.
4451         * Makefile.in (GTFILES): List except.h before except.c
4452
4453 2009-04-17  Diego Novillo  <dnovillo@google.com>
4454
4455         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
4456         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4457         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4458         (find_vars_r): ... here.
4459         * tree-flow.h (find_referenced_vars_in): Declare.
4460         * tree-ssa-pre.c (create_expression_by_pieces): Assert
4461         that AVAIL_OUT exists for BLOCK.
4462         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4463         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4464         (tree-parloops.o): Likewise.
4465
4466 2009-04-17  Simon Baldwin  <simonb@google.com>
4467
4468         * toplev.c (default_tree_printer): Add handling for %E format.
4469
4470 2009-04-17  Diego Novillo  <dnovillo@google.com>
4471
4472         * tree-pretty-print.c (dump_generic_node): Add break after
4473         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
4474         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
4475         FUNCTION_TYPE together.  Call print_struct_decl when printing
4476         structures and TDF_SLIM is not given.
4477         (print_struct_decl): Fix logic for detecting recursion.
4478
4479 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4480
4481         PR 31567
4482         * gcc.c (create_at_file): New.
4483         (compile_input_file_p): New.
4484         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4485         * main.c (main): Update call to toplev_main.
4486         * toplev.c (toplev_main): Change signature. Call expandargv.
4487         * toplev.h (toplev_main): Change signature.
4488
4489 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4490
4491         * dwarf2out.c (field_byte_offset): Use the type size as the field size
4492         if the latter is not constant.
4493
4494 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
4495
4496         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4497
4498 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
4499
4500         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4501         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4502
4503 2009-04-17  Richard Guenther  <rguenther@suse.de>
4504
4505         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4506         Handle component references view-converting an invariant address.
4507
4508 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
4509
4510         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4511         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4512         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4513         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4514         Use @deftypevr rather than @deftypevar.
4515
4516 2009-04-17  Richard Guenther  <rguenther@suse.de>
4517
4518         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
4519         (get_prop_source_stmt): Likewise.
4520         (can_propagate_from): Likewise.
4521
4522 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
4523
4524         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4525         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4526         (--with-multilib-list): Add default value.
4527         * configure: Regenerate.
4528         * Makefile.in (TM_ENDIAN_CONFIG): Define.
4529         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4530         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4531         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4532         Don't add default cpu to multilib list unnecessarily, but do enable
4533         the relevant compiler option..
4534         Add support for --with-multilib-list=<blank> and
4535         --with-multilib-list=!<somelib> to supress unwanted multilibs.
4536         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4537         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4538         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4539         TM_MULTILIB_CONFIG.
4540         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4541         (MULTILIB_OSDIRNAMES): New variable.
4542         * config/sh/t-1e: Delete file.
4543         * config/sh/t-mlib-sh1: Delete file.
4544         * config/sh/t-mlib-sh2: Delete file.
4545         * config/sh/t-mlib-sh2a: Delete file.
4546         * config/sh/t-mlib-sh2a-nofpu: Delete file.
4547         * config/sh/t-mlib-sh2a-single: Delete file.
4548         * config/sh/t-mlib-sh2a-single-only: Delete file.
4549         * config/sh/t-mlib-sh2e: Delete file.
4550         * config/sh/t-mlib-sh3e: Delete file.
4551         * config/sh/t-mlib-sh4: Delete file.
4552         * config/sh/t-mlib-sh4-nofpu: Delete file.
4553         * config/sh/t-mlib-sh4-single: Delete file.
4554         * config/sh/t-mlib-sh4-single-only: Delete file.
4555         * config/sh/t-mlib-sh4a: Delete file.
4556         * config/sh/t-mlib-sh4a-nofpu: Delete file.
4557         * config/sh/t-mlib-sh4a-single: Delete file.
4558         * config/sh/t-mlib-sh4a-single-only: Delete file.
4559         * config/sh/t-mlib-sh4al: Delete file.
4560         * config/sh/t-mlib-sh5-32media: Delete file.
4561         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4562         * config/sh/t-mlib-sh5-64media: Delete file.
4563         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4564         * config/sh/t-mlib-sh5-compact: Delete file.
4565         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4566         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4567         * doc/install.texi (Options specification): Add
4568         --with-multilib-list and --with-endian.
4569
4570 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
4571
4572         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4573         REVISION_c.
4574         (OBJS-common): Add plugin-version.o.
4575         (plugin-version.o): New.
4576         * gcc-plugin.h (plugin_gcc_version): New.
4577         (plugin_default_version_check): New.
4578         (plugin_init_func, plugin_init): Add version argument.
4579         * plugin-version.c: New.
4580         * plugin.c (str_plugin_gcc_version_name): New.
4581         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4582         pass it to the init function.
4583         (plugin_default_version_check): New.
4584
4585 2009-04-17  Richard Guenther  <rguenther@suse.de>
4586
4587         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4588         for decl-vs-decl disambiguation.
4589
4590 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4591
4592         * config/s390/s390.h (s390_tune_attr): New macro definition.
4593         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4594
4595 2009-04-17  Richard Guenther  <rguenther@suse.de>
4596
4597         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4598         (fold_stmt_r): Likewise.
4599         (maybe_fold_reference): New function.
4600         (fold_gimple_assign): Handle cases fold_stmt_r did.
4601         (fold_stmt): Do not use fold_stmt_r.
4602         (fold_stmt_inplace): Likewise.
4603
4604 2009-04-17  Richard Guenther  <rguenther@suse.de>
4605
4606         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4607         (record_equivalences_from_stmt): Remove useless checks and
4608         simplifications.
4609         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4610         the type is already suitable.
4611
4612 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
4613
4614         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4615
4616 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
4617
4618         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4619         (CMPtype): Define as __gcc_CMPtype.
4620
4621 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
4622
4623         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4624         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4625
4626 2009-04-17  Richard Guenther  <rguenther@suse.de>
4627
4628         PR tree-optimization/39746
4629         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4630         special-casing for builtins and static variable use/def.
4631         (call_may_clobber_ref_p_1): Likewise.
4632
4633 2009-04-16  Ian Lance Taylor  <iant@google.com>
4634
4635         * df.h: Include "timevar.h".
4636         (struct df_problem): Change tv_id field to timevar_id_t.
4637         * tree-pass.h: Include "timevar.h".
4638         (struct opt_pass): Change tv_id field to timevar_id_t.
4639         * timevar.h (timevar_id_t): Define TV_NONE.
4640         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4641         TV_NONE rather than tv_id != 0.
4642         (execute_one_pass): Likewise.
4643         * Makefile.in (DF_H): Add $(TIMEVAR_H).
4644         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
4645         dependencies to $(TREE_PASS_H).
4646         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4647         to TV_NONE.
4648         (pass_branch_target_load_optimize2): Likewise.
4649         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4650         (pass_outof_cfg_layout_mode): Likewise.
4651         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4652         (pass_rebuild_cgraph_edges): Likewise.
4653         (pass_remove_cgraph_callee_edges): Likewise.
4654         * df-core.c (pass_df_initialize_opt): Likewise.
4655         (pass_df_initialize_no_opt): Likewise.
4656         (pass_df_finish): Likewise.
4657         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4658         * except.c (pass_set_nothrow_function_flags): Likewise.
4659         (pass_convert_to_eh_region_ranges): Likewise.
4660         * final.c (pass_compute_alignments): Likewise.
4661         * function.c (pass_instantiate_virtual_regs): Likewise.
4662         (pass_init_function): Likewise.
4663         (pass_leaf_regs): Likewise.
4664         (pass_match_asm_constraints): Likewise.
4665         * gimple-low.c (pass_lower_cf): Likewise.
4666         (pass_mark_used_blocks): Likewise.
4667         * init-regs.c (pass_initialize_regs): Likewise.
4668         * integrate.c (pass_initial_value_sets): Likewise.
4669         * ira.c (pass_ira): Likewise.
4670         * jump.c (pass_cleanup_barriers): Likewise.
4671         * omp-low.c (pass_expand_omp): Likewise.
4672         (pass_lower_omp): Likewise.
4673         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4674         * recog.c (pass_split_all_insns): Likewise.
4675         (pass_split_after_reload): Likewise.
4676         (pass_split_before_regstack): Likewise.
4677         (pass_split_before_sched2): Likewise.
4678         (pass_split_for_shorten_branches): Likewise.
4679         * reginfo.c (pass_reginfo_init): Likewise.
4680         (pass_subregs_of_mode_init): Likewise.
4681         (pass_subregs_of_mode_finish): Likewise.
4682         * passes.c (pass_postreload): Likewise.
4683         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4684         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4685         (pass_warn_function_return): Likewise.
4686         (pass_warn_function_noreturn): Likewise.
4687         * tree-complex.c (pass_lower_complex): Likewise.
4688         (pass_lower_complex_O0): Likewise.
4689         * tree-if-conv.c (pass_if_conversion): Likewise.
4690         * tree-into-ssa.c (pass_build_ssa): Likewise.
4691         * tree-mudflap.c (pass_mudflap_1): Likewise.
4692         (pass_mudflap_2): Likewise.
4693         * tree-nomudflap.c (pass_mudflap_1): Likewise.
4694         (pass_mudflap_2): Likewise.
4695         * tree-nrv.c (pass_return_slot): Likewise.
4696         * tree-object-size.c (pass_object_sizes): Likewise.
4697         * tree-optimize.c (pass_all_optimizations): Likewise.
4698         (pass_early_local_passes): Likewise.
4699         (pass_all_early_optimizations): Likewise.
4700         (pass_cleanup_cfg): Likewise.
4701         (pass_cleanup_cfg_post_optimizing): Likewise.
4702         (pass_free_datastructures): Likewise.
4703         (pass_free_cfg_annotations): Likewise.
4704         (pass_fixup_cfg): Likewise.
4705         (pass_init_datastructures): Likewise.
4706         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4707         (pass_late_warn_uninitialized): Likewise.
4708         (pass_update_address_taken): Likewise.
4709         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4710         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4711         (pass_cse_sincos): Likewise.
4712         (pass_convert_to_rsqrt): Likewise.
4713         * tree-ssa-structalias.c (pass_build_alias): Likewise.
4714         * tree-stdarg.c (pass_stdarg): Likewise.
4715         * tree-tailcall.c (pass_tail_recursion): Likewise.
4716         (pass_tail_calls): Likewise.
4717         * tree-vect-generic.c (pass_lower_vector): Likewise.
4718         (pass_lower_vector_ssa): Likewise.
4719         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4720
4721 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
4722
4723         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4724         XLR entry.
4725         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4726         Handle -march=xlr.
4727         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4728         logical and signext.
4729
4730 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
4731
4732         PR target/39767
4733         * config/sh/predicates.md (arith_operand): Check if the operand
4734         of TRUNCATE is a REG.
4735
4736 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4737
4738         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4739         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4740
4741 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4742
4743         * tree-iterator.c (tsi_split_statement_list_after,
4744         tsi_split_statement_list_before): Remove.
4745         * tree-iterator.h: Remove the prototypes for
4746         tsi_split_statement_list_after and tsi_split_statement_list_before.
4747
4748 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4749
4750         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4751         * tree-ssa-propagate.h: Remove the prototype for
4752         stmt_makes_single_load.
4753
4754 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4755
4756         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4757         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4758
4759 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4760
4761         * tree-iterator.c (EXPR_LAST_BODY): Remove.
4762
4763 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4764
4765         * except.c (eh_region_outer_p): Remove.
4766         * except.h: Remove the prototype for eh_region_outer_p.
4767
4768 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
4769
4770         * function.c (current_function_assembler_name): Remove.
4771         * function.h: Remove the prototype for
4772         current_function_assembler_name.
4773
4774 2009-04-16  Ian Lance Taylor  <iant@google.com>
4775
4776         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
4777         (add_reg_note): Call alloc_reg_note.
4778         * rtl.h (alloc_reg_note): Declare.
4779         * combine.c (try_combine): Use alloc_reg_note.
4780         (recog_for_combine, move_deaths): Likewise.
4781         (distribute_notes): Use alloc_reg_note and add_reg_note.
4782         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4783         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4784         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4785
4786 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
4787
4788         PR rtl-optimization/39762
4789         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4790         ira_may_move_out_cost): Add comments about way of their usage.
4791         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
4792
4793         * ira-conflicts.c (process_regs_for_copy): Use function
4794         ira_get_register_move_cost instead of global
4795         ira_register_move_cost.
4796
4797         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4798         color_pass, move_spill_restore, update_curr_costs): Ditto.
4799
4800         * ira-lives.c (process_single_reg_class_operands): Ditto.
4801
4802         * ira-emit.c (emit_move_list): Ditto.
4803
4804         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4805         (record_reg_classes): Ditto.  Use functions
4806         ira_get_register_move_cost and ira_get_may_move_cost instead of
4807         global vars ira_register_move_cost, ira_may_move_out_cost and
4808         ira_may_move_in_cost.
4809         (record_address_regs): Don't call ira_init_register_move_cost.
4810         Use function ira_get_may_move_cost instead of global
4811         ira_may_move_in_cost.
4812         (process_bb_node_for_hard_reg_moves): Use function
4813         ira_get_register_move_cost instead of global ira_register_move_cost.
4814         (ira_costs): Don't call ira_init_register_move_cost.
4815
4816 2009-04-16  Richard Guenther  <rguenther@suse.de>
4817
4818         * tree-cfg.c (verify_gimple_assign_binary):
4819         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4820         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4821         (create_general_new_stmt): Note that this function is broken.
4822
4823 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4824
4825         * common.opt (fhelp): Add Var(help_flag).
4826         * gcc-plugin.h (plugin_info): Add help.
4827         * plugin.c (plugin_name_args): Add help.
4828         (register_plugin_info): Set plugin->help.
4829         (print_help_one_plugin): New.
4830         (print_plugins_help): New.
4831         * plugin.h (print_plugins_help): New.
4832         * toplev.c (toplev_main): Call print_plugins_help if needed.
4833
4834 2009-04-16  Richard Guenther  <rguenther@suse.de>
4835
4836         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4837         (gimple_ior_addresses_taken_1): New function.
4838         (gimple_ior_addresses_taken): Likewise.
4839         * gimple.h (struct gimple_statement_with_ops_base): Remove
4840         addresses_taken member.
4841         (gimple_ior_addresses_taken): Declare.
4842         (gimple_addresses_taken, gimple_addresses_taken_ptr,
4843         gimple_set_addresses_taken): Remove.
4844         * ipa-reference.c (mark_address): New function.
4845         (scan_stmt_for_static_refs): Use it for marking addresses taken.
4846         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4847         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
4848         (gimple_add_to_addresses_taken): Remove.
4849         (get_tmr_operands): Call mark_address_taken.
4850         (get_asm_expr_operands): Likewise.
4851         (get_expr_operands): Likewise.
4852         (build_ssa_operands): Do not clear the addresses_taken bitmap.
4853         (free_stmt_operands): Do not free it.
4854         * tree-ssa.c (delete_tree_ssa): Likewise.
4855         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
4856
4857 2009-04-16  Richard Guenther  <rguenther@suse.de>
4858
4859         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
4860         (walk_stmt_load_store_ops): Likewise.
4861         * gimple.c (get_base_loadstore): New function.
4862         (walk_stmt_load_store_addr_ops): Likewise.
4863         (walk_stmt_load_store_ops): Likewise.
4864         * ipa-pure-const.c (check_op): Simplify.
4865         (check_load, check_store): New functions.
4866         (check_stmt): Use walk_stmt_load_store_ops.
4867         * ipa-reference.c (mark_load): Adjust signature.
4868         (mark_store): Likewise.
4869         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
4870
4871 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4872
4873         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
4874         (plugin_info): New.
4875         * opts.c (common_handle_option): Don't call print_version.
4876         * plugin.c (plugin_name_args): Add version.
4877         (register_plugin_info): New.
4878         (register_callback): Handle PLUGIN_INFO.
4879         (try_init_one_plugin): New.
4880         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
4881         if failed to init.
4882         (finalize_one_plugin): New.
4883         (finalize_plugins): New.
4884         (print_one_plugin): New.
4885         (print_plugins_versions): New.
4886         * plugin.h (print_plugins_versions): New.
4887         (finalize_plugins): New.
4888         * toplev.c (compile_file): Don't call initialize_plugins.
4889         (print_version): Call print_plugins_versions.
4890         (toplev_main): Call initialize_plugins. Print version if needed.
4891         Call finalize_plugins.
4892
4893 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
4894
4895         * common.opt (fversion): New.
4896         * gcc.c (print_version): New.
4897         (process_command): Don't print the version. Just set print_version.
4898         (main): Print version. Call subprocesses if print_version and
4899         verbose_flag are set.
4900         * opts.c (common_handle_option): Handle OPT_fversion.
4901
4902 2009-04-16  Richard Guenther  <rguenther@suse.de>
4903             Ira Rosen  <irar@il.ibm.com>
4904
4905         PR tree-optimization/39698
4906         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
4907         type of the reduction variable.  Only generate the def if
4908         it is needed.
4909
4910         * omp-low.c (expand_omp_for_generic): When converting to a pointer
4911         make sure to first convert to an integer of the same precision.
4912         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
4913         the type of the evolution correctly in computing the new
4914         induction variable base.
4915
4916 2009-04-16  Richard Guenther  <rguenther@suse.de>
4917
4918         PR middle-end/39625
4919         * tree-cfg.c (make_blocks): Split statements with to-be
4920         abnormal SSA names on the lhs.
4921
4922 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
4923
4924         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
4925         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
4926         * c-typeck.c (really_start_incremental_init): Likewise.
4927         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
4928         (TARGET_INITIALIZER): Remove it.
4929         * target.h (struct target): Remove vector_opaque_p.
4930         * tree.c (build_opaque_vector_type): New.
4931         * tree.h (TYPE_VECTOR_OPAQUE): New.
4932         (build_opaque_vector_type): Declare.
4933         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
4934         * config/rs6000/rs6000.c (build_opaque_vector_type,
4935         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4936         (rs6000_init_builtins): Use build_opaque_vector_type for
4937         opaque_V4SI_type_node.
4938
4939 2009-04-15  Catherine Moore  <clm@codesourcery.com>
4940
4941         * debug.h (set_name):  Declare.
4942         * dwarf2out.c (dwarf2out_set_name): Declare.
4943         (dwarf2_debug_hooks): Add set_name.
4944         (find_AT_string): New.
4945         (add_AT_string): Call find_AT_string.
4946         (dwarf2out_set_name): New.
4947         * cp/decl.c (grokdeclarator): Call set_name.
4948         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4949         * debug.c (do_nothing_debug_hooks):  Likewise.
4950         * dbxout.c (dbx_debug_hooks): Likewise.
4951         * sdbout.c (sdb_debug_hooks): Likewise.
4952
4953 2009-04-15  Michael Eager  <eager@eagercon.com>
4954
4955         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4956         reg for single-precision FPU.
4957         * config/rs6000/rs6000.md (movsi_internal1): Only for
4958         !TARGET_SINGLE_FPU.
4959         (movsi_internal1_single): New. Add pattern to move SI values to/from
4960         single-precision FP regs.
4961
4962 2009-04-15  Richard Guenther  <rguenther@suse.de>
4963
4964         * omp-low.c (lower_rec_input_clauses): Build correct address
4965         expressions.
4966         (expand_omp_for_generic): Fix multiplication type.
4967         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
4968         (generate_memset_zero): Fix types.
4969         * tree-profile.c (prepare_instrumented_value): Correctly
4970         widen a pointer.
4971
4972 2009-04-15  Ian Lance Taylor  <iant@google.com>
4973
4974         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
4975         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
4976         for -Wall and for -Wc++-compat.
4977         (c_common_post_options): For C++, set warn_enum_compare if not
4978         already set.
4979         * c-tree.h (struct c_expr): Add field original_type.
4980         (build_external_ref): Update declaration.
4981         * c-parser.c (c_parser_braced_init): Set original_type.
4982         (c_parser_initelt): Likewise.
4983         (c_parser_expr_no_commas): Likewise.
4984         (c_parser_conditional_expression): Likewise.
4985         (c_parser_cast_expression): Likewise.
4986         (c_parser_unary_expression): Likewise.  Pull setting of
4987         original_code to top of function.
4988         (c_parser_sizeof_expression): Set original_type.
4989         (c_parser_alignof_expression): Likewise.
4990         (c_parser_postfix_expression): Likewise.  Pull setting of
4991         original_code to top of function.
4992         (c_parser_postfix_expression_after_paren_type): Set original_type.
4993         (c_parser_postfix_expression_after_primary): Likewise.
4994         (c_parser_expression): Likewise.
4995         * c-typeck.c (build_external_ref): Add type parameter.  Change all
4996         callers.
4997         (c_expr_sizeof_expr): Set original_type field.
4998         (parser_build_unary_op): Likewise.
4999         (parser_build_binary_op): Likewise.  Optionally warn about
5000         comparisons of enums of different types.
5001         (digest_init): Set original_type field.
5002         (really_start_incremental_init): Likewise.
5003         (push_init_level, pop_init_level): Likewise.
5004         * doc/invoke.texi (Warning Options): -Wenum-compare now
5005         supported in C.
5006
5007 2009-04-15  Richard Guenther  <rguenther@suse.de>
5008
5009         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
5010         out a necessary conversion.
5011         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5012         names we didn't value number.
5013         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5014
5015 2009-04-15  Richard Guenther  <rguenther@suse.de>
5016
5017         PR tree-optimization/39764
5018         * tree-ssa-ccp.c (get_value): Canonicalize value with
5019         canonicalize_float_value.
5020
5021 2009-04-15  Jan Hubicka  <jh@suse.cz>
5022
5023         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5024         Wrong version of patch.
5025
5026 2009-04-15  Jan Hubicka  <jh@suse.cz>
5027
5028         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5029
5030 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
5031
5032         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5033         our distinct integral and vector types.
5034
5035 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
5036
5037         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5038         * init.c (build_vtbl_address): Remove call to assemble_external.
5039
5040 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
5041
5042         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5043         output for other floating point modes.
5044
5045 2009-04-14  Diego Novillo  <dnovillo@google.com>
5046
5047         * diagnostic.c (diagnostic_report_diagnostic): Do not
5048         warn about loaded plugins for DK_ERROR and DK_WARNING.
5049         * c-decl.c (declspecs_add_type): Move call to
5050         invoke_plugin_callbacks ...
5051         * c-parser.c (c_parser_declspecs): ... here.
5052         * plugin.c (dump_active_plugins): Tidy output.
5053
5054 2009-04-14  Diego Novillo  <dnovillo@google.com>
5055             Le-Chun Wu  <lcwu@google.com>
5056
5057         * configure.ac: Add --enable-plugin support.
5058         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5059         * Makefile.in (PLUGIN_H): Define.
5060         Export ENABLE_PLUGIN and GMPINC to site.exp.
5061         Add PLUGINLIBS to link command.
5062         Add/modify dependencies for plugin.o and files including plugin.h.
5063         (plugin.o): New.
5064         * config.in: Regenerate.
5065
5066         * opts.c (common_handle_option): Handle OPT_fplugin_ and
5067         OPT_fplugin_arg_.
5068
5069 2009-04-14  Le-Chun Wu  <lcwu@google.com>
5070
5071         * tree-pass.h (register_one_dump_file): Add a prototype for
5072         register_one_dump_file.
5073         * toplev.c (compile_file): Call initialize_plugins.
5074         (do_compile): Call invoke_plugin_callbacks.
5075         (toplev_main): Call invoke_plugin_callbacks.
5076         * common.opt: Add -fplugin= and -fplugin-arg-.
5077         * gcc-plugin.h: New public header file for plugins to include.
5078         * plugin.c: New source file.
5079         * plugin.h: New internal header file.
5080         * passes.c (register_one_dump_file): Make it external.
5081
5082         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5083
5084 2009-04-14  Diego Novillo  <dnovillo@google.com>
5085
5086         * doc/plugins.texi: New.
5087         * doc/gccint.texi: Add reference to Plugins chapter.
5088         * doc/invoke.texi: Document -fplugin and -fplugin-arg
5089         * diagnostic.c (diagnostic_report_diagnostic): Warn about
5090         loaded plugins, if any.
5091         * timevar.def (TV_PLUGIN_INIT): Define.
5092         (TV_PLUGIN_RUN): Define.
5093         * plugin.c: Include timevar.h
5094         (plugins_active_p): New.
5095         (dump_active_plugins): New.
5096         (debug_active_plugins): New.
5097
5098 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
5099
5100         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5101         library paths.
5102         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5103
5104 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
5105
5106         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5107         the same as a minus without a shift.
5108
5109 2009-04-14  Nick Clifton  <nickc@redhat.com>
5110
5111         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5112         comparisons with small integers will always produce a short
5113         branch.
5114
5115 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
5116
5117         Merge:
5118         2008-12-19  Diego Novillo  <dnovillo@google.com>
5119
5120         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
5121
5122 2009-04-14  Richard Guenther  <rguenther@suse.de>
5123
5124         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5125         verification.
5126         (verify_gimple_assign_binary): Likewise.  Handle shifts and
5127         rotates correctly.
5128         (verify_gimple_phi): Print the mismatched argument position.
5129         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5130         Fix types.
5131         (vect_update_init_of_dr): Likewise.
5132         * matrix-reorg.c (transform_access_sites): Do what the
5133         comment suggests.
5134         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5135
5136 2009-04-13  Michael Eager  <eager@eagercon.com>
5137
5138         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5139         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5140         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
5141         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
5142         remove duplicate config
5143
5144 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5145
5146         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5147         file_name:line_number type locator of the call site.
5148
5149 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5150
5151         * genautomata.c: Put blank after comma.
5152         (automaton_decls): New.
5153         (struct unit_usage): Add comments to member next.
5154         (store_alt_unit_usage): Keep the list ordered.
5155         (unit_present_on_list_p, equal_alternatives_p): New.
5156         (check_regexp_units_distribution): Check units distribution
5157         correctness correctly.
5158         (main): Don't write automata if error is found.  Return correct
5159         exit code.
5160
5161         * config/m68k/cf.md (cfv4_ds): Remove.
5162         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5163         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5164
5165         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5166         power4-load-ext, power4-store, power4-store-update,
5167         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5168         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5169         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5170         power4-sqrt, power4-isync): Modify reservation to make correct
5171         unit distribution to automata.
5172
5173         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5174         power5-store-update, power5-two, power5-three, power5-lmul,
5175         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
5176
5177 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
5178
5179         * except.c (pass_set_nothrow_function_flags): Set name and add
5180         TODO_dump_func.
5181         (set_nothrow_function_flags): Mention in the dump file when
5182         changing a function to nothrow.
5183
5184 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
5185
5186         PR/39066
5187         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5188         instead of unsigned long.
5189
5190 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5191
5192         * config/arm/arm.c (return_used_this_function): Remove.
5193         (arm_output_function_prologue): Remove use of
5194         return_used_this_function.
5195         (output_return_instruction): Replace use of
5196         return_used_this_function
5197         by cfun->machine->return_used_this_function.
5198         (arm_output_epilogue): Likewise.
5199         (arm_output_function_epilogue): Likewise.
5200         (thumb_unexpanded_epilogue): Likewise.
5201         * config/arm/arm.h (struct machine_function):
5202         New member return_used_this_function.
5203
5204 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
5205
5206         * doc/install.texi: Correct description of default directory for
5207         --with-gxx-include-dir.
5208
5209 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5210
5211         * fold-const.c (build_range_check): Properly deal with enumeral and
5212         boolean base types.
5213
5214 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
5215
5216         * doc/invoke.texi (max_gcse_passes): Remove documentation.
5217         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5218         * params.h (MAX_GCSE_PASSES): Remove.
5219         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5220         in sequence.  Remove ability to run multiple passes.
5221         (bypass_jumps): Report run as third CPROP pass.
5222
5223 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
5224
5225         PR middle-end/39651
5226         * except.c (can_throw_external): Look at each insn in a SEQUENCE
5227         when deciding whether the whole SEQUENCE can throw.
5228
5229 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
5230
5231         PR target/39740
5232         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5233         offseted label references.
5234
5235 2009-04-11  Jan Hubicka  <jh@suse.cz>
5236
5237         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5238
5239 2009-04-11  Richard Guenther  <rguenther@suse.de>
5240
5241         PR middle-end/39732
5242         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5243         return variables as TREE_ADDRESSABLE.
5244
5245 2009-04-11  Richard Guenther  <rguenther@suse.de>
5246
5247         PR tree-optimization/39713
5248         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5249         reference trees have SSA_NAME operands.
5250
5251 2009-04-11  Richard Guenther  <rguenther@suse.de>
5252
5253         PR c/39712
5254         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5255         address expressions.
5256
5257 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5258
5259         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
5260         match changes in Cygwin 1.7
5261         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5262         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
5263
5264 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5265
5266         PR tree-optimization/39701
5267         * doc/invoke.texi (Optimization Options): Document change in
5268         meaning and initialization of -fdelete-null-pointer-checks.
5269
5270 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5271
5272         PR middle-end/39701
5273         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5274
5275         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5276         here.
5277
5278         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5279
5280 2009-04-10  Chao-ying Fu  <fu@mips.com>
5281
5282         * doc/tm.texi (Instruction Output): Document
5283         TARGET_ASM_FINAL_POSTSCAN_INSN.
5284         * target.h (final_postscan_insn): New field in asm_out.
5285         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5286         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5287         * final.c (final_scan_insn): Call
5288         targetm.asm_out.final_postscan_insn after outputting
5289         an asm macro and a normal instruction.
5290
5291         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5292         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5293         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5294         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5295         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5296
5297 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5298
5299         PR middle-end/39701
5300         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5301         variables as non-NULL even with -fdelete-null-pointer-checks.
5302
5303 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5304
5305         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5306
5307 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
5308
5309         PR target/39678
5310         * config/i386/i386.c (classify_argument): Handle SCmode with
5311         (bit_offset % 64) != 0.
5312
5313 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
5314
5315         * doc/invoke.texi (Optimize Options): Add cross-reference to
5316         -Q --help=optimizers examples.
5317
5318 2009-04-10  Ben Elliston  <bje@au.ibm.com>
5319
5320         PR target/36800
5321         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5322         regalign for the reg == fpr and TDmode case.
5323
5324 2009-04-09  David Ayers  <ayers@fsfe.org>
5325
5326         PR objc/29200
5327         * objc/objc-act.c (warn_with_method): Remove helper function.
5328         (check_duplicates): Call warning and inform directly.
5329         (really_start_method): Likewise.
5330
5331 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5332
5333         * expmed.c (expand_divmod): Always use a comparison for a division
5334         by a large unsigned integer.
5335
5336         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5337         for things others than variables or functions as nonzero.
5338
5339 2009-04-09  Nick Clifton  <nickc@redhat.com>
5340
5341         * unwind-compat.c: Change copyright header to refer to version
5342         3 of the GNU General Public License with version 3.1 of the
5343         GCC Runtime Library Exception and to point readers at the
5344         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
5345         * config/alpha/crtfastmath.c: Likewise.
5346         * config/alpha/linux-unwind.h: Likewise.
5347         * config/alpha/qrnnd.asm: Likewise.
5348         * config/alpha/vms-crt0-64.c: Likewise.
5349         * config/alpha/vms-crt0.c: Likewise.
5350         * config/alpha/vms-dwarf2.asm: Likewise.
5351         * config/alpha/vms-dwarf2eh.asm: Likewise.
5352         * config/alpha/vms-psxcrt0-64.c: Likewise.
5353         * config/alpha/vms-psxcrt0.c: Likewise.
5354         * config/alpha/vms_tramp.asm: Likewise.
5355         * config/arc/initfini.c: Likewise.
5356         * config/arc/lib1funcs.asm: Likewise.
5357         * config/arm/bpabi-v6m.S: Likewise.
5358         * config/arm/bpabi.S: Likewise.
5359         * config/arm/bpabi.c: Likewise.
5360         * config/arm/crti.asm: Likewise.
5361         * config/arm/crtn.asm: Likewise.
5362         * config/arm/ieee754-df.S: Likewise.
5363         * config/arm/ieee754-sf.S: Likewise.
5364         * config/arm/lib1funcs.asm: Likewise.
5365         * config/arm/libunwind.S: Likewise.
5366         * config/arm/linux-atomic.c: Likewise.
5367         * config/arm/mmintrin.h: Likewise.
5368         * config/arm/pr-support.c: Likewise.
5369         * config/arm/unaligned-funcs.c: Likewise.
5370         * config/arm/unwind-arm.c: Likewise.
5371         * config/arm/unwind-arm.h: Likewise.
5372         * config/avr/libgcc.S: Likewise.
5373         * config/bfin/crti.s: Likewise.
5374         * config/bfin/crtlibid.s: Likewise.
5375         * config/bfin/crtn.s: Likewise.
5376         * config/bfin/lib1funcs.asm: Likewise.
5377         * config/bfin/linux-unwind.h: Likewise.
5378         * config/cris/arit.c: Likewise.
5379         * config/cris/cris_abi_symbol.c: Likewise.
5380         * config/darwin-64.c: Likewise.
5381         * config/darwin-crt2.c: Likewise.
5382         * config/darwin-crt3.c: Likewise.
5383         * config/darwin.h: Likewise.
5384         * config/dbxelf.h: Likewise.
5385         * config/dfp-bit.c: Likewise.
5386         * config/dfp-bit.h: Likewise.
5387         * config/elfos.h: Likewise.
5388         * config/fixed-bit.c: Likewise.
5389         * config/fixed-bit.h: Likewise.
5390         * config/fp-bit.c: Likewise.
5391         * config/fp-bit.h: Likewise.
5392         * config/fr30/crti.asm: Likewise.
5393         * config/fr30/crtn.asm: Likewise.
5394         * config/fr30/lib1funcs.asm: Likewise.
5395         * config/freebsd-spec.h: Likewise.
5396         * config/frv/cmovd.c: Likewise.
5397         * config/frv/cmovh.c: Likewise.
5398         * config/frv/cmovw.c: Likewise.
5399         * config/frv/frvbegin.c: Likewise.
5400         * config/frv/frvend.c: Likewise.
5401         * config/frv/lib1funcs.asm: Likewise.
5402         * config/glibc-stdint.h: Likewise.
5403         * config/h8300/clzhi2.c: Likewise.
5404         * config/h8300/crti.asm: Likewise.
5405         * config/h8300/crtn.asm: Likewise.
5406         * config/h8300/ctzhi2.c: Likewise.
5407         * config/h8300/fixunssfsi.c: Likewise.
5408         * config/h8300/lib1funcs.asm: Likewise.
5409         * config/h8300/parityhi2.c: Likewise.
5410         * config/h8300/popcounthi2.c: Likewise.
5411         * config/i386/ammintrin.h: Likewise.
5412         * config/i386/att.h: Likewise.
5413         * config/i386/avxintrin.h: Likewise.
5414         * config/i386/biarch64.h: Likewise.
5415         * config/i386/bmmintrin.h: Likewise.
5416         * config/i386/cpuid.h: Likewise.
5417         * config/i386/cross-stdarg.h: Likewise.
5418         * config/i386/crtfastmath.c: Likewise.
5419         * config/i386/crtprec.c: Likewise.
5420         * config/i386/cygming-crtbegin.c: Likewise.
5421         * config/i386/cygming-crtend.c: Likewise.
5422         * config/i386/cygwin.asm: Likewise.
5423         * config/i386/emmintrin.h: Likewise.
5424         * config/i386/gmm_malloc.h: Likewise.
5425         * config/i386/gthr-win32.c: Likewise.
5426         * config/i386/i386.h: Likewise.
5427         * config/i386/immintrin.h: Likewise.
5428         * config/i386/linux-unwind.h: Likewise.
5429         * config/i386/linux64.h: Likewise.
5430         * config/i386/mm3dnow.h: Likewise.
5431         * config/i386/mmintrin-common.h: Likewise.
5432         * config/i386/mmintrin.h: Likewise.
5433         * config/i386/nmmintrin.h: Likewise.
5434         * config/i386/pmm_malloc.h: Likewise.
5435         * config/i386/pmmintrin.h: Likewise.
5436         * config/i386/smmintrin.h: Likewise.
5437         * config/i386/sol2-c1.asm: Likewise.
5438         * config/i386/sol2-ci.asm: Likewise.
5439         * config/i386/sol2-cn.asm: Likewise.
5440         * config/i386/sol2-gc1.asm: Likewise.
5441         * config/i386/tmmintrin.h: Likewise.
5442         * config/i386/unix.h: Likewise.
5443         * config/i386/w32-unwind.h: Likewise.
5444         * config/i386/wmmintrin.h: Likewise.
5445         * config/i386/x86-64.h: Likewise.
5446         * config/i386/x86intrin.h: Likewise.
5447         * config/i386/xmmintrin.h: Likewise.
5448         * config/ia64/crtbegin.asm: Likewise.
5449         * config/ia64/crtend.asm: Likewise.
5450         * config/ia64/crtfastmath.c: Likewise.
5451         * config/ia64/crti.asm: Likewise.
5452         * config/ia64/crtn.asm: Likewise.
5453         * config/ia64/fde-glibc.c: Likewise.
5454         * config/ia64/lib1funcs.asm: Likewise.
5455         * config/ia64/linux-unwind.h: Likewise.
5456         * config/ia64/quadlib.c: Likewise.
5457         * config/ia64/unwind-ia64.c: Likewise.
5458         * config/linux.h: Likewise.
5459         * config/m32c/m32c-lib1.S: Likewise.
5460         * config/m32c/m32c-lib2-trapv.c: Likewise.
5461         * config/m32c/m32c-lib2.c: Likewise.
5462         * config/m32r/initfini.c: Likewise.
5463         * config/m68hc11/larith.asm: Likewise.
5464         * config/m68hc11/m68hc11-crt0.S: Likewise.
5465         * config/m68k/cf.md: Likewise.
5466         * config/m68k/crti.s: Likewise.
5467         * config/m68k/crtn.s: Likewise.
5468         * config/m68k/lb1sf68.asm: Likewise.
5469         * config/m68k/linux-unwind.h: Likewise.
5470         * config/mcore/crti.asm: Likewise.
5471         * config/mcore/crtn.asm: Likewise.
5472         * config/mcore/lib1.asm: Likewise.
5473         * config/mips/linux-unwind.h: Likewise.
5474         * config/mips/loongson.h: Likewise.
5475         * config/mips/mips16.S: Likewise.
5476         * config/mmix/crti.asm: Likewise.
5477         * config/mmix/crtn.asm: Likewise.
5478         * config/pa/fptr.c: Likewise.
5479         * config/pa/hpux-unwind.h: Likewise.
5480         * config/pa/lib2funcs.asm: Likewise.
5481         * config/pa/linux-atomic.c: Likewise.
5482         * config/pa/linux-unwind.h: Likewise.
5483         * config/pa/milli64.S: Likewise.
5484         * config/pa/quadlib.c: Likewise.
5485         * config/pa/stublib.c: Likewise.
5486         * config/picochip/libgccExtras/adddi3.asm: Likewise.
5487         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5488         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5489         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5490         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5491         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5492         * config/picochip/libgccExtras/divmod15.asm: Likewise.
5493         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5494         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5495         * config/picochip/libgccExtras/longjmp.asm: Likewise.
5496         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5497         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5498         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5499         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5500         * config/picochip/libgccExtras/setjmp.asm: Likewise.
5501         * config/picochip/libgccExtras/subdi3.asm: Likewise.
5502         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5503         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5504         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5505         * config/rs6000/750cl.h: Likewise.
5506         * config/rs6000/altivec.h: Likewise.
5507         * config/rs6000/biarch64.h: Likewise.
5508         * config/rs6000/crtresfpr.asm: Likewise.
5509         * config/rs6000/crtresgpr.asm: Likewise.
5510         * config/rs6000/crtresxfpr.asm: Likewise.
5511         * config/rs6000/crtresxgpr.asm: Likewise.
5512         * config/rs6000/crtsavfpr.asm: Likewise.
5513         * config/rs6000/crtsavgpr.asm: Likewise.
5514         * config/rs6000/darwin-asm.h: Likewise.
5515         * config/rs6000/darwin-fallback.c: Likewise.
5516         * config/rs6000/darwin-fpsave.asm: Likewise.
5517         * config/rs6000/darwin-ldouble.c: Likewise.
5518         * config/rs6000/darwin-tramp.asm: Likewise.
5519         * config/rs6000/darwin-unwind.h: Likewise.
5520         * config/rs6000/darwin-vecsave.asm: Likewise.
5521         * config/rs6000/darwin-world.asm: Likewise.
5522         * config/rs6000/e500crtres32gpr.asm: Likewise.
5523         * config/rs6000/e500crtres64gpr.asm: Likewise.
5524         * config/rs6000/e500crtres64gprctr.asm: Likewise.
5525         * config/rs6000/e500crtrest32gpr.asm: Likewise.
5526         * config/rs6000/e500crtrest64gpr.asm: Likewise.
5527         * config/rs6000/e500crtresx32gpr.asm: Likewise.
5528         * config/rs6000/e500crtresx64gpr.asm: Likewise.
5529         * config/rs6000/e500crtsav32gpr.asm: Likewise.
5530         * config/rs6000/e500crtsav64gpr.asm: Likewise.
5531         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5532         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5533         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5534         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5535         * config/rs6000/eabi-ci.asm: Likewise.
5536         * config/rs6000/eabi-cn.asm: Likewise.
5537         * config/rs6000/eabi.asm: Likewise.
5538         * config/rs6000/linux-unwind.h: Likewise.
5539         * config/rs6000/linux64.h: Likewise.
5540         * config/rs6000/paired.h: Likewise.
5541         * config/rs6000/paired.md: Likewise.
5542         * config/rs6000/ppc64-fp.c: Likewise.
5543         * config/rs6000/ppu_intrinsics.h: Likewise.
5544         * config/rs6000/rs6000.h: Likewise.
5545         * config/rs6000/si2vmx.h: Likewise.
5546         * config/rs6000/sol-ci.asm: Likewise.
5547         * config/rs6000/sol-cn.asm: Likewise.
5548         * config/rs6000/spe.h: Likewise.
5549         * config/rs6000/spu2vmx.h: Likewise.
5550         * config/rs6000/sysv4.h: Likewise.
5551         * config/rs6000/tramp.asm: Likewise.
5552         * config/rs6000/vec_types.h: Likewise.
5553         * config/s390/linux-unwind.h: Likewise.
5554         * config/s390/tpf-unwind.h: Likewise.
5555         * config/score/crti.asm: Likewise.
5556         * config/score/crtn.asm: Likewise.
5557         * config/sh/crt1.asm: Likewise.
5558         * config/sh/crti.asm: Likewise.
5559         * config/sh/crtn.asm: Likewise.
5560         * config/sh/divtab-sh4-300.c: Likewise.
5561         * config/sh/divtab-sh4.c: Likewise.
5562         * config/sh/divtab.c: Likewise.
5563         * config/sh/lib1funcs-4-300.asm: Likewise.
5564         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5565         * config/sh/lib1funcs.asm: Likewise.
5566         * config/sh/lib1funcs.h: Likewise.
5567         * config/sh/linux-atomic.asm: Likewise.
5568         * config/sh/linux-unwind.h: Likewise.
5569         * config/sh/shmedia.h: Likewise.
5570         * config/sh/sshmedia.h: Likewise.
5571         * config/sh/ushmedia.h: Likewise.
5572         * config/sparc/crtfastmath.c: Likewise.
5573         * config/sparc/linux-unwind.h: Likewise.
5574         * config/sparc/sol2-c1.asm: Likewise.
5575         * config/sparc/sol2-ci.asm: Likewise.
5576         * config/sparc/sol2-cn.asm: Likewise.
5577         * config/spu/divmodti4.c: Likewise.
5578         * config/spu/divv2df3.c: Likewise.
5579         * config/spu/float_disf.c: Likewise.
5580         * config/spu/float_unsdidf.c: Likewise.
5581         * config/spu/float_unsdisf.c: Likewise.
5582         * config/spu/float_unssidf.c: Likewise.
5583         * config/spu/mfc_multi_tag_release.c: Likewise.
5584         * config/spu/mfc_multi_tag_reserve.c: Likewise.
5585         * config/spu/mfc_tag_release.c: Likewise.
5586         * config/spu/mfc_tag_reserve.c: Likewise.
5587         * config/spu/mfc_tag_table.c: Likewise.
5588         * config/spu/multi3.c: Likewise.
5589         * config/spu/spu_internals.h: Likewise.
5590         * config/spu/spu_intrinsics.h: Likewise.
5591         * config/spu/spu_mfcio.h: Likewise.
5592         * config/spu/vec_types.h: Likewise.
5593         * config/spu/vmx2spu.h: Likewise.
5594         * config/stormy16/stormy16-lib2.c: Likewise.
5595         * config/svr4.h: Likewise.
5596         * config/sync.c: Likewise.
5597         * config/v850/lib1funcs.asm: Likewise.
5598         * config/vxlib-tls.c: Likewise.
5599         * config/vxlib.c: Likewise.
5600         * config/vxworks-dummy.h: Likewise.
5601         * config/xtensa/crti.asm: Likewise.
5602         * config/xtensa/crtn.asm: Likewise.
5603         * config/xtensa/ieee754-df.S: Likewise.
5604         * config/xtensa/ieee754-sf.S: Likewise.
5605         * config/xtensa/lib1funcs.asm: Likewise.
5606         * config/xtensa/lib2funcs.S: Likewise.
5607         * config/xtensa/linux-unwind.h: Likewise.
5608         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5609         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5610         * coretypes.h: Likewise.
5611         * crtstuff.c: Likewise.
5612         * defaults.h: Likewise.
5613         * dwarf2.h: Likewise.
5614         * emutls.c: Likewise.
5615         * gbl-ctors.h: Likewise.
5616         * gcov-io.h: Likewise.
5617         * ginclude/float.h: Likewise.
5618         * ginclude/iso646.h: Likewise.
5619         * ginclude/stdarg.h: Likewise.
5620         * ginclude/stdbool.h: Likewise.
5621         * ginclude/stddef.h: Likewise.
5622         * ginclude/stdfix.h: Likewise.
5623         * ginclude/stdint-gcc.h: Likewise.
5624         * ginclude/tgmath.h: Likewise.
5625         * gthr-aix.h: Likewise.
5626         * gthr-dce.h: Likewise.
5627         * gthr-gnat.c: Likewise.
5628         * gthr-gnat.h: Likewise.
5629         * gthr-lynx.h: Likewise.
5630         * gthr-mipssde.h: Likewise.
5631         * gthr-nks.h: Likewise.
5632         * gthr-posix.c: Likewise.
5633         * gthr-posix.h: Likewise.
5634         * gthr-posix95.h: Likewise.
5635         * gthr-rtems.h: Likewise.
5636         * gthr-single.h: Likewise.
5637         * gthr-solaris.h: Likewise.
5638         * gthr-tpf.h: Likewise.
5639         * gthr-vxworks.h: Likewise.
5640         * gthr-win32.h: Likewise.
5641         * gthr.h: Likewise.
5642         * libgcc2.c: Likewise.
5643         * libgcc2.h: Likewise.
5644         * libgcov.c: Likewise.
5645         * tsystem.h: Likewise.
5646         * typeclass.h: Likewise.
5647         * unwind-c.c: Likewise.
5648         * unwind-compat.h: Likewise.
5649         * unwind-dw2-fde-compat.c: Likewise.
5650         * unwind-dw2-fde-darwin.c: Likewise.
5651         * unwind-dw2-fde-glibc.c: Likewise.
5652         * unwind-dw2-fde.c: Likewise.
5653         * unwind-dw2-fde.h: Likewise.
5654         * unwind-dw2.c: Likewise.
5655         * unwind-dw2.h: Likewise.
5656         * unwind-generic.h: Likewise.
5657         * unwind-pe.h: Likewise.
5658         * unwind-sjlj.c: Likewise.
5659         * unwind.inc: Likewise.
5660         * config/arm/neon-gen.ml: Change generated copyright header to
5661         refer to version 3 of the GNU General Public License with
5662         version 3.1 of the GCC Runtime Library Exception and to point
5663         readers at the COPYING3 and COPYING3.RUNTIME files and the
5664         FSF's license web page.
5665         * config/arm/arm_neon.h: Regenerate.
5666
5667 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
5668
5669         * config/cris/cris.md: Change copyright header to refer to version
5670         3 of the GNU General Public License.
5671         * doc/install.texi2html: Change copyright header to refer to version
5672         3 of the GNU General Public License and to point readers at the
5673         COPYING3 file and the FSF's license web page.
5674         * config/vax/linux.h: Likewise.
5675
5676 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
5677
5678         * config/i386/i386.md (cmpcc): New.
5679         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5680         (sync_compare_and_swap_cc*): Delete.
5681
5682         * config/s390/s390.c (s390_compare_emitted): Remove.
5683         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5684         s390_compare_emitted used to be handled.  Assert that modes match.
5685         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5686         refer to sync_compare_and_swap_ccsi.
5687         * config/s390/s390.h (s390_compare_emitted): Remove.
5688         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5689         instead of s390_compare_emitted.
5690         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5691         instead of s390_compare_emitted.
5692         * config/s390/s390.md (cmpcc): New.
5693         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5694         CC_REGNUM, do not pretend it's set.
5695         (sync_compare_and_swap_cc*): Delete.
5696         * config/s390/predicates.md (cc_reg_operand): New.
5697
5698         * expr.c (sync_compare_and_swap_cc): Delete.
5699         * optabs.h (sync_compare_and_swap_cc): Delete.
5700         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5701         is being used with can_compare_p.
5702         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5703         (find_cc_set): New.
5704         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5705         look for a MODE_CC set instead.  Use emit_store_flag.
5706         (expand_compare_and_swap_loop): Likewise, with some additional
5707         complication to avoid a force_reg when useless.  Use
5708         emit_cmp_and_jump_insns.
5709         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5710         * doc/md.texi (sync_compare_and_swap_cc): Merge with
5711         sync_compare_and_swap documentation.
5712
5713 2009-04-09  Jan Hubicka  <jh@suse.cz>
5714
5715         * except.c (find_prev_try): Break out from ....
5716         (duplicate_eh_regions): ... here; properly update prev_try pointers
5717         when duplication part of tree.
5718         (dump_eh_tree): Improve dumping.
5719         (verify_eh_region): New.
5720         (verify_eh_tree): Use it.
5721
5722 2009-04-06  Richard Guenther  <rguenther@suse.de>
5723
5724         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5725         &ARRAY addresses by adjusting their types and prepending
5726         a conversion.
5727         * tree-cfg.c (verify_gimple_assign_single): Verify that
5728         addresses are correct.
5729
5730 2009-04-09  Richard Guenther  <rguenther@suse.de>
5731
5732         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5733         indices into an array reference if possible.
5734         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5735         Fold POINTER_PLUS_EXPR statements with invariant address.
5736
5737 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
5738
5739         PR target/39634
5740         * config.gcc (powerpc64-*-linux*): Always build biarch.
5741
5742 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
5743
5744         PR c/39613
5745         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5746         it and pedwarn if this results in an INTEGER_CST.
5747
5748 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5749
5750         * doc/install.texi: Update minimum GMP version.  Remove obsolete
5751         text in MPFR section.
5752
5753 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
5754
5755         * dwarf2out.c (class_scope_p): New static inline.
5756         (class_or_namespace_scope_p): Use it.
5757         (gen_variable_die): Use DW_TAG_member tag for static data member
5758         declarations instead of DW_TAG_variable.
5759
5760         PR middle-end/39573
5761         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5762         variables.
5763
5764 2009-04-08  Richard Guenther  <rguenther@suse.de>
5765
5766         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5767         valueize random data.
5768
5769 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
5770
5771         * config.gcc (aix tm_file):  Add aix-stdint.h.
5772         (aix tm clause use_gcc_stdint):  Set to wrap.
5773         * config/rs6000/aix-stdint.h:  New file.
5774
5775 2009-04-08  Richard Guenther  <rguenther@suse.de>
5776
5777         PR middle-end/36291
5778         * tree-dfa.c (add_referenced_var): Do not recurse into
5779         global initializers.
5780         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5781         exposed variables.
5782         (fold_const_aggregate_ref): Likewise.
5783
5784 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
5785
5786         * recog.c (ordered_comparison_operator): New.
5787         * gensupport.c (std_preds): Add it.
5788         * doc/md.texi (Machine-Independent Predicates): Document it.
5789
5790 2009-04-08  Jan Hubicka  <jh@suse.cz>
5791
5792         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5793         * function.h (rtl_eh): Remove exception_handler_label_map.
5794         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5795         remove_exception_handler_label, for_each_eh_label_1): Remove.
5796         (rtl_remove_unreachable_regions): Remove.
5797         (convert_from_eh_region_ranges): Do not remove unreachable regions.
5798         (find_exception_handler_labels): Don't build the hashtable.
5799         (maybe_remove_eh_handler): Remove.
5800         (for_each_eh_label): Rewrite to walk the tree.
5801         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5802         * except.h (maybe_remove_eh_handler): Remove.
5803         * passes.c (init_optimization_passes): Schedule second EH cleanup
5804         before out-of-ssa.
5805         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5806         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5807
5808 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
5809
5810         * genoutput.c (validate_optab_operands): New.
5811         (gen_insn, gen_expand): Call it.
5812
5813         * genflags.c (gen_insn): Detect misused iterators.
5814         (main): Pass line_no to gen_insn, exit with status 1 on error.
5815
5816         * genextract.c (line_no): Make global.
5817         (VEC_safe_set_locstr): Change assertion to error message.
5818         (main): Exit with status 1 on error.
5819
5820 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
5821
5822         PR c/39614
5823         PR c/39673
5824         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5825         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5826         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5827         * c-convert.c (convert): Do not call fold on results of conversion
5828         functions when the result is a C_MAYBE_CONST_EXPR.
5829         * c-parser.c (c_parser_postfix_expression): Do not fold condition
5830         of __builtin_choose_expr.
5831         * c-typeck.c (remove_c_maybe_const_expr): New.
5832         (build_unary_op, build_conditional_expr, build_compound_expr,
5833         build_binary_op, c_objc_common_truthvalue_conversion): Call
5834         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5835         integer operands.
5836
5837 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
5838
5839         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
5840         CODE to produce a new one. Add a prototype to use fold_convert_const
5841
5842 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5843
5844         PR bootstrap/39660
5845         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5846         mix declarations and code.
5847
5848 2009-04-08  Ben Elliston  <bje@au.ibm.com>
5849
5850         * gcc.c: Replace `CC' with `GCC' throughout.
5851
5852 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
5853
5854         * doc/invoke.texi: Document Atom support.
5855
5856 2009-04-07  Jason Merrill  <jason@redhat.com>
5857
5858         PR c++/25185
5859         * c-common.h, c-common.c: Add flag_pretty_templates.
5860         * c-opts.c (c_common_handle_option): Set it.
5861         * c.opt: Add -fno-pretty-templates.
5862         * doc/invoke.texi (C++ Dialect Options): Likewise.
5863
5864 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
5865
5866         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
5867         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5868         (ia64_expand_builtin): Likewise.
5869
5870 2009-04-07  Martin Jambor  <mjambor@suse.cz>
5871
5872         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
5873         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
5874         ADDR_EXPRS are include too.
5875
5876 2009-04-07  Richard Guenther  <rguenther@suse.de>
5877
5878         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
5879         decls are only used if passes as parameters or if they are
5880         local statics and the call is not to a builtin.
5881         (call_may_clobber_ref_p_1): Likewise.
5882
5883 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5884
5885         * expr.c (do_store_flag): Remove last argument.  Simplify code
5886         to avoid duplication of tests already done by can_compare_p.
5887         (expand_expr_real_1): Adjust caller.
5888
5889 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5890
5891         * optabs.c (can_compare_p): Test the predicate of a
5892         cbranch and cstore pattern.
5893
5894 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5895
5896         * expr.c (convert_move): Use emit_store_flag instead of
5897         "emulating" it.
5898
5899 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
5900
5901         * config/i386/i386.c (ix86_compare_emitted): Remove.
5902         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
5903         ix86_compare_op0 like ix86_compare_emitted used to be handled.
5904         * config/i386/i386.h (ix86_compare_emitted): Remove.
5905         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
5906         instead of ix86_compare_emitted.
5907         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
5908
5909 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
5910
5911         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
5912         Add t-sysroot-suffix to tmake_file.
5913         * config/print-sysroot-suffix.sh: New file.
5914         * config/t-sysroot-suffix: New file.
5915
5916 2009-04-07  Ben Elliston  <bje@au.ibm.com>
5917
5918         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
5919         as the latter produces a warning when the target does not support
5920         infinity.
5921
5922 2009-04-07  Ben Elliston  <bje@au.ibm.com>
5923
5924         * dfp.c: Replace type punning assignments with memcpy throughout.
5925         * Makefile.in (dfp.o-warn): Remove.
5926
5927 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
5928
5929         PR target/39634
5930         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
5931         Include soft-fp/t-softfp after rs6000/t-linux64.
5932
5933 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
5934
5935         * stor-layout.c (set_sizetype): Use the full precision of their
5936         machine mode for bitsize types.
5937
5938 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
5939
5940         * config/i386/i386.md: Revert 2 accidental checkins.
5941
5942 2009-04-06  Joey Ye  <joey.ye@intel.com>
5943             Xuepeng Guo  <xuepeng.guo@intel.com>
5944             H.J. Lu  <hongjiu.lu@intel.com>
5945
5946         Atom pipeline model, tuning and insn selection.
5947         * config.gcc (atom): Add atom config options and target.
5948
5949         * config/i386/atom.md: New.
5950
5951         * config/i386/i386.c (atom_cost): New cost.
5952         (m_ATOM): New macro flag.
5953         (initial_ix86_tune_features): Set m_ATOM.
5954         (x86_accumulate_outgoing_args): Likewise.
5955         (x86_arch_always_fancy_math_387): Likewise.
5956         (processor_target): Add Atom cost.
5957         (cpu_names): Add Atom cpu name.
5958         (override_options): Set Atom ISA.
5959         (ix86_issue_rate): New case PROCESSOR_ATOM.
5960         (ix86_adjust_cost): Likewise.
5961
5962         * config/i386/i386.h (TARGET_ATOM): New target macro.
5963         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5964         (TARGET_OPT_AGU): New target option.
5965         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5966         (processor_type): Add PROCESSOR_ATOM.
5967
5968         * config/i386/i386.md (cpu): Add new value "atom".
5969         (use_carry, movu): New attr.
5970         (atom.md): Include atom.md.
5971         (adddi3_carry_rex64): Set attr "use_carry".
5972         (addqi3_carry): Likewise.
5973         (addhi3_carry): Likewise.
5974         (addsi3_carry): Likewise.
5975         (*addsi3_carry_zext): Likewise.
5976         (subdi3_carry_rex64): Likewise.
5977         (subqi3_carry): Likewise.
5978         (subhi3_carry): Likewise.
5979         (subsi3_carry): Likewise.
5980         (x86_movdicc_0_m1_rex64): Likewise.
5981         (*x86_movdicc_0_m1_se): Likewise.
5982         (x86_movsicc_0_m1): Likewise.
5983         (*x86_movsicc_0_m1_se): Likewise.
5984         (*adddi_1_rex64): Emit add insn as much as possible.
5985         (*addsi_1): Likewise.
5986         (return_internal): Set atom_unit.
5987         (return_internal_long): Likewise.
5988         (return_pop_internal): Likewise.
5989         (*rcpsf2_sse): Set atom_sse_attr attr.
5990         (*qrt<mode>2_sse): Likewise.
5991         (*prefetch_sse): Likewise.
5992
5993         * config/i386/i386-c.c (ix86_target_macros_internal): New case
5994         PROCESSOR_ATOM.
5995         (ix86_target_macros_internal): Likewise.
5996
5997         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
5998         (*prefetch_sse_rex): Likewise.
5999         (sse_rcpv4sf2): Likewise.
6000         (sse_vmrcpv4sf2): Likewise.
6001         (sse_sqrtv4sf2): Likewise.
6002         (<sse>_vmsqrt<mode>2): Likewise.
6003         (sse_ldmxcsr): Likewise.
6004         (sse_stmxcsr): Likewise.
6005         (*sse_sfence): Likewise.
6006         (sse2_clflush): Likewise.
6007         (*sse2_mfence): Likewise.
6008         (*sse2_lfence): Likewise.
6009         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
6010         (<sse>_movup<ssemodesuffixf2c>): Likewise.
6011         (avx_movdqu<avxmodesuffix>): Likewise.
6012         (avx_lddqu<avxmodesuffix>): Likewise.
6013         (sse2_movntv2di): Change attr "type" to "ssemov".
6014         (sse2_movntsi): Likewise.
6015         (rsqrtv8sf2): Change attr "type" to "sseadd".
6016         (sse3_addsubv2df3): Set attr "atom_unit".
6017         (sse3_h<plusminus_insn>v4sf3): Likewise.
6018         (*sse2_pmaddwd): Likewise.
6019         (*vec_extractv2di_1_rex64): Likewise.
6020         (*vec_extractv2di_1_avx): Likewise.
6021         (sse2_psadbw): Likewise.
6022         (ssse3_phaddwv8hi3): Likewise.
6023         (ssse3_phaddwv4hi3): Likewise.
6024         (ssse3_phadddv4si3): Likewise.
6025         (ssse3_phadddv2si3): Likewise.
6026         (ssse3_phaddswv8hi3): Likewise.
6027         (ssse3_phaddswv4hi3): Likewise.
6028         (ssse3_phsubwv8hi3): Likewise.
6029         (ssse3_phsubwv4hi3): Likewise.
6030         (ssse3_phsubdv4si3): Likewise.
6031         (ssse3_phsubdv2si3): Likewise.
6032         (ssse3_phsubswv8hi3): Likewise.
6033         (ssse3_phsubswv4hi3): Likewise.
6034         (ssse3_pmaddubsw128): Likewise.
6035         (sse3_pmaddubsw: Likewise.
6036         (ssse3_palignrti): Likewise.
6037         (ssse3_palignrdi): Likewise.
6038
6039 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
6040
6041         * doc/install.texi (Specific): Fix two cross-references to MinGW.
6042
6043 2009-04-06  Richard Guenther  <rguenther@suse.de>
6044
6045         PR tree-optimization/28868
6046         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6047         of which PHI results we inserted.
6048         (insert_into_preds_of_block): Record inserted PHIs.
6049         (eliminate): Eliminate redundant PHI nodes.
6050         (init_pre): Init inserted_phi_names.
6051
6052 2009-04-06  Richard Guenther  <rguenther@suse.de>
6053
6054         PR tree-optimization/39643
6055         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6056         IMAGPART_EXPRs of complex constants.
6057         (execute_fold_all_builtins): If we folded a call queue
6058         TODO_update_address_taken.
6059
6060 2009-04-06  Jan Hubicka  <jh@suse.cz>
6061
6062         PR middle-end/39659
6063         * except.c (remove_unreachable_regions): Propagate may_contain_throw
6064         flag.
6065
6066 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
6067
6068         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6069         delay slot.
6070         (ic_invalidate_array): Likewise.
6071
6072 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6073
6074         * calls.c (emit_library_call_value_1): Fix a problem with parameter
6075         alignment for library calls.
6076
6077 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
6078
6079         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
6080         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
6081         * config/i386/mingw-stdint.h:  New file.
6082
6083 2009-04-05  Richard Guenther  <rguenther@suse.de>
6084
6085         PR tree-optimization/39648
6086         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6087         our &A vs. &A[0] IL deficiencies.
6088
6089 2009-04-04  Jan Hubicka  <jh@suse.cz>
6090
6091         * except.c (sjlj_find_directly_reachable_regions): Be ready for
6092         removed toplevel regions.
6093         (sjlj_mark_call_sites): Likewise.
6094
6095 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
6096
6097         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
6098         (cygwin tm clause use_gcc_stdint):  Set to wrap.
6099         * config/i386/cygwin-stdint.h:  New file.
6100
6101 2009-04-04  Richard Guenther  <rguenther@suse.de>
6102
6103         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6104         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6105         single-argument PHIs if we are in loop-closed SSA form.
6106         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6107         for the pre-condition.
6108         (slpeel_tree_peel_loop_to_edge): Likewise.
6109         (vect_build_loop_niters): Take an optional sequence to append stmts.
6110         (vect_generate_tmps_on_preheader): Likewise.
6111         (vect_do_peeling_for_loop_bound): Take extra guards for the
6112         pre-condition.
6113         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
6114         the cost model check.
6115         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
6116         guards if we are going to peel.  Do not apply versioning in that case.
6117         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6118         (vect_do_peeling_for_loop_bound): Likewise.
6119         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6120         loop bound only record extra pre-conditions, do not apply loop
6121         versioning.
6122
6123 2009-04-04  Richard Guenther  <rguenther@suse.de>
6124
6125         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6126         renaming code.
6127
6128 2009-04-04  Jan Hubicka  <jh@suse.cz>
6129
6130         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6131         last_basic_block for size of bb->index indexed array.
6132         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6133         compute_out, link_btr_uses, build_btr_def_use_webs,
6134         build_btr_def_use_webs, migrate_btr_defs): Likewise.
6135
6136 2009-04-04  Jan Hubicka  <jh@suse.cz>
6137
6138         * except.c (remove_eh_handler_and_replace): Break out from ...
6139         (remove_eh_handler): ... here.
6140         (bring_to_root): New function.
6141         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6142         handled ones, bring others to root of tree.
6143
6144 2009-04-04  Jan Hubicka  <jh@suse.cz>
6145
6146         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6147         (all_phis_safe_to_merge): New function.
6148         (update_info): New structure.
6149         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6150         (cleanup_empty_eh): Update SSA if possible.
6151
6152 2009-04-04  Richard Guenther  <rguenther@suse.de>
6153
6154         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6155         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6156         (append_vuse): Likewise.
6157
6158 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
6159
6160         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6161         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6162         instead of REG_UNSAVED for DW_CFA_undefined.
6163         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6164         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6165         outermost frame.
6166
6167 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
6168
6169         PR target/39501
6170         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6171         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6172         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6173
6174 2009-04-04  Richard Guenther  <rguenther@suse.de>
6175
6176         PR tree-optimization/8781
6177         PR tree-optimization/37892
6178         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6179         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6180         (valueize_refs): Call it for *& valueizations.
6181         (shared_reference_ops_from_ref): Rename to ...
6182         (valueize_shared_reference_ops_from_ref): ... this and valueize.
6183         (shared_reference_ops_from_call): Rename to ...
6184         (valueize_shared_reference_ops_from_call): ... this and valueize.
6185         (vn_reference_lookup): Update.
6186         (visit_reference_op_call): Likewise.
6187         * tree-ssa-pre.c (phi_translate_1): Fold *&.
6188         (eliminate): Value-replace the call address in call statements.
6189
6190 2009-04-04  Richard Guenther  <rguenther@suse.de>
6191
6192         PR tree-optimization/39636
6193         * tree-ssa-forwprop.c
6194         (forward_propagate_addr_into_variable_array_index): Check for
6195         GIMPLE_ASSIGN before accessing the rhs code.
6196
6197 2009-04-03  Jason Merrill  <jason@redhat.com>
6198
6199         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6200
6201 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
6202
6203         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6204         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6205         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6206         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6207         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6208         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6209         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6210         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6211         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6212         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6213         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6214         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6215         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6216         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6217         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6218         Use fr_reg_or_fp01_operand instead of fr_register_operand
6219
6220         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6221         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6222         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6223
6224 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
6225
6226         PR rtl-optimization/39607
6227         PR rtl-optimization/39631
6228
6229         Revert:
6230
6231         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6232         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6233         instead of DF_LR_OUT.
6234         * ira-lives.c (process_bb_node_lives): Ditto.
6235         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6236         instead of DF_LR_{OUT,IN}.
6237         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6238         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6239
6240 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
6241
6242         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6243         (execute_lower_omp): Always run but take the short way out if -fopenmp
6244         is not given.
6245         (gate_lower_omp): Remove, forcing the pass manager to always run the
6246         pass and always set PROP_gimple_lomp.
6247         (pass_lower_omp): Remove gate function.
6248         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6249         PROP_trees.  Instead, require it.
6250         * ipa-cp.c (pass_ipa_cp): Likewise.
6251         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6252         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6253         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6254         and PROP_gimple_leh.
6255
6256 2009-04-03  Richard Guenther  <rguenther@suse.de>
6257
6258         PR middle-end/13146
6259         PR tree-optimization/23940
6260         PR tree-optimization/33237
6261         PR middle-end/33974
6262         PR middle-end/34093
6263         PR tree-optimization/36201
6264         PR tree-optimization/36230
6265         PR tree-optimization/38049
6266         PR tree-optimization/38207
6267         PR tree-optimization/38230
6268         PR tree-optimization/38301
6269         PR tree-optimization/38585
6270         PR middle-end/38895
6271         PR tree-optimization/38985
6272         PR tree-optimization/39299
6273         * tree-ssa-structalias.h: Remove.
6274         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6275         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6276         (struct vuse_element_d): Remove.
6277         (struct vuse_vec_d): Likewise.
6278         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6279         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6280         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6281         VUSE_ELEMENT_VAR): Likewise.
6282         (struct voptype_d): Likewise.
6283         (NUM_VOP_FREE_BUCKETS): Likewise.
6284         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6285         (struct stmt_operands_d): Remove.
6286         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6287         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6288         VDEF_NUM, VDEF_VECT): Likewise.
6289         (copy_virtual_operands): Remove.
6290         (operand_build_cmp): Likewise.
6291         (create_ssa_artificial_load_stmt): Likewise.
6292         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6293         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6294         vuse_index and mayuse_index members.  Pack and move done and iter_type
6295         members to the front.
6296         (SSA_OP_VMAYUSE): Remove.
6297         (SSA_OP_VIRTUAL_USES): Adjust.
6298         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6299         (unlink_stmt_vdef): Declare.
6300         (add_to_addressable_set): Remove.
6301         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6302         (vrp_visit_stmt): Likewise.
6303         * doc/tree-ssa.texi (Alias analysis): Update.
6304         * doc/invoke.texi (max-aliased-vops): Remove docs.
6305         (avg-aliased-vops): Likewise.
6306         * tree-into-ssa.c (syms_to_rename): Remove.
6307         (need_to_update_vops_p): Likewise.
6308         (need_to_initialize_update_ssa_p): Rename to ...
6309         (update_ssa_initialized_fn): ... this.  Track function we are
6310         initialized for.
6311         (symbol_marked_for_renaming): Simplify.
6312         (add_new_name_mapping): Do not set need_to_update_vops_p.
6313         (dump_currdefs): Use SYMS_TO_RENAME.
6314         (rewrite_update_stmt): Always walk all uses/defs.
6315         (dump_update_ssa): Adjust.
6316         (init_update_ssa): Take function argument.  Track what we are
6317         initialized for.
6318         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6319         (create_new_def_for): Initialize for cfun, assert we are initialized
6320         for cfun.
6321         (mark_sym_for_renaming): Simplify.
6322         (mark_set_for_renaming): Do not initialize update-ssa.
6323         (need_ssa_update_p): Simplify.  Take function argument.
6324         (name_mappings_registered_p): Assert we ask for the correct function.
6325         (name_registered_for_update_p): Likewise.
6326         (ssa_names_to_replace): Likewise.
6327         (release_ssa_name_after_update_ssa): Likewise.
6328         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
6329         (dump_decl_set): Do not print a newline.
6330         (debug_decl_set): Do it here.
6331         (dump_update_ssa): And here.
6332         * tree-ssa-loop-im.c (move_computations): Adjust.
6333         (movement_possibility): Likewise.
6334         (determine_max_movement): Likewise.
6335         (gather_mem_refs_stmt): Likewise.
6336         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6337         or NAME_MEMORY_TAG.
6338         * tree-complex.c (update_all_vops): Remove.
6339         (expand_complex_move): Adjust.
6340         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6341         Simplify test for memory referencing statement.  Exclude
6342         non-invariant ADDR_EXPRs.
6343         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6344         * tree-loop-distribution.c (generate_memset_zero): Adjust.
6345         (rdg_flag_uses): Likewise.
6346         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6347         related code.
6348         (tree_optimize_tail_calls_1): Also split the
6349         edge from the entry block if we have degenerate PHI nodes in
6350         the first basic block.
6351         * tree.c (init_ttree): Remove memory-tag related code.
6352         (tree_code_size): Likewise.
6353         (tree_node_structure): Likewise.
6354         (build7_stat): Re-write to be build6_stat.
6355         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6356         (SSA_VAR_P): Adjust.
6357         (struct tree_memory_tag): Remove.
6358         (struct tree_memory_partition_tag): Likewise.
6359         (union tree_node): Adjust.
6360         (build7): Re-write to be build6.
6361         * tree-pass.h (pass_reset_cc_flags): Remove.
6362         (TODO_update_address_taken): New flag.
6363         (pass_simple_dse): Remove.
6364         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6365         * params.h (MAX_ALIASED_VOPS): Remove.
6366         (AVG_ALIASED_VOPS): Likewise.
6367         * omp-low.c (expand_omp_taskreg): Update SSA form.
6368         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6369         aliases the lhs in a copy stmt.
6370         * tree-ssa-dse.c (struct address_walk_data): Remove.
6371         (memory_ssa_name_same): Likewise.
6372         (memory_address_same): Likewise.
6373         (get_kill_of_stmt_lhs): Likewise.
6374         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
6375         unused stores.  Look through PHI nodes into post-dominated regions.
6376         (dse_optimize_stmt): Simplify.  Properly remove stores.
6377         (tree_ssa_dse): Compute dominators.
6378         (execute_simple_dse): Remove.
6379         (pass_simple_dse): Likewise.
6380         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6381         gimple_loaded_syms and gimple_stored_syms computation.
6382         * toplev.c (dump_memory_report): Dump alias and pta stats.
6383         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6384         (vn_reference_eq): Likewise.
6385         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6386         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6387         valueize_vuses): Remove.
6388         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
6389         (get_def_ref_stmt_vuse): ... this.
6390         (vn_reference_lookup_2): New function.
6391         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6392         walking equivalent vuses.  Simplify.
6393         (vn_reference_lookup): Likewise.
6394         (vn_reference_insert): Likewise.
6395         (vn_reference_insert_pieces): Likewise.
6396         (visit_reference_op_call): Simplify.
6397         (visit_reference_op_load): Likewise.
6398         (visit_reference_op_store): Likewise.
6399         (init_scc_vn): Remove shared_lookup_vuses initialization.
6400         (free_scc_vn): Remove shared_lookup_vuses freeing.
6401         (sort_vuses, sort_vuses_heap): Remove.
6402         (get_ref_from_reference_ops): Export.
6403         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6404         vector with single vuse pointer.
6405         (vn_reference_lookup_pieces, vn_reference_lookup,
6406         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6407         (shared_vuses_from_stmt): Remove.
6408         (get_ref_from_reference_ops): Declare.
6409         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6410         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6411         memory-tag related code.
6412         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6413         (likely_value): Add comment, skip static-chain of call statements.
6414         (surely_varying_stmt_p): Adjust.
6415         (gimplify_and_update_call_from_tree): Likewise.
6416         (execute_fold_all_builtins): Do not rebuild alias info.
6417         (gimplify_and_update_call_from_tree): Properly update VOPs.
6418         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6419         (copy_ref_info): Remove memory-tag related code.
6420         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6421         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6422         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6423         computation.
6424         * tree-ssa-dom.c (gimple_p): Remove typedef.
6425         (eliminate_redundant_computations): Adjust.
6426         (record_equivalences_from_stmt): Likewise.
6427         (avail_expr_hash): Likewise.
6428         (avail_expr_eq): Likewise.
6429         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
6430         (stmt_makes_single_load): Likewise.
6431         (stmt_makes_single_store): Likewise.
6432         * tree-ssa-alias.c: Rewrite completely.
6433         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6434         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6435         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6436         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6437         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6438         Remove public functions.
6439         (pass_reset_cc_flags): Remove.
6440         (pass_build_alias): Move ...
6441         * tree-ssa-structalias.c (pass_build_alias): ... here.
6442         * tree-ssa-alias.c (may_be_aliased): Move ...
6443         * tree-flow-inline.h (may_be_aliased): ... here.
6444         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6445         count_uses_and_derefs): Move ...
6446         * gimple.c: ... here.
6447         * gimple.h (count_uses_and_derefs): Declare.
6448         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6449         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6450         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6451         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6452         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6453         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6454         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6455         New functions.
6456         * tree-dfa.c (refs_may_alias_p): Move ...
6457         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
6458         * tree-ssa-alias.h: New file.
6459         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6460         (statement_sink_location): Likewise.
6461         * opts.c (decode_options): Do not adjust max-aliased-vops or
6462         avg-aliased-vops values.
6463         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6464         (TV_CALL_CLOBBER): Likewise.
6465         (TV_FLOW_SENSITIVE): Likewise.
6466         (TV_FLOW_INSENSITIVE): Likewise.
6467         (TV_MEMORY_PARTITIONING): Likewise.
6468         (TV_ALIAS_STMT_WALK): New timevar.
6469         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6470         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6471         (get_address_description): Remove memory-tag related code.
6472         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6473         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6474         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6475         and immediate uses in statements.  Document.
6476         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6477         (dump_symbols): Remove.
6478         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6479         * alias.c (get_deref_alias_set): New function split out from ...
6480         (get_alias_set): ... here.
6481         * alias.h (get_deref_alias_set): Declare.
6482         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6483         type parameter.  Remove restrict pointer handling.  Create a
6484         ref-all pointer in case type-based alias sets do not conflict.
6485         (vect_analyze_data_refs): Remove SMT related code.
6486         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6487         (vectorizable_load): Likewise.
6488         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6489         (DR_SYMBOL_TAG, DR_VOPS): Remove.
6490         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6491         Ignore vops and SMTs.
6492         (dr_analyze_alias): Likewise..
6493         (free_data_ref): Likewise.
6494         (create_data_ref): Likewise.
6495         (analyze_all_data_dependences): Likewise.
6496         (get_references_in_stmt): Adjust.
6497         * tree-flow-inline.h (gimple_aliases_computed_p,
6498         gimple_addressable_vars, gimple_call_clobbered_vars,
6499         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6500         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6501         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6502         gimple_mem_ref_stats): Remove.
6503         (gimple_vop): New function.
6504         (op_iter_next_use): Remove vuses and mayuses cases.
6505         (op_iter_next_def): Remove vdefs case.
6506         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6507         (clear_and_done_ssa_iter): Do not set removed fields.
6508         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
6509         Assert we are not iterating over vuses or vdefs if not also
6510         iterating over uses or defs.
6511         (op_iter_init_use): Likewise.
6512         (op_iter_init_def): Likewise.
6513         (op_iter_next_vdef): Remove.
6514         (op_iter_next_mustdef): Likewise.
6515         (op_iter_init_vdef): Likewise.
6516         (compare_ssa_operands_equal): Likewise.
6517         (link_use_stmts_after): Handle vuse operand.
6518         (is_call_used): Use is_call_clobbered.
6519         (is_call_clobbered): Global variables are always call clobbered,
6520         query the call-clobbers bitmap.
6521         (mark_call_clobbered): Ignore global variables.
6522         (clear_call_clobbered): Likewise.
6523         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6524         virtual operands sanity check.
6525         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6526         Remove.
6527         (TARGET_MEM_REF): Remove TMR_TAG operand.
6528         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6529         Remove call-clobber related code.
6530         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
6531         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6532         partitions or escape reason.
6533         (get_single_def_stmt, get_single_def_stmt_from_phi,
6534         get_single_def_stmt_with_phi): Remove.
6535         (dump_referenced_vars): Tidy.
6536         (get_ref_base_and_extent): Allow bare decls.
6537         (collect_dfa_stats): Adjust.
6538         * graphite.c (rename_variables_in_stmt): Adjust.
6539         (graphite_copy_stmts_from_block): Likewise.
6540         (translate_clast): Likewise.
6541         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6542         (EXPR_DIES): New.
6543         (translate_vuse_through_block): Use the oracle.
6544         (phi_translate_1): Adjust.
6545         (value_dies_in_block_x): Use the oracle.  Cache the outcome
6546         in EXPR_DIES.
6547         (valid_in_sets): Check if the VUSE for
6548         a REFERENCE is available.
6549         (eliminate): Do not remove stmts during elimination,
6550         instead queue and remove them afterwards.
6551         (do_pre): Do not rebuild alias info.
6552         (pass_pre): Run TODO_rebuild_alias before PRE.
6553         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6554         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6555         (mark_all_v_defs_stmt): Remove.
6556         (mark_all_v_defs_seq): Adjust.
6557         (sra_replace): Likewise.
6558         (scalarize_use): Likewise.
6559         (scalarize_copy): Likewise.
6560         (scalarize_init): Likewise.
6561         (scalarize_ldst): Likewise.
6562         (todoflags): Remove.
6563         (tree_sra): Do not rebuild alias info.
6564         (tree_sra_early): Adjust.
6565         (pass_sra): Run TODO_update_address_taken before SRA.
6566         * tree-predcom.c (set_alias_info): Remove.
6567         (prepare_initializers_chain): Do not call it.
6568         (mark_virtual_ops_for_renaming): Adjust.
6569         (mark_virtual_ops_for_renaming_list): Remove.
6570         (initialize_root_vars): Adjust.
6571         (initialize_root_vars_lm): Likewise.
6572         (prepare_initializers_chain): Likewise.
6573         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6574         (may_propagate_copy_into_stmt): Likewise.
6575         (merge_alias_info): Do nothing for now.
6576         (propagate_tree_value_into_stmt): Adjust.
6577         (stmt_may_generate_copy): Likewise.
6578         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6579         not mark symbols for renaming.
6580         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6581         with the same statement, make sure to update the new pointed-to one.
6582         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6583         call statements, do not mark symbols for renaming.
6584         (mark_operand_necessary): Dump something.
6585         (ref_may_be_aliased): New function.
6586         (mark_aliased_reaching_defs_necessary_1): New helper function.
6587         (mark_aliased_reaching_defs_necessary): Likewise.
6588         (mark_all_reaching_defs_necessary_1): Likewise.
6589         (mark_all_reaching_defs_necessary): Likewise.
6590         (propagate_necessity): Do not process virtual PHIs.  For
6591         non-aliased loads mark all reaching definitions as necessary.
6592         For aliased loads and stores mark the immediate dominating
6593         aliased clobbers as necessary.
6594         (visited): New global static.
6595         (perform_tree_ssa_dce): Free visited bitmap after propagating
6596         necessity.
6597         (remove_dead_phis): Perform simple dead virtual PHI removal.
6598         (remove_dead_stmt): Properly unlink virtual operands when
6599         removing stores.
6600         (eliminate_unnecessary_stmts): Schedule PHI removal after
6601         stmt removal.
6602         * tree-ssa-ter.c (is_replaceable_p): Adjust.
6603         (process_replaceable): Likewise.
6604         (find_replaceable_in_bb): Likewise.
6605         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6606         based on the single gimple vop.
6607         (verify_flow_insensitive_alias_info): Remove.
6608         (verify_flow_sensitive_alias_info): Likewise.
6609         (verify_call_clobbering): Likewise.
6610         (verify_memory_partitions): Likewise.
6611         (verify_alias_info): Likewise.
6612         (verify_ssa): Adjust..
6613         (execute_update_addresses_taken): Export.  Update SSA
6614         manually.  Optimize only when optimizing.  Use a local bitmap.
6615         (pass_update_address_taken): Remove TODO_update_ssa, add
6616         TODO_dump_func.
6617         (pass_update_address_taken): Just use TODO_update_address_taken.
6618         (init_tree_ssa): Do not initialize addressable_vars.
6619         (verify_ssa): Verify new VUSE / VDEF properties.
6620         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6621         Do not call verify_alias_info.
6622         (delete_tree_ssa): Clear the VUSE, VDEF operands.
6623         Do not free the loaded and stored syms bitmaps.  Reset the escaped
6624         and callused solutions.  Do not free addressable_vars.
6625         Remove memory-tag related code.
6626         (warn_uninitialized_var): Aliases are always available.
6627         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6628         * lambda-code.c (can_put_in_inner_loop): Adjust.
6629         (can_put_after_inner_loop): Likewise.
6630         (perfect_nestify): Likewise.
6631         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6632         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6633         (vectorizable_conversion): Do not mark symbols for renaming.
6634         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6635         (expand_call_inline): Unlink the calls virtual operands before
6636         replacing it.
6637         (tree_function_versioning): Do not call update_ssa if we are not
6638         updating clones.  Simplify.
6639         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6640         (propagate_with_phi): Likewise..
6641         * tree-outof-ssa.c (create_temp): Remove memory tag and call
6642         clobber code.  Assert we are not aliased or global.
6643         * tree-flow.h: Include tree-ssa-alias.h
6644         (enum escape_type): Remove.
6645         (struct mem_sym_stats_d): Likewise.
6646         (struct mem_ref_stats_d): Likewise.
6647         (struct gimple_df): Add vop member.  Remove global_var,
6648         call_clobbered_vars, call_used_vars, addressable_vars,
6649         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
6650         escaped and callused members.
6651         (struct ptr_info_def): Remove all members, add points-to solution
6652         member pt.
6653         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6654         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6655         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6656         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6657         (tree-ssa-alias.o): Likewise.
6658         (toplev.o): Add tree-ssa-alias.h
6659         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6660         * gimple.c (gimple_set_bb): Fix off-by-one error.
6661         (is_gimple_reg): Do not handle memory tags.
6662         (gimple_copy): Also copy virtual operands.
6663         Delay updating the statement.  Do not reset loaded and stored syms.
6664         (gimple_set_stored_syms): Remove.
6665         (gimple_set_loaded_syms): Likewise.
6666         (gimple_call_copy_skip_args): Copy the virtual operands
6667         and mark the new statement modified.
6668         * tree-ssa-structalias.c (may_alias_p): Remove.
6669         (set_uids_in_ptset): Take the alias set to prune with as
6670         parameter.  Fold in the alias test of may_alias_p.
6671         (compute_points_to_sets): Compute whether a ptr is dereferenced
6672         in a local sbitmap.
6673         (process_constraint): Deal with &ANYTHING on the lhs, reject all
6674         other ADDRESSOF constraints on the lhs.
6675         (get_constraint_for_component_ref): Assert that we don't get
6676         ADDRESSOF constraints from the base of the reference.
6677         Properly generate UNKNOWN_OFFSET for DEREF if needed.
6678         (struct variable_info): Remove collapsed_to member.
6679         (get_varinfo_fc): Remove.
6680         (new_var_info): Do not set collapsed_to.
6681         (dump_constraint): Do not follow cycles.
6682         (dump_constraint_graph): Likewise.
6683         (build_pred_graph): Likewise.
6684         (build_succ_graph): Likewise.
6685         (rewrite_constraints): Likewise.
6686         (do_simple_structure_copy): Remove.
6687         (do_rhs_deref_structure_copy): Remove.
6688         (do_lhs_deref_structure_copy): Remove.
6689         (collapse_rest_of_var): Remove.
6690         (do_structure_copy): Re-implement.
6691         (pta_stats): New global variable.
6692         (dump_pta_stats): New function.
6693         (struct constraint_expr): Make offset signed.
6694         (UNKNOWN_OFFSET): Define special value.
6695         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6696         (solution_set_expand): New helper function split out from ...
6697         (do_sd_constraint): ... here.
6698         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
6699         (do_ds_constraint): Likewise.
6700         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
6701         and CALLUSED = *CALLUSED.
6702         (set_union_with_increment): Make inc argument signed.
6703         (type_safe): Remove.
6704         (get_constraint_for_ptr_offset): Handle unknown and negative
6705         constant offsets.
6706         (first_vi_for_offset): Handle offsets before start.  Bail
6707         out early for offsets beyond the variable extent.
6708         (first_or_preceding_vi_for_offset): New function.
6709         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6710         Together with ESCAPED = *ESCAPED this properly computes reachability.
6711         (find_what_var_points_to): New function.
6712         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6713         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6714         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6715         pt_solutions_intersect): New functions.
6716         (compute_call_used_vars): Remove.
6717         (compute_may_aliases): New main entry into PTA computation.
6718         * gimple.h (gimple_p): New typedef.
6719         (struct gimple_statement_base): Remove references_memory_p.
6720         (struct gimple_statement_with_memory_ops_base): Remove
6721         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
6722         members.
6723         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6724         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6725         gimple_set_references_memory): Remove.
6726         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6727         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6728         New functions.
6729         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6730         (verify_expr): Allow RESULT_DECL.
6731         (gimple_duplicate_bb): Do not copy virtual operands.
6732         (gimple_duplicate_sese_region): Adjust.
6733         (gimple_duplicate_sese_tail): Likewise.
6734         (mark_virtual_ops_in_region): Remove.
6735         (move_sese_region_to_fn): Do not call it.
6736         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6737         and pass_simple_dse.
6738         (execute_function_todo): Handle TODO_update_address_taken,
6739         call execute_update_addresses_taken for TODO_rebuild_alias.
6740         (execute_todo): Adjust.
6741         (execute_one_pass): Init dump files early.
6742         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6743         call-clobbered.
6744         (create_general_new_stmt): Clear vops.
6745         * tree-ssa-reassoc.c (get_rank): Adjust.
6746         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6747         symbols for renaming.
6748         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6749         (PARAM_AVG_ALIASED_VOPS): Likewise.
6750         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6751         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
6752         * tree-ssa-operands.c: Simplify for new virtual operand representation.
6753         (operand_build_cmp, copy_virtual_operands,
6754         create_ssa_artificial_load_stmt, add_to_addressable_set,
6755         gimple_add_to_addresses_taken): Remove public functions.
6756         (unlink_stmt_vdef): New function.
6757
6758 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
6759
6760         * config.gcc (powerpc-*-linux*): Merge variants.
6761
6762 2009-04-02  Chao-ying Fu  <fu@mips.com>
6763             James Grosbach  <james.grosbach@microchip.com>
6764
6765         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6766         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6767         cop0_sp_offset.
6768         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6769         keep_interrupts_masked_p, use_debug_exception_return_p.
6770         (mips_attribute_table): Add interrupt, use_shadow_register_set,
6771         keep_interrupts_masked, use_debug_exception_return.
6772         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6773         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6774         New functions.
6775         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6776         (mips_print_operand): Process COP0 registers to print $0 .. $31
6777         correctly for GAS to process.
6778         (mips_interrupt_extra_call_saved_reg_p): New function.
6779         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6780         extra registers.
6781         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6782         (mips_compute_frame_info): Add supports for interrupt context that
6783         includes doubleword accumulators and COP0 registers.
6784         (mips_for_each_saved_acc): New function.
6785         (mips_for_each_saved_gpr_and_fpr): Change the function name from
6786         mips_for_each_saved_reg.
6787         (mips_save_reg): Save accumulators.
6788         (mips_kernel_reg_p): A new for_each_rtx callback.
6789         (mips_expand_prologue): Support interrupt handlers.
6790         (mips_restore_reg): Restore accumulators.
6791         (mips_expand_epilogue): Support interrupt handlers.
6792         (mips_can_use_return_insn): Return false for interrupt handlers.
6793         (mips_epilogue_uses): New function.
6794         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6795         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6796         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6797         cop0_move): New instructions.
6798         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6799         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6800         defines.
6801         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6802         New defines.
6803         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6804         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6805         interrupt handlers, we use K0 as the temporary register.
6806         (EPILOGUE_USES): Change to a function call.
6807         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6808         handlers, we use K0 as the temporary register.
6809
6810         * doc/extend.texi (Function Attributes): Document interrupt,
6811         use_shadow_register_set, keep_interrupts_masked,
6812         use_debug_exception_return for MIPS attributes.
6813
6814 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
6815
6816         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6817         Remove a number of t-files from tmake_file.
6818         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6819         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6820         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6821         target_prototype, not TARGET_PROTOTYPE.
6822         (LINK_OS_GNU_SPEC): Define.
6823         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6824         and darwin-ldoubdle.c.
6825
6826 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6827
6828         PR driver/39293
6829         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6830         (cpp_options): Ditto.
6831         (default_compilers): Ditto.
6832         (display_help): Ditto.
6833         (process_command): Ditto.
6834         (do_spec_1): Ditto.
6835         (set_input): Use lbasename instead of duplicate code.
6836         (save_temps_prefix): New static for -save-temps=obj.
6837         (save_temps_length): Ditto.
6838
6839         * doc/invoke.texi (-save-temps=obj): Document new variant to
6840         -save-temps switch.
6841
6842 2009-04-02  Jeff Law  <law@redhat.com>
6843
6844         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6845         variable.
6846
6847 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6848
6849         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6850         * configure: Regenerated.
6851
6852 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6853
6854         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
6855         share the argument list.
6856
6857 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6858
6859         Merge
6860
6861         2009-02-12  Diego Novillo  <dnovillo@google.com>
6862
6863         * varpool.c (debug_varpool): New.
6864         * cgraph.h (debug_varpool): Declare.
6865
6866 2009-04-02  Jan Hubicka  <jh@suse.cz>
6867
6868         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
6869         pass.
6870
6871 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
6872
6873         * config/i386/i386.c (ix86_abi): Move initialization to ...
6874         (override_options): Here.
6875
6876 2009-04-02  Christian Bruel  <christian.bruel@st.com>
6877
6878         * config/sh/sh.c (sh_dwarf_register_span): New function.
6879         (TARGET_DWARF_REGISTER_SPAN): Define.
6880         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
6881
6882 2009-04-02  Ira Rosen  <irar@il.ibm.com>
6883
6884         PR tree-optimization/39595
6885         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
6886         interleaved loads group is not  greater than the SLP group size.
6887
6888 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
6889
6890         * builtins.c (is_builtin_name): New.
6891         (called_as_built_in): Use is_builtin_name.
6892         * tree.h (is_builtin_name): New.
6893         * varasm.c (incorporeal_function_p): Use is_builtin_name
6894
6895 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
6896
6897         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
6898
6899 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
6900
6901         PR c++/26693
6902         * c-decl.c (clone_underlying_type): Move this ...
6903         * c-common.c (set_underlying_type): ... here.
6904         Also, make sure the function properly sets TYPE_STUB_DECL() on
6905         the newly created typedef variant type.
6906         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
6907         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
6908         points.
6909
6910 2009-04-02  Richard Guenther  <rguenther@suse.de>
6911
6912         PR tree-optimization/37221
6913         * tree-flow.h (degenerate_phi_result): Declare.
6914         * tree-ssa-dom.c (degenerate_phi_result): Export.
6915         * tree-scalar-evolution.c (analyze_initial_condition): If
6916         the initial condition is defined by a degenerate PHI node
6917         use the degenerate value.
6918
6919 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
6920
6921         PR rtl-optimization/39588
6922         * combine.c (merge_outer_ops): Do not set the constant when this
6923         is not necessary.
6924         (simplify_shift_const_1): Do not modify it either in this case.
6925
6926 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
6927
6928         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
6929         tuning is deprecated if -mtune value is set to an Itanium1 variant.
6930
6931 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
6932
6933         PR c/29027
6934         * c-lex.c (interpret_float): Default (no suffix) is double.
6935
6936 2009-04-1  Xinliang David Li  <davidxl@google.com>
6937
6938         * config/i386/i386.c (legitimate_constant_p): Recognize
6939         all one vector constant.
6940
6941 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6942
6943         * config/vax/vax.c: Add #includes to silence warnings.
6944         Change #include order to silence two warnings.
6945
6946 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6947
6948         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
6949         (ASM_SPEC): Pass -k to the assembler for PIC code.
6950
6951 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6952
6953         * config.gcc: Add vax-*-linux* to the switch.
6954         * config/vax/linux.h: New file. (TARGET_VERSION,
6955         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6956
6957 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6958
6959         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
6960         Use predicate macros instead of GET_CODE() == foo.
6961         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
6962         ashlsi3, rotrsi3, <unnamed>): Likewise.
6963
6964 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6965
6966         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
6967         jbbccihi, jbbccisi): Remova trailing whitespace.
6968         * config/vax/constraints.md: Likewise.
6969         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6970         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6971         * config/vax/predicates.md: Likewise.
6972         * config/vax/vax.c (print_operand_address, vax_output_int_move,
6973         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
6974         * config/vax/vax.h: Likewise.
6975         * config/vax/vax.md (nonlocal_goto): Likewise.
6976
6977 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6978
6979         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
6980         (indirectable_address_p, adjacent_operands_p): Add spaces around
6981         braces.
6982         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
6983
6984 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6985
6986         * config/vax/vax.c (legitimate_constant_address_p,
6987         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
6988         index_term_p, reg_plus_index_p, legitimate_address_p,
6989         vax_mode_dependent_address_p): Update comments to match functions
6990         modified by the recent int->bool conversion.
6991
6992 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
6993
6994         * config/vax/builtins.md: Update copyright message.
6995         * config/vax/constraints.md: Likewise.
6996         * config/vax/netbsd-elf.h: Likewise.
6997         * config/vax/predicates.md: Likewise.
6998         * config/vax/vax-protos.h: Likewise.
6999         * config/vax/vax.c: Likewise.
7000         * config/vax/vax.h: Likewise.
7001         * config/vax/vax.md: Likewise.
7002         * config/vax/vax.opt: Likewise.
7003
7004 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7005
7006         * config/vax/builtins.md (ffssi2, ffssi2_internal,
7007         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
7008         * config/vax/constraints.md (B, R): Likewise.
7009         * config/vax/predicates.md (external_memory_operand,
7010         nonimmediate_addsub_di_operand): Likewise.
7011         * config/vax/vax.c (vax_output_int_add): Likewise.
7012         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
7013         untyped_call): Likewise.
7014
7015 2009-04-01  Matt Thomas  <matt@3am-software.com>
7016
7017         * config/vax/predicates.md: New file.
7018         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
7019         external_const_operand, nonsymbolic_operand, external_memory_operand,
7020         indirect_memory_operand, indexed_memory_operand,
7021         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7022         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7023         predicate.
7024         * config/vax/constraints.md: New file.
7025         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7026         New constraint.
7027         * config/vax/builtins.md: New file.
7028         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7029         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7030         jbbccisi): Define.
7031         * config/vax/vax.opt (mqmath): Add option.
7032         * config/vax/vax.md (isfx): Extend with DI.
7033         (VAXintQH, VAXintQHSD): Define.
7034         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7035         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7036         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7037         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7038         (movdi): Update constraints and use vax_output_int_move().
7039         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7040         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7041         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7042         nonlocal_goto): New.
7043         (mov<mode>): Extend accepted operand types.
7044         (subdi3_old): Rename from subdi3, change update constraints and use
7045         a new implementation.
7046         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
7047         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7048         MOVE_RATIO, CLEAR_RATIO): Define.
7049         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7050         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7051         (PRINT_OPERAND): Redefine using a function instead of inlined code.
7052         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7053         (split_quadword_operands): Make static and really allow variable
7054         splitting.
7055         (print_operand_address): Update for PIC generation.
7056         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7057         indexable_address_p, fixup_mathdi_operand,
7058         vax_expand_addsub_di_operands, adjacent_operands_p): New.
7059         (vax_float_literal, legitimate_constant_p,
7060         indirectable_constant_address_p, index_term_p,
7061         reg_plus_index_p): Return bool instead of int.
7062         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7063         where needed.
7064         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7065         generation.
7066         (vax_output_conditional_branch): Indent.
7067         (legitimate_constant_address_p, indirectable_constant_address_p,
7068         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7069         vax_mode_dependent_address_p): Return bool instead of int, update for
7070         PIC generation.
7071         * config/vax/vax-protos.h (legitimate_constant_address_p,
7072         legitimate_constant_p, legitimate_address_p,
7073         vax_mode_dependent_address_p): Change declaration to bool.
7074         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7075         vax_expand_addsub_di_operands, vax_output_int_subtract,
7076         vax_output_movmemsi): Declare.
7077         (split_quadword_operands, vax_float_literal): Delete declaration.
7078         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7079         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7080         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7081         ASM_OUTPUT_DWARF_PCREL): Define.
7082         (ASM_SPEC): Change definition to allow PIC generation.
7083
7084 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
7085
7086         * doc/sourcebuild.texi: Update front-end requirements.
7087
7088 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7089
7090         PR target/39226
7091         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7092         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7093         (booldi3_internal3): Use boolean_or_operator instead of
7094         boolean_operator.
7095
7096 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
7097
7098         PR c/39605
7099         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7100         declarator whose size is not an integer constant expression but
7101         folds to an integer constant, then treat it as a constant
7102         subsequently.
7103
7104 2009-04-01  Richard Guenther  <rguenther@suse.de>
7105
7106         * fold-const.c (fold_plusminus_mult_expr): Do not fold
7107         i * 4 + 2 to (i * 2 + 1) * 2.
7108
7109 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7110
7111         PR c/37772
7112         * c-parser.c (c_parser_asm_statement): Skip until close paren and
7113         return if c_parser_asm_string_literal returned NULL.
7114
7115 2009-04-01  Nick Clifton  <nickc@redhat.com>
7116
7117         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7118         already defined.
7119         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7120         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
7121         other typedefs to avoid conflicts with libgcc2.c.  Define labels
7122         to gain 16-bit bit-manipulation functions from libgcc2.c and then
7123         include it.
7124         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
7125         to gain 16-bit trapping arithmetic functions from libgcc2.c and
7126         then include it.
7127
7128 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
7129
7130         * varasm.c (default_function_rodata_section): Declare DOT as
7131         const char*.
7132
7133 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
7134             Andrey Galkin  <agalkin@hypercom.com>
7135
7136         PR/39492
7137         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7138         Make object_name unique for each process.
7139
7140 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7141
7142         PR other/39591
7143         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7144         addressable variables in the parallel that could go out of scope while
7145         running queued tasks.
7146
7147 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
7148
7149         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7150         (CASE_VALUES_THRESHOLD): Redefine.
7151         * config/avr/avr.c (avr_override_options): Remove initialization of
7152         avr_case_values_threshold variable.
7153         (avr_case_values_threshold): Remove variable. Add new function.
7154         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7155         * config/avr/avr.opt (mno-tablejump): Remove option.
7156         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7157
7158 2009-04-01  DJ Delorie  <dj@redhat.com>
7159
7160         * varasm.c (default_function_rodata_section): Don't assume
7161         anything about where the first '.' in the section name is.
7162
7163 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
7164
7165         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7166         rs6000_emit_stack_tie.
7167
7168 2009-03-31  Ian Lance Taylor  <iant@google.com>
7169
7170         * tree-eh.c (tree_remove_unreachable_handlers): Compare
7171         gimple_code with GIMPLE_RESX, not RESX.
7172
7173 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7174
7175         * c-common.c (c_get_ident): New.
7176         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
7177
7178 2009-04-01  Ben Elliston  <bje@au.ibm.com>
7179
7180         * config/rs6000/sysv4.opt (msdata): Improve option description.
7181
7182 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
7183
7184         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7185         (divdf3_internal_lat): Remove.
7186         (divxf3_internal_lat): Remove.
7187         (divxf3_internal_thr): Remove.
7188         (divxf): Use divxf3_internal.
7189         * config/ia64/div.md (divsf3_internal_lat): New.
7190         (divdf3_internal_lat): New.
7191         (divxf3_internal): New.
7192
7193 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7194
7195         PR c/448
7196         * Makefile.in (USE_GCC_STDINT): Define.
7197         (stmp-int-hdrs): Install stdint.h if applicable.
7198         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7199         if known.
7200         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7201         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7202         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7203         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7204         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7205         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7206         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7207         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7208         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7209         (c_common_nodes_and_builtins): Initialize
7210         underlying_wchar_type_node.  Do not initialize
7211         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
7212         nodes for new types.
7213         (c_stddef_cpp_builtins): Define macros for new types.
7214         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7215         Remove.
7216         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7217         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7218         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7219         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7220         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7221         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7222         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7223         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7224         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7225         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7226         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7227         int16_type_node, int32_type_node, int64_type_node,
7228         uint8_type_node, uint16_type_node, c_uint32_type_node,
7229         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7230         int_least32_type_node, int_least64_type_node,
7231         uint_least8_type_node, uint_least16_type_node,
7232         uint_least32_type_node, uint_least64_type_node,
7233         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7234         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7235         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7236         uintptr_type_node): Define.
7237         * c-cppbuiltin.c (builtin_define_constants,
7238         builtin_define_type_minmax): New.
7239         (builtin_define_stdint_macros): Define more macros.
7240         (c_cpp_builtins): Define more limit macros.
7241         (type_suffix): New.
7242         (builtin_define_type_max): Define in terms of
7243         builtin_define_type_minmax.  Remove is_long parameter.  All
7244         callers changed.
7245         * config.gcc (use_gcc_stdint): Define.
7246         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7247         Add newlib-stdint.h for generic targets.
7248         * config/glibc-stdint.h, config/newlib-stdint.h,
7249         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7250         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7251         * config/score/score.h (UINTPTR_TYPE): Define.
7252         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7253         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7254         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7255         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7256         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7257         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7258         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7259         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7260         * config/spu/spu.h (STDINT_LONG32): Define.
7261         * configure.ac (use_gcc_stdint): Substitute.
7262         * configure: Regenerate.
7263         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7264         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7265         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7266         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7267         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7268         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7269         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7270         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7271         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7272         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7273         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7274         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7275         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7276         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7277         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7278         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7279         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7280         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7281         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7282         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7283         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7284         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7285         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7286         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7287         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7288         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7289         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7290         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7291         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7292
7293 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
7294
7295         * loop-iv.c (suitable_set_for_replacement): Renamed from
7296         simplify_using_assignment; changed to return bool and to accept new
7297         args DEST and SRC.  Return true iff we find a source/destination pair
7298         that can be used to make a replacement, and fill SRC and DEST if so.
7299         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
7300         changed.
7301         (simplify_using_initial_values): Deal with altered regs here and track
7302         more precisely the effect they have on the validity of our expression.
7303
7304         * loop-iv.c (simplify_using_condition): A condition of the form
7305         (EQ REG CONST) can be used to simply make a substitution.
7306         (simplify_using_initial_values): Keep track of conditions we have seen
7307         and keep using them to simplify new expressions, while applying the
7308         same substitutions to them as to the expression.
7309
7310         * simplify-rtx.c (simplify_relational_operation_1): Simplify
7311         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7312         GEU/LTU reversed.
7313
7314         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
7315         changed.  Use this when trying to improve the upper bound.
7316         Generate the comparison by using simplify_gen_relational.
7317
7318         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7319
7320         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7321         functions.
7322         (simplify_using_assignment, simplify_using_initial_values): Call
7323         replace_in_expr to make replacements.  Call replace_single_def_regs
7324         once on the initial version of the expression.
7325
7326 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7327
7328         PR target/27237
7329         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
7330
7331 2009-03-31  Richard Guenther  <rguenther@suse.de>
7332
7333         PR middle-end/31029
7334         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7335         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
7336
7337 2009-03-31  Richard Guenther  <rguenther@suse.de>
7338
7339         * tree.h (div_if_zero_remainder): Declare.
7340         * fold-const.c (div_if_zero_remainder): Export.
7341         * tree-ssa-forwprop.c
7342         (forward_propagate_addr_into_variable_array_index): Handle
7343         constant array index addition outside of the variable index.
7344
7345 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7346
7347         PR target/39592
7348         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7349         define_splits, floatunssi<mode>2): Require x87 conversions from
7350         DImode to be permitted.
7351
7352 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7353
7354         PR preprocessor/15638
7355         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7356
7357 2009-03-31  Richard Guenther  <rguenther@suse.de>
7358
7359         PR middle-end/23401
7360         PR middle-end/27810
7361         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7362         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7363         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7364         a separate statement.
7365         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7366         (lookup_tmp_var): Likewise.
7367         (is_gimple_formal_tmp_or_call_rhs): Remove.
7368         (is_gimple_reg_or_call_rhs): Rename to ...
7369         (is_gimple_reg_rhs_or_call): ... this.
7370         (is_gimple_mem_or_call_rhs): Rename to ...
7371         (is_gimple_mem_rhs_or_call): ... this.
7372         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
7373         DECL_GIMPLE_REG_P only if is_formal is true.
7374         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
7375         for non-proper post-modify expression gimplification.
7376         (gimplify_self_mod_expr): For post-modify expressions gimplify
7377         the lvalue to a minimal lvalue.
7378         (rhs_predicate_for): Remove formal temp case.
7379         (gimplify_modify_expr_rhs): Likewise.
7380         (gimplify_addr_expr): Use is_gimple_reg.
7381         (gimplify_expr): Remove formal temp cases.
7382         (gimple_regimplify_operands): Likewise.
7383         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7384         and FILTER_EXPR like constants.
7385         * gimple.c (walk_gimple_op): Fix val_only initialization, use
7386         is_gimple_reg.
7387         (is_gimple_formal_tmp_rhs): Remove.
7388         (is_gimple_reg_rhs): Remove special casing.
7389         (is_gimple_mem_rhs): Fix.
7390         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7391         (is_gimple_formal_tmp_var): Remove.
7392         (is_gimple_formal_tmp_reg): Likewise.
7393         (is_gimple_min_lval): Allow invariant component ref parts.
7394         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7395         is_gimple_formal_tmp_reg): Remove declarations.
7396         * tree-cfg.c (verify_expr): Verify that variables with address
7397         taken do not have DECL_GIMPLE_REG_P set.
7398         * tree-mudflap.c (mf_build_check_statement_for): Use
7399         force_gimple_operand instead of gimplify_expr.
7400
7401 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
7402
7403         * modulo-sched.c (sms_schedule_by_order): Pass the actual
7404         schedulable rows to compute_split_row.
7405
7406 2009-03-31  Ben Elliston  <bje@au.ibm.com>
7407
7408         PR target/31635
7409         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7410         OPT_mvrsave.
7411
7412 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7413
7414         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7415         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7416         * configure: Regenerate.
7417         * config.in: Regenerate.
7418         * config/rs6000/rs6000.opt (mtls-markers): Add.
7419         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7420         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7421         (tls_ld_aix, tls_ld_sysv): Likewise.
7422         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7423         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7424
7425 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
7426
7427         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7428
7429 2009-03-30  Jan Hubicka  <jh@suse.cz>
7430
7431         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7432         out of RESX.
7433         (tree_remove_unreachable_handlers): Cleanup EH predecestor
7434         detection and label handling.
7435
7436 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7437
7438         * ira-int.h (ira_allocno): Rename left_conflicts_num to
7439         left_conflicts_size.
7440         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7441         ALLOCNO_LEFT_CONFLICTS_SIZE.
7442
7443         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7444         remove_allocno_from_bucket_and_push,
7445         allocno_spill_priority_compare, push_allocnos_to_stack,
7446         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7447         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7448         (setup_allocno_left_conflicts_num): Ditto.  Rename to
7449         setup_allocno_left_conflicts_size.
7450         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7451         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7452         setup_allocno_left_conflicts_size instead of
7453         setup_allocno_left_conflicts_num.
7454
7455         * ira-build.c (ira_create_allocno): Use
7456         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7457         ALLOCNO_LEFT_CONFLICTS_NUM.
7458
7459 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
7460
7461         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7462         instead of DF_LR_OUT.
7463
7464         * ira-lives.c (process_bb_node_lives): Ditto.
7465
7466         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7467         instead of DF_LR_{OUT,IN}.
7468
7469         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7470
7471         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7472
7473 2009-03-30  Jan Hubicka  <jh@suse.cz>
7474
7475         * except.c (label_to_region_map): Fix thinko.
7476
7477 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
7478
7479         PR middle-end/38237
7480         * tree.h (tree_find_value): New declaration.
7481         * tree.c (tree_find_value): New function.
7482         * varasm.c (assemble_external): Avoid duplicate entries on lists.
7483
7484 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
7485
7486         PR debug/39563
7487         * c-decl.c (struct c_binding): Add locus field.
7488         (bind): Add locus argument, set locus field from it.
7489         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7490         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7491         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7492         implicitly_declare, undeclared_variable, lookup_label,
7493         declare_label, c_make_fname_decl, c_builtin_function,
7494         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7495         bind callers.
7496
7497 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7498
7499         PR target/38781
7500         * config/i386/i386.c (classify_argument): Check total size of
7501         structure.
7502
7503 2009-03-30  Martin Jambor  <mjambor@suse.cz>
7504
7505         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7506         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7507         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7508         respectively.
7509
7510         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7511         seen_variable_array_ref while also traversing a union.
7512
7513         * tree-inline.c (optimize_inline_calls): Do not call
7514         cgraph_node_remove_callees.
7515         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7516         (pass_remove_cgraph_callee_edges): New variable.
7517         * passes.c (init_optimization_passes): Add
7518         pass_remove_cgraph_callee_edges after early inlining and before all
7519         late intraprocedural passes.
7520
7521         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7522
7523 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7524
7525         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7526         Fix typos in names.
7527
7528 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7529
7530         * combine.c (simplify_comparison): Use have_insn_for.
7531         * dojump.c (do_jump): Likewise.
7532
7533 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7534
7535         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7536         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7537         sparc_compare_op0 like sparc_compare_emitted used to be handled.
7538         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7539         instead of sparc_compare_emitted.
7540         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7541         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7542         instead of sparc_compare_emitted.
7543
7544 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7545
7546         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7547         enter/exit cfglayout mode.
7548         (pass_partition_block): Require it.
7549         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7550         (combine_instructions): Track basic blocks instead of labels.
7551         (update_cfg_for_uncondjump): New.
7552         (try_combine): Use it.  Update jumps after rescanning.
7553         (pass_combine): Require PROP_cfglayout.
7554         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7555
7556 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7557
7558         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7559         Provide/destroy PROP_cfglayout respectively.
7560         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7561         * tree-pass.h (PROP_cfglayout): New.
7562
7563 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
7564
7565         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7566         fold_convert_const_fixed_from_fixed,
7567         fold_convert_const_fixed_from_int,
7568         fold_convert_const_fixed_from_real, fold_negate_const): Do not
7569         set TREE_CONSTANT_OVERFLOW.
7570         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7571         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7572
7573 2009-03-30  Ira Rosen  <irar@il.ibm.com>
7574
7575         * tree-vect-loop-manip.c: New file.
7576         * tree-vectorizer.c: Update documentation and included files.
7577         (vect_loop_location): Make extern.
7578         (rename_use_op): Move to tree-vect-loop-manip.c
7579         (rename_variables_in_bb, rename_variables_in_loop,
7580         slpeel_update_phis_for_duplicate_loop,
7581         slpeel_update_phi_nodes_for_guard1,
7582         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7583         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7584         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
7585         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
7586         find_loop_location): Likewise.
7587         (new_stmt_vec_info): Move to tree-vect-stmts.c.
7588         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7589         get_vectype_for_scalar_type, vect_is_simple_use,
7590         supportable_widening_operation, supportable_narrowing_operation):
7591         Likewise.
7592         (bb_in_loop_p): Move to tree-vect-loop.c.
7593         (new_loop_vec_info, destroy_loop_vec_info,
7594         reduction_code_for_scalar_code, report_vect_op,
7595         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7596         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7597         (vect_supportable_dr_alignment): Likewise.
7598         * tree-vectorizer.h (tree-data-ref.h): Include.
7599         (vect_loop_location): Declare.
7600         Reorganize function declarations according to the new file structure.
7601         * tree-vect-loop.c: New file.
7602         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
7603         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7604         * tree-vect-data-refs.c: New file.
7605         * tree-vect-patterns.c (timevar.h): Don't include.
7606         * tree-vect-stmts.c: New file.
7607         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
7608         tree-vect-slp.c, tree-vect-loop.c.
7609         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7610         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
7611         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7612         (tree-vect-analyze.o): Remove.
7613         (tree-vect-transform.o): Likewise.
7614         (tree-vect-data-refs.o): Add rule.
7615         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
7616         tree-vect-slp.o): Likewise.
7617         (tree-vect-patterns.o): Remove redundant dependencies.
7618         (tree-vectorizer.o): Likewise.
7619         * tree-vect-slp.c: New file.
7620
7621 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7622
7623         * optc-gen.awk: Warn if an option flag has multiple different
7624         help strings.
7625
7626 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
7627
7628         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7629         -floop-block): Document dependences on PPL, CLooG and Graphite.
7630
7631 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7632
7633         PR rtl-optimization/323
7634         * c-common.c (c_fully_fold, convert_and_check,
7635         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7636         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7637         * c-common.def (EXCESS_PRECISION_EXPR): New.
7638         * c-cppbuiltin.c (builtin_define_float_constants): Define
7639         constants with enough digits for long double.
7640         * c-lex.c (interpret_float): Interpret constant with excess
7641         precision where appropriate.
7642         * c-opts.c (c_common_post_options): Set
7643         flag_excess_precision_cmdline.  Give an error for
7644         -fexcess-precision=standard for C++ for processors where the
7645         option is significant.
7646         * c-parser.c (c_parser_conditional_expression): Handle excess
7647         precision in condition.
7648         * c-typeck.c (convert_arguments): Handle arguments with excess
7649         precision.
7650         (build_unary_op): Move excess precision outside operation.
7651         (build_conditional_expr): Likewise.
7652         (build_compound_expr): Likewise.
7653         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7654         (build_modify_expr): Handle excess precision in RHS.
7655         (convert_for_assignment): Handle excess precision in converted
7656         value.
7657         (digest_init, output_init_element, process_init_element): Handle
7658         excess precision in initializer.
7659         (c_finish_return): Handle excess precision in return value.
7660         (build_binary_op): Handle excess precision in operands and add
7661         excess precision as needed for operation.
7662         * common.opt (-fexcess-precision=): New option.
7663         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7664         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7665         For standard excess precision, output explicit conversion to and
7666         truncation from XFmode.
7667         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7668         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7669         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7670         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7671         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7672         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7673         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7674         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7675         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7676         define_splits, sqrt<mode>2): Disable where appropriate for
7677         standard excess precision.
7678         * convert.c (convert_to_real): Do not shorten arithmetic to type
7679         for which excess precision would be used.
7680         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7681         * doc/invoke.texi (-fexcess-precision=): Document option.
7682         (-mfpmath=): Correct index entry.
7683         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7684         flag_excess_precision): New.
7685         * langhooks.c (lhd_post_options): Set
7686         flag_excess_precision_cmdline.
7687         * opts.c (common_handle_option): Handle -fexcess-precision=.
7688         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7689         init_excess_precision): New.
7690         (lang_dependent_init_target): Call init_excess_precision.
7691         * tree.c (excess_precision_type): New.
7692         * tree.h (excess_precision_type): Declare.
7693
7694 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
7695
7696         PR c/35235
7697         * c-typeck.c (build_component_ref): Do not copy qualifiers from
7698         non-lvalue to component.
7699
7700 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7701
7702         PR preprocessor/34695
7703         * Makefile.in (c-opts.o): Depend on c-tree.h.
7704         * c-common.c: Move down include of diagnostic.h.
7705         (done_lexing, c_cpp_error): New.
7706         * c-common.h (done_lexing): Declare.
7707         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7708         (parse_in).
7709         * c-opts.c: Include c-tree.h.
7710         (c_common_init_options): Set preprocessor error callback.
7711         (c_common_handle_option): Do not set preprocessor
7712         inhibit_warnings, warnings_are_errors, warn_system_headers,
7713         pedantic_errors or inhibit_warnings flags.
7714         (c_common_post_options): Do not check cpp_errors (parse_in).
7715         (c_common_finish): Do not output dependencies if there were
7716         errors.  Do not check return value of cpp_finish.
7717         * c-ppoutput.c (pp_file_change): Set input_location.
7718         * c-tree.h (c_cpp_error): Declare.
7719         * diagnostic.c (diagnostic_set_info_translated): Also initialize
7720         override_column.
7721         (diagnostic_build_prefix): Check override_column.
7722         * diagnostic.h (diagnostic_info): Add override_column field.
7723         (diagnostic_override_column): Define.
7724
7725 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
7726
7727         * c-common.c (c_expand_expr, c_staticp): Remove.
7728         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7729         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7730         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7731         * c-gimplify.c (gimplify_compound_literal_expr,
7732         optimize_compound_literals_in_ctor): Remove.
7733         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7734         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7735         * c-semantics.c (emit_local_var): Remove.
7736
7737         * langhooks-def.h (lhd_expand_expr): Remove.
7738         * langhooks.c (lhd_expand_expr): Remove.
7739         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7740
7741         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7742         handling from c-semantics.c; don't call into langhook.
7743         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7744         * gimplify.c (gimplify_compound_literal_expr,
7745         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7746         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7747         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7748         as was done in c-gimplify.c.
7749         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7750         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7751         Move from c-common.h.
7752         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
7753
7754         * tree.c (staticp): Do not call langhook.
7755         * langhooks.c (lhd_staticp): Delete.
7756         * langhooks-def.h (lhd_staticp): Delete prototype.
7757         (LANG_HOOKS_STATICP): Delete.
7758         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7759
7760         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7761         instead of DECL_STMTs.
7762
7763 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
7764
7765         PR c/456
7766         PR c/5675
7767         PR c/19976
7768         PR c/29116
7769         PR c/31871
7770         PR c/35198
7771         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7772         void_type_node.
7773         (fold_call_expr): Return a NOP_EXPR from folding rather than the
7774         contained expression.
7775         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
7776         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
7777         conditional expressions for C.
7778         (decl_constant_value_for_optimization): Move from
7779         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
7780         whether optimizing and that the expression is a VAR_DECL not of
7781         array type instead of doing such checks in the caller.  Do not
7782         check pedantic.  Call gcc_unreachable for C++.
7783         * c-common.def (C_MAYBE_CONST_EXPR): New.
7784         * c-common.h (c_fully_fold, c_save_expr,
7785         decl_constant_value_for_optimization): New prototypes.
7786         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7787         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7788         EXPR_INT_CONST_OPERANDS): Define.
7789         * c-convert.c (convert): Strip nops from expression.
7790         * c-decl.c (groktypename): Take extra parameters expr and
7791         expr_const_operands.  Update call to grokdeclarator.
7792         (start_decl): Update call to grokdeclarator.  Add statement for
7793         expressions used in type of decl.
7794         (grokparm): Update call to grokdeclarator.
7795         (push_parm_decl): Update call to grokdeclarator.
7796         (build_compound_literal): Add parameter non_const and build a
7797         C_MAYBE_COSNT_EXPR if applicable.
7798         (grokdeclarator): Take extra parameters expr and
7799         expr_const_operands.  Track expressions used in declaration
7800         specifiers and declarators.  Fold array sizes and track whether
7801         they are constant expressions and whether they are integer
7802         constant expressions.
7803         (parser_xref_tag): Set expr and expr_const_operands fields in
7804         return value.
7805         (grokfield): Update call to grokdeclarator.
7806         (start_function): Update call to grokdeclarator.
7807         (build_null_declspecs): Set expr and expr_const_operands fields in
7808         return value.
7809         (declspecs_add_type): Handle expressions in typeof specifiers.
7810         * c-parser.c (c_parser_declspecs): Set expr and
7811         expr_const_operands fields for declaration specifiers.
7812         (c_parser_enum_specifier): Likewise.
7813         (c_parser_struct_or_union_specifier): Likewise.
7814         (c_parser_typeof_specifier): Likewise.  Update call to
7815         groktypename.  Fold expression as needed.  Return expressions with
7816         type instead of adding statements.
7817         (c_parser_attributes): Update calls to c_parser_expr_list.
7818         (c_parser_statement_after_labels): Fold expression before passing
7819         to objc_build_throw_stmt.
7820         (c_parser_condition): Fold expression.
7821         (c_parser_asm_operands): Fold expression.
7822         (c_parser_conditional_expression): Use c_save_expr.  Update call
7823         to build_conditional_expr.
7824         (c_parser_alignof_expression): Update call to groktypename.
7825         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7826         original_code.  Fold expression argument of va_arg.  Create
7827         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7828         argument to va_arg.  Update calls to groktypename.  Fold array
7829         index for offsetof.  Verify that first argument to
7830         __builtin_choose_expr has integer type.
7831         (c_parser_postfix_expression_after_paren_type): Update calls to
7832         groktypename and build_compound_literal.  Handle expressions with
7833         side effects in type name.
7834         (c_parser_postfix_expression_after_primary): Update call to
7835         c_parser_expr_list.  Set original_code for calls to
7836         __builtin_constant_p.
7837         (c_parser_expr_list): Take extra parameter fold_p.  Fold
7838         expressions if requested.
7839         (c_parser_objc_type_name): Update call to groktypename.
7840         (c_parser_objc_synchronized_statement): Fold expression.
7841         (c_parser_objc_receiver): Fold expression.
7842         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7843         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7844         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7845         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7846         (struct c_typespec): Add elements expr and expr_const_operands.
7847         (struct c_declspecs): Add elements expr and expr_const_operands.
7848         (groktypename, build_conditional_expr, build_compound_literal):
7849         Update prototypes.
7850         (in_late_binary_op): Declare.
7851         * c-typeck.c (note_integer_operands): New function.
7852         (in_late_binary_op): New variable.
7853         (decl_constant_value_for_broken_optimization): Move to c-common.c
7854         and rename to decl_constant_value_for_optimization.
7855         (default_function_array_conversion): Do not strip nops.
7856         (default_conversion): Do not call
7857         decl_constant_value_for_broken_optimization.
7858         (build_array_ref): Do not fold result.
7859         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
7860         result when operand is a VLA.
7861         (c_expr_sizeof_type): Update call to groktypename.  Handle
7862         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
7863         result when operand names a VLA type.
7864         (build_function_call): Update call to build_compound_literal.
7865         Only fold result for calls to __builtin_* functions.  Strip
7866         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
7867         the function designator.
7868         (convert_arguments): Fold arguments.  Update call to
7869         convert_for_assignment.
7870         (build_unary_op): Handle increment and decrement of
7871         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
7872         decrement earlier.  Fold operand of increment and decrement.
7873         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
7874         built for integer operand.  Wrap returns that are INTEGER_CSTs
7875         without being integer constant expressions or that have integer
7876         constant operands without being INTEGER_CSTs.
7877         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
7878         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
7879         result is an integer constant expression or can be used in
7880         unevaluated parts of one and avoid folding and wrap as
7881         appropriate.  Fold operands before possibly doing -Wsign-compare
7882         warnings.
7883         (build_compound_expr): Wrap result for C99 if operands can be used
7884         in integer constant expressions.
7885         (build_c_cast): Update call to digest_init.  Do not ignore
7886         overflow from casting floating-point constants to integers.  Wrap
7887         results that could be confused with integer constant expressions,
7888         null pointer constants or floating-point constants.
7889         (c_cast_expr): Update call to groktypename.  Handle expressions
7890         included in type name.
7891         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
7892         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
7893         Update calls to convert_for_assignment.
7894         (convert_for_assignment): Take new parameter
7895         null_pointer_constant.  Do not strip nops or call
7896         decl_constant_value_for_broken_optimization.  Set
7897         in_late_binary_op for conversions to boolean.
7898         (store_init_value): Update call to digest_init.
7899         (digest_init): Take new parameter null_pointer_constant.  Do not
7900         call decl_constant_value_for_broken_optimization.  pedwarn for
7901         initializers not constant expressions.  Update calls to
7902         convert_for_assignment.
7903         (constructor_nonconst): New.
7904         (struct constructor_stack): Add nonconst element.
7905         (really_start_incremental_init, push_init_level, pop_init_level):
7906         Handle constructor_nonconst and nonconst element.
7907         (set_init_index): Call constant_expression_warning for array
7908         designators.
7909         (output_init_element): Fold value.  Set constructor_nonconst as
7910         applicable.  pedwarn for initializers not constant expressions.
7911         Update call to digest_init.  Call constant_expression_warning
7912         where constant initializers are required.
7913         (process_init_element): Use c_save_expr.
7914         (c_finish_goto_ptr): Fold expression.
7915         (c_finish_return): Fold return value.  Update call to
7916         convert_for_assignment.
7917         (c_start_case): Fold switch expression.
7918         (c_process_expr_stmt): Fold expression.
7919         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
7920         ensure statement expression is not evaluated in constant expression.
7921         (build_binary_op): Track whether results are integer constant
7922         expressions or may occur in such, disable folding and wrap results
7923         as applicable.  Fold operands for -Wsign-compare warnings unless
7924         in_late_binary_op.
7925         (c_objc_common_truthvalue_conversion): Handle results folded to
7926         integer constants that are not integer constant expressions.
7927         * doc/extend.texi: Document when typeof operands are evaluated,
7928         that condition of __builtin_choose_expr is an integer constant
7929         expression, and more about use of __builtin_constant_p in
7930         initializers.
7931
7932 2009-03-29  Richard Guenther  <rguenther@suse.de>
7933
7934         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7935         propagate addresses of array references.
7936
7937 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
7938
7939         * regmove.c (perhaps_ends_bb_p): Remove.
7940         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
7941         from INSN and check that the main loop stays within that basic block.
7942         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7943         (regmove_forward_pass): Split out from regmove_optimize.  Use
7944         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7945         (regmove_backward_pass): Split out from regmove_optimize.  Use
7946         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7947         (regmove_optimize): Simplify.
7948
7949 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7950
7951         PR target/39545
7952         * config/i386/i386.c (classify_argument): Ignore flexible array
7953         member in struct and warn ABI change.
7954
7955 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
7956
7957         * config/i386/i386-protos.h (ix86_agi_dependent): New.
7958
7959         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7960         (ix86_adjust_cost): Updated.
7961
7962 2009-03-29  Jan Hubicka  <jh@suse.cz>
7963
7964         PR middle-end/28850
7965         * tree-pass.h (pass_cleanup_eh): New function.
7966         (remove_unreachable_regions): Break code handling RTL
7967         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7968         that can not be reached by runtime.
7969         (can_be_reached_by_runtime): New function.
7970         (label_to_region_map): New function.
7971         (num_eh_regions): New function.
7972         (rtl_remove_unreachable_regions): New function.
7973         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
7974         (remove_eh_region): New function.
7975         * except.h: Include sbitmap and vecprim.
7976         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
7977         num_eh_regions): Declare.
7978         * passes.c (init_optimization_passes): Schedule cleanup_eh.
7979         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
7980         * tree-eh.c (tree_remove_unreachable_handlers): New function.
7981         (tree_empty_eh_handler_p): New function.
7982         (cleanup_empty_eh): New function.
7983         (cleanup_eh): New function.
7984         (pass_cleanup_eh): New function.
7985
7986 2009-03-29  Jan Hubicka  <jh@suse.cz>
7987
7988         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
7989         for removed regions.
7990
7991 2009-03-29  Jan Hubicka  <jh@suse.cz>
7992
7993         * except.c (dump_eh_tree): Dump all datastructures.
7994
7995 2009-03-29  Jan Hubicka  <jh@suse.cz>
7996
7997         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
7998         (duplicate_eh_regions_1): Likewise.
7999         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
8000         vector; call EH verification.
8001         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8002         Be ready for region being removed.
8003
8004 2009-03-29  Jan Hubicka  <jh@suse.cz>
8005
8006         * bitmap.c (bitmap_last_set_bit): New function.
8007         * bitmap.h (bitmap_last_set_bit): Declare.
8008
8009 2009-03-29  David Ayers  <ayers@fsfe.org>
8010
8011         PR objc/27377
8012         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8013         by calling objc_compare_types and surpress warnings about
8014         incompatible C pointers that are compatible ObjC pointers.
8015
8016 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
8017
8018         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8019         call initialize_inline_failed.
8020         (initialize_inline_failed): Move it from here ...
8021         * cgraph.c (initialize_inline_failed): ... to here.
8022         (cgraph_create_edge): Call initialize_inline_failed rather than
8023         setting inline_failed directly.
8024
8025 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8026
8027         PR target/32542
8028         * sysv4.opt (msdata): Improve comment.
8029         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8030         * sysv4.h (SVR4_ASM_SPEC): Likewise.
8031
8032 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8033
8034         PR target/30451
8035         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8036         load and store attributes.
8037
8038 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8039
8040         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8041         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8042         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8043         * doc/extend.texi (X86 Built-in Functions): Add index entries for
8044         __builtin_infq and __builtin_huge_valq.
8045
8046 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
8047
8048         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8049         atmega8m1 devices.
8050         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8051         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8052
8053 2009-03-28  Xinliang David Li  <davidxl@google.com>
8054
8055         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
8056         (do_dbg_cnt): New function.
8057
8058 2009-03-28  Jan Hubicka  <jh@suse.cz>
8059
8060         Merge from pretty-ipa:
8061
8062         2009-03-27  Jan Hubicka  <jh@suse.cz>
8063
8064         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8065         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8066         * passes.c (function_called_by_processed_nodes_p): New.
8067         * ipa-pure-const.c (check_call): Fix handling of operands.
8068         (analyze_function): Dump debug output for skipped bodies.
8069         (local_pure_const): Use function_called_by_processed_nodes_p.
8070         * dwarf2out.c (reference_to_unused): Use output.
8071         * passes.c (do_per_function_toporder): Likewise.
8072
8073         2008-11-12  Jan Hubicka  <jh@suse.cz>
8074
8075         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8076         * ipa-pure-const.c (funct_state_d): Add can throw field; make
8077         state_set_in_source enum
8078         (check_decl): Ignore memory tags; do not set fake looping flags;
8079         dump diagnostics.
8080         (check_operand, check_tree, check_rhs_var, check_lhs_var,
8081         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8082         (check_call, analyze_function): Rewrite.
8083         (check_stmt): New.
8084         (add_new_function): Update call of analyze_function.
8085         (generate_summary): Add call of analyze_function.
8086         (propagate): Propagate can_throw; handle state_set_in_source correctly.
8087         (local_pure_const): New function.
8088         (pass_local_pure_const): New pass.
8089         * ipa-inline.c (inline_transform): Set after_inlining.
8090         * tree-eh.c (stmt_can_throw_external): New.
8091         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8092         work with aliasing built.
8093         * tree-flow.h (stmt_can_throw_external): New.
8094         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8095         and local pure/const pass in early and late optimization queue.
8096
8097 2009-03-28  Martin Jambor  <mjambor@suse.cz>
8098
8099         * fold-const.c (get_pointer_modulus_and_residue): New parameter
8100         allow_func_align.
8101         (fold_binary): Allow function decl aligment consideration is the
8102         second argument is integer constant one.
8103         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8104         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8105         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8106
8107 2009-03-28  Jan Hubicka  <jh@suse.cz>
8108
8109         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8110         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8111         * function.h (rtl_data): Add nothrow flag.
8112         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8113         set DECL_NOTHROW for AVAILABLE functions.
8114
8115 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
8116
8117         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8118         following vector keyword has expansion starting with pixel or bool
8119         keyword, expand vector to __vector and pixel or bool to __pixel or
8120         __bool.
8121
8122         PR c++/39554
8123         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8124         warn_if_disallowed_function_p): Removed.
8125         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8126         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8127         warning_if_disallowed_function_p.
8128         * flags.h (warn_if_disallowed_function_p,
8129         warn_disallowed_functions): Removed.
8130         * common.opt (Wdisallowed-function-list=): Removed.
8131         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8132
8133 2009-03-28  Richard Guenther  <rguenther@suse.de>
8134
8135         PR tree-optimization/38723
8136         * tree-ssa-pre.c (compute_avail): Add all default definitions to
8137         the entry block.
8138
8139 2009-03-28  Jan Hubicka  <jh@suse.cz>
8140
8141         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8142         test introduced by my previous patch.
8143
8144 2009-03-28  Richard Guenther  <rguenther@suse.de>
8145
8146         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8147         the PHIs value undefined.
8148
8149 2009-03-28  Jan Hubicka  <jh@suse.cz>
8150
8151         * tree-pass.h (pass_fixup_cfg): New pass.
8152         * ipa-inline.c (inline_transform): Set
8153         always_inline_functions_inlined/after_inlining.
8154         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8155         (pass_fixup_cfg): New pass.
8156         * passes.c (init_optimization_passes): Add fixup_cfg.
8157
8158 2009-03-28  Richard Guenther  <rguenther@suse.de>
8159
8160         PR tree-optimization/38458
8161         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8162         argument use the arguments copy-of value.
8163
8164 2009-03-28  Richard Guenther  <rguenther@suse.de>
8165
8166         PR tree-optimization/38180
8167         * tree-ssa-ccp.c (get_default_value): Simplify.
8168         (likely_value): Likewise.
8169         (surely_varying_stmt_p): Properly handle VOP case.
8170         (ccp_initialize): Likewise.
8171         (ccp_fold): Handle propagating through *&.
8172         (fold_const_aggregate_ref): Also handle decls.
8173
8174 2009-03-28  Jan Hubicka  <jh@suse.cz>
8175
8176         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8177         * cgraph.h (cgraph_node): Likewise.
8178         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8179         (cgraph_reset_node): Use process flag.
8180         (cgraph_mark_functions_to_output): Likewise.
8181         (cgraph_expand_function): Likewise.
8182         (cgraph_expand_all_functions): Likewise.
8183         (cgraph_output_in_order): Likewise.
8184         * dwarf2out.c (reference_to_unused): Likewise.
8185         * passes.c do_per_function_toporder): Likewise.
8186
8187 2009-03-28  Jan Hubicka  <jh@suse.cz>
8188
8189         Bring from lto-branch:
8190
8191         2008-09-03  Doug Kwan  <dougkwan@google.com>
8192
8193         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8194         enums instead of reason strings.
8195         * cgraph.c (cgraph_create_edge): Same.
8196         (cgraph_inline_failed_string): New function.
8197         * cgraph.h (cgraph_inline_failed_t): New enum type.
8198         (cgraph_inline_failed_string): New prototype.
8199         (struct cgraph_edge): Change type of INLINED_FAILED from constant
8200         char pointer to cgraph_inline_failed_t.
8201         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8202         (cgraph_default_inline_p): Ditto.
8203         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
8204         to cgraph_inline_failed_t pointer.
8205         * cif-code.def: New file.
8206         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8207         reason string.
8208         (cgraph_check_inline_limits): Change type of REASON to pointer to
8209         cgraph_inline_failed_t.  Replace reason strings with enums.
8210         (cgraph_default_inline_p): Ditto.
8211         (cgraph_recursive_inlining_p): Ditto.
8212         (update_caller_keys): Change type of FAILED_REASON to
8213         cgraph_inline_failed_t.
8214         (cgraph_set_inline_failed): Change type of REASON to pointer to
8215         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
8216         convert enums to strings for text output.
8217         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8218         to be of type cgraph_inline_failed_t.  Replace reason strings with
8219         enums.  Call cgraph_inline_failed_string to covert enums
8220         to strings for text output.
8221         (cgraph_decide_inlining): Replace reason strings with enums.
8222         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8223         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
8224         for text output.
8225         * tree-inline.c (expand_call_inline): Change type of REASON
8226         to cgraph_inline_failed_t.  Replace reason strings with enums.
8227         Call cgraph_inline_failed_string for text output.
8228         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8229         (cgraph.o): Ditto.
8230
8231 2009-03-28  Jan Hubicka  <jh@suse.cz>
8232
8233         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8234         cgraph_clone_node): Remove master clone handling.
8235         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8236         * cgraph.h (master_clone): Remove.
8237         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8238         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8239         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8240
8241 2009-03-28  Jan Hubicka  <jh@suse.cz>
8242
8243         * cgraph.c (cgraph_function_body_availability): Functions declared
8244         inline are always safe to assume that it is not going to be replaced.
8245
8246 2009-03-28  Richard Guenther  <rguenther@suse.de>
8247
8248         PR tree-optimization/38513
8249         * tree-ssa-pre.c (eliminate): Remove redundant stores.
8250         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8251         EXC_PTR_EXPR and FILTER_EXPR.
8252         (get_ref_from_reference_ops): Likewise.
8253
8254 2009-03-28  Richard Guenther  <rguenther@suse.de>
8255
8256         PR tree-optimization/38968
8257         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8258         Use FLOOR_MOD_EXPR to compute misalignment.
8259
8260 2009-03-28  Richard Guenther  <rguenther@suse.de>
8261
8262         PR tree-optimization/37795
8263         * tree.h (combine_comparisons): Declare.
8264         * fold-const.c (combine_comparisons): Export.
8265         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8266         comparisons.
8267         (ifcombine_iforif): Use combine_comparisons.
8268
8269 2009-03-28  Jan Hubicka  <jh@suse.cz>
8270
8271         * tree-eh.c (inlinable_call_p): New function.
8272         (make_eh_edges): Use it.
8273         (verify_eh_edges): Use it.
8274         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8275         * except.c (reachable_next_level): Add inlinable_function argument
8276         (sjlj_find_directly_reachable_regions): Update.
8277         (add_reachable_handler): Do not set saw_any_handlers.
8278         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8279         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8280         Add new inlinable call parameter.
8281         (can_throw_internal, can_throw_external): Update.
8282         * except.h (can_throw_internal_1, can_throw_external_1,
8283         foreach_reachable_handler): Update declaration.
8284
8285 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
8286
8287         * config/arm/t-arm-coff, config/h8300/coff.h,
8288         config/i386/i386-aout.h, config/i386/i386-coff.h,
8289         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8290         config/pdp11/2bsd.h, config/rs6000/aix41.h,
8291         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8292         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8293         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8294         sys-types.h: Remove.
8295         * Makefile.in: Remove protoize and fixproto support and references
8296         in comments.
8297         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8298         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8299         Remove.
8300         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8301         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8302         unprotoize$(exeext).
8303         (rest.encap): Don't depend on $(STMP_FIXPROTO)
8304         (.PHONY): Don't depend on proto.
8305         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8306         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8307         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8308         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8309         build/gen-protos.o, build/scan.o, xsys-protos.h,
8310         build/fix-header$(build_exeext), build/fix-header.o,
8311         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8312         stmp-install-fixproto): Remove.
8313         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8314         SYSCALLS.c or fixproto files.
8315         (install-common): Don't install protoize.
8316         (install-headers-tar, install-headers-cpio, install-headers-cp):
8317         Don't depend on $(STMP_FIXPROTO).
8318         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
8319         install fixproto files or write out fixproto settings.
8320         (uninstall): Don't uninstall protoize.
8321         * config.gcc (use_fixproto): Remove.
8322         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8323         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8324         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8325         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8326         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8327         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8328         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8329         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8330         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8331         * config/t-vxworks (STMP_FIXPROTO): Remove.
8332         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8333         STMP_FIXPROTO): Remove.
8334         * config.in, configure: Regenerate.
8335         * crtstuff.c (gid_t, uid_t): Don't undefine.
8336         * doc/install.texi: Change m68k-coff to m68k-elf in example.
8337         (arm-*-coff, arm-*-aout: Remove target entries.
8338         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8339         Remove mention of AIX 4.1.
8340         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8341         * doc/invoke.texi (Running Protoize): Remove.
8342         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8343         (Protoize Caveats): Remove.
8344         * tsystem.h: Update comments on headers assumed to exist.
8345
8346 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
8347
8348         * genautomata.c: Add a new year to the copyright.  Add a new
8349         reference.
8350         (struct insn_reserv_decl): Add comments for member bypass_list.
8351         (find_bypass): Remove.
8352         (insert_bypass): New.
8353         (process_decls): Use insert_bypass.
8354         (output_internal_insn_latency_func): Output all bypasses with the
8355         same input insn in one switch case.
8356
8357         * rtl.def (define_bypass): Describe bypass choice.
8358         * doc/md.texi (define_bypass): Ditto.
8359
8360 2009-03-27  Richard Guenther  <rguenther@suse.de>
8361
8362         * gimplify.c (mark_addressable): Export.
8363         * tree-flow.h (mark_addressable): Declare.
8364         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8365         * tree-ssa.c (verify_phi_args): Verify that address taken
8366         variables have TREE_ADDRESSABLE set.
8367
8368 2009-03-27  Richard Guenther  <rguenther@suse.de>
8369
8370         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8371         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
8372         Do not mark decls TREE_ADDRESSABLE.
8373         (build_fold_addr_expr): Adjust.
8374         (fold_addr_expr): Remove.
8375         (fold_unary): Use build_fold_addr_expr.
8376         (fold_comparison): Likewise.
8377         (split_address_to_core_and_offset): Likewise.
8378         * coverage.c (tree_coverage_counter_addr): Mark the array decl
8379         TREE_ADDRESSABLE.
8380         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8381         (gimplify_modify_expr_to_memcpy): Mark source and destination
8382         addressable.
8383         * omp-low.c (create_omp_child_function): Mark the object decl
8384         TREE_ADDRESSABLE.
8385         (lower_rec_input_clauses): Mark the var we take the address of
8386         TREE_ADDRESSABLE.
8387         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8388
8389 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8390
8391         PR middle-end/39315
8392         * cfgexpand.c (expand_one_stack_var_at): Change alignment
8393         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8394
8395 2009-03-27  Richard Guenther  <rguenther@suse.de>
8396
8397         PR tree-optimization/39120
8398         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8399         constraints.
8400         (handle_lhs_call): Process return constraints.  Add escape
8401         constraints if necessary.
8402         (handle_const_call): Fill out return constraints.  Make nested
8403         case more precise.  Avoid consttmp if possible.
8404         (handle_pure_call): Fill out return constraints.  Avoid
8405         callused if possible.
8406         (find_func_aliases): Simplify call handling.
8407
8408 2009-03-27  Richard Guenther  <rguenther@suse.de>
8409
8410         PR tree-optimization/39120
8411         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8412         as a representative.
8413         (solve_graph): Do propagate CALLUSED.
8414         (handle_pure_call): Use a scalar constraint from CALLUSED for
8415         the return value.
8416         (find_what_p_points_to): CALLUSED shall not appear in poins-to
8417         solutions.
8418
8419 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8420
8421         PR c/39323
8422         * c-common.c (handle_aligned_attribute): Properly check alignment
8423         overflow.  Use (1U << i) instead of (1 << i).
8424
8425         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
8426
8427         * expr.h (get_mem_align_offset): Updated.
8428
8429         * tree.h (tree_decl_common): Change align to "unsigned int" and
8430         move it before pointer_alias_set.
8431
8432 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8433             Jakub Jelinek  <jakub@redhat.com>
8434
8435         PR target/38034
8436         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8437         gr_register_operand with gr_reg_or_0_operand.
8438         (cmpxchg_rel_di): Likewise.
8439         (sync_lock_test_and_set<mode>): Likewise.
8440
8441 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8442
8443         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8444         (true_regnum): Likewise.
8445
8446         * rtlanal.c (subreg_info): Moved to ...
8447         * rtl.h (subreg_info): Here.  New.
8448         (subreg_get_info): New.
8449
8450         * rtlanal.c (subreg_get_info): Make it extern.
8451
8452 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8453
8454         PR target/39472
8455         * config/i386/i386.c (ix86_abi): New.
8456         (override_options): Handle -mabi=.
8457         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
8458         (ix86_call_abi_override): Likewise.
8459         (init_cumulative_args): Likewise.
8460         (function_arg_advance): Likewise.
8461         (function_arg_64): Likewise.
8462         (function_arg): Likewise.
8463         (ix86_pass_by_reference): Likewise.
8464         (ix86_function_value_regno_p): Likewise.
8465         (ix86_build_builtin_va_list_abi): Likewise.
8466         (setup_incoming_varargs_64): Likewise.
8467         (is_va_list_char_pointer): Likewise.
8468         (ix86_init_machine_status): Likewise.
8469         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
8470         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
8471         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
8472         (ix86_function_abi): Make it static and return enum calling_abi.
8473         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
8474         with ix86_abi.
8475         (ix86_fn_abi_va_list): Updated.
8476
8477         * config/i386/i386.h (ix86_abi): New.
8478         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8479         (CONDITIONAL_REGISTER_USAGE): Likewise.
8480         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8481         (machine_function): Likewise.
8482
8483         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8484         with ix86_abi.
8485         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8486         (STACK_BOUNDARY): Likewise.
8487         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8488
8489         * config/i386/i386.opt (mabi=): New.
8490
8491         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8492         return enum calling_abi.
8493         (ix86_function_type_abi): Likewise.
8494         (ix86_function_abi): Removed.
8495
8496         * doc/invoke.texi: Document -mabi= option for x86.
8497
8498 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8499
8500         * builtins.c (real_dconstp): Delete.
8501         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8502
8503 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
8504             Jakub Jelinek  <jakub@redhat.com>
8505
8506         PR debug/37959
8507         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8508         (gen_subprogram_die): When a function is explicit, generate the
8509         DW_AT_explicit attribute.
8510         * langhooks.h (struct lang_hooks_for_decls): Add
8511         function_decl_explicit_p langhook.
8512         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8513         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8514
8515 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
8516
8517         * builtins.c (fold_builtin_memory_op): Optimize memmove
8518         into memcpy if we can prove source and destination don't overlap.
8519
8520         * tree-inline.c: Include gt-tree-inline.h.
8521         (clone_fn_id_num): New variable.
8522         (clone_function_name): New function.
8523         (tree_function_versioning): Use it.
8524         * Makefile.in (GTFILES): Add tree-inline.c.
8525
8526 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
8527
8528         * BASE-VER: Change to 4.5.0.
8529
8530 2009-03-27  Xinliang David Li  <davidxl@google.com>
8531
8532         PR tree-optimization/39557
8533         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8534
8535 2009-03-27  Xinliang David Li  <davidxl@google.com>
8536
8537         PR tree-optimization/39548
8538         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
8539         candidate check.
8540
8541 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8542
8543         * c-common.c (pointer_int_sum): Use %wd on return from
8544         tree_low_cst.
8545
8546 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
8547
8548         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8549         on return from tree_low_cst.
8550
8551 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8552
8553         PR c++/36799
8554         * ginclude/stdarg.h (va_copy): Define also for
8555         __GXX_EXPERIMENTAL_CXX0X__.
8556
8557 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8558
8559         PR c++/35652
8560         * builtins.h (c_strlen): Do not warn here.
8561         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8562         * c-common.c (pointer_int_sum): Take an explicit location.
8563         Warn about offsets out of bounds.
8564         * c-common.h (pointer_int_sum): Adjust declaration.
8565
8566 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8567
8568         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8569         markup glitch.
8570
8571 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
8572
8573         PR c++/39554
8574         * opts.c (warn_if_disallowed_function_p): Don't assume
8575         get_callee_fndecl must return non-NULL.
8576
8577 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
8578
8579         PR rtl-optimization/39522
8580         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8581         when reg_reloaded_valid is set.
8582
8583 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8584
8585         * config/spu/divv2df3.c: New file.
8586         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8587         (DPBIT_FUNCS): Filter out _div_df.
8588
8589 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
8590
8591         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8592         a jump insn, count that jump in the distance to the loop start.
8593
8594 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
8595
8596         PR target/39523
8597         * config/sh/sh.c (calc_live_regs): Fix condition for global
8598         registers except PIC_OFFSET_TABLE_REGNUM.
8599
8600 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
8601
8602         PR/39518
8603         * doc/invoke.texi (-mconsole): New.
8604         (-mcygwin): New.
8605         (-mno-cygwin): New.
8606         (-mdll): New.
8607         (-mnop-fun-dllimport): New.
8608         (-mthread): New.
8609         (-mwin32): New.
8610         (-mwindows): New.
8611         (sub section "i386 and x86-64 Windows Options"): New.
8612
8613 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
8614
8615         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8616         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8617
8618 2009-03-25  Richard Guenther  <rguenther@suse.de>
8619
8620         PR middle-end/39497
8621         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8622         of -Wno-error.
8623
8624 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
8625
8626         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8627         neither of haifa/selective schedulers are working.
8628
8629 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8630
8631         * doc/invoke.texi (Debugging Options): Fix description of
8632         -fno-merge-debug-strings.
8633
8634 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
8635
8636         * config/cris/libgcc.ver: New version-script.
8637         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8638
8639         * configure.ac <GAS features, nop mnemonic>: Add pattern
8640         crisv32-*-* for "nop".
8641         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
8642         * configure: Regenerate.
8643
8644 2009-03-24  Ira Rosen  <irar@il.ibm.com>
8645
8646         PR tree-optimization/39529
8647         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8648         mark_sym_for_renaming for the tag copied to the new vector
8649         pointer.
8650
8651 2009-03-24  Arthur Loiret  <aloiret@debian.org>
8652
8653         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
8654         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8655         EXTRA_SPEC_FUNCTIONS.
8656         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8657         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8658         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8659         -march and -mtune options.
8660
8661 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
8662
8663         * config/m68k/t-rtems: Add m5329 multilib.
8664
8665 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
8666             Jakub Jelinek  <jakub@redhat.com>
8667
8668         PR debug/39524
8669         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8670         nodes.
8671
8672 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8673
8674         PR c/39495
8675         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8676         instead of c_parser_expression_conv, if original_code isn't one of the
8677         4 allowed comparison codes, fail.
8678
8679 2009-03-23  Richard Guenther  <rguenther@suse.de>
8680
8681         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8682         * tree.h (struct tree_type): Likewise.
8683         * reload.h (struct insn_chain): Likewise.
8684         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8685         * function.h (struct function): Likewise.
8686         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8687
8688 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
8689
8690         PR tree-optimization/39516
8691         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8692
8693 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
8694
8695         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
8696         should be set true if BITS_PER_WORD of target is bigger than 32
8697
8698 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
8699
8700         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8701         Translate -B-options to -rpath-link.  Correct existing
8702         rpath-link and conditionalize on !nostdlib.
8703
8704 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8705
8706         * doc/extend.texi (Function Attributes, Variable Attributes):
8707         Fix typos.
8708         * doc/invoke.texi (Debugging Options, Optimize Options)
8709         (i386 and x86-64 Options, MCore Options): Likewise.
8710
8711 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
8712
8713         PR debug/37890
8714         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8715         it for block local namespace aliases.
8716         (gen_decl_die): Pass context_die to gen_namespace_die.
8717
8718 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8719
8720         PR c/39495
8721         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8722         minimum or maximum value.
8723
8724 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
8725
8726         * reginfo.c (globalize_reg): Recompute derived reg sets.
8727
8728 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
8729
8730         PR target/39063
8731         * libgcc2.c (mprotect): Do not use signed arguments for
8732         VirtualProtect, use DWORD arguments.  Also fix the 'may
8733         be used uninitialized' warning for the np variable.
8734
8735 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
8736
8737         PR target/39496
8738         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8739         functions using regparm calling conventions when not optimizing.
8740         (ix86_function_sseregparm): Similarly for sseregparm calling
8741         conventions.
8742
8743 2009-03-19  Li Feng  <nemokingdom@gmail.com>
8744
8745         PR middle-end/39500
8746         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8747         dependence if the first conflict is after niter iterations.
8748
8749 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
8750
8751         PR middle-end/38609
8752         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8753         functions with dynamic stack-pointer adjustments.
8754
8755 2009-03-19  Ben Elliston  <bje@au.ibm.com>
8756
8757         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8758         option; change to -msdata=data.
8759
8760 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8761
8762         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8763         and -fopenmp.
8764
8765 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
8766
8767         PR target/35180
8768         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8769
8770 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
8771
8772         * doc/invoke.texi (Code Gen Options): Expand discussion of
8773         -fno-common.
8774
8775 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
8776
8777         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8778         * matrix-reorg.c (struct matrix_info): Likewise.
8779         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8780         * rtl.h (struct mem_attrs): Likewise.
8781         * df.h (struct df): Likewise.
8782         * tree-data-ref.h (struct data_dependence_relation): Likewise.
8783         * ira-int.h (struct ira_allocno): Likewise.
8784         * df-scan.c (struct df_collection_rec): Likewise.
8785         * ira.c (struct equivalence): Likewise.
8786         * function.c (struct temp_slot): Likewise.
8787         * cfgloop.h (struct loop): Likewise.
8788
8789         PR debug/39485
8790         * function.c (use_register_for_decl): When not optimizing, disregard
8791         register keyword for variables with types containing methods.
8792
8793 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
8794
8795         PR middle-end/39447
8796         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8797         (is_simple_operand): Call contains_component_ref_p before calling data
8798         reference analysis that would fail on COMPONENT_REFs.
8799
8800         * tree-vrp.c (search_for_addr_array): Fix formatting.
8801
8802 2009-03-18  Richard Guenther  <rguenther@suse.de>
8803
8804         * tree-vect-transform.c (vect_loop_versioning): Fold the
8805         generated comparisons.
8806         * tree-vectorizer.c (set_prologue_iterations): Likewise.
8807         (slpeel_tree_peel_loop_to_edge): Likewise.
8808
8809 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8810
8811         PR middle-end/37805
8812         * opts.c (print_specific_help): In addition to `undocumented',
8813         accept `separate' and `joined' flags if passed alone.  Describe
8814         output by the first matched one of those.
8815         (common_handle_option): Skip over empty strings.
8816         * gcc.c (display_help): Fix help string for `--help='.
8817         * doc/invoke.texi (Option Summary, Overall Options): With
8818         `--help=', classes and qualifiers can both be repeated, but
8819         only the latter can be negated.  One should not pass only
8820         negated qualifiers.  Fix markup and examples.
8821
8822         Revert
8823         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
8824         PR middle-end/37805
8825         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8826         and -fhelp=separate.
8827
8828 2009-03-17  Jing Yu  <jingyu@google.com>
8829
8830         PR middle-end/39378
8831         * function.h (struct rtl_data): Move is_thunk from here...
8832         (struct function): ...to here.
8833         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
8834         * varasm.c (assemble_start_function): Change is_thunk from crtl to
8835         cfun.
8836         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8837         cfun.
8838         (alpha_does_function_need_gp, alpha_start_function): Likewise.
8839         (alpha_output_function_end_prologue): Likewise.
8840         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8841         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8842         (rs6000_output_function_epilogue): Likewise.
8843         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
8844
8845 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
8846
8847         PR target/39482
8848         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8849         from different units in a single alternative.
8850         (*truncdfsf_i387): Ditto.
8851         (*truncxfsf2_mixed): Ditto.
8852         (*truncxfdf2_mixed): Ditto.
8853
8854 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
8855
8856         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
8857         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
8858
8859         PR debug/39474
8860         * tree-ssa-live.c (remove_unused_locals): Don't remove local
8861         unused non-artificial variables when not optimizing.
8862
8863         PR debug/39471
8864         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
8865         DW_TAG_imported_module even if decl is IMPORTED_DECL with
8866         NAMESPACE_DECL in its DECL_INITIAL.
8867
8868         PR middle-end/39443
8869         * optabs.c (set_user_assembler_libfunc): New function.
8870         * expr.h (set_user_assembler_libfunc): New prototype.
8871         * c-common.c: Include libfuncs.h.
8872         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
8873         for memcmp, memset, memcpy, memmove and abort.
8874         * Makefile.in (c-common.o): Depend on libfuncs.h.
8875
8876         PR debug/39412
8877         * dwarf2out.c (gen_inlined_enumeration_type_die,
8878         gen_inlined_structure_type_die, gen_inlined_union_type_die,
8879         gen_tagged_type_instantiation_die): Removed.
8880         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
8881         do nothing.
8882
8883 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
8884
8885         PR testsuite/38526
8886         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
8887         its use.
8888         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
8889         (check-parallel-%): Ditto.
8890         (check-consistency): Ditto.
8891
8892 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
8893
8894         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
8895         local variable rhs by NULL_TREE.
8896
8897 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8898
8899         PR target/39477
8900         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
8901
8902 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8903
8904         PR target/39476
8905         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
8906
8907 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
8908
8909         PR target/39473
8910         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
8911         for ms->sysv ABI calls only in 64bit mode.
8912
8913         * config/i386/i386.md (untyped_call): Support 32bit.
8914
8915 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
8916
8917         * doc/extend.texi: Replace x86_65 with x86_64.
8918
8919 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
8920
8921         PR tree-optimization/39455
8922         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
8923         mismatches for POINTER_TYPE_P (type).
8924         (number_of_iterations_le): Likewise.
8925
8926 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8927
8928         * config/picochip/picochip.c: Removed profiling support.
8929         * config/picochip/picochip.md: Removed profiling instruction.
8930         * config/picochip/picochip.h: Removed profiling builtin.
8931
8932 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
8933
8934         * doc/install.texi (--with-host-libstdcxx): Document.
8935
8936 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
8937
8938         PR target/34299
8939         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8940         generate a warning if the function name does not begin with
8941         "__vector" and the function has either the 'signal' or 'interrupt'
8942         attribute, from here to ...
8943         (avr_declare_function_name): ...here. New function.
8944         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8945         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8946
8947 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
8948
8949         PR bootstrap/39454
8950         * cse.c (fold_rtx): Don't modify original const_arg1 when
8951         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8952         separate variable instead.
8953         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8954         from out of range shift counts.
8955         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8956
8957 2009-03-13  Catherine Moore  <clm@codesourcery.com>
8958
8959         * config/i386/x-mingw32 (host-mingw32.o): Replace
8960         diagnostic.h with $(DIAGNOSTIC_H).
8961
8962 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
8963
8964         PR target/39431
8965         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8966         predicate.
8967         * config/i386/sync.md (sync_compare_and_swap<mode>,
8968         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8969         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8970         into a register.
8971         (sync_double_compare_and_swapdi_pic,
8972         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8973         cmpxchg8b_pic_memory_operand instead of just memory_operand.
8974
8975 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8976
8977         PR target/39445
8978         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
8979
8980 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8981
8982         PR target/39327
8983         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
8984         (avx_addsubv4df3): Likewise.
8985         (*avx_addsubv4sf3): Likewise.
8986         (sse3_addsubv4sf3): Likewise.
8987
8988 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
8989
8990         PR target/38824
8991         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
8992
8993 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
8994
8995         PR debug/39432
8996         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
8997         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
8998         registers for allocnos created from user-defined variables.
8999
9000 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9001
9002         PR target/39181
9003         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
9004         of non-integer mode as well.
9005
9006 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
9007
9008         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
9009         for functions for which the parameter types are unknown.
9010
9011 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
9012
9013         PR target/39137
9014         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9015         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9016         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9017         * config/i386/i386.c (ix86_local_alignment): For
9018         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9019         long long variables on the stack to avoid dynamic realignment.
9020         Allow the first argument to be a decl rather than type.
9021         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9022
9023 2009-03-11  Nick Clifton  <nickc@redhat.com>
9024
9025         PR target/5362
9026         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9027         options.
9028         Add description to mno-lsim option.
9029         * config/mcore/mcore.h: Remove comment about deprecated m4align
9030         option.
9031         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9032         * doc/invoke.texi: Add description of mno-lsim and
9033         mstack-increment options.
9034
9035         * config/fr30/fr30.opt: Document the -mno-lsim option.
9036         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9037         and -mno-lsim options.
9038
9039 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9040
9041         * fold-const.c (fold_comparison): Only call fold_inf_compare
9042         if the mode supports infinities.
9043
9044 2009-03-11  Jason Merrill  <jason@redhat.com>
9045
9046         PR debug/39086
9047         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9048         end already did.  Notice GIMPLE_CALL modifications of the result.
9049         Don't copy debug information from an ignored decl or a decl from
9050         another function.
9051
9052 2009-03-10  Richard Guenther  <rguenther@suse.de>
9053             Nathan Froyd  <froydnj@codesourcery.com>
9054
9055         PR middle-end/37850
9056         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
9057         (__divMODE3): Likewise.
9058
9059 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
9060
9061         PR tree-optimization/39394
9062         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9063         DECL_SIZE_UNIT of variable length FIELD_DECLs.
9064
9065 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9066
9067         * recog.c (verfiy_changes): Disallow renaming of hard regs in
9068         inline asms for register asm ("") declarations.
9069
9070 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
9071
9072         * fold-const.c (fold_unary): Fix comment.
9073
9074 2009-03-07  Jan Hubicka  <jh@suse.cz>
9075
9076         PR target/39361
9077         * tree-inline.c (setup_one_parameter): Do replacement of const
9078         argument by constant in SSA form.
9079
9080 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9081
9082         PR middle-end/38028
9083         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9084         determine alignment passed to assign_stack_local.
9085         (assign_parms_unsplit_complex): Likewise.
9086         * except.c (sjlj_build_landing_pads): Likewise.
9087
9088 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9089
9090         PR middle-end/39360
9091         * tree-flow.h (add_referenced_var): Return bool instead of void.
9092         * tree-dfa.c (add_referenced_var): Return result of
9093         referenced_var_check_and_insert call.
9094         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9095         of referenced_var_check_and_insert.
9096
9097         PR debug/39372
9098         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9099         (gen_variable_die): Emit DW_AT_location on abstract static variable's
9100         DIE, don't emit it if abstract origin already has it.
9101         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9102         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9103
9104 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9105
9106         * genpreds.c (needs_variable): Fix parentheses at variable name
9107         detection.
9108         (write_tm_constrs_h): Indent generated code.
9109
9110 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9111
9112         * doc/extend.texi (Function Attributes): Add documentation
9113         for isr attributes.
9114
9115 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9116
9117         PR debug/39387
9118         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9119         take locus from its DECL_SOURCE_LOCATION instead of input_location.
9120
9121 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
9122
9123         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9124         the loop as bad.
9125
9126 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
9127
9128         PR debug/39379
9129         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9130         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9131
9132 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
9133
9134         * config/i386/i386.md (R8_REG, R9_REG): New constants.
9135         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9136         constants instead of magic numbers.
9137         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9138         (QI_REG_P): Ditto.
9139         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9140         (x86_64_ms_abi_int_parameter_registers): Ditto.
9141         (x86_64_int_return_registers): Ditto.
9142         (ix86_maybe_switch_abi): Ditto.
9143         (ix86_expand_call): Ditto for clobbered_registers array.
9144         (ix86_hard_regno_mode_ok): Ditto.
9145         (x86_extended_QIreg_mentioned_p): Ditto.
9146
9147 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
9148
9149         PR tree-optimization/39349
9150         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9151
9152         * combine.c (gen_lowpart_for_combine): Use omode when generating
9153         clobber.
9154
9155 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
9156
9157         PR rtl-optimization/39235
9158         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9159
9160 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9161
9162         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9163
9164 2009-03-04  Richard Guenther  <rguenther@suse.de>
9165
9166         PR tree-optimization/39362
9167         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9168         that occur in abnormal PHIs should be varying.
9169
9170 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9171
9172         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9173         Extend comments.
9174         (simple_iv):  Take loop as an argument instead of statement.
9175         * tree-scalar-evolution.h (simple_iv): Declaration changed.
9176         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9177         to simple_iv.
9178         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9179         Ditto.
9180         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9181         * matrix-reorg.c (analyze_transpose): Ditto.
9182         * tree-data-ref.c (dr_analyze_innermost): Ditto.
9183         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9184         * tree-predcom.c (ref_at_iteration): Ditto.
9185         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9186
9187 2009-03-04  Richard Guenther  <rguenther@suse.de>
9188
9189         PR tree-optimization/39358
9190         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9191         escaped_id and callused_id.
9192         (solve_graph): Likewise.
9193
9194 2009-03-04  Richard Guenther  <rguenther@suse.de>
9195
9196         PR tree-optimization/39339
9197         * tree-sra.c (try_instantiate_multiple_fields): Make it
9198         no longer ICE on the above.
9199
9200 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
9201
9202         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9203         that fits within Pmode.
9204
9205 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9206
9207         PR middle-end/10109
9208         * tm.texi (LIBCALL_VALUE): Update description.
9209
9210 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9211
9212         PR middle-end/34443
9213         * doc/extend.texi (section): Update description.
9214
9215 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
9216
9217         PR middle-end/39345
9218         * tree-inline.c (remapped_type): New.
9219         (can_be_nonlocal): Call remapped_type instead of remap_type.
9220
9221 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9222
9223         PR fortran/39354
9224         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9225         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9226
9227 2009-03-03  Richard Guenther  <rguenther@suse.de>
9228
9229         PR middle-end/39272
9230         * tree.c (tree_nonartificial_location): New function.
9231         * tree.h (tree_nonartificial_location): Declare.
9232         * builtins.c (expand_builtin_memory_chk): Provide location
9233         of the call location for artificial function pieces.
9234         (maybe_emit_chk_warning): Likewise.
9235         (maybe_emit_sprintf_chk_warning): Likewise.
9236         (maybe_emit_free_warning): Likewise.
9237         * expr.c (expand_expr_real_1): Likewise.
9238
9239 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9240
9241         PR tree-optimization/39343
9242         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9243         COMPONENT_REF t has ARRAY_TYPE.
9244
9245 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9246
9247         PR middle-end/39335
9248         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9249         when the type precision of the induction variable should be
9250         larger than the type precision of nit.
9251         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9252         * graphite.c (graphite_loop_normal_form): Same.
9253         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9254
9255 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9256
9257         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9258         (*call_1_rex64_ms_sysv): Use named constants instead of magic
9259         numbers to describe clobbered registers.
9260         (*call_value_0_rex64_ms_sysv): Ditto.
9261         * config/i386/mmx.md (mmx_emms): Ditto.
9262         (mmx_femms): Ditto.
9263
9264 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
9265
9266         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9267         of ABI_64.
9268
9269 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9270
9271         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9272         (spu_section_type_flags): New function.
9273
9274 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9275
9276         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9277         reg_class_contents of FLOAT_REGS into a temporary.
9278
9279 2009-03-02  Richard Guenther  <rguenther@suse.de>
9280             Ira Rosen  <irar@il.ibm.com>
9281
9282         PR tree-optimization/39318
9283         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9284         information to the vectorized statement.
9285
9286 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
9287
9288         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9289         variable.  Use defined names instead of magic constants for REX SSE
9290         registers.
9291
9292 2009-03-01  Richard Guenther  <rguenther@suse.de>
9293
9294         PR tree-optimization/39331
9295         * omp-low.c (lower_send_shared_vars): Do not receive new
9296         values for the reference of DECL_BY_REFERENCE parms or results.
9297
9298 2009-03-01  Jan Hubicka  <jh@suse.cz>
9299
9300         PR debug/39267
9301         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9302         BLOCK_NONLOCALIZED_VAR): New macros.
9303         (tree_block): Add nonlocalized_vars.
9304         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9305         gen_decl_die): Add origin argument.  Allow generation of die with
9306         origin at hand only.
9307         (gen_member_die, gen_type_die_with_usage, force_decl_die,
9308         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9309         of gen_*.
9310         (gen_block_die): Fix checking for unused blocks.
9311         (process_scope_var): Break out from .... ; work with origins only.
9312         (decls_for_scope) ... here; process nonlocalized list.
9313         (dwarf2out_ignore_block): Look for nonlocalized vars.
9314         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9315         vars.
9316         (dump_scope_block): Dump them.
9317         * tree-inline.c (remap_decls): Handle nonlocalized vars.
9318         (remap_block): Likewise.
9319         (can_be_nonlocal): New predicate.
9320         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9321
9322 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9323
9324         * configure: Regenerate.
9325
9326 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9327
9328         * optc-gen.awk: No need to duplicate option flags twice.
9329         Reuse help texts for duplicate options which do not have any.
9330
9331         * gcc.c (display_help): Document --version.
9332
9333         * gcc.c (main): If print_help_list and verbose_flag, ensure
9334         driver output comes before subprocess output.
9335
9336         * optc-gen.awk: Assign all remaining fields to help string,
9337         space-separated, for multi-line help in *.opt.
9338
9339         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9340         -Wno-pedantic-ms-format is for MinGW targets only.
9341
9342         * doc/options.texi (Option file format): Fix bad indentation,
9343         restoring dropped sentence.
9344
9345 2009-02-28  Jan Hubicka  <jh@suse.cz>
9346
9347         * tree-inline.c (tree_function_versioning): Output debug info.
9348
9349 2009-02-28  Jan Hubicka  <jh@suse.cz>
9350
9351         PR debug/39267
9352         * tree-inline.c (setup_one_parameter): Do not copy propagate
9353         arguments when not optimizing.
9354
9355 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9356
9357         PR target/39327
9358         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9359         (avx_addsubv4df3): Likewise.
9360         (*avx_addsubv4sf3): Likewise.
9361         (sse3_addsubv4sf3): Likewise.
9362         (*avx_addsubv2df3): Likewise.
9363         (sse3_addsubv2df3): Likewise.
9364         (avx_unpckhps256): Correct item selectors.
9365         (avx_unpcklps256): Likewise.
9366         (avx_unpckhpd256): Likewise.
9367         (avx_unpcklpd256): Likewise.
9368
9369 2009-02-28  Jan Hubicka  <jh@suse.cz>
9370
9371         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9372         static vars.
9373         (copy_arguments_for_versioning): If var is declared don't declare it.
9374         (tree_function_versioning): First setup substitutions and then copy
9375         args.
9376
9377 2009-02-27  Jan Hubicka  <jh@suse.cz>
9378
9379         PR debug/39267
9380         * cgraph.h (varpool_output_debug_info): Remove.
9381         * cgraphunit.c (varpool_output_debug_info): Remove.
9382         * dwarf2out.c (deferred_locations_struct): New struct
9383         (deferred_locations): New type.
9384         (deferred_locations_list): New static var.
9385         (deffer_location): New function.
9386         (gen_variable_die): Use it.
9387         (decls_for_scope): Output info on local static vars.
9388         (dwarf2out_finish): Process deferred locations.
9389         * varpool.c (varpool_output_debug_info): Remove.
9390
9391 2009-02-27  Jan Hubicka  <jh@suse.cz>
9392
9393         PR debug/39267
9394         * tree.h (TREE_PROTECTED): Fix comment.
9395         (BLOCK_HANDLER_BLOCK): Remove.
9396         (struct tree_block): Remove handler_block add body_block.
9397         (inlined_function_outer_scope_p): New.
9398         (is_body_block): Remove.
9399         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9400         * dwarf2out.c (is_inlined_entry_point): Remove.
9401         (add_high_low_attributes): Use inlined_function_outer_scope_p.
9402         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
9403         code.
9404         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9405         * gimplify.c (gimplify_expr): Gimplify body blocks.
9406         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9407         block with multiple subblocks.
9408         (dump_scope_block): Prettier output; dump more flags and info.
9409         (dump_scope_blocks): New.
9410         (remove_unused_locals): Use dump_scope_blocks.
9411         * tree-flow.h (dump_scope_blocks): Declare.
9412         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9413         * stmt.c (is_body_block): Remove.
9414         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9415         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9416
9417 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
9418
9419         PR middle-end/39308
9420         * graphite.c (graphite_loop_normal_form): Do not call
9421         number_of_iterations_exit from a gcc_assert.
9422
9423 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9424
9425         * config/s390/s390.c (s390_swap_cmp): Look for conditional
9426         jumps if COND is NULL.
9427         (find_cond_jump): New function.
9428         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
9429         * config/s390/s390.md: Remove z10_cobra attribute value.
9430
9431 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
9432
9433         * config/alpha/alpha.h (alpha_expand_mov): Return false if
9434         force_const_mem returns NULL_RTX.
9435
9436 2009-02-26  Jan Hubicka  <jh@suse.cz>
9437
9438         PR debug/39267
9439         * cgraph.h (varpool_output_debug_info): Remove.
9440         * cgraphunit.c (varpool_output_debug_info): Remove.
9441         * dwarf2out.c (deferred_locations_struct): New struct
9442         (deferred_locations): New type.
9443         (deferred_locations_list): New static var.
9444         (deffer_location): New function.
9445         (gen_variable_die): Use it.
9446         (decls_for_scope): Output info on local static vars.
9447         (dwarf2out_finish): Process deferred locations.
9448         * varpool.c (varpool_output_debug_info): Remove.
9449
9450 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
9451
9452         PR rtl-optimization/39241
9453         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9454         to subreg_offset_representable_p.
9455
9456 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9457
9458         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9459         execute function prototype.  Get f and nregs from max_reg_num
9460         and get_insns.  Remove the first backward pass as it's dead,
9461         guard the forward pass by flag_expensive_optimizations.
9462         (rest_of_handle_regmove): Delete.
9463         (pass_regmove): Replace it with regmove_optimize.
9464
9465 2009-02-25  Martin Jambor  <mjambor@suse.cz>
9466
9467         PR tree-optimization/39259
9468         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
9469         calls_alloca function flags.
9470         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9471         calls are detected.
9472
9473 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
9474
9475         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9476         flags_set_1_rtx, flags_set_1_set): Delete.
9477         (regmove_optimize): Do not call mark_flags_life_zones.
9478
9479 2009-02-24  Julian Brown  <julian@codesourcery.com>
9480
9481         PR target/35965
9482         * config/arm/arm.c (require_pic_register): Only set
9483         cfun->machine->pic_reg once per function.
9484
9485 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
9486
9487         * doc/invoke.texi (Link Options): Document an easier way to pass
9488         options that take arguments to the GNU linker using -Xlinker and -Wl.
9489
9490 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
9491
9492         PR target/33785
9493         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9494
9495 2009-02-24  Richard Guenther  <rguenther@suse.de>
9496
9497         PR debug/39285
9498         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9499
9500 2009-02-24  Richard Guenther  <rguenther@suse.de>
9501             Zdenek Dvorak  <ook@ucw.cz>
9502
9503         PR tree-optimization/39233
9504         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9505         from converting them to a generic type.
9506
9507 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
9508
9509         PR tree-optimization/39260
9510         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9511         contains a condition with a real type.
9512         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9513
9514 2009-02-23  Jason Merrill  <jason@redhat.com>
9515
9516         PR c++/38880
9517         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9518         narrowing_initializer_constant_valid_p.
9519         (narrowing_initializer_constant_valid_p): Don't return
9520         null_pointer_node for adding a pointer to itself.
9521
9522 2009-02-23  Jan Hubicka  <jh@suse.cz>
9523
9524         PR c/12245
9525         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9526         resizing.
9527
9528 2009-02-23  Jan Hubicka  <jh@suse.cz>
9529
9530         PR tree-optimization/37709
9531         * tree.c (block_ultimate_origin): Move here from dwarf2out.
9532         * tree.h (block_ultimate_origin): Declare.
9533         * dwarf2out.c (block_ultimate_origin): Move to tree.c
9534         * tree-ssa-live.c (remove_unused_scope_block_p):
9535         Eliminate blocks containig no instructions nor live variables nor
9536         nested blocks.
9537         (dump_scope_block): New function.
9538         (remove_unused_locals): Enable removal of dead blocks by default;
9539         enable dumping at TDF_DETAILS.
9540
9541 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9542
9543         * config/i386/i386.c (classify_argument): Don't allow COImode
9544         and OImode.
9545         (function_arg_advance_32): Don't allow OImode.
9546         (function_arg_32): Likewise.
9547         (function_value_32): Likewise.
9548         (return_in_memory_32): Likewise.
9549         (function_arg_64): Remove OImode comment.
9550
9551 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9552
9553         PR target/39261
9554         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9555         ix86_expand_vector_set for V4DImode in 64bit mode only.
9556         (ix86_expand_vector_init_one_var): Likewise.
9557
9558 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
9559
9560         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9561
9562 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9563
9564         PR bootstrap/39257
9565         * loop-iv.c: Revert last change.
9566         * emit-rtl.c: Likewise.
9567
9568 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9569
9570         PR target/39256
9571         * config/i386/i386.c (type_natural_mode): Remove an extra
9572         space in the warning message.
9573         (function_value_32): Handle 32-byte vector modes.
9574         (return_in_memory_32): Likewise.
9575
9576 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
9577
9578         * loop-iv.c (truncate_value): New function.
9579         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9580         of lowpart_subreg.
9581         (lowpart_subreg): Move to...
9582         * emit-rtl.c: ...here.
9583
9584 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
9585
9586         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9587         accidental and undocumented change at revision 140860.
9588
9589 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
9590
9591         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9592         take gimple_seq * arguments.
9593         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9594         types_compatible_p langhook.
9595
9596 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
9597             Joseph Myers  <joseph@codesourcery.com>
9598
9599         * config/arm/arm.c (arm_builtin_va_list): New function.
9600         (arm_expand_builtin_va_start): Likewise.
9601         (arm_gimplify_va_arg_expr): Likewise.
9602         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9603         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9604         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9605         (va_list_type): New variable.
9606         (arm_mangle_type): Mangle va_list_type appropriately.
9607
9608 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9609
9610         PR middle-end/39157
9611         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9612         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9613         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9614         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9615         parameter to 1000 for -O1 by default.
9616         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9617         parameter.
9618         * loop-invariant.c: Include params.h.
9619         (move_loop_invariants): Don't call move_single_loop_invariants on
9620         very large loops.
9621
9622 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
9623
9624         * calls.c (emit_library_call_value_1): Use slot_offset instead of
9625         offset when calculating bounds for indexing stack_usage_map.  Fixes
9626         a buffer overflow with certain target setups.
9627
9628 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
9629
9630         PR target/39240
9631         * calls.c (expand_call): Clear try_tail_call if caller and callee
9632         disagree in promotion of function return value.
9633
9634 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
9635
9636         PR target/39175
9637         * c-common.c (c_determine_visibility): If visibility changed and
9638         DECL_RTL has been already set, call make_decl_rtl to update symbol
9639         flags.
9640
9641 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
9642
9643         PR c++/39188
9644         * varasm.c (assemble_variable): Don't check DECL_NAME when
9645         globalizing a variable.
9646
9647 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
9648
9649         PR c/38483
9650         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9651         expression before any __builtin_trap call.
9652         * c-typeck.c (build_function_call): Convert and check function
9653         arguments before generating a call to a trap.  Evaluate the
9654         function arguments before the trap.
9655
9656 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
9657
9658         PR target/39228
9659         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9660         (UNSPEC_FXAM_MEM): New unspec.
9661         (fxam<mode>2_i387_with_temp): New insn and split pattern.
9662         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
9663         memory using fxam<mode>2_i387_with_temp to remove excess precision.
9664
9665 2009-02-19  Richard Guenther  <rguenther@suse.de>
9666
9667         PR tree-optimization/39207
9668         PR tree-optimization/39074
9669         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9670         storedanything_tree): New.
9671         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
9672         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9673         (build_succ_graph): Add edges from STOREDANYTHING to all
9674         non-direct nodes.
9675         (init_base_vars): Initialize STOREDANYTHING.
9676         (compute_points_to_sets): Free substitution info after
9677         building the succ graph.
9678         (ipa_pta_execute): Likewise.
9679
9680         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9681         field.
9682         (do_ds_constraint): Do not add to special var or non-pointer
9683         field solutions.
9684         (type_could_have_pointers): Split out from ...
9685         (could_have_pointers): ... here.  For arrays use the element type.
9686         (create_variable_info_for): Initialize may_have_pointers.
9687         (new_var_info): Likewise.
9688         (handle_lhs_call): Make the HEAP variable unknown-sized.
9689         (intra_create_variable_infos): Use a type with pointers for
9690         PARM_NOALIAS, make it unknown-sized.
9691
9692 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
9693
9694         PR target/39224
9695         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
9696
9697 2009-02-18  Jason Merrill  <jason@redhat.com>
9698
9699         PR target/39179
9700         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9701         value if DECL_EXTERNAL.
9702         * tree-sra.c (sra_walk_gimple_assign): Likewise.
9703         * target.h (gcc_target::binds_local_p): Clarify "module".
9704         * tree.h (TREE_PUBLIC): Clarify "module".
9705
9706 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
9707
9708         PR target/38891
9709         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9710         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9711
9712 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
9713
9714         PR target/39082
9715         * c.opt (Wabi): Support C and ObjC.
9716         (Wpsabi): New.
9717
9718         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9719
9720         * config/i386/i386.c (classify_argument): Warn once about the ABI
9721         change when passing union with long double.
9722
9723         * doc/invoke.texi: Update -Wabi for warning psABI changes.
9724
9725 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
9726
9727         PR c/35447
9728         * c-parser.c (c_parser_compound_statement): Always enter and leave
9729         a scope.
9730
9731 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9732
9733         PR target/34587
9734         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9735
9736 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
9737
9738         PR tree-optimization/36922
9739         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9740         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9741         Likewise.
9742
9743 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9744
9745         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9746         to 0 for EABI64.
9747
9748 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9749
9750         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9751
9752 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
9753
9754         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9755         tree sharing.
9756
9757 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
9758             Richard Sandiford  <rdsandiford@googlemail.com>
9759
9760         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9761         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9762         (loongson_biadd): ...this.
9763
9764 2009-02-17  Richard Guenther  <rguenther@suse.de>
9765
9766         PR tree-optimization/39202
9767         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9768         a var make sure to follow existing collapses.
9769
9770 2009-02-17  Richard Guenther  <rguenther@suse.de>
9771
9772         PR middle-end/39214
9773         * langhooks.c (lhd_print_error_function): Check for NULL block.
9774
9775 2009-02-17  Richard Guenther  <rguenther@suse.de>
9776
9777         PR tree-optimization/39204
9778         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9779         of the PHI arg.
9780
9781 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
9782
9783         * config/soft-fp/double.h: Update from glibc CVS.
9784
9785 2009-02-17  Richard Guenther  <rguenther@suse.de>
9786
9787         PR tree-optimization/39207
9788         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9789         strict-aliasing warnings for pointers pointing to NULL.
9790
9791 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
9792
9793         PR c/35446
9794         * c-parser.c (c_parser_braced_init): Call pop_init_level when
9795         skipping until next close brace.
9796
9797 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
9798
9799         PR target/37049
9800         * config/i386/i386.c (ix86_expand_push): Set memory alignment
9801         to function argument boundary.
9802
9803 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9804
9805         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9806         in the lea_add. Reload eventually constraints it properly.
9807         * config/picochip/constraints.md: Remove the target constraint
9808         "b", since it is not needed anymore.
9809
9810 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
9811
9812         * gthr-dce.h: Uglify function parameter and local variable names.
9813         * gthr-gnat.h: Likewise.
9814         * gthr-mipssde.h: Likewise.
9815         * gthr-nks.h: Likewise.
9816         * gthr-posix95.h: Likewise.
9817         * gthr-posix.h: Likewise.
9818         * gthr-rtems.h: Likewise.
9819         * gthr-single.h: Likewise.
9820         * gthr-solaris.h: Likewise.
9821         * gthr-tpf.h: Likewise.
9822         * gthr-vxworks.h: Likewise.
9823         * gthr-win32.h: Likewise.
9824
9825 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
9826
9827         PR target/39196
9828         * config/i386/i386.md: Restrict the new peephole2 to move
9829         between MMX/SSE registers.
9830
9831 2009-02-15  Richard Guenther  <rguenther@suse.de>
9832
9833         Revert
9834         2009-02-13  Richard Guenther  <rguenther@suse.de>
9835
9836         * configure.ac: Enable LFS.
9837         * configure: Re-generate.
9838         * config.in: Likewise.
9839
9840 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9841
9842         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9843         spu_srqwbyte, spu_srqwbytebc): Define.
9844         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9845         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9846         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9847         "shrqby_<mode>"): New insn-and-split patterns.
9848         * config/spu/spu.c (expand_builtin_args): Determine and return
9849         number of operands using spu_builtin_description data.
9850         (spu_expand_builtin_1): Use it.
9851
9852 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
9853
9854         PR target/38056
9855         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
9856         TARGET_CONST_GP.
9857
9858 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9859
9860         PR target/39149
9861         * config/i386/i386.c (override_options): Correct warning
9862         messages for -malign-loops, -malign-jumps and -malign-functions.
9863
9864 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9865
9866         PR target/39152
9867         * config/i386/i386.md: Restrict the new peephole2 to move
9868         between the general purpose registers.
9869
9870 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
9871
9872         PR target/39162
9873         * config/i386/i386.c (type_natural_mode): Add a new argument.
9874         Return the original mode and warn ABI change if vector size is 32byte.
9875         (function_arg_advance): Updated.
9876         (function_arg): Likewise.
9877         (ix86_function_value): Likewise.
9878         (ix86_return_in_memory): Likewise.
9879         (ix86_sol10_return_in_memory): Likewise.
9880         (ix86_gimplify_va_arg): Likewise.
9881         (function_arg_32): Don't warn ABX ABI change here.
9882         (function_arg_64): Likewise.
9883
9884 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
9885
9886         * loop-iv.c (implies_p): In the final case, test that operands 0
9887         of the two comparisons match.
9888
9889         * config/bfin/bfin.c (find_prev_insn_start): New function.
9890         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
9891         (find_next_insn_start): Move.
9892
9893 2009-02-13  Richard Guenther  <rguenther@suse.de>
9894
9895         * configure.ac: Enable LFS.
9896         * configure: Re-generate.
9897         * config.in: Likewise.
9898
9899 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
9900
9901         PR c/35444
9902         * c-parser.c (c_parser_parms_list_declarator): Discard pending
9903         sizes on syntax error after some arguments have been parsed.
9904
9905 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
9906
9907         * doc/invoke.texi (-fira): Remove.
9908
9909 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9910
9911         * caller-save.c: Replace regclass.c with reginfo.c in comments.
9912         * recog.c: Likewise.
9913         * rtl.h: Likewise.
9914
9915 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
9916
9917         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
9918         (umul_ppmm): Likewise.
9919         (count_leading_zeros): Likewise.
9920         (count_trailing_zeros): Likewise.
9921         (UMUL_TIME): Likewise.
9922
9923 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9924
9925         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
9926         soft-fp/t-softfp to tmake_file.
9927
9928         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
9929         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
9930         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
9931         IA64_BUILTIN_INFQ]: New.
9932         (ia64_init_builtins): Initialize __builtin_infq,
9933         __builtin_fabsq and __builtin_copysignq if not HPUX.
9934         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9935         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9936
9937         * config/ia64/lib1funcs.asm (__divtf3): Define only if
9938         SHARED is defined.
9939         (__fixtfti): Likewise.
9940         (__fixunstfti): Likewise.
9941         (__floattitf): Likewise.
9942
9943         * config/ia64/libgcc-glibc.ver: New.
9944         * config/ia64/t-fprules-softfp: Likewise.
9945         * config/ia64/sfp-machine.h: Likewise.
9946
9947         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9948         (LIBGCC2_TF_CEXT): Likewise.
9949         (TF_SIZE): Likewise.
9950         (TARGET_INIT_LIBFUNCS): Likewise.
9951
9952         * config/ia64/t-glibc (SHLINB_MAPFILES):
9953         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
9954
9955 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
9956
9957         * config/i386/i386.c (construct_container): Rewrite processing
9958         BLKmode with X86_64_SSE_CLASS.
9959
9960 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
9961
9962         PR target/39152
9963         * config/i386/i386.md: Replace simplify_replace_rtx with
9964         replace_rtx in the new peephole2.
9965
9966 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
9967
9968         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9969         loop unrolling do not happen at -O2.
9970
9971 2009-02-12  Michael Matz  <matz@suse.de>
9972
9973         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
9974
9975 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
9976
9977         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
9978         for -g3.
9979
9980 2009-02-12  Ben Elliston  <bje@au.ibm.com>
9981
9982         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
9983         patterns when updating the back chain.  Missed in the 2009-02-10
9984         change.
9985
9986 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
9987
9988         * doc/extend.texi (Decimal Floating Types): Update identifier of
9989         draft TR and list of missing support.
9990
9991 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
9992
9993         PR middle-end/39154
9994         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
9995         bit to variable length decl's flags, add it also to its
9996         pointer replacement variable.
9997
9998 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
9999             Jakub Jelinek  <jakub@redhat.com>
10000
10001         PR target/39118
10002         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
10003         (memory_blockage): New expander.
10004         (*memory_blockage): New insn pattern.
10005         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
10006         instead of general blockage at the end of function prologue when
10007         frame pointer is used to access red zone area.  Do not emit blockage
10008         when profiling, it is emitted in generic code.
10009         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
10010         function epilogue when frame pointer is used to access red zone area.
10011
10012 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
10013
10014         PR target/38824
10015         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10016         by arithmetic with memory operands.
10017         * config/i386/predicates.md (commutative_operator): New.
10018
10019 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
10020
10021         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10022         bulleted lists.
10023
10024 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10025
10026         * alias.h (record_alias_subset): Declare.
10027         * alias.c (record_alias_subset): Make global.
10028
10029 2009-02-10  Nick Clifton  <nickc@redhat.com>
10030
10031         * tree-parloops.c: Change license to GPLv3.
10032         * ipa-struct-reorg.c: Change license to GPLv3.
10033         * ipa-struct-reorg.h: Change license to GPLv3.
10034
10035 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
10036
10037         PR c/39084
10038         * c-decl.c (start_struct): Return NULL on error.
10039
10040 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
10041
10042         PR middle-end/39124
10043         * cfgloopmanip.c (remove_path): Call remove_bbs after
10044         cancel_loop_tree, not before it.
10045
10046         PR target/39139
10047         * function.h (struct function): Add has_local_explicit_reg_vars bit.
10048         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10049         VAR_DECLs were seen.
10050         * tree-ssa-live.c (remove_unused_locals): Recompute
10051         cfun->has_local_explicit_reg_vars.
10052         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10053         copies or clearings if cfun->has_local_explicit_reg_vars.
10054
10055 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
10056
10057         PR target/39118
10058         * config/i386/i386.c (expand_prologue): Emit blockage at the end
10059         of function prologue when frame pointer is used to access
10060         red zone area.
10061
10062 2009-02-10  Richard Guenther  <rguenther@suse.de>
10063
10064         PR middle-end/39127
10065         * gimplify.c (gimple_regimplify_operands): Always look if
10066         we need to create a temporary.
10067
10068 2009-02-10  Richard Guenther  <rguenther@suse.de>
10069
10070         PR tree-optimization/39132
10071         * tree-loop-distribution.c (todo): New global var.
10072         (generate_memset_zero): Trigger TODO_rebuild_alias.
10073         (tree_loop_distribution): Return todo.
10074
10075 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
10076
10077         PR target/39119
10078         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10079         (x86_64_reg_class_name): Removed.
10080         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
10081         first one isn't X86_64_SSE_CLASS or any other ones aren't
10082         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
10083         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10084         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
10085         and 3 X86_64_SSEUP_CLASS.
10086         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
10087         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10088
10089 2009-02-10  Ben Elliston  <bje@au.ibm.com>
10090
10091         * config/rs6000/rs6000.md (allocate_stack): Always use an update
10092         form instruction to update the stack back chain word, even if the
10093         user has disabled the generation of update instructions.
10094         (movdi_<mode>_update_stack): New.
10095         (movsi_update_stack): Likewise.
10096         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10097         always use an update form instruction to update the stack back
10098         chain word.
10099
10100 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
10101
10102         PR middle-end/38953
10103         * graphite.c (if_region_set_false_region): After moving a region in
10104         the false branch of a condition, remove the empty dummy basic block.
10105         (gloog): Remove wrong fix for PR38953.
10106
10107 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10108
10109         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10110         generation due to implicit sign extension.
10111
10112 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
10113
10114         PR middle-end/38981
10115         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10116         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10117
10118 2009-02-09  Richard Guenther  <rguenther@suse.de>
10119
10120         PR middle-end/35202
10121         * convert.c (convert_to_real): Disable (float)fn((double)x)
10122         to fnf(x) conversion if errno differences may occur and
10123         -fmath-errno is set.
10124
10125 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
10126
10127         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10128         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10129         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10130
10131 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10132
10133         PR c/35434
10134         * c-common.c (handle_alias_attribute): Disallow attribute for
10135         anything not a FUNCTION_DECL or VAR_DECL.
10136
10137 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
10138
10139         PR c/39035
10140         * real.c (do_compare): Special-case compare of zero against
10141         decimal float value.
10142
10143 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10144
10145         PR c/36432
10146         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10147         as indicating flexible array members unless the field itself is
10148         being declarared as the incomplete array.
10149
10150 2009-02-06  Jan Hubicka  <jh@suse.cz>
10151
10152         PR tree-optimization/38844
10153         * ipa-inline.c (try_inline): Stop inlining recursion when edge
10154         is already inlined.
10155
10156 2009-02-06  Richard Guenther  <rguenther@suse.de>
10157
10158         PR middle-end/38977
10159         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10160         fork because we may expand it as __gcov_fork.
10161
10162 2009-02-06  Nick Clifton  <nickc@redhat.com>
10163
10164         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
10165
10166 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
10167
10168         PR tree-optimization/35659
10169         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10170         vn_phi_eq): Shortcut if hashcode does not match.
10171         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10172         NULL operands.
10173         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10174         and avoid iterative_hash_expr.
10175         (FOR_EACH_VALUE_ID_IN_SET): New.
10176         (value_id_compare): Remove.
10177         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10178         sort expressions by value id.
10179
10180 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10181
10182         PR target/38991
10183         * config/sh/predicates.md (general_movsrc_operand): Don't check
10184         the subreg of system registers here.
10185
10186 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
10187
10188         PR c++/39106
10189         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10190         on the copied decl.
10191
10192 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
10193
10194         PR rtl-optimization/39110
10195         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10196         addresses, not aligned ones.
10197
10198 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
10199             Richard Guenther  <rguenther@suse.de>
10200
10201         PR tree-optimization/39100
10202         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10203         comment says and add edges.
10204
10205 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
10206
10207         PR c/35435
10208         * c-common.c (handle_tls_model_attribute): Ignore attribute for
10209         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10210
10211 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
10212
10213         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10214         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10215         register_bb_in_sese, new_sese, free_sese): Moved.
10216         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10217         outermost_loop_in_scop, build_scop_iteration_domain,
10218         expand_scalar_variables_ssa_name, get_vdef_before_scop,
10219         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10220         Use loop_in_sese_p instead of loop_in_scop_p.
10221         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10222         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10223         (scopdet_basic_block_info): Fix bug in scop detection.
10224         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10225         eq_loop_to_cloog_loop): Remove.
10226         (nb_loops_around_loop_in_scop, nb_loop
10227         ref_nb_loops): Moved here...
10228         * graphite.h (ref_nb_loops): ... from here.
10229         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10230         (loop_domain_dim, loop_iteration_vector_dim): Remove.
10231         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10232         * testsuite/gcc.dg/graphite/scop-19.c: New
10233
10234 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
10235             Hans-Peter Nilsson  <hp@axis.com>
10236
10237         PR rtl-optimization/37889
10238         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10239         Move offset handling from PLUS to before the switch.  Use new
10240         arguments when considering SYMBOL_REFs too.
10241         (rtx_addr_can_trap_p): Pass dummy offset and size.
10242         (enum may_trap_p_flags): Remove.
10243         (may_trap_p_1): Pass size from MEM_SIZE.
10244
10245         PR rtl-optimization/38921
10246         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10247         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10248         * rtlanal.c (may_trap_after_code_motion_p): Delete.
10249         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10250
10251 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
10252
10253         AVX Programming Reference (January, 2009)
10254         * config/i386/sse.md (*vpclmulqdq): New.
10255
10256 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
10257
10258         PR tree-optimization/38977
10259         PR gcov-profile/38292
10260         * calls.c (special_function_p): Disregard __builtin_ prefix.
10261
10262 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10263
10264         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10265         non-indexable addresses even before reload.
10266
10267 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10268
10269         PR c/29129
10270         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10271         as having variable size.  Do not give an error for unnamed
10272         parameters with [*] declarators.  Give a warning for type names
10273         with [*] declarators and mark them as variable size.
10274         * c-parser.c (c_parser_sizeof_expression): Do not give an error
10275         for sizeof applied to [*] type names.
10276
10277 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10278
10279         PR C++/36607
10280         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10281
10282 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10283
10284         * gcc.c (process_command): Update copyright notice dates.
10285         * gcov.c (print_version): Likewise.
10286         * gcov-dump.c (print_version): Likewise.
10287         * mips-tfile.c (main): Likewise.
10288         * mips-tdump.c (main): Likewise.
10289
10290 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10291
10292         PR c/35433
10293         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10294         for composite type involving a zero-length array type.
10295
10296 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10297
10298         PR target/35318
10299         * function.c (match_asm_constraints_1): Skip over
10300         initial optional % in the constraint.
10301
10302         PR inline-asm/39059
10303         * c-parser.c (c_parser_postfix_expression): If fixed point is not
10304         supported, don't accept FIXED_CSTs.
10305         * c-decl.c (finish_declspecs): Error if fixed point is not supported
10306         and _Sat is used without _Fract/_Accum.  Set specs->type to
10307         integer_type_node for cts_fract/cts_accum if fixed point is not
10308         supported.
10309
10310 2009-02-02  Catherine Moore  <clm@codesourcery.com>
10311
10312         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
10313
10314 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
10315
10316         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10317         (ABI_HAS_64BIT_SYMBOLS): Use it.
10318         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10319
10320 2009-02-02  Paul Brook  <paul@codesourcery.com>
10321
10322         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10323
10324 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
10325
10326         PR inline-asm/39058
10327         * recog.h (asm_operand_ok): Add constraints argument.
10328         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
10329         recurse on matching constraint.
10330         (check_asm_operands): Pass constraints as 3rd argument to
10331         asm_operand_ok.  Don't look up matching constraint here.
10332         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10333         to asm_operand_ok.
10334
10335 2009-02-02  Ben Elliston  <bje@au.ibm.com>
10336
10337         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10338         TARGET_NARROW_VOLATILE_BITFIELD macro names.
10339
10340 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10341
10342         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10343         information.  Remove some obsolete information.  Reorganize.
10344
10345         * config/pa/fptr.c: Revert license to GPL 2.
10346         * config/pa/milli64.S: Likewise.
10347
10348 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10349
10350         PR target/38904
10351         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
10352         LIBRARY name in, instead of hard-coding it.
10353         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
10354         extra target make frag to tmake_files according to EH model.
10355         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
10356         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
10357         frags that define makefile variable EH_MODEL appropriately.
10358         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
10359         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
10360         to "-sjlj" according to type of EH configured.
10361         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10362         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
10363         to "_sjlj" according to type of EH configured.
10364         (LIBGCC_SONAME):  Concatenate it to shared library base name.
10365         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
10366         (SHLIB_LINK):  Add missing semicolon to if-else construct.
10367         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10368         string value of "pe_dll" command-line option.
10369         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
10370         (SHLIB_SONAME):  Use it when overriding t-cygming default.
10371         (SHLIB_IMPLIB):  Override t-cygming default.
10372         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
10373         string value of "pe_dll" command-line option.
10374
10375 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
10376
10377         PR target/38952
10378         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
10379         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
10380
10381 2009-01-31  Richard Guenther  <rguenther@suse.de>
10382
10383         PR tree-optimization/38937
10384         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10385         computing the transitive closure.
10386
10387 2009-01-30  Richard Guenther  <rguenther@suse.de>
10388
10389         PR tree-optimization/39041
10390         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10391         Propagate variable indices only if the types match for this stmt.
10392
10393 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
10394
10395         PR target/39013
10396         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10397         inline but never defined.
10398
10399 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
10400
10401         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10402         (*insv_h_di_reg_extimm): New insn.
10403         (*insv_l<mode>_reg_extimm): New insn.
10404
10405 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10406
10407         * config/picochip/picochip.c (flag_conserve_stack): set
10408         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10409         fconserve-stack. Reduce call-overhead used by inliner.
10410
10411 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
10412
10413         PR/38157
10414         * common.opt (flag_conserve_stack): Initialised to zero.
10415
10416 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
10417
10418         PR/39002
10419         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10420         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10421         method.
10422
10423 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
10424
10425         * ira-color.c (allocno_reload_assign): Update comments.
10426         * regmove.c (regmove_optimize): Likewise.
10427
10428         * ra.h: Removed.
10429
10430 2009-01-29  Robert Millan  <rmh@aybabtu.com>
10431
10432         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10433         * config/i386/kopensolaris-gnu.h: New file.  Undefine
10434         `MD_UNWIND_SUPPORT'.
10435         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
10436
10437 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
10438
10439         PR tree-optimization/39007
10440         * tree-loop-distribution.c (generate_builtin): Use
10441         recompute_dominator to compute the immediate dominator of the
10442         basic block just after the loop.
10443
10444 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10445
10446         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10447         (ASM_OUTPUT_DWARF_PCREL): Define.
10448
10449 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
10450
10451         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10452         * doc/passes.texi: Remove entries about regclass, local-alloc, and
10453         global.  Modify entries about regmove and IRA.
10454
10455         * ra-conflict.c: Remove the file.
10456
10457         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10458
10459         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10460         (pass_regclass_init): Rename to pass_reginfo_init.
10461
10462         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10463
10464         * toplev.h (flag_ira): Remove.
10465
10466         * caller-save.c (setup_save_areas): Remove flag_ira.
10467
10468         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
10469
10470         * global.c: Remove the file.
10471
10472         * opts.c (decode_options): Remove flag_ira.
10473
10474         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10475
10476         * regmove.c: Modify file description.
10477         (find_use_as_address, try_auto_increment): Define them only if
10478         AUTO_INC_DEC is defined.
10479         (replacement_quality, replace_in_call_usage, fixup_match_1,
10480         stable_and_no_regs_but_for_p): Remove.
10481         (reg_set_in_bb): Make it static.
10482         (regmove_optimize): Remove flag_ira and code which worked for
10483         !flag_ira.
10484
10485         * local-alloc.c: Remove the file.
10486
10487         * common.opt (fira): Remove.
10488
10489         * ira.c: Include except.h.
10490         (eliminable_regset): Move from global.c.
10491         (mark_elimination): Ditto.  Remove flag_ira.
10492         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10493         equiv_mem_modified, validate_equiv_mem_from_store,
10494         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10495         contains_replace_regs, memref_referenced_p, memref_used_between_p,
10496         no_equiv, recorded_label_ref): Move from local-alloc.c.
10497         (update_equiv_regs): Ditto.  Make it static.
10498         (print_insn_chain, print_insn_chains): Move it from global.c.
10499         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
10500         (build_insn_chain): Ditto.  Make it static.
10501         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
10502         Rename to init_live_subregs.
10503         (gate_ira): Remove flag_ira.
10504
10505         * regclass.c: Rename reginfo.c.  Change file description.
10506         (FORBIDDEN_INC_DEC_CLASSES): Remove.
10507         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
10508         (init_reg_sets_1): Remove code for evaluation of
10509         reg_class_superclasses and losing_caller_save_reg_set.
10510         (init_regs): Remove init_reg_autoinc.
10511         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10512         ok_for_base_p_nonstrict): Remove.
10513         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
10514         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
10515         corresponding entries.
10516         (dump_regclass, record_operand_costs, scan_one_insn,
10517         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10518         record_address_regs, auto_inc_dec_reg_p): Remove.
10519         (gt-regclass.h): Rename to gt-reginfo.h.
10520
10521         * rtl.h (dump_global_regs, retry_global_alloc,
10522         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
10523
10524         * Makefile.in (RA_H): Remove.
10525         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10526         Rename regclass.o to reginfo.o.
10527         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
10528         gt-reginfo.h.
10529         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10530         (GTFILES): Rename regclass.c to reginfo.c.
10531
10532         * passes.c (init_optimization_passes): Remove pass_local_alloc and
10533         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
10534
10535         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10536         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10537         Remove flag_ira.
10538         (finish_spills): Ditto.  Remove code for !flag_ira.
10539
10540 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
10541
10542         PR middle-end/35854
10543         * doc/invoke.texi (rtl debug options): Complete rewrite.
10544         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10545         to auto_inc_dec".
10546         * mode-switching.c (pass_mode_switching): Rename pass from
10547         "mode-sw" to "mode_sw".
10548         * except.c (pass_convert_to_eh_ranges): Rename pass from
10549         "eh-ranges" to "eh_ranges".
10550         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10551         to "subreg1".
10552
10553
10554 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
10555             Alexander Monakov  <amonakov@ispras.ru>
10556
10557         PR middle-end/38857
10558         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10559         register.
10560         (move_exprs_to_boundary): Change return type and pass through
10561         should_move from move_op.  Relax assert.  Update usage ...
10562         (schedule_expr_on_boundary): ... here.  Use should_move instead of
10563         cant_move.
10564         (move_op_orig_expr_found): Indicate that insn was disconnected from
10565         stream.
10566         (code_motion_process_successors): Do not call after_merge_succs
10567         callback if original expression was not found when traversing any of
10568         the branches.
10569         (code_motion_path_driver): Change return type.  Update prototype.
10570         (move_op): Update comment.  Add a new parameter (should_move).  Update
10571         prototype.  Set *should_move based on indication provided by
10572         move_op_orig_expr_found.
10573
10574 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
10575
10576         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10577         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10578         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10579         * config/rs6000/rs6000.c (rs6000_override_options): Default
10580         avoid-indexed-addresses on for Power6, off for everything else.
10581         (avoiding_indexed_address_p): New function.
10582         (rs6000_legitimize_address): Use it.
10583         (rs6000_legitimate_address): Likewise.
10584         * config/rs6000/rs6000.md (movXX_updateX): Likewise
10585
10586 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
10587
10588         PR tree-optimization/38997
10589         * tree-loop-distribution.c (generate_memset_zero): Use
10590         POINTER_PLUS_EXPR for a pointer addition.
10591
10592 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
10593
10594         * config/s390/s390.md (bswap<mode>2): New pattern added.
10595
10596 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10597
10598         * config/s390/s390.md (*tls_load_31): Added type attribute.
10599
10600 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10601
10602         * config/s390/s390.md: Fix a few comments.
10603
10604 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
10605
10606         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10607         (*tm<mode>_full): Fixed z10prop attribute.
10608         (*tst<mode>_extimm): Fixed z10prop attribute.
10609         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10610         (*tstqiCCT_cconly): Fixed z10prop attribute.
10611         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10612         (*movsi_larl): Fixed z10prop attribute.
10613         (*movsi_zarch): Fixed z10prop attribute.
10614         (*movsi_eas): Fixed z10prop attribute.
10615         (*movhi): Fixed z10prop attribute.
10616         (*movqi): Fixed z10prop attribute.
10617         (*movstrictqi): Fixed z10prop attribute.
10618         (*mov<mode>): Fixed z10prop attribute.
10619         (*movcc): Fixed z10prop attribute.
10620         (*sethighpartdi_64): Fixed z10prop attribute.
10621         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10622         (*negdi2_sign_cc): Fixed z10prop attribute.
10623         (*negdi2_sign): Fixed z10prop attribute.
10624         (*absdi2_sign_cc): Fixed z10prop attribute.
10625         (*absdi2_sign): Fixed z10prop attribute.
10626         (*negabsdi2_sign_cc): Fixed z10prop attribute.
10627         (*negabsdi2_sign): Fixed z10prop attribute.
10628         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10629         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10630         (doloop_si64): Fixed z10prop attribute.
10631         (doloop_si31): Fixed z10prop attribute.
10632         (doloop_long): Fixed z10prop attribute.
10633         (indirect_jump): Fixed z10prop attribute.
10634         (nop): Fixed z10prop attribute.
10635         (main_base_64): Fixed z10prop attribute.
10636         (reload_base_64): Fixed z10prop attribute.
10637
10638 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10639
10640         PR rtl-optimization/38740
10641         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10642         if !optimize.
10643         * config/mips/mips.c (mips_reorg): Likewise.
10644
10645 2009-01-28  Richard Guenther  <rguenther@suse.de>
10646
10647         PR tree-optimization/38926
10648         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10649         with the correct value id to a value.
10650         (do_regular_insertion): Use the value number of edoubleprime
10651         for the value number of the expr.
10652
10653         Revert
10654         2008-08-21  Richard Guenther  <rguenther@suse.de>
10655
10656         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10657         a PHI ask VN if it is already available.
10658         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10659         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
10660
10661 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
10662
10663         PR middle-end/38934
10664         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10665         set to varying whenever max has TREE_OVERFLOW set, similarly
10666         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10667
10668 2009-01-28  Richard Guenther  <rguenther@suse.de>
10669
10670         PR middle-end/38908
10671         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10672         uninitialized aggregate uses in call arguments.
10673
10674 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
10675
10676         PR tree-optimization/38984
10677         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10678         the nothing_id variable if -fno-delete-null-pointer-checks.
10679
10680 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
10681
10682         PR target/38988
10683         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10684         (set_got_offset_rex64): Ditto.
10685
10686 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
10687
10688         PR target/38941
10689         * doc/extend.texi: Improve local variable with asm reg.
10690
10691 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
10692
10693         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10694         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10695         was not supplied then set warn_packed_bitfield_compat to the
10696         default value of 1.
10697         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10698         against 1.
10699
10700 2009-01-27  Richard Guenther  <rguenther@suse.de>
10701
10702         PR tree-optimization/38503
10703         * cfgexpand.c (expand_gimple_basic_block): Ignore
10704         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10705         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10706         variables that cannot have TBAA applied.
10707         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10708         statements.
10709
10710 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
10711
10712         PR middle-end/38969
10713         * calls.c (initialize_argument_information): Do not wrap complex
10714         arguments in SAVE_EXPR.
10715
10716 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
10717
10718         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
10719         (INSTALL_LIBGCC): Revert typo commit.
10720
10721 2009-01-26  Richard Guenther  <rguenther@suse.de>
10722
10723         PR tree-optimization/38745
10724         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10725         from special handling.
10726
10727 2009-01-26  Richard Guenther  <rguenther@suse.de>
10728
10729         PR tree-optimization/38745
10730         * tree-ssa.c (execute_update_addresses_taken): Do not include
10731         variables that cannot possibly be a register in not_reg_needs.
10732         Do not clear TREE_ADDRESSABLE on vars that may not become
10733         registers.
10734         * tree-ssa.c (update_alias_info_1): Include those in the set
10735         of addressable vars.
10736
10737 2009-01-26  Richard Guenther  <rguenther@suse.de>
10738
10739         PR middle-end/38851
10740         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10741         * tree-ssa-dse.c: Include langhooks.h
10742         (execute_simple_dse): Remove stores with zero size.
10743
10744 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
10745
10746         PR c/38957
10747         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10748         as PLUS_EXPR.
10749
10750 2009-01-24  Julian Brown  <julian@codesourcery.com>
10751
10752         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10753         config/arm/linux-atomic.c.
10754         * config/arm/linux-atomic.c: New.
10755
10756 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
10757
10758         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10759         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10760         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10761
10762 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10763
10764         PR c/38938
10765         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
10766         properly.
10767
10768 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
10769
10770         PR tree-optimization/38953
10771         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10772         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10773         (gloog): Split the exit of the scop when the scop exit is a loop exit.
10774         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10775         changed the CFG.
10776
10777 2009-01-24  Paul Brook  <paul@codesourcery.com>
10778
10779         * config/arm/neon.md (neon_type): Move to arm.md.
10780         (neon_mov<VSTRUCT>): Add neon_type attribute.
10781         * config/arm/arm.md (neon_type): Move to here.
10782         (conds): Add "unconditioal" and use as default for NEON insns.
10783
10784 2009-01-24  Ben Elliston  <bje@au.ibm.com>
10785
10786         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10787         void *' warning from -Wc++-compat.
10788         * Makefile.in (dominance.o-warn): Remove.
10789
10790 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
10791
10792         PR tree-optimization/38932
10793         * fold-const.c (fold_unary_ignore_overflow): New.
10794         * tree.h (fold_unary_ignore_overflow): Declare.
10795         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10796         * tree-ssa-sccvn.c (visit_reference_op_load,
10797         simplify_unary_expression): Likewise.
10798
10799 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
10800
10801         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10802         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
10803         regardless of their type.
10804         * c-common.c (handle_packed_attribute): Don't ignore packed on
10805         bitfields.
10806         * c.opt (Wpacked-bitfield-compat): New warning option.
10807         * stor-layout.c (place_field): Warn if offset of a field changed.
10808         * doc/extend.texi (packed): Mention the ABI change.
10809         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10810         (Warning Options): Add it to the list.
10811
10812 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
10813
10814         * c-opts.c (c_common_post_options): Fix a typo in comments.
10815
10816 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
10817
10818         PR middle-end/38615
10819         * gimplify.c (gimplify_init_constructor): Fix promotion of const
10820         variables to static.
10821         * doc/invoke.texi (-fmerge-all-constants): Update description.
10822
10823 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
10824
10825         PR target/38931
10826         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10827         (*movdi_1_rex64): Use type "mmx" for alternative 5.
10828
10829 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
10830
10831         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10832         a word boundary.
10833         (LOCAL_ALIGNMENT): Similarly.
10834
10835 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
10836             Joseph Myers  <joseph@codesourcery.com>
10837
10838         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10839         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10840         * config/arm/arm-tune.md: Regenerate.
10841         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10842         -march=iwmmxt2.
10843
10844 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
10845
10846         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10847         version number to five.
10848
10849 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
10850
10851         PR c++/38930
10852         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
10853         * c-common.c (set_underlying_type): Likewise.
10854         (is_typedef_decl ): Likewise
10855         * tree.h: Likewise
10856         (set_underlying_type): Likewise.
10857         (is_typedef_type): Likewise.
10858
10859 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10860
10861         PR middle-end/38587
10862         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
10863         crossing setjmps.
10864
10865 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
10866
10867         PR bootstrap/37660
10868         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
10869         (LIBGCC_SPEC):  Don't define.
10870         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
10871
10872 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
10873
10874         PR rtl-optimization/38879
10875         * alias.c (base_alias_check): Unaligned access via AND address can
10876         alias all surrounding object types except those with sizes equal
10877         or wider than the size of unaligned access.
10878
10879 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
10880
10881         PR c++/26693
10882         * c-decl.c (clone_underlying_type): Move this ...
10883         * c-common.c (set_underlying_type): ... here.
10884         Also, make sure the function properly sets TYPE_STUB_DECL() on
10885         the newly created typedef variant type.
10886         (is_typedef_decl ): New entry point.
10887         * tree.h: Added a new member member_types_needing_access_check to
10888         struct tree_decl_non_common.
10889         (set_underlying_type): New entry point.
10890         (is_typedef_type): Likewise.
10891
10892 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
10893
10894         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
10895         Check whether two instructions have memory references that
10896         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
10897         are helper functions for traversing.
10898         * alias.h (insn_alias_sets_confilict_p): New prototypes.
10899         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
10900         not to draw dependency edge for instructions with non-conflicting
10901         alias sets.
10902
10903 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
10904
10905         PR other/38758
10906         * longlong.h: Update copyright years.  Use soft-fp license notice.
10907         Sync __clz_tab declaration with glibc.
10908
10909 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
10910
10911         PR target/30687
10912         * doc/extend.texi (syscall_linkage): New.
10913         (version_id): Modify.
10914
10915 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10916             Richard Guenther  <rguenther@suse.de>
10917
10918         PR tree-optimization/38747
10919         PR tree-optimization/38748
10920         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
10921         conversion if the base address is an indirect reference and the
10922         aliasing sets could cause issues.
10923
10924 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
10925
10926         * common.opt (fgraphite, fgraphite-identity): Add comment for
10927         explaining why these options are not documented.
10928
10929 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
10930
10931         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
10932         gimple_call_lhs is NULL.
10933
10934 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
10935
10936         PR target/38868
10937         * emit-rtl.c (adjust_address_1): Make sure memref is never
10938         overwritten.
10939
10940 2009-01-20  Ben Elliston  <bje@au.ibm.com>
10941
10942         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10943         const qualifier from arg parameter. Remove unnecessary cast to char *.
10944         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10945         const qualifier from arg 2.
10946
10947 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
10948
10949         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
10950
10951 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
10952
10953         PR c/38869
10954         * rtl.h (reinit_regs): New prototype.
10955         * regclass.c: Include ira.h.
10956         (reinit_regs): New.
10957         * Makefile.in (regclass.o): Add ira.h.
10958         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10959
10960 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
10961
10962         PR target/38736
10963         * c-common.c (handle_aligned_attribute): Use
10964         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10965         default alignment value.
10966
10967         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10968
10969         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10970         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10971
10972         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
10973         __BIGGEST_ALIGNMENT__.
10974
10975         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
10976
10977 2009-01-18  Richard Guenther  <rguenther@suse.de>
10978
10979         PR tree-optimization/38819
10980         * tree-flow.h (operation_could_trap_helper_p): Declare.
10981         * tree-eh.c (operation_could_trap_helper_p): Export.
10982         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
10983         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
10984         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
10985         are about to insert a possibly trapping instruction and fail
10986         in this case.
10987
10988 2009-01-18  Andreas Schwab  <schwab@suse.de>
10989
10990         * doc/install.texi (Configuration): Remove obsolete paragraph
10991         about use of --with-gnu-ld with --with-gnu-as.
10992
10993 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
10994
10995         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
10996         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
10997         Follow spelling conventions.
10998
10999 2009-01-18  Ben Elliston  <bje@au.ibm.com>
11000
11001         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
11002         C++ warning about implicit conversion from void * to struct
11003         bitmap_head_def *.
11004         (bitmap_obstack_free): Likewise for bitmap_element *.
11005         * Makefile.in (bitmap.o-warn): Remove.
11006
11007 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
11008
11009         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
11010
11011 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
11012             Tobias Grosser  <tobi.grosser@amd.com>
11013
11014         * graphite.c (graphite_trans_scop_block): Do not block single
11015         nested loops.
11016
11017 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
11018
11019         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11020         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11021         test with assertion.
11022
11023 2009-01-16  Richard Guenther  <rguenther@suse.de>
11024
11025         PR tree-optimization/38835
11026         PR middle-end/36227
11027         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11028         and INT + PTR -> (INT)(PTR p+ INT) folding.
11029         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11030
11031 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
11032
11033         PR target/38554
11034         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11035         the subreg from a lowpart subreg if it is also casting the value.
11036
11037 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11038             Tobias Grosser  <tobi.grosser@amd.com>
11039
11040         * graphite.c (compare_prefix_loops): New.
11041         (build_scop_canonical_schedules): Rewritten.
11042         (graphite_transform_loops): Move build_scop_canonical_schedules
11043         after build_scop_iteration_domain.
11044
11045 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11046             Tobias Grosser  <tobi.grosser@amd.com>
11047
11048         * graphite.c (add_conditions_to_domain): Add the loops to
11049         the dimension of the iteration domain.  Do copy the domain
11050         only when it exists.
11051         (build_scop_conditions_1): Do not call add_conditions_to_domain.
11052         (add_conditions_to_constraints): New.
11053         (can_generate_code_stmt, can_generate_code): Removed.
11054         (gloog): Do not call can_generate_code.
11055         (graphite_transform_loops): Call add_conditions_to_constraints
11056         after building the iteration domain.
11057
11058 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
11059
11060         PR tree-optimization/38789
11061         * tree-ssa-threadedge.c
11062         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11063         __builtin_constant_p.
11064
11065 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
11066
11067         * dce.c (delete_unmarked_insns): Reversed the order that insns are
11068         examined before deleting them.
11069
11070 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
11071
11072         * function.c (aggregate_value_p): Correctly extract the function
11073         type from CALL_EXPR_FN lookup.
11074
11075 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11076
11077         * config/picochip/picochip.c (picochip_override_options): Revert
11078         CFI asm flag disable commited previously.
11079
11080 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11081             Tobias Grosser  <tobi.grosser@amd.com>
11082             Jan Sjodin  <jan.sjodin@amd.com>
11083
11084         * graphite.c (scan_tree_for_params): On substractions negate
11085         all the coefficients of the term.
11086         (clast_to_gcc_expression_red): New.  Handle reduction expressions
11087         of more than two operands.
11088         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11089         (get_vdef_before_scop): Handle also the case of default definitions.
11090
11091 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
11092
11093         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11094         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11095         Also use them when walking CALL_INSN_FUNCTION_USAGE.
11096
11097 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
11098             Joey Ye  <joey.ye@intel.com>
11099
11100         PR middle-end/37843
11101         * cfgexpand.c (expand_stack_alignment): Don't update stack
11102         boundary nor check incoming stack boundary here.
11103         (gimple_expand_cfg): Update stack boundary and check incoming
11104         stack boundary here.
11105
11106 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
11107
11108         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
11109
11110 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
11111
11112         PR rtl-optimization/38245
11113         * calls.c (expand_call): Add stack arguments to
11114         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11115         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11116         in regs and partially in memory or BLKmode arguments.
11117         (emit_library_call_value_1): Add stack arguments to
11118         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11119         ACCUMULATE_OUTGOING_ARGS).
11120         * dce.c: Include tm_p.h.
11121         (find_call_stack_args): New function.
11122         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
11123         argument.
11124         (mark_insn): Call find_call_stack_args for CALL_Ps.
11125         (prescan_insns_for_dce): Walk insns backwards in bb rather than
11126         forwards.  Allocate and free arg_stores bitmap if needed, pass it
11127         down to deletable_insn_p, don't mark stores set in arg_stores
11128         bitmap, clear the bitmap at the beginning of each bb.
11129         * Makefile.in (dce.o): Depend on $(TM_P_H).
11130
11131 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
11132
11133         PR target/22599
11134         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11135         to make sure the insn is a conditional test (bug 22599).  Reformat a
11136         few long lines.
11137
11138 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
11139
11140         PR middle-end/38431
11141         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11142         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11143         (gloog): Do not call cleanup_tree_cfg.
11144         (graphite_transform_loops): Call cleanup_tree_cfg after all
11145         scops have been code generated.
11146
11147 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
11148         * doc/gty.texi (Invoking the garbage collector): Added new node
11149         and section documenting ggc_collect.
11150
11151 2009-01-14  Richard Guenther  <rguenther@suse.de>
11152
11153         PR tree-optimization/38826
11154         PR middle-end/38477
11155         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11156         initialization notes only if we actually emitted a warning.
11157         (intra_create_variable_infos): Add constraints for a result decl
11158         that is passed by hidden reference.
11159         (build_pred_graph): Mark all related variables non-direct on
11160         address-taking.
11161
11162 2009-01-14  Nick Clifton  <nickc@redhat.com>
11163
11164         * ira-conflicts.c: Include addresses.h for the definition of
11165         base_reg_class.
11166         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11167         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
11168
11169 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11170
11171         PR target/38811
11172         * Makefile.in (ira-lives.o): Add except.h.
11173
11174         * ira-lives.c: Include except.h.
11175         (process_bb_node_lives): Process can_throw_internal.
11176
11177 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
11178
11179         PR rtl-optimization/38774
11180         * combine.c (simplify_set): When undoing cc_use change, don't do
11181         PUT_CODE on the newly created comparison, but instead put back the
11182         old comparison.
11183
11184 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
11185
11186         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11187         values.  Remove duplicate arm8 entry.
11188
11189 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11190
11191         PR tree-optimization/38786
11192         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11193         the SSA_NAME case of expand_scalar_variables_expr.
11194         Set the type of an expression to the type of its assign statement.
11195         (expand_scalar_variables_expr): Also gather the scalar computation
11196         used to index the memory access.  Do not pass loop_p.
11197         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
11198         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
11199         the gimple_stmt_iterator where it inserts new code.
11200         Do not pass loop_p.
11201         (copy_bb_and_scalar_dependences): Do not pass loop_p.
11202         (translate_clast): Update call to copy_bb_and_scalar_dependences.
11203
11204 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11205
11206         * graphite.h (debug_value): Removed.
11207         * graphite.c (debug_value): Removed.
11208
11209 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11210
11211         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11212         ldrd/strd with two 32-bit instructions.
11213
11214 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11215
11216         * config/arm/arm.c (struct processors): Pass for speed down into
11217         cost helper functions.
11218         (const_ok_for_op): Handle COMPARE and inequality nodes.
11219         (arm_rtx_costs_1): Rewrite.
11220         (arm_size_rtx_costs): Update prototype.
11221         (arm_rtx_costs): Pass speed down to helper functions.
11222         (arm_slowmul_rtx_costs): Rework cost calculations.
11223         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11224         (arm_9e_rtx_costs): Likewise.
11225
11226 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
11227
11228         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
11229         relocations of local symbols wider than UNITS_PER_WORD are not valid.
11230         (alpha_legitimize_address): Do not split local symbols wider than
11231         UNITS_PER_WORD into HIGH/LO_SUM parts.
11232
11233 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
11234
11235         PR bootstrap/38580
11236         * gcc.c (process_command): Replace call to execvp with calls
11237         to pex_one and exit.
11238
11239 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
11240
11241         PR target/29141
11242         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11243         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11244         variant for devices with 3-byte PC.
11245         (__tablejump_elpm__): New.
11246
11247 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11248
11249         PR c/32041
11250         * c-parser.c (c_parser_postfix_expression): Allow `->' in
11251         offsetof member-designator, handle it as `[0].'.
11252
11253 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11254
11255         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11256         function when not using named sections on targets with named sections
11257         if branch distance is less than 262132.
11258
11259 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
11260
11261         * combine.c (combine_instructions):  Recompute
11262         optimize_this_for_speed_p  for each BB in the main combine loop.
11263
11264 2009-01-12  Tomas Bily  <tbily@suse.cz>
11265
11266         PR middlend/38385
11267         * tree-loop-distribution.c (prop_phis): New function.
11268         (generate_builtin): Call prop_phis.
11269         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
11270
11271 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11272
11273         PR tree-optimization/38807
11274         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11275         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11276
11277 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
11278
11279         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11280         subreg of op0 to the original op0.
11281
11282 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
11283
11284         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
11285
11286 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
11287
11288         PR debug/7055
11289         * mips-tfile.c (parse_def): Fix parsing of def strings
11290         starting with digits.
11291
11292 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
11293
11294         PR target/38695
11295         * config/arm/arm.c (arm_is_long_call_p): Don't call
11296         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11297
11298 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
11299
11300         * regrename.c (regrename_optimize): Fix dumping.
11301         (find_oldest_value_reg): Preserve REG_POINTER.
11302         (copy_hardreg_forward_1): Likewise.
11303
11304 2009-01-09  Diego Novillo  <dnovillo@google.com>
11305
11306         * gimple.h (struct gimple_statement_base) <uid>: Document
11307         the restrictions on its use.
11308         (gimple_uid): Tidy.
11309         (gimple_set_uid): Tidy.
11310
11311 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11312
11313         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11314         zero guard even if align_bytes != 0 and count is smaller than
11315         size_needed.
11316
11317 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
11318
11319         PR rtl-optimization/38495
11320         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
11321         (add_range_and_copies_from_move_list): Print all added ranges.
11322         Add ranges to memory optimized destination.
11323
11324 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11325
11326         PR target/38686
11327         PR target/38708
11328         * config/i386/i386.c (override_options): Reject
11329         -mstringop-strategy=rep_8byte with -m32.
11330         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11331         to 1.  Do count comparison against epilogue_size_needed at compile
11332         time even when count_exp was constant forced into register.  For
11333         size_needed don't jump to epilogue, instead just avoid aligning
11334         and invoke the body algorithm.  If need_zero_guard, add zero guard
11335         even if count is non-zero, but smaller than size_needed + number of
11336         bytes that could be stored for alignment.
11337         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11338         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
11339         but smaller than size_needed + number of bytes that could be stored
11340         for alignment.  Compare size_needed with epilogue_size_needed instead
11341         of desired_align - align, don't adjust size_needed, pass
11342         epilogue_size_needed to the epilogue expanders.
11343
11344         PR c/35742
11345         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
11346
11347 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11348
11349         * pa.c (last_address): Change to unsigned.
11350         (update_total_code_bytes): Change argument to unsigned.  Don't
11351         check if insn addresses are set.
11352         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11353         addresses are not set.
11354         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11355
11356 2009-01-09  Nick Clifton  <nickc@redhat.com>
11357
11358         * config/sh/symbian.c: Replace uses of DECL_INLINE with
11359         DECL_DECLARED_INLINE_P.
11360
11361 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
11362
11363         PR middle-end/38347
11364         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11365         GET_MODE (op0) in operand_subword_force calls.
11366
11367         PR middle-end/38771
11368         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11369         fold_convert arg0 operands to TREE_TYPE (op0) first.
11370
11371 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
11372
11373         * params.def (ira-max-conflict-table-size): Decrease default value
11374         to 1000.
11375
11376 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
11377
11378         PR tree-optimization/37031
11379         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11380         on parameter_set.
11381         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11382         allocate it using gc instead of heap, use VEC_quick_push instead of
11383         VEC_safe_push.
11384         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11385         instead of heap, use VEC_quick_push instead of VEC_safe_push.
11386         * tree-data-ref.h (struct access_matrix): Change matrix to gc
11387         allocated vector from heap allocated.
11388         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11389         * tree-loop-linear.c (linear_transform_loops): Allocate nest
11390         vector only after perfect_loop_nest_depth call.
11391
11392 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
11393             Jan Sjodin  <jan.sjodin@amd.com>
11394
11395         PR tree-optimization/38559
11396         * graphite.c (debug_value, copy_constraint,
11397         swap_constraint_variables, scale_constraint_variable, ): New.
11398         (get_lower_bound, get_upper_bound): Removed.
11399         (graphite_trans_bb_strip_mine): Clean up this code that works
11400         only for constant number of iterations.  Fully copy upper and
11401         lower bound constraints, not only the constant part of them.
11402         * graphite.h (debug_value): Declared.
11403
11404 2009-01-08  Ira Rosen  <irar@il.ibm.com>
11405
11406         PR tree-optimization/37194
11407         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
11408         Don't add the cost of cost model guard in prologue to scalar
11409         outside cost in case of known number of iterations.
11410
11411 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
11412             Alan Modra  <amodra@bigpond.net.au>
11413
11414         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11415         non-word-aligned REG+CONST addressing.
11416
11417 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11418
11419         PR target/38706
11420         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11421         free_after_compilation when outputting a thunk.
11422         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11423         Do not call free_after_compilation here.
11424
11425 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
11426
11427         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
11428         (ix86_valid_target_attribute_inner_p): Ditto.
11429
11430 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
11431
11432         PR tree-optimization/38492
11433         PR tree-optimization/38498
11434         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11435         * tree-chrec.h (scev_is_linear_expression): Declared.
11436         * graphite.c (graphite_cannot_represent_loop_niter): New.
11437         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11438         (graphite_loop_normal_form): Use gcc_assert.
11439         (scan_tree_for_params): Use CASE_CONVERT.
11440         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11441         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11442         Use gcc_assert.  Discard scops that contain unhandled cases.
11443         (build_scop_conditions): Return a boolean status for unhandled cases.
11444         (strip_mine_profitable_p): Print the loop number, not its depth.
11445         (is_interchange_valid): Pass the depth of the loop nest, don't
11446         recompute it wrongly.
11447         (graphite_trans_bb_block): Same.
11448         (graphite_trans_bb_block): Print tentative of loop blocking.
11449         (graphite_trans_scop_block): Do not print that the loop has been
11450         blocked.
11451         (graphite_transform_loops): Do not handle scops that contain condition
11452         scalar phi nodes.
11453
11454 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11455
11456         AVX Programming Reference (December, 2008)
11457         * config/i386/avxintrin.h (_mm256_stream_si256): New.
11458         (_mm256_stream_pd): Likewise.
11459         (_mm256_stream_ps): Likewise.
11460
11461         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11462         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11463         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11464         (bdesc_special_args): Add __builtin_ia32_movntdq256,
11465         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11466         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11467         (ix86_expand_special_args_builtin): Likewise.
11468
11469         * config/i386/sse.md (AVXMODEDI): New.
11470         (avx_movnt<mode>): Likewise.
11471         (avx_movnt<mode>): Likewise.
11472         (<sse>_movnt<mode>): Remove AVX support.
11473         (sse2_movntv2di): Likewise.
11474
11475 2009-01-07  Richard Guenther  <rguenther@suse.de>
11476
11477         PR middle-end/38751
11478         * fold-const.c (extract_muldiv): Remove obsolete comment.
11479         (fold_plusminus_mult_expr): Undo MINUS_EXPR
11480         to PLUS_EXPR canonicalization for the canonicalization.
11481
11482 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
11483
11484         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11485         hosted cross-compilers generating less efficient code.
11486
11487 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11488
11489         * function.h (rtl_data): Add a dbr_scheduled_p field.
11490         * reorg.c (dbr_schedule): Set it.
11491         (gate_handle_delay_slots): Check it.
11492         * config/mips/mips.c (mips_base_delayed_branch): Delete.
11493         (mips_reorg): Check flag_delayed_branch instead of
11494         mips_base_delayed_branch.
11495         (mips_override_options): Don't set mips_base_delayed_branch
11496         or flag_delayed_branch.
11497
11498 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
11499
11500         PR rtl-optimization/38426.
11501         * ira.c (ira): Set current_function_is_leaf earlier.
11502
11503 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
11504
11505         PR rtl-optimization/38722
11506         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11507         too early, only set a flag and modify after last possible
11508         undo_all point.
11509
11510 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
11511
11512         PR c/34252
11513         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11514         * real.c (decimal_single_format): Correct values of emin and emax.
11515         (decimal_double_format): Ditto.
11516         (decimal_quad_format): Ditto.
11517         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11518         computation of DECnn_MIN and DECnn_MAX for corrected values of
11519         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
11520         __DECnn_MIN__, and adjust its computation for the corrected value
11521         of emin.
11522
11523 2009-01-06  Jan Hubicka  <jh@suse.cz>
11524
11525         PR target/38744
11526         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
11527
11528 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
11529
11530         * doc/contrib.texi (Contributors): Slightly adjust the end note.
11531         Add Robert Clark to the list of testers.
11532
11533 2009-01-06  Jan Hubicka  <jh@suse.cz>
11534             Kai Tietz  <kai.tietz@onevision.com>
11535
11536         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11537         * config/i386/i386.c (ix86_expand_call): Add clobbers.
11538
11539 2009-01-06  Jan Hubicka  <jh@suse.cz>
11540             Kai Tietz  <kai.tietz@onevision.com>
11541
11542         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11543         for w64 ABI.
11544         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
11545         (ix86_nsaved_regs): Count only general purpose regs.
11546         (ix86_nsaved_sseregs): New.
11547         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11548         to 16 for w64; compute padding and size of sse reg save area.
11549         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11550         general purpose regs.
11551         (ix86_emit_save_sse_regs_using_mov): New.
11552         (ix86_expand_prologue): Save SSE regs if needed.
11553         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11554         (ix86_emit_restore_sse_regs_using_mov): New.
11555         (ix86_expand_epilogue): Save SSE regs if needed.
11556
11557 2009-01-06  Jan Hubicka  <jh@suse.cz>
11558             Kai Tietz  <kai.tietz@onevision.com>
11559
11560         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11561         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11562         functions when accumulate outgoing args is off.
11563
11564 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11565
11566         PR bootstrap/38742
11567         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11568         before using pseudos_have_intersected_live_ranges_p.
11569
11570         * ira-int.h (ira_assert): Always define.
11571
11572 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
11573
11574         AVX Programming Reference (December, 2008)
11575         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11576         (_mm256_permute2_pd): Likewise.
11577         (_mm_permute2_ps): Likewise.
11578         (_mm256_permute2_ps): Likewise.
11579         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11580         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11581
11582         * config/i386/i386.c (ix86_builtins): Remove
11583         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11584         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11585         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11586         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11587         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11588         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11589         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11590         __builtin_ia32_vpermil2ps256.
11591         (ix86_init_mmx_sse_builtins): Updated.
11592         (ix86_expand_args_builtin): Likewise.
11593
11594 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11595
11596         * pa.c (output_call): Relocate non-jump insns in the delay slot of
11597         long absolute calls when generating PA 2.0 code.
11598
11599 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
11600
11601         PR rtl-optimization/38583
11602         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11603
11604         * params.def (ira-max-conflict-table-size): New.
11605
11606         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
11607
11608         * ira.h (ira_conflicts_p): New external definition.
11609
11610         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11611         table.  Report this.  Return result of building.
11612         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
11613         building conflict table.
11614
11615         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
11616         (ira_color): Use ira_conflicts_p.
11617
11618         * global.c: Include ira.h.
11619         (pseudo_for_reload_consideration_p, build_insn_chain): Use
11620         ira_conflicts_p.
11621
11622         * Makefile.in (global.o): Add ira.h.
11623
11624         * ira-build.c (mark_all_loops_for_removal,
11625         propagate_some_info_from_allocno): New.
11626         (remove_unnecessary_allocnos): Call
11627         propagate_some_info_from_allocno.
11628         (remove_low_level_allocnos): New.
11629         (remove_unnecessary_regions): Add parameter.  Call
11630         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
11631         parameter to remove_unnecessary_regions.
11632         (ira_build): Remove all regions but root if the conflict table was
11633         not built.  Update conflict hard regs for allocnos crossing calls.
11634
11635         * ira.c (ira_conflicts_p): New global.
11636         (ira): Define and use ira_conflicts_p.
11637
11638         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11639         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
11640         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
11641
11642 2009-01-06  Ben Elliston  <bje@au.ibm.com>
11643
11644         * gengtype-lex.l (YY_NO_INPUT): Define.
11645
11646 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11647
11648         PR c/34911
11649         * c-common.c (handle_vector_size_attribute): Also reject
11650         BOOLEAN_TYPE types.
11651
11652 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
11653
11654         PR tree-optimization/38492
11655         * graphite.c (rename_map_elt, debug_rename_elt,
11656         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11657         rename_map_elt_info, eq_rename_map_elts,
11658         get_new_name_from_old_name, bb_in_sese_p): Moved around.
11659         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11660         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11661         (sese_build_livein_liveouts): New.
11662         (new_sese, free_sese): New.
11663         (new_scop): Call new_sese.
11664         (free_scop): Call free_sese.
11665         (rename_variables_from_edge, rename_phis_end_scop): Removed.
11666         (register_old_new_names): Renamed register_old_and_new_names.
11667         (register_scop_liveout_renames, add_loop_exit_phis,
11668         insert_loop_close_phis, struct igp,
11669         default_liveout_before_guard, add_guard_exit_phis,
11670         insert_guard_phis, copy_renames): New.
11671         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11672         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11673         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11674         (scop_adjust_phis_for_liveouts): New.
11675         (gloog): Call scop_adjust_phis_for_liveouts.
11676
11677         * graphite.h (struct sese): Documented.  Added fields liveout,
11678         num_ver and livein.
11679         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11680         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11681         (struct scop): Added field liveout_renames.
11682         (SCOP_LIVEOUT_RENAMES): New.
11683
11684 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11685
11686         PR tree-optimization/38510
11687         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11688         (translate_clast): Call recompute_all_dominators before
11689         graphite_verify.
11690         (gloog): Call recompute_all_dominators before graphite_verify.
11691
11692 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
11693             Jan Sjodin  <jan.sjodin@amd.com>
11694
11695         PR tree-optimization/38500
11696         * graphite.c (create_sese_edges): Call fix_loop_structure after
11697         splitting blocks.
11698
11699 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
11700
11701         * config.gcc: Add m32r*-*-rtems*.
11702         * config/m32r/rtems.h: New file.
11703
11704 2009-01-05  Ben Elliston  <bje@au.ibm.com>
11705
11706         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11707         (.po.pox): Likewise.
11708         (po/gcc.pot): Likewise.
11709
11710 2009-01-04  David S. Miller  <davem@davemloft.net>
11711
11712         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11713         (STARTING_FRAME_OFFSET): Always set to zero.
11714
11715 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11716
11717         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11718         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11719         fixed-point types, and vectors of the same.
11720
11721 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
11722
11723         * config/mips/sync.md (*mb_barrier): Rename to...
11724         (*memory_barrier): ...this.
11725
11726 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
11727
11728         * doc/extend.texi (Function Attributes): Move @cindex after @item
11729         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
11730         and put in alphabetical order. Fix 'target' name and put in order.
11731         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11732         typos.
11733
11734 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
11735
11736         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11737         (memory_barrier): Expand as unspec instead of unspec_volatile.
11738         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11739         (*memory_barrier): Define as unspec instead of unspec_volatile.
11740         Use (match_dup 0) as input operand.
11741
11742         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11743         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11744         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
11745         scratch register.  Remove operand 1.
11746         (*stbar): Define as unspec instead of unspec_volatile.
11747         Use (match_dup 0) as input operand, remove (const_int 8).
11748         (*membar): Define as unspec instead of unspec_volatile.
11749         Use (match_dup 0) as input operand, remove input operand 2.
11750
11751         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11752         (memory_barrier): Expand as unspec instead of unspec_volatile.
11753         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11754         (*memory_barrier): Define as unspec instead of unspec_volatile.
11755         Use (match_dup 0) as input operand.
11756
11757         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11758         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11759         Set volatile flag on operand 0.
11760         (*memory_barrier): New insn pattern.
11761
11762         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11763         insn operands.
11764         (*memory_barrier): Use (match_dup 0) as input operand.
11765
11766         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11767         Remove mem:BLK from insn operands.  Use Pmode scratch register.
11768         Set volatile flag on operand 0.
11769         (*mb_internal): New insn pattern.
11770
11771         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11772
11773 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
11774
11775         PR middle-end/38586
11776         * function.c (struct temp_slot): Move to the section of the file
11777         that deals with temp slots.  Remove field 'address'.
11778         (temp_slot_address_table): New hash table of address -> temp slot.
11779         (struct temp_slot_address_entry): New struct, items for the table.
11780         (temp_slot_address_compute_hash, temp_slot_address_hash,
11781         temp_slot_address_eq, insert_temp_slot_address): Support functions
11782         for the new table.
11783         (find_temp_slot_from_address): Rewrite to use the new hash table.
11784         (remove_unused_temp_slot_addresses): Remove addresses of temp
11785         slots that have been made available.
11786         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11787         worker function for remove_unused_temp_slot_addresses.
11788         (assign_stack_temp_for_type): Don't clear the temp slot address list.
11789         Add the temp slot address to the address -> temp slot map.
11790         (update_temp_slot_address): Update via insert_temp_slot_address.
11791         (free_temp_slots): Call remove_unused_temp_slot_addresses.
11792         (pop_temp_slots): Likewise.
11793         (init_temp_slots): Allocate the address -> temp slot map, or empty
11794         the map if it is already allocated.
11795         (prepare_function_start): Initialize temp slot processing.
11796
11797 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
11798
11799         PR middle-end/38584
11800         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11801         Calculate the size of all stack vars assuming no packing of stack
11802         vars will happen, replacing a quadratic algorithm with a linear one.
11803
11804 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
11805
11806         PR target/38707
11807         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11808         can't be used.
11809
11810 2009-01-03  Diego Novillo  <dnovillo@google.com>
11811
11812         * doc/contrib.texi: Update contributions.
11813
11814 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
11815
11816         PR c++/38705
11817         * builtins.c (fold_builtin_memory_op): Give up if either operand
11818         is volatile.  Set srctype or desttype to non-qualified version
11819         of the other type.
11820
11821         PR c/38700
11822         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11823         and FUNCTION_DECLs.
11824
11825 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
11826
11827         PR rtl-optimization/35805
11828         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11829         problem if fast dce is able to remove any instructions.
11830         * dce.c (dce_process_block): Fix dump message.
11831
11832 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
11833
11834         PR 33649
11835         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11836
11837 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
11838
11839         PR middle-end/38690
11840         * tree-flow.h (op_code_prio, op_prio): New prototypes.
11841         * tree-pretty-print.c (op_code_prio): New function.
11842         (op_prio): No longer static.  Use op_code_prio.
11843         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11844         Use op_prio and op_code_prio to determine if () should be
11845         printed around operand(s) or not.
11846
11847         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11848         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11849         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11850         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
11851         pp_character instead of pp_string for single letter printing.
11852
11853 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
11854
11855         * doc/extend.texi: Fix '#pragma GCC option' typo.
11856
11857 2009-01-02  Richard Guenther  <rguenther@suse.de>
11858
11859         * doc/install.texi (--enable-checking): Mention different
11860         default for stage1.
11861         (--enable-stage1-checking): Document.
11862
11863 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
11864
11865         PR middle-end/30142
11866         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
11867         case to be an error.
11868
11869 2009-01-02  Ben Elliston  <bje@au.ibm.com>
11870
11871         * config/fp-bit.h (pack_d): Constify argument.
11872         * config/fp-bit.c (makenan): Constify return type. Remove casts.
11873         (isnan): Constify argument.
11874         (isinf): Likewise.
11875         (iszero): Likewise.
11876         (pack_d): Likewise.
11877         (_fpadd_parts): Constify return type.
11878         (_fpmul_parts): Likewise.
11879         (_fpdiv_parts): Likewise.
11880
11881 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
11882
11883         PR c/36489
11884         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
11885         warn about overwriting initializer with side-effects or
11886         -Woverride-init if !IMPLICIT.
11887         (output_init_element): Likewise.  Pass IMPLICIT down to
11888         add_pending_init.
11889         (process_init_element): Add IMPLICIT argument.  Pass it down
11890         to output_init_element.
11891         (push_init_element, pop_init_level, set_designator): Adjust
11892         process_init_element callers.
11893         (set_nonincremental_init, set_nonincremental_init_from_string):
11894         Adjust add_pending_init callers.
11895         (output_pending_init_elements): Adjust output_init_element callers.
11896         * c-tree.h (process_init_element): Adjust prototype.
11897         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
11898         process_init_element callers.
11899
11900 \f
11901 Copyright (C) 2009 Free Software Foundation, Inc.
11902
11903 Copying and distribution of this file, with or without modification,
11904 are permitted in any medium without royalty provided the copyright
11905 notice and this notice are preserved.