passes.c (finish_optimization_passes): Change i to int.
[gcc.git] / gcc / ChangeLog
1 2009-05-14 Ian Lance Taylor <iant@google.com>
2
3 * passes.c (finish_optimization_passes): Change i to int.
4 * plugin.c (plugins_active_p): Change event to int.
5 (dump_active_plugins): Likewise.
6 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
7 Add cast.
8 * tree.c (tree_range_check_failed): Change c to unsigned int.
9 (omp_clause_range_check_failed): Likewise.
10 (build_common_builtin_nodes): Change mode to int. Add cast.
11 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
12 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
13
14 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
15 ++ or -- with a variable of enum type.
16
17 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
18
19 PR driver/40144
20 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
21
22 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
23
24 * store-motion.c: Do not include params.h
25 * Makefile.in: Fix dependencies for various files.
26
27 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
28
29 * auto-inc-dec.c: Fix pass description, remove apparent
30 accidental duplication.
31
32 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
33
34 PR middle-end/40147
35 * ipa-utils.h (memory_identifier_string): Moved to ...
36 * tree.h (memory_identifier_string): Here. Add GTY(()).
37
38 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
39
40 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
41 in the former documentation of...
42 (GO_IF_LEGITIMATE_ADDRESS): ... this.
43 * ira-conflicts.c (get_dup_num): Use address_operand.
44 * targhooks.c (default_legitimate_address_p): New.
45 * targhooks.h (default_legitimate_address_p): New.
46 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
47 Call hook.
48 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
49 * target.h (struct target): Add legitimate_address_p.
50 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
51 (TARGET_INITIALIZER): Include it.
52
53 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
54 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
55 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
56 (TARGET_LEGITIMATE_ADDRESS_P): New.
57
58 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
59 (REG_OK_STRICT_P): Delete.
60 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
61 (frv_legitimate_address_p_1): ... this.
62 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
63 (frv_legitimate_address_p_1): ... the renamed old
64 frv_legitimate_address_p.
65 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
66 (TARGET_LEGITIMATE_ADDRESS_P): New.
67
68 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
69 * config/s390/s390-protos.h (legitimate_address_p): Remove.
70 * config/s390/s390.c (legitimate_address_p): Rename to...
71 (s390_legitimate_address_p): ... this, make static.
72 (legitimize_address): Adjust call.
73 (TARGET_LEGITIMATE_ADDRESS_P): New.
74 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
75
76 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
77 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
78 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
79 (TARGET_LEGITIMATE_ADDRESS_P): New.
80
81 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
82 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
83 * config/spu/spu.c (spu_legitimate_address): Rename to...
84 (spu_legitimate_address_p): ... this, make static.
85 (TARGET_LEGITIMATE_ADDRESS_P): New.
86
87 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
88 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
89 * config/sparc/sparc.c (legitimate_address_p): Rename to...
90 (sparc_legitimate_address_p): ... this, make static and return bool.
91 (legitimize_address): Adjust call.
92 (TARGET_LEGITIMATE_ADDRESS_P): New.
93
94 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
95 * config/i386/i386-protos.h (legitimate_address_p): Remove.
96 * config/i386/i386.c (legitimate_address_p): Rename to...
97 (ix86_legitimate_address_p): ... this, make static.
98 (constant_address_p): Move after it, adjust call.
99 (TARGET_LEGITIMATE_ADDRESS_P): New.
100
101 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
102 * config/avr/avr-protos.h (legitimate_address_p): Remove.
103 * config/avr/avr.c (legitimate_address_p): Rename to...
104 (avr_legitimate_address_p): ... this, make static.
105 (legitimize_address): Adjust call.
106 (TARGET_LEGITIMATE_ADDRESS_P): New.
107
108 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
109 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
110 * config/crx/crx.c (crx_legitimate_address_p): Make static.
111 (TARGET_LEGITIMATE_ADDRESS_P): New.
112
113 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
114 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
115 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
116 (TARGET_LEGITIMATE_ADDRESS_P): New.
117
118 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
119 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
120 Remove.
121 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
122 Make static.
123 (TARGET_LEGITIMATE_ADDRESS_P): New.
124
125 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
126 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
127 Remove.
128 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
129 Rename to...
130 (m68hc11_legitimate_address_p): ... this, make static.
131 (go_if_legitimate_address_internal): Rename to...
132 (m68hc11_legitimate_address_p_1): ... this.
133 (legitimize_address): Adjust call.
134 (TARGET_LEGITIMATE_ADDRESS_P): New.
135
136 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
137 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
138 Remove.
139 * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
140 Make static.
141 (TARGET_LEGITIMATE_ADDRESS_P): New.
142
143 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
144 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
145 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
146 (mn10300_legitimate_address_p): ... this, make static.
147 (TARGET_LEGITIMATE_ADDRESS_P): New.
148
149 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
150 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
151 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
152 (TARGET_LEGITIMATE_ADDRESS_P): New.
153
154 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
155 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
156 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
157 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
158 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
159 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
160 (rs6000_legitimate_address_p): ... this, make static.
161 (TARGET_LEGITIMATE_ADDRESS_P): New.
162 (REG_MODE_OK_FOR_BASE_P): Delete.
163 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
164
165 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
166 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
167 Delete.
168 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
169 static, adjust types.
170 (TARGET_LEGITIMATE_ADDRESS_P): New.
171
172 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
173 * config/score/score.c (score_address_p): Rename to...
174 (score_legitimate_address_p): ... this.
175 (TARGET_LEGITIMATE_ADDRESS_P): New.
176 * config/score/score3.c (score3_address_p): Rename to...
177 (score3_legitimate_address_p): ... this.
178 * config/score/score7.c (score7_address_p): Rename to...
179 (score7_legitimate_address_p): ... this.
180
181 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
182 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
183 GO_IF_LEGITIMATE_ADDRESS): Delete.
184 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
185 thumb2_legitimate_address_p): Delete.
186 (arm_legitimate_address_p): Rename to...
187 (arm_legitimate_address_outer_p): ... this.
188 * config/arm/constraints.md ("Uq"): Adjust call.
189 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
190 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
191 (arm_legitimate_address_outer_p): ... this.
192 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
193 (TARGET_LEGITIMATE_ADDRESS_P): New.
194
195 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
196 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
197 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
198 (TARGET_LEGITIMATE_ADDRESS_P): New.
199
200 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
201 * config/vax/vax-protos.h (legitimate_address_p): Remove.
202 * config/vax/vax.c (legitimate_address_p): Rename to...
203 (vax_legitimate_address_p): ... this, make static.
204 (TARGET_LEGITIMATE_ADDRESS_P): New.
205
206 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
207 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
208 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
209 (TARGET_LEGITIMATE_ADDRESS_P): New.
210
211 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
212 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
213 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
214 (mmix_legitimate_address_p): ... this, make static.
215 (TARGET_LEGITIMATE_ADDRESS_P): New.
216
217 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
218 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
219 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
220 (TARGET_LEGITIMATE_ADDRESS_P): New.
221
222 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
223
224 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
225 of MODE_COMPLEX_INT.
226
227 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
228
229 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
230 LCT_NORMAL in function call.
231 * mips-tdump.c (print_file_desc): Add cast to enum type.
232 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
233 (mark_stabs): Add casts to enum types.
234 (parse_stabs_common): Add casts to enum types.
235
236 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
237
238 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
239 Check for invalid values of LETTER.
240
241 2009-05-13 Taras Glek <tglek@mozilla.com>
242
243 * attribs.c moved out attribute registration into register_attribute
244 * doc/plugins.texi Documented register_attribute and PLUGIN_ATTRIBUTES
245 * gcc-plugin.h Added forward decl for register_attribute
246 * plugin.c Added PLUGIN_ATTRIBUTES boilerplate
247 * plugin.h Added PLUGIN_ATTRIBUTES
248
249 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
250
251 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
252 values even in sentinel and empty entries.
253 (ms_printf_flag_specs): Likewise.
254 (ms_scanf_flag_specs): Likewise.
255 (ms_strftime_flag_specs): Likewise.
256 (ms_print_char_table): Likewise.
257 (ms_scan_char_table): Likewise.
258 (ms_time_char_table): Likewise.
259
260 2009-05-13 Doug Kwan <dougkwan@google.com>
261
262 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
263
264 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
265
266 * config/mips/mips.md (store): Add attributes for QI and HI.
267 Update comment.
268 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
269 (truncdi<mode>2): ... this new pattern.
270
271 2009-05-13 Brad Hards <bradh@kde.org>
272
273 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
274
275 2009-05-14 Jakub Jelinek <jakub@redhat.com>
276 Ben Elliston <bje@au.ibm.com>
277
278 PR middle-end/40035
279 * dse.c (check_mem_read_rtx): Guard against width == -1.
280
281 2009-05-13 Michael Matz <matz@suse.de>
282
283 PR middle-end/39976
284 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
285 (trivially_conflicts_p): New function.
286 (insert_backedge_copies): Use it.
287
288 2009-05-13 Janis Johnson <janis187@us.ibm.com>
289
290 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
291 (handle_stdc_pragma): Use new enum constant names.
292 (handle_pragma_float_const_decimal64): Ditto.
293
294 2009-05-13 Ian Lance Taylor <iant@google.com>
295
296 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
297 tree.def.
298
299 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
300
301 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
302 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
303 multilibs.
304 * config/m68k/m68k.h (FL_UCLINUX): Define.
305
306 2009-05-13 Jan Hubicka <jh@suse.cz>
307
308 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
309
310 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
311
312 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
313 unless -fschedule-insns is specified.
314
315 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
316
317 PR target/39561
318 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
319 TARGET_EXPAND_CBRANCHDI4.
320 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
321 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
322 (cmpeqdi): Fix comment.
323
324 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
325
326 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
327 (sh_legitimate_address_p): Likewise.
328 * config/sh/sh.c (sh_legitimate_index_p): New.
329 (sh_legitimate_address_p): Likewise.
330 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
331 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
332 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
333 (MAYBE_BASE_REGISTER_RTX_P): New macro.
334 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
335 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
336 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
337 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
338 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
339
340 2009-05-12 Jan Hubicka <jh@suse.cz>
341
342 * tree-inline.c (estimate_operator_cost): Add operands;
343 when division happens by constant, it is cheap.
344 (estimate_num_insns): Loads and stores are not having cost of 0;
345 EH magic stuff is cheap; when computing runtime cost of switch,
346 use log2 base of amount of its cases; builtin_expect has cost of 0;
347 compute cost for moving return value of call.
348 (init_inline_once): Initialize time_based flags.
349 * tree-inline.h (eni_weights_d): Add time_based flag.
350
351 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
352
353 * df-core.c: Update head documentation.
354
355 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
356
357 PR bootstrap/40118
358 * rs6000.c (rs6000_generate_compare): Use op1b instead of
359 shadowing exisiting variable op1.
360
361 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
362
363 PR target/37179
364 * config/i386/driver-i386.c (processor_signatures): New enum.
365 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
366 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
367 processor signature to detect geode processor.
368
369 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
370
371 Revert:
372
373 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
374
375 * optabs.c (prepare_cmp_insn): Temporarily disable test that
376 causes spurious differences between trunk and cond-optab branch.
377
378 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
379
380 * dojump.c (compare_from_rtx): Delete.
381 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
382 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
383 if the comparison does not satisfy the predicate; test predicates for
384 operands 2 and 3 of a cstore pattern. Don't try cstore optab
385 further if one existing pattern fails.
386 * expr.h (compare_from_rtx): Delete.
387 (prepare_operand): Declare it.
388 * optabs.c: Change "lib call" to "libcall" throughout.
389 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
390 HAVE_conditional_trap, emit_cmp_insn): Delete.
391 (can_compare_p): Delete cmp_optab case.
392 (prepare_float_lib_cmp): Return an rtx and a machine mode.
393 Accept other parameters by value.
394 (prepare_operand): Make non-static.
395 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
396 other parameters by value. Try to widen operands here based on
397 an optab_methods argument and looking at cbranch_optab.
398 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
399 loop. Use cbranch_optab directly.
400 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
401 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
402 assertion.
403 (emit_conditional_move, emit_conditional_add): Inline what's needed
404 of compare_from_rtx, using new prepare_cmp_insn for the rest.
405 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
406 with COMPARE. Move cmov_optab and cstore_optab above
407 with cbranch_optab, move cmp_optab down with ucmp_optab,
408 remove tst_otpab. Do not initialize trap_rtx.
409 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
410 for trap code. Do not check HAVE_conditional_trap. Use
411 prepare_cmp_insn. Accept no predicate for operand 3.
412 * optabs.h (OTI_cmp): Mark as used only for libcalls.
413 (OTI_ctrap, ctrap_optab): New.
414 (tst_optab): Delete.
415 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
416 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
417 with lookup of ctrap_optab.
418 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
419 setcc_gen_code): Delete.
420 (ctrap_optab): New.
421
422 * combine.c (combine_simplify_rtx, simplify_set): Do not
423 special case comparing against zero for cc0 machines.
424 * simplify-rtx.c (simplify_binary_operation_1): Never remove
425 COMPARE on cc0 machines.
426 (simplify_relational_operation): Return a new expression when
427 a COMPARE could be removed.
428 * final.c (final_scan_insn): Compare cc_status values
429 against LHS of a (compare FOO (const_int 0)) cc0 source.
430 Also check if cc_status.value is the full compare.
431
432 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
433 (cstoreMM4): Document.
434 (conditional_trap): Document ctrapMM4 instead.
435 (sync_compare_and_swapMM): Refer to cbranchcc4.
436 (Dependent Patterns): Eliminate obsolete information referring to
437 the old jump optimization phase.
438 (Canonicalization): Include cbranchcc4 case, omit canonicalization
439 of compares with 0 on cc0 machines.
440 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
441 avoiding references to cc0. Remove text about storing operands
442 in cmpMM.
443 * doc/tm.texi (Condition Codes): Include blurb on different
444 condition code representations, separate into subsections for
445 CC0, MODE_CC and conditional execution.
446
447 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
448 alpha_emit_setcc): Accept operands and a machine mode.
449 * config/alpha/alpha.c (alpha_emit_conditional_branch):
450 Get code/op0/op1 from operands, use machine mode argument
451 instead of alpha_compare.fp_p. Emit the branch here.
452 (alpha_emit_setcc): Likewise, and return boolean.
453 (alpha_emit_conditional_move): Likewise. Assert that
454 cmp_op_mode == cmp_mode, and simplify accordingly.
455 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
456 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
457 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
458 Delete.
459 (stack probe test): Use cbranchdi4.
460 * config/alpha/predicates.md (alpha_cbranch_operator): New.
461
462 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
463 * config/arc/arc.h (movsicc, movsfcc): Use it.
464 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
465 (cbranchsi4, cstoresi4): New.
466 (cmpsi, bCC and sCC expanders): Remove.
467
468 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
469 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
470 * config/arm/predicates.md (arm_comparison_operator): Only include
471 floating-point operators if there is a hardware floating-point unit.
472 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
473 deferring to cbranch_cc and cstore_cc respectively.
474 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
475 cbranch_cc, cstore_cc): New.
476 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
477 arm_compare_op1.
478 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
479
480 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
481 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
482 as an argument.
483 (adjust_insn_length): Adjust calls.
484 (avr_reorg): Handle (compare (foo) (const_int 0)).
485 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
486 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
487 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
488 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
489 (bCC): Remove.
490 (cbranchqi4, cbranchhi4, cbranchsi4): New.
491 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
492
493 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
494 (cbranchsi4, cstorebi4, cstoresi4): New.
495 (movbisi): This insn is duplicate, split it to zero_extend.
496 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
497 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
498 (bfin_optimize_loop): Use cbranch expander.
499 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
500 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
501 (bfin_bimode_comparison_operator): ... this.
502 (bfin_direct_comparison_operator): New.
503
504 * config/cris/cris.c (cris_normal_notice_update_cc): Look
505 inside (compare FOO (const_int 0)).
506 (cris_rtx_costs): Handle ZERO_EXTRACT.
507 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
508 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
509 (*tstdi_v32): Delete.
510 (*cmpdi_non_v32): Add M alternative for operand 1.
511 (cmpsi, cmp<mode>): Make private.
512 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
513 with COMPARE.
514 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
515
516 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
517 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
518 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
519 (cc_reg_operand): New.
520 (any_cond): Delete.
521 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
522 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
523 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
524 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
525 crx_expand_scond): Delete.
526
527 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
528 (cbranchsi4): New.
529 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
530 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
531
532 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
533 cstoresi4, cstoresf4, cstoredf4): New.
534 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
535 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
536 Receive the entire operands array.
537 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
538 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
539 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
540 Get test/op0/op1 from the operands array.
541 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
542
543 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
544 (h8300_expand_store): New.
545 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
546 (const_int 0)).
547 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
548 (h8300_expand_store): New.
549 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
550 or do not try to produce (set (cc0) REG).
551 (peepholes): Wrap arguments with COMPARE. Add a peephole to
552 change a compare into a move to a scratch register. Disable some
553 peepholes when comparing with zero.
554 (tstsi, tsthi, tstsi, cmpqi): Make private.
555 (cmphi): Delete.
556 (bCC, sCC): Delete.
557 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
558 cstoresi4): New.
559
560 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
561 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
562 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
563 (ix86_emit_i387_log1p): Use cbranchxf2.
564 (ix86_expand_setcc): Return void.
565 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
566 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
567 cmp<MODEF>, cmpcc): Remove.
568 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
569 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
570 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
571 (sCC and bCC expanders): Remove.
572 (stack_protect_test): Use cbranchcc4.
573
574 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
575 Delete.
576 (ia64_expand_compare): Accept three rtx by reference and return void.
577 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
578 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
579 from *expr. Update *expr with the BImode comparison to do.
580 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
581 cmptf, bCC, sCC, conditional_trap): Delete.
582 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
583 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
584 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
585 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
586 * config/ia64/predicates.md (ia64_cbranch_operator): New.
587
588 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
589 type of last argument.
590 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
591 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
592 use machine mode argument instead of branch_type. Remove dead
593 code for floating-point comparisons.
594 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
595 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
596 Remove.
597 (cbranchsi4, cstoresi4): New.
598 * config/iq2000/predicates.md (reg_or_const_operand): New.
599
600 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
601 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
602 (b<code>_op): Rewrite to...
603 (bcc_op): ... this, using match_operator.
604 (s<code>_op): Rewrite to...
605 (scc_op): ... this, using match_operator.
606 (s<code>_24_op): Rewrite to...
607 (scc_op_24): ... this, using match_operator.
608 (s<code>_<mode>): Rewrite to...
609 (cstore<mode>4): ... this, using match_operator.
610 (s<code>_<mode>_24): Rewrite to...
611 (cstore<mode>4_24): ... this, using match_operator.
612 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
613 m32c_unpend_compare, m32c_expand_scc): Delete.
614 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
615 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
616 (m32c_expand_movcc): Change NE to EQ if necessary.
617 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
618
619 * config/m32r/m32r-protos.h (gen_cond_store): New.
620 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
621 (gen_cond_store): New, from sCC patterns.
622 (m32r_expand_block_move): Use cbranchsi4.
623 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
624 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
625 (cbranchsi4, cstoresi4): New.
626
627 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
628 Delete.
629 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
630 (m68hc11_notice_update_cc): Look into a compare with 0.
631 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
632 Delete.
633 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
634 cmphi, cmpqi, bCC): Delete.
635 (cbranchsi4, cbranchhi4, cbranchqi4): New.
636 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
637 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
638 sets with COMPARE.
639
640 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
641 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
642 * config/m68k/constraints.md (H): New.
643 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
644 the define_insn below.
645 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
646 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
647 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
648 patterns): Wrap RHS with COMPARE.
649 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
650 (*cmpdi_internal): Name this pattern.
651 (cmpdi): Change to define_insn.
652 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
653 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
654 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
655 predicate.
656 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
657 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
658 (conditional_trap): Change to...
659 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
660 (*conditional_trap): Use the ordered_comparison_operator and
661 const1_operand predicates.
662 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
663 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
664 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
665 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
666
667 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
668 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
669 (mcore_gen_compare): New.
670 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
671 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
672 (mcore_gen_compare): ... this.
673 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
674 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
675 (stack probe pattern): Use cbranchsi4.
676
677 * config/mips/predicates.md (mips_cstore_operator): New.
678 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
679 * config/mips/mips.md (any_cond): Delete.
680 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
681 always succeed.
682 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
683 fixuns_truncsfdi2): Use cbranch patterns.
684 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
685 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
686 Adjust call to mips_expand_conditional_branch.
687 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
688 cstore<GPR:mode>4.
689 * config/mips/mips-protos.h (mips_expand_conditional_branch,
690 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
691 * config/mips/mips.c (cmp_operands): Delete.
692 (mips_emit_compare): Get comparison operands from *op0/*op1.
693 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
694 that it succeeds. Use op0/op1 instead of cmp_operands.
695 (mips_expand_conditional_branch, mips_expand_conditional_move,
696 mips_expand_conditional_trap): Likewise.
697 (mips_block_move_loop): Use cbranch patterns.
698 * config/mips/mips.h (cmp_operands): Delete.
699
700 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
701 (mmix_gen_compare_reg): Just return a register in the right CC mode.
702 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
703 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
704 (*cmpcc_folded): Rename to...
705 (*cmpdi_folded): this.
706 (*cmpcc): Rename to...
707 (*cmps): ... this.
708 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
709 (bCC): Remove.
710 (cbranchdi4): New.
711 (cbranchdf4): New. Handle invalid comparisons here.
712 * config/mmix/predicates.md (float_comparison_operator): New.
713
714 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
715 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
716 * config/mn10300/mn10300.md (tst): Delete.
717 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
718 Name these patterns and wrap RHS in a compare.
719 (*cmpsi): Make this pattern private. Include tst.
720 (*cmpsf): Make this pattern private.
721 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
722 (compare with zero peepholes): Likewise.
723 (bCC): Remove.
724 (cbranchsi4, cbranchsf4): New.
725 (casesi): Use cbranchsi4.
726
727 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
728 hppa_branch_type): Delete.
729 (return_addr_rtx): Use cbranchsi4.
730 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
731 Emit CCFPmode comparison here.
732 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
733 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
734 hppa_branch_type): Delete.
735 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
736 (movsicc, movdicc): Remove references to hppa_compare_op0,
737 hppa_compare_op1 and compare_from_rtx.
738 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
739 (casesi): Use cbranchsi4.
740
741 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
742 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
743 * config/pdp11/pdp11.md (register_or_const0_operand): New.
744 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
745 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
746 (bCC): Delete.
747 (cbranchdf4, cbranchhi4, cbranchqi4): New.
748 (*branch, *branch_inverted): New.
749
750 * config/picochip/picochip.md (cbranchhi4): Use
751 ordered_comparison_operator.
752 (cmphi, bCC): Remove.
753
754 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
755 (trap_comparison_operator): Delete.
756 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
757 rs6000_emit_cbranch): Accept mode and operands.
758 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
759 rs6000_compare_fp_p): Delete.
760 (rs6000_generate_compare): Accept mode and comparison. Extract code
761 and op0/op1 from there. Replace references to rs6000_compare_op0
762 and rs6000_compare_op1.
763 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
764 extract result from passed operands.
765 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
766 extract loc from passed operands.
767 (rs6000_emit_cmove): Likewise.
768 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
769 rs6000_compare_fp_p): Delete.
770 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
771 (cbranch<GPR>4, cbranch<FP>4): New.
772 (cstore<mode>4): New. Consolidate here all choices about when to use
773 portable or specialized sCC sequences.
774 (stack_protect_test): Use cbranchsi4.
775 (conditional_trap): Replace with ctrap<GPR>4.
776 (conditional trap insn): Replace trap_comparison_operator with
777 ordered_comparison_operator.
778
779 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
780 (s390_emit_prologue): Use ctrap.
781 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
782 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
783 New predicates replacing...
784 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
785 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
786 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
787 (add<mode>cc): Do not use s390_compare_op0/op1.
788 (s<code>): Change to...
789 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
790 (seq): Change to...
791 (cstorecc4): ... this. Handle EQ or NE equally.
792 (*sne): Un-privatize for use in cstorecc4.
793 (b<code>): Change to...
794 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
795 (conditional_trap): Replace with...
796 (ctrap<GPR>4, ctrap<FP>4): ... these.
797 (stack_protect): Use cbranchcc4.
798
799 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
800 * config/score/score-protos.h (score_gen_cmp): Delete.
801 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
802 (score_block_move-loop): Use cbranchsi4.
803 * config/score/score.md (cbranchsi4): New.
804 (cmpsi, bCC): Delete.
805 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
806 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
807 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
808 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
809 * config/score/score3.h (score3_gen_cmp): Delete.
810 * config/score/score7.h (score7_gen_cmp): Delete.
811
812 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
813 (sh_emit_scc_to_t): ... this. Return void.
814 (from_compare): Rename to...
815 (sh_emit_compare_and_branch): ... this.
816 (sh_emit_compare_and_set): New.
817 (sh_expand_t_scc): Accept operands.
818 * config/sh/predicates.md (sh_float_comparison_operator): New.
819 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
820 (prepare_scc_operands): Rename to...
821 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
822 arguments.
823 (sh_emit_cheap_store_flag): New.
824 (sh_emit_set_t_insn): New.
825 (from_compare): Rename to...
826 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
827 handling of TARGET_SH2E floating point to avoid recursive call.
828 Generate branch here.
829 (sh_emit_compare_and_set): New.
830 (sh_expand_t_scc): Get op0/op1 from arguments.
831 (sh_emit_cheap_store_flag): New.
832 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
833 cases.
834 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
835 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
836 (movsicc, movdicc): Do nothing when it recreated operands from
837 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
838 prepare_scc_operands (now sh_emit_scc_to_t).
839 (udivdi3): Use cstoresi4.
840 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
841 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
842 (cbranchint4_media, cbranchfp4_media): New.
843 (casesi): Use cbranchdi4.
844 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
845 Delete.
846 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
847 (movnegt): Remove second operand.
848 (cbranchsf4, cbranchdf4): New.
849 (stack_protect): Use cbranchdi4/cbranchsi4.
850
851 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
852 (gen_compare_reg): Accept comparison, extract part of it to...
853 (gen_compare_reg_1): ... this.
854 (gen_compare_operator): Delete.
855 (gen_v9_scc): Accept separate destination, comparison code and arms.
856 Do not use sparc_compare_op0/sparc_compare_op1.
857 (emit_scc_insn, emit_conditional_branch_insn): New.
858 (emit_v9_brxx): Make static. Remove useless assertion.
859 (sparc_emit_float_lib_cmp): Return RTL instead of calling
860 emit_cmp_insn.
861 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
862 * config/sparc/sparc-protos.h (gen_compare_reg,
863 sparc_emit_float_lib_cmp): Adjust prototype.
864 (emit_scc_insn, emit_conditional_branch_insn): New.
865 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
866 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
867 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
868 iterators to the top.
869 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
870 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
871 snedi_special_trunc): Delete.
872 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
873 and snedi_special_trunc.
874 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
875 cbranchdi4, cbranch<F:mode>4): New.
876 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
877 here. Use gen_compare_reg instead of gen_compare_operator.
878 (conditional_trap): Replace with...
879 (ctrapsi4, ctrapdi4): ... this.
880 (stack_protect_test): Use cbranchcc4.
881
882 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
883 argument to rtx.
884 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
885 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
886 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
887 from operands[0] or operands[3] depending on is_set.
888 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
889 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
890 cmpdf, bCC), sCC: Remove.
891 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
892 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
893 cstoredf4): New.
894 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
895 spu_emit_branch_or_set.
896
897 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
898 Add two arguments.
899 * config/stormy16/stormy16.h (xstormy16_compare_op0,
900 xstormy16_compare_op1): Delete.
901 * config/stormy16/stormy16.c (xstormy16_compare_op0,
902 xstormy16_compare_op1): Delete.
903 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
904 Adjust calls.
905 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
906 (cmphi, cmpsi, bCC): Remove.
907
908 * config/v850/v850.md (tstsi, cmpsi): Fold into...
909 (*cmpsi): ... this one.
910 (cbranchsi4, cstoresi4): New.
911 (bCC expanders): Delete.
912 (sCC insns): Fold into...
913 (*setcc): ... this one.
914 (casesi): Do not use gen_cmpsi and gen_bgtu.
915 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
916 (movsicc): Simplify.
917 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
918
919 * config/vax/vax-protos.h (cond_name): New.
920 (vax_output_conditional_branch): Remove.
921 * config/vax/vax.c (cond_name): New.
922 (vax_output_conditional_branch): Remove.
923 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
924 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
925 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
926 (bit<VAXint>): Wrap source with (compare).
927 (b<code> and following unnamed pattern): Rename to *branch and
928 *branch_reversed. Change macroization to match_operator.
929 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
930
931 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
932 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
933 Change last argument to machine_mode.
934 (xtensa_expand_scc): Add machine_mode argument.
935 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
936 (gen_conditional_move, xtensa_expand_conditional_branch,
937 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
938 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
939 Adjust operand numbers.
940 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
941 Delete.
942 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
943 (cmpsi, cmpsf, b<code>, s<code>): Delete.
944 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
945
946 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
947
948 * optabs.c (prepare_cmp_insn): Temporarily disable test that
949 causes spurious differences between trunk and cond-optab branch.
950
951 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
952
953 PR target/37137
954 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
955
956 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
957
958 * tree.c (iterative_hash_pointer): Delete.
959 (iterative_hash_expr): Short-circuit handling of NULL pointer.
960 Hash UIDs and versions of SSA names. Don't special-case built-in
961 function declarations.
962
963 2009-05-11 Ian Lance Taylor <iant@google.com>
964
965 PR bootstrap/40103
966 * graphite.c: Force -Wc++-compat to only be a warning before
967 #including "cloog/cloog.h".
968
969 2009-05-11 Martin Jambor <mjambor@suse.cz>
970
971 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
972
973 2009-05-11 Jan Hubicka <jh@suse.cz>
974
975 * tree-ssa-loop-ivcanon.c: Include target.h
976 (struct loop_size): new structure.
977 (constant_after_peeling): New predicate.
978 (tree_estimate_loop_size): New function.
979 (estimated_unrolled_size): Rewrite for new estimates.
980 (try_unroll_loop_completely): Use new estimates.
981 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
982
983 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
984
985 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
986 libcpp interface change.
987 (spu_macro_to_expand): Likewise.
988
989 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
990
991 PR tree-optimization/40026
992 * gimplify.c (gimplify_init_constructor): Change initial conditional
993 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
994 optimize_compound_literals_in_ctor.
995
996 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
997
998 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
999 New devices.
1000 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
1001
1002 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
1003
1004 * tree-vect-data-refs.c (vect_analyze_group_access): Use
1005 HOST_WIDE_INT for gap.
1006
1007 2009-05-11 Ira Rosen <irar@il.ibm.com>
1008
1009 PR tree-optimization/40074
1010 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
1011 account in group size and step comparison.
1012
1013 2009-05-11 Richard Guenther <rguenther@suse.de>
1014
1015 * passes.c (init_optimization_passes): Strip now incorrect comment.
1016 (execute_function_todo): Do not set PROP_alias.
1017 * tree-pass.h (PROP_alias): Remove.
1018 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
1019 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
1020 * tree-nrv.c (pass_return_slot): Likewise.
1021 * tree-object-size.c (pass_object_sizes): Likewise.
1022 * tree-ssa-dom.c (pass_dominator): Likewise.
1023 (pass_phi_only_cprop): Likewise.
1024 * tree-ssa-dse.c (pass_dse): Likewise.
1025 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1026 (pass_cselim): Likewise.
1027 * tree-ssa-pre.c (pass_pre): Likewise.
1028 (pass_fre): Likewise.
1029 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
1030 * tree-ssa-sink.c (pass_sink_code): Likewise.
1031 * tree-stdarg.c (pass_stdarg): Likewise.
1032 * tree-tailcall.c (pass_tail_calls): Likewise.
1033 * tree-vrp.c (pass_vrp): Likewise.
1034
1035 2009-05-10 Ian Lance Taylor <iant@google.com>
1036
1037 * basic-block.h (enum profile_status): Break out of struct
1038 control_flow_graph.
1039 * cgraph.h (struct inline_summary): Break out of struct
1040 cgraph_local_info.
1041 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1042 of struct cgraph_order_sort.
1043 * combine.c (enum undo_kind): New enum, broken out of struct undo.
1044 * cse.c (struct branch_path): Break out of struct
1045 cse_basic_block_data.
1046 * except.h (enum eh_region_type): Break out of struct eh_region.
1047 * gcc.c (enum add_del): Break out of struct modify_target.
1048 * genrecog.c (enum decision_type): Break out of struct decision_test.
1049 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1050 ggc_pch_data.
1051 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1052 * regmove.c (enum match_use): New enum, broken out of struct match.
1053 * sched-int.h (enum post_call_group): New enum, broken out of
1054 struct deps.
1055 (struct deps_reg): Break out of struct deps.
1056 * target.h (struct asm_int_op): Break out of struct gcc_target.
1057 * tree-eh.c (struct goto_queue_node): Break out of struct
1058 leh_tf_state.
1059 * tree-inline.h (enum copy_body_cge_which): Break out of
1060 copy_body_data.
1061 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1062
1063 * c-decl.c (in_struct, struct_types): New static variables.
1064 (pushtag): Add loc parameter. Change all callers.
1065 (lookup_tag): Add ploc parameter. Change all callers.
1066 (check_compound_literal_type): New function.
1067 (parser_xref_tag): Add loc parameter. Change all callers. If
1068 -Wc++-compat, warn about struct/union/enum types defined within a
1069 struct or union.
1070 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1071 and loc parameters. Change all callers. Change error calls to
1072 error_at, using loc. For a redefinition, if the location of the
1073 original definition is known, report it. Set in_struct and
1074 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
1075 (finish_struct): Add new parameters enclosing_in_struct and
1076 enclosing_struct_types. Change all callers. Set
1077 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1078 in the struct. If in a struct, add this struct to struct_types.
1079 (start_enum): Add loc parameter. Change all callers. Use
1080 error_at for errors, using loc. For a redefinition, if the
1081 location of the original definition is known, report it. If in a
1082 struct, add this enum type to struct_types. If -Wc++-compat warn
1083 if in sizeof, typeof, or alignof.
1084 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1085 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
1086 (c_parser_enum_specifier): Get enum location for start_enum.
1087 (c_parser_struct_or_union_specifier): Get struct location for
1088 start_struct. Save in_struct and struct_types status between
1089 start_struct and finish_struct.
1090 (c_parser_cast_expression): Get location of cast.
1091 (c_parser_alignof_expression): Get location of type.
1092 (c_parser_postfix_expression): Likewise.
1093 (c_parser_postfix_expression_after_paren_type): Add type_loc
1094 parameter. Change all callers. Call check_compound_literal_type.
1095 Use type_loc for error about variable size type.
1096 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1097 of an enum constant from an enum type defined in a struct or union.
1098 (c_cast_expr): Add loc parameter. Change all callers. If
1099 -Wc++-compat, warn about defining a type in a cast.
1100 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1101 (start_enum, start_struct, finish_struct): Update declarations.
1102 (parser_xref_tag, c_cast_expr): Update declarations.
1103 (check_compound_literal_type): Declare.
1104
1105 2009-05-11 Ben Elliston <bje@au.ibm.com>
1106
1107 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1108 for recent libcpp interface change.
1109 (rs6000_macro_to_expand): Likewise.
1110
1111 2009-05-10 Michael Matz <matz@suse.de>
1112
1113 PR target/40031
1114 * config/arm/arm.c (require_pic_register): Emit on entry edge,
1115 not at entry of function.
1116
1117 2009-05-10 Richard Guenther <rguenther@suse.de>
1118
1119 PR tree-optimization/40081
1120 Revert
1121 * tree-sra.c (instantiate_element): Instantiate scalar replacements
1122 using the main variant of the element type. Do not fiddle with
1123 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1124
1125 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1126 structs with volatile fields.
1127
1128 2009-05-10 Jan Hubicka <jh@suse.cz>
1129
1130 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
1131 (estimate_move_cost): Assert that it does not get called for
1132 VOID_TYPE_P.
1133 (estimate_num_insns): Skip VOID types in argument handling.
1134 (optimize_inline_calls): Delete unreachable blocks and verify that
1135 callgraph is valid.
1136
1137 2009-05-10 Jan Hubicka <jh@suse.cz>
1138
1139 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1140 * cgraph.c (cgraph_mark_address_taken_node): New function.
1141 (dump_cgraph_node): Dump new flag.
1142 * cgraph.h (struct cgraph_node): Add address_taken.
1143 (cgraph_mark_address_taken_node): New function.
1144 * ipa.c (cgraph_postorder): Prioritize functions with address taken
1145 since new direct calls can be born.
1146
1147 2009-05-10 Joseph Myers <joseph@codesourcery.com>
1148
1149 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1150 tok->val.node.node.
1151
1152 2009-05-10 Jan Hubicka <jh@suse.cz>
1153
1154 PR middle-end/40084
1155 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1156 argument; rewrite.
1157 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1158 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1159 * tree-inline.c (copy_bb): Set frequency correctly.
1160 (fold_marked_statements): Update call to
1161 cgraph_update_edges_for_call_stmt.
1162
1163 2009-05-10 Joseph Myers <joseph@codesourcery.com>
1164
1165 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1166 identifiers in diagnostics.
1167 * config/arm/arm.c (arm_handle_fndecl_attribute,
1168 arm_handle_isr_attribute): Likewise.
1169 * config/avr/avr.c (avr_handle_progmem_attribute,
1170 avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1171 Likewise.
1172 * config/bfin/bfin.c (handle_int_attribute,
1173 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1174 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1175 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1176 Likewise.
1177 * config/darwin.c (darwin_handle_kext_attribute,
1178 darwin_handle_weak_import_attribute): Likewise.
1179 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1180 h8300_handle_eightbit_data_attribute,
1181 h8300_handle_tiny_data_attribute): Likewise.
1182 * config/i386/i386.c (ix86_handle_cconv_attribute,
1183 ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1184 Likewise.
1185 * config/i386/winnt.c (ix86_handle_shared_attribute,
1186 ix86_handle_selectany_attribute): Likewise.
1187 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1188 * config/m32c/m32c.c (function_vector_handler): Likewise.
1189 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1190 m68hc11_handle_fntype_attribute): Likewise.
1191 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1192 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1193 * config/mips/mips.c (mips_insert_attributes,
1194 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1195 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1196 rs6000_handle_struct_attribute): Likewise.
1197 * config/sh/sh.c (sh_insert_attributes,
1198 sh_handle_resbank_handler_attribute,
1199 sh_handle_interrupt_handler_attribute,
1200 sh2a_handle_function_vector_handler_attribute,
1201 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1202 Likewise.
1203 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1204 * config/spu/spu.c (spu_handle_fndecl_attribute,
1205 spu_handle_vector_attribute): Likewise.
1206 * config/stormy16/stormy16.c
1207 (xstormy16_handle_interrupt_attribute): Likewise.
1208 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1209 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1210
1211 2009-05-10 Joseph Myers <joseph@codesourcery.com>
1212
1213 * pretty-print.h (struct pretty_print_info): Add
1214 translate_identifiers.
1215 (pp_translate_identifiers): New.
1216 (pp_identifier): Only conditionally translate identifier to locale
1217 character set.
1218 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1219 (pp_base_tree_identifier): Only conditionally translate identifier
1220 to locale character set.
1221 * c-pretty-print.c (M_): Define.
1222 (pp_c_type_specifier, pp_c_primary_expression): Mark English
1223 fragments for conditional translation with M_.
1224 * tree-pretty-print.c (maybe_init_pretty_print): Disable
1225 identifier translation.
1226
1227 2009-05-10 Richard Guenther <rguenther@suse.de>
1228
1229 PR tree-optimization/40081
1230 * tree-sra.c (instantiate_element): Instantiate scalar replacements
1231 using the main variant of the element type. Do not fiddle with
1232 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1233
1234 2009-05-09 Jan Hubicka <jh@suse.cz>
1235
1236 PR middle-end/40080
1237 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1238 indirect calls; verify cgraph afterwards.
1239
1240 2009-05-09 Jan Hubicka <jh@suse.cz>
1241
1242 PR bootstrap/40082
1243 * ipa.c (update_inlined_to_pointer): New function.
1244 (cgraph_remove_unreachable_nodes): Use it.
1245
1246 2009-05-09 Jan Hubicka <jh@suse.cz>
1247
1248 * tree-eh.c (struct leh_state): Remove prev_try.
1249 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1250 not track prev_try.
1251 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
1252 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1253 remove_eh_handler_and_replace, foreach_reachable_handler,
1254 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1255 * except.h (struct eh_region): Remove eh_region_u_cleanup.
1256 (gen_eh_region_cleanup): Update prototype.
1257
1258 2009-05-09 Jan Hubicka <jh@suse.cz>
1259
1260 PR middle-end/40043
1261 * except.c (copy_eh_region): Always set prev_try.
1262 (redirect_eh_edge_to_label): Find outer try.
1263 (foreach_reachable_handler): When looking for prev try
1264 handle case where previous try is not going to be taken.
1265
1266 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
1267
1268 PR tree-optimization/40049
1269 * tree-vect-stmts.c (vectorizable_operation): If the machine has
1270 only vector/vector shifts, convert the type of the constant to the
1271 appropriate type to avoid building incorrect trees, which
1272 eventually have problems with garbage collection.
1273
1274 2009-05-08 Joseph Myers <joseph@codesourcery.com>
1275
1276 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1277 -1 for complex floating-point types if honoring signed zeros.
1278
1279 2009-05-08 Jan Hubicka <jh@suse.cz>
1280
1281 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1282 argument; handle correctly when profile is absent.
1283 (build_cgraph_edges): Update.
1284 (rebuild_cgraph_edges): Update.
1285 * cgraph.c: Do not include varray.h.
1286 (cgraph_set_call_stmt_including_clones): New function.
1287 (cgraph_create_edge_including_clones): Likewise
1288 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
1289 (cgraph_update_edges_for_call_stmt): Handle clones.
1290 (cgraph_remove_node): Handle clone tree.
1291 (cgraph_remove_node_and_inline_clones): New function.
1292 (dump_cgraph_node): Dump clone tree.
1293 (cgraph_clone_node): Handle clone tree.
1294 (clone_function_name): Bring here from tree-inline.c.
1295 (cgraph_create_virtual_clone): New function.
1296 * cgraph.h (ipa_replace_map): Move here from ipa.h.
1297 (cgraph_clone_info): New function.
1298 (strut cgraph_node): Add clone_info and new clone tree pointers.
1299 (cgraph_remove_node_and_inline_clones,
1300 cgraph_set_call_stmt_including_clones,
1301 cgraph_create_edge_including_clones,
1302 cgraph_create_virtual_clone): Declare.
1303 (cgraph_function_versioning): Use VEC argument.
1304 (compute_call_stmt_bb_frequency): Update prototype.
1305 (cgraph_materialize_all_clones): New function.
1306 * ipa-cp.c (ipcp_update_cloned_node): Remove.
1307 (ipcp_create_replace_map): Update to VECtors.
1308 (ipcp_update_callgraph): Use virtual clones.
1309 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1310 (ipcp_update_profiling): Do not update local profiling.
1311 (ipcp_insert_stage): Use VECtors and virtual clones.
1312 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1313 (clone_of_p): New function.
1314 (cgraph_preserve_function_body_p): Use clone tree.
1315 (cgraph_optimize): Materialize clones.
1316 (cgraph_function_versioning): Update for VECtors.
1317 (save_inline_function_body): Use clone tree.
1318 (cgraph_materialize_clone): New function.
1319 (cgraph_materialize_all_clones): Likewise.
1320 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1321 * ipa.c: Include gimple.h.
1322 (cgraph_remove_unreachable_nodes): Use clone tree.
1323 * ipa-prop.c (ipa_note_param_call): Update call to
1324 compute_call_stmt_bb_frequencycall.
1325 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
1326 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
1327 (copy_bb): Handle updating of clone tree; add new edge when new call
1328 appears.
1329 (expand_call_inline): Be strict about every call having edge.
1330 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1331 (delete_unreachable_blocks_update_callgraph): New function.
1332 (tree_function_versioning): Use VECtors; always remove unreachable
1333 blocks and fold conditionals.
1334 * tree-inline.h: Do not include varray.h.
1335 (tree_function_versioning): Remove.
1336 * Makefile.in (GTFILES): Remove tree-inline.c
1337 * passes.c (do_per_function): Do only functions having body.
1338 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1339 tree.
1340
1341 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
1342 Andrew Morrow <acm@google.com>
1343
1344 PR c/36892
1345 * c-common.c (c_common_attribute_table): Permit deprecated
1346 attribute to take an optional argument.
1347 (handle_deprecated_attribute): If the optional argument to
1348 __attribute__((deprecated)) is not a string ignore the attribute
1349 and emit a warning.
1350
1351 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1352 * c-typeck.c (build_component_ref): Likewise.
1353 (build_external_ref): Likewise.
1354
1355 * toplev.c (warn_deprecated_use): Add an attribute argument.
1356 Emit the message associated with __attribute__((deprecated)).
1357
1358 * toplev.h (warn_deprecated_use): Updated.
1359
1360 * doc/extend.texi: Document new optional parameter to
1361 __attribute__((deprecated))
1362
1363 2009-05-08 Michael Eager <eager@eagercon.com>
1364
1365 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1366 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1367
1368 2009-05-08 Richard Guenther <rguenther@suse.de>
1369
1370 PR tree-optimization/40062
1371 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1372 Avoid exponential behavior.
1373
1374 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
1375
1376 PR rtl-optimization/33928
1377 PR 26854
1378 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1379 process_uses, build_single_def_use_links): New.
1380 (update_df): Update use_def_ref.
1381 (forward_propagate_into): Use get_def_for_use instead of use-def
1382 chains.
1383 (fwprop_init): Call build_single_def_use_links and let it initialize
1384 dataflow.
1385 (fwprop_done): Free use_def_ref.
1386 (fwprop_addr): Eliminate duplicate call to df_set_flags.
1387 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
1388 df_rd_simulate_one_insn): New.
1389 (df_rd_bb_local_compute_process_def): Update head comment.
1390 (df_chain_create_bb): Use the new RD simulation functions.
1391 * df.h (df_rd_simulate_artificial_defs_at_top,
1392 df_rd_simulate_one_insn): New.
1393 * opts.c (decode_options): Enable fwprop at -O1.
1394 * doc/invoke.texi (-fforward-propagate): Document this.
1395
1396 2009-05-08 Joseph Myers <joseph@codesourcery.com>
1397
1398 PR c/24581
1399 * c-typeck.c (build_binary_op): Handle arithmetic between one real
1400 and one complex operand specially.
1401 * tree-complex.c (some_nonzerop): Do not identify a real value as
1402 zero if flag_signed_zeros.
1403
1404 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
1405
1406 PR rtl-optimization/33928
1407 * loop-invariant.c (record_use): Fix && vs. || mishap.
1408
1409 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
1410
1411 PR rtl-optimization/33928
1412 * loop-invariant.c (struct use): Add addr_use_p.
1413 (struct def): Add n_addr_uses.
1414 (struct invariant): Add cheap_address.
1415 (create_new_invariant): Set cheap_address.
1416 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
1417 (record_uses): Pass df_ref to record_use.
1418 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1419 used only as such.
1420
1421 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
1422
1423 * config/sh/sh.c: Do not include c-pragma.h.
1424
1425 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1426
1427 * config/spu/spu.c: Remove include of c-common.h.
1428
1429 2009-05-07 Janis Johnson <janis187@us.ibm.com>
1430
1431 PR c/39037
1432 * c-common.h (mark_valid_location_for_stdc_pragma,
1433 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1434 clear_float_const_decimal64, float_const_decimal64_p): New.
1435 * c.opt (Wunsuffixed-float-constants): New.
1436 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1437 unsuffixed float constant, handle new warning.
1438 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1439 * c-decl.c (c_scope): New flag float_const_decimal64.
1440 (set_float_const_decimal64, clear_float_const_decimal64,
1441 float_const_decimal64_p): New.
1442 (push_scope): Set new flag.
1443 * c-parser.c (c_parser_translation_unit): Mark when it's valid
1444 to use STDC pragmas.
1445 (c_parser_external_declaration): Ditto.
1446 (c_parser_compound_statement_nostart): Ditto.
1447 * c-pragma.c (valid_location_for_stdc_pragma,
1448 mark_valid_location_for_stdc_pragma,
1449 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1450 handle_pragma_float_const_decimal64): New.
1451 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1452 * cp/semantics.c (valid_location_for_stdc_pragma_p,
1453 set_float_const_decimal64, clear_float_const_decimal64,
1454 float_const_decimal64_p): New dummy functions.
1455 * doc/extend.texi (Decimal Float): Remove statement that the
1456 pragma, and suffix for double constants, are not supported.
1457 * doc/invoke.texi (Warning Options): List new option.
1458 (-Wunsuffixed-float-constants): New.
1459
1460 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
1461
1462 * config/i386/i386.c: Do not include c-common.h.
1463
1464 2009-05-07 Mark Heffernan <meheff@google.com>
1465
1466 * doc/invoke.texi (Debugging Options): Document change of debugging
1467 dump location.
1468 * opts.c (decode_options): Make dump_base_name relative to
1469 aux_base_name directory.
1470
1471 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1472
1473 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1474 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1475
1476 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
1477
1478 * Makefile.in (install-plugin): Simplify a bit.
1479
1480 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
1481
1482 * Makefile.in (OBJS-common): Add regcprop.o.
1483 (regcprop.o): New.
1484 * timevar.def (TV_CPROP_REGISTERS): New.
1485 * regrename.c (regrename_optimize): Return 0.
1486 (rest_of_handle_regrename): Delete.
1487 (pass_rename_registers): Point to regrename_optimize.
1488 (struct value_data_entry, struct value_data,
1489 kill_value_one_regno, kill_value_regno, kill_value,
1490 set_value_regno, init_value_data, kill_clobbered_value,
1491 kill_set_value, kill_autoinc_value, copy_value,
1492 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1493 replace_oldest_value_reg, replace_oldest_value_addr,
1494 replace_oldest_value_mem, copyprop_hardreg_forward_1,
1495 debug_value_data, validate_value_data): Move...
1496 * regcprop.c: ... here.
1497 (rest_of_handle_cprop): Delete.
1498 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1499
1500 2009-05-07 Jakub Jelinek <jakub@redhat.com>
1501
1502 PR middle-end/40057
1503 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1504 GEN_INT for 1 << bitnum.
1505 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1506 build_int_cst_type.
1507
1508 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
1509
1510 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
1511 Remove wrong description of "nand" operation.
1512
1513 2009-05-06 Richard Guenther <rguenther@suse.de>
1514 Adam Nemet <anemet@caviumnetworks.com>
1515
1516 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1517 comment. Add that if LHS is not a gimple register, then RHS1 has
1518 to be a single object (GIMPLE_SINGLE_RHS).
1519
1520 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
1521
1522 * expr.c (get_def_for_expr): Move it up in the file.
1523 (store_field): When expanding a bit-field store, look at the
1524 defining gimple stmt for the masking conversion.
1525
1526 2009-05-06 Janis Johnson <janis187@us.ibm.com>
1527
1528 PR middle-end/39986
1529 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1530 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1531 32-bit memcpy into long.
1532
1533 2009-05-06 Jakub Jelinek <jakub@redhat.com>
1534
1535 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1536 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1537 new_reg_loc_descr.
1538 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1539 instead of appending DW_OP_deref*.
1540
1541 2009-05-06 Michael Matz <matz@suse.de>
1542
1543 PR middle-end/40021
1544 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1545 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1546
1547 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
1548
1549 * Makefile.in (install-plugin): Fix srcdir handling.
1550
1551 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
1552
1553 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1554 when processing for not_regs_needed bitmap.
1555 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1556 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
1557 handling it for rhs.
1558
1559 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1560
1561 * config/i386/i386.md (unnamed inc/dec peephole): Use
1562 optimize_insn_for_size_p instead of optimize_size.
1563 * config/i386/predicates.md (incdec_operand): Likewise.
1564 (aligned_operand): Likewise.
1565 * config/i386/sse.md (divv8sf3): Likewise.
1566 (sqrtv8sf2): Likewise.
1567
1568 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1569
1570 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1571
1572 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1573
1574 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1575
1576 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1577 ssemodesuffixf2c with avxmodesuffixf2c.
1578
1579 2009-05-06 Joseph Myers <joseph@codesourcery.com>
1580
1581 PR c/40032
1582 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1583
1584 2009-05-05 Jakub Jelinek <jakub@redhat.com>
1585
1586 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1587 (struct tree_base): Adjust spacing for 8 bit boundaries.
1588 (struct tree_decl_common): Add decl_by_reference_flag bit.
1589 (DECL_BY_REFERENCE): Adjust.
1590 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1591 print DECL_BY_REFERENCE bit.
1592 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1593 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1594 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1595 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
1596 unconditionally.
1597
1598 PR middle-end/39666
1599 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1600 range of the type, but default label is missing, add it with one
1601 of the existing labels instead of adding a new label for it.
1602
1603 2009-05-05 Joseph Myers <joseph@codesourcery.com>
1604
1605 * dwarf.h: Remove.
1606
1607 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
1608
1609 * Makefile.in (enable_plugin, plugin_includedir): New.
1610 (install): Depend on install-plugin.
1611 (PLUGIN_HEADERS): New.
1612 (install-plugin): New.
1613 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1614
1615 2009-05-05 Richard Guenther <rguenther@suse.de>
1616
1617 PR tree-optimization/40022
1618 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1619 the only vuse.
1620 (phivn_valid_p): Fix tuplification error, simplify.
1621 (phiprop_insert_phi): Add dumps.
1622 (propagate_with_phi): Simplify.
1623
1624 2009-05-05 Richard Guenther <rguenther@suse.de>
1625
1626 PR middle-end/40023
1627 * builtins.c (gimplify_va_arg_expr): Properly build the address.
1628
1629 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
1630
1631 * tree.h (strip_float_extensions): Remove duplicate declaration.
1632 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1633 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1634 block_ultimate_origin): Rearrange the declarations line to match the
1635 comment that indicates the .c file which the functions are defined.
1636 (dwarf2out_*, set_decl_rtl): Add comment.
1637 (get_base_address): Adjust comment.
1638 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1639 declarations line and add comment.
1640 (is_builtin_name): Add blank after function name, for clarity.
1641
1642 2009-05-04 Joseph Myers <joseph@codesourcery.com>
1643
1644 * attribs.c (decl_attributes): Use %qE for identifiers in
1645 diagnostics.
1646 * cgraphunit.c (verify_cgraph_node): Translate function names to
1647 locale character set in diagnostics.
1648 * coverage.c (get_coverage_counts): Use %qE for identifiers in
1649 diagnostics.
1650 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1651 Document that functions are named in UTF-8.
1652 * expr.c (expand_expr_real_1): Translate function names to locale
1653 character set in diagnostics.
1654 * gimplify.c (omp_notice_variable, omp_is_private,
1655 gimplify_scan_omp_clauses): Use %qE for identifiers in
1656 diagnostics.
1657 * langhooks.c (lhd_print_error_function): Translate function names
1658 to locale character set.
1659 * langhooks.h (decl_printable_name): Document that return value is
1660 in internal character set.
1661 * stmt.c: Include pretty-print.h
1662 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1663 diagnostics.
1664 (resolve_operand_name_1): Translate named operand name to locale
1665 character set.
1666 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1667 diagnostics.
1668 * toplev.c (announce_function): Translate function names to locale
1669 character set.
1670 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1671 (default_tree_printer): Use pp_identifier or translate identifiers
1672 to locale character set. Mark "<anonymous>" for translation.
1673 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1674 for identifiers in diagnostics.
1675 * tree.c (handle_dll_attribute): Use %qE for identifiers in
1676 diagnostics.
1677 * varasm.c (output_constructor): Use %qE for identifiers in
1678 diagnostics.
1679
1680 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
1681
1682 * configure.ac: use ` ` instead of $()
1683 * configure: Regenerate.
1684
1685 2009-05-05 Ben Elliston <bje@au.ibm.com>
1686
1687 * config/pa/linux-atomic.c: Eliminate conditional include of
1688 errno.h on non-LP64 systems to simplify build requirements.
1689
1690 2009-05-04 Joseph Myers <joseph@codesourcery.com>
1691
1692 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1693 diagnostics.
1694 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1695 and pass value to identifier_to_locale.
1696 (warn_variable_length_array): Make name a tree.
1697 (grokdeclarator): Separate diagnostic texts for named and unnamed
1698 declarators. Use %qE for named declarators.
1699 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1700 diagnostics.
1701 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1702 identifiers in diagnostics.
1703 * c-typeck.c (push_member_name, start_init): Pass identifiers to
1704 identifier_to_locale. Mark "anonymous" strings for translation.
1705
1706 2009-05-04 Michael Eager <eager@eagercon.com>
1707
1708 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
1709 address for DImode/DFmode only if double-precision FP regs.
1710
1711 2009-05-04 Michael Eager <eager@eagercon.com>
1712
1713 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1714 TARGET_SINGLE_FLOAT check.
1715
1716 2009-05-04 Michael Eager <eager@eagercon.com>
1717
1718 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1719
1720 2009-05-04 Michael Eager <eager@eagercon.com>
1721
1722 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1723 * config/rs6000/t-xilinx: New
1724
1725 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
1726
1727 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
1728 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1729 * gcc/explow.c (memory_address): Use target hook.
1730 * gcc/targhooks.c (default_legitimize_address): New.
1731 * gcc/targhooks.h (default_legitimize_address): New.
1732 * gcc/target.h (legitimize_address): New.
1733 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1734 (TARGET_INITIALIZER): Include it.
1735 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1736
1737 * config/bfin/bfin-protos.h (legitimize_address): Remove.
1738 * config/bfin/bfin.c (legitimize_address): Remove.
1739 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
1740 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1741 Remove.
1742 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1743 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1744
1745 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1746 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1747 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1748 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1749 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1750 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1751 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1752 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1753 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1754 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1755 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1756 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1757 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1758 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1759 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1760 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1761 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1762 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1763 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1764 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1765 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1766 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1767 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1768
1769 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1770 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1771 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1772 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1773 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1774 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1775 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1776 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1777 (thumb_legitimize_address): Delete.
1778 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1779 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1780 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1781 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1782 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
1783 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
1784 Delete.
1785 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
1786 Delete.
1787
1788 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
1789 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
1790 * config/m32r/m32r.c (m32r_legitimize_address): New.
1791 * config/m68k/m68k.c (m68k_legitimize_address): New.
1792 * config/score/score.c (score_legitimize_address): Standardize.
1793 * config/score/score3.c (score3_legitimize_address): Standardize.
1794 * config/score/score3.h (score3_legitimize_address): Adjust.
1795 * config/score/score7.c (score7_legitimize_address): Standardize.
1796 * config/score/score7.h (score7_legitimize_address): Adjust.
1797 * config/sh/sh.c (sh_legitimize_address): New.
1798 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
1799
1800 * gcc/config/s390/s390.c (legitimize_address): Rename to...
1801 (s390_legitimize_address): ... this.
1802 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
1803 (sparc_legitimize_address): ... this.
1804 * gcc/config/i386/i386.c (legitimize_address): Rename to...
1805 (ix86_legitimize_address): ... this.
1806 * gcc/config/avr/avr.c (legitimize_address): Rename to...
1807 (avr_legitimize_address): ... this.
1808 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
1809 (mn10300_legitimize_address): ... this.
1810 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
1811 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
1812 (alpha_expand_mov): Adjust call.
1813
1814 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
1815 * config/spu/spu.c (spu_legitimize_address): Likewise.
1816 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
1817 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
1818
1819 2009-05-04 Joseph Myers <joseph@codesourcery.com>
1820
1821 * intl.c (locale_encoding, locale_utf8): New.
1822 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
1823 * intl.h (locale_encoding, locale_utf8): Declare.
1824 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
1825 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
1826 New.
1827 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
1828 argument.
1829 (pp_tree_identifier): Define to call pp_base_tree_identifier.
1830 (pp_base_tree_identifier): Declare as function.
1831 (identifier_to_locale): Declare.
1832 * Makefile.in (pretty-print.o): Update dependencies.
1833 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
1834
1835 2009-05-04 Richard Guenther <rguenther@suse.de>
1836
1837 PR middle-end/40015
1838 * builtins.c (fold_builtin_memory_op): Do not decay to element
1839 type if the size matches the whole array.
1840
1841 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
1842
1843 * expmed.c (synth_mult): When trying out a shift, pass the result
1844 of a signed shift.
1845
1846 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
1847
1848 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
1849 (shiftsub1_cost): New.
1850 (init_expmed): Compute shiftsub1_cost.
1851 (synth_mult): Optimize multiplications by constants of the form
1852 -(2^^m-1) for some constant positive integer m.
1853
1854 2009-05-03 Richard Guenther <rguenther@suse.de>
1855
1856 PR c/39983
1857 * c-typeck.c (array_to_pointer_conversion): Do not built
1858 ADDR_EXPRs of arrays of pointer-to-element type.
1859 * c-gimplify.c (c_gimplify_expr): Revert change fixing
1860 up wrong ADDR_EXPRs after-the-fact.
1861 * c-common.c (strict_aliasing_warning): Strip pointer
1862 conversions for obtaining the original type.
1863 * builtins.c (fold_builtin_memset): Handle array types.
1864 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
1865 and array types
1866
1867 2009-05-03 Richard Guenther <rguenther@suse.de>
1868
1869 PR middle-end/23329
1870 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
1871 Do not lose casts from array types with unknown extent to array
1872 types with known extent.
1873 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
1874 alias set compatibility.
1875
1876 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
1877
1878 * flags.h (extra_warnings): Delete.
1879 * toplev.c (process_options): Handle Wuninitialized here.
1880 * opts.c (extra_warnings): Delete.
1881 (set_Wextra): Delete.
1882 (common_handle_option): -Wextra can be handled automatically.
1883 * c-opts.c (c_common_handle_option): Delete obsolete code.
1884 (c_common_post_options): Simplify comment.
1885 * common.opt (W): Add Var.
1886 (Wextra): Add Var.
1887 (Wuninitialized): Initialize to -1.
1888
1889 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
1890 Richard Guenther <rguenther@suse.de>
1891
1892 * expr.c (get_def_for_expr): New function.
1893 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
1894 SSA rather than trees.
1895 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
1896 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
1897
1898 2009-05-03 Joseph Myers <joseph@codesourcery.com>
1899
1900 * c-common.c (reswords): Add _Imaginary.
1901 * c-common.c (enum rid): Add RID_IMAGINARY.
1902
1903 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
1904
1905 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
1906 Patch by Richard Guenther.
1907
1908 2009-05-03 Anatoly Sokolov <aesok@post.ru>
1909
1910 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
1911 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
1912 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
1913 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
1914 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
1915 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
1916 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
1917 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
1918 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
1919 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
1920 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
1921 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
1922 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
1923 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
1924 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
1925 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
1926 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
1927 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
1928
1929 2009-05-02 Richard Guenther <rguenther@suse.de>
1930
1931 PR tree-optimization/39940
1932 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
1933 doing so.
1934
1935 2009-05-02 Richard Guenther <rguenther@suse.de>
1936
1937 PR middle-end/40001
1938 * tree-ssa.c (execute_update_addresses_taken): Properly check
1939 if we can mark a variable DECL_GIMPLE_REG_P.
1940 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
1941 back to the end of the function.
1942 (is_gimple_reg_type): Remove complex type special casing.
1943 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
1944 if not optimizing.
1945
1946 2009-05-02 Ben Elliston <bje@au.ibm.com>
1947
1948 * doc/collect2.texi (Collect2): Document search path behaviour
1949 when configured with --with-ld.
1950
1951 2009-05-02 Jan Hubicka <jh@suse.cz>
1952
1953 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
1954 parameter; update callers.
1955 (coalesce_cost_edge): EH edges are costier because they needs
1956 splitting even if not critical and even more costier when there are
1957 multiple EH predecestors.
1958
1959 2009-05-02 Jan Hubicka <jh@suse.cz>
1960
1961 * except.c (remove_eh_handler_and_replace): Handle updating after
1962 removing TRY blocks.
1963
1964 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
1965
1966 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
1967
1968 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
1969
1970 * varasm.c: Do not include c-pragma.h.
1971 * attribs.c: Do not incude c-common.h.
1972
1973 2009-05-01 Michael Matz <matz@suse.de>
1974
1975 * calls.c (initialize_argument_information): Handle SSA names like
1976 decls with a non MEM_P DECL_RTL.
1977
1978 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1979
1980 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
1981 * ipa-utils.c: Likewise.
1982 * ipa-type-escape.c: Likewise.
1983 * cgraphunit.c Do not include c-common.h.
1984 * ipa-pure-const.c: Likewise.
1985 * tree-if-conv.c: Likewise.
1986 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
1987 * ipa-struct-reorg.c: Likewise.
1988 * tree-nomudflap.c: Likewise.
1989 * tree-ssa-structalias.c: Likewise.
1990
1991 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
1992
1993 * store-motion.c: Many cleanups to make this pass a first-class
1994 citizen instead of an appendix to gcse load motion. Add TODO list
1995 to make this pass faster/cleaner/better.
1996
1997 (struct ls_expr): Post gcse.c-split cleanups.
1998 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
1999 "stores" field to "avail_stores".
2000 (pre_ldst_mems): Rename to store_motion_mems.
2001 (pre_ldst_table): Rename to store_motion_mems_table.
2002 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
2003 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
2004 (ldst_entry): Rename to st_expr_entry, update users.
2005 (free_ldst_entry): Rename to free_st_expr_entry, update users.
2006 (free_ldst_mems): Rename to free_store_motion_mems, update users.
2007 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
2008 update caller.
2009 (first_ls_expr): Rename to first_st_expr, update users.
2010 (next_ls_expr): Rename to next_st_expr, update users.
2011 (print_ldst_list): Rename to print_store_motion_mems. Print names of
2012 fields properly for store motion instead of names inherited from load
2013 motion in gcse.c.
2014 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
2015 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
2016 are done with it.
2017
2018 (ae_kill): Rename to st_kill, update users.
2019 (ae_gen): Rename to st_avloc, update users.
2020 (transp): Rename to st_transp, update users.
2021 (pre_insert_map): Rename to st_insert_map, update users.
2022 (pre_delete_map): Rename to st_delete_map, update users.
2023 (insert_store, build_store_vectors, free_store_memory,
2024 one_store_motion_pass): Update for abovementioned changes.
2025
2026 (gcse_subst_count, gcse_create_count): Remove.
2027 (one_store_motion_pass): New statistics counters "n_stores_deleted"
2028 and "n_stores_created", local variables.
2029
2030 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
2031 use for_each_rtx.
2032
2033 (regvec, compute_store_table_current_insn): Remove.
2034 (reg_set_info, reg_clear_last_set): Remove.
2035 (compute_store_table): Use DF caches instead of local dataflow
2036 solvers.
2037
2038 2009-05-01 Joseph Myers <joseph@codesourcery.com>
2039
2040 * c-objc-common.c (c_tree_printer): Print identifiers with
2041 pp_identifier, not pp_string. Mark "({anonymous})" for
2042 translation.
2043 * c-pretty-print.c (pp_c_ws_string): New.
2044 (pp_c_cv_qualifier, pp_c_type_specifier,
2045 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2046 pp_c_storage_class_specifier, pp_c_function_specifier,
2047 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2048 pp_c_primary_expression, pp_c_postfix_expression,
2049 pp_c_unary_expression, pp_c_shift_expression,
2050 pp_c_relational_expression, pp_c_equality_expression,
2051 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2052 use pp_string and pp_c_ws_string in place of pp_identifier and
2053 pp_c_identifier for non-identifiers. Mark English strings for
2054 translation.
2055 * c-pretty-print.h (pp_c_ws_string): Declare.
2056
2057 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
2058 Roland McGrath <roland@redhat.com>
2059
2060 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
2061 (ENABLE_LD_BUILDID): New configuration option.
2062 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2063 (LINK_BUILDID_SPEC): New macro.
2064 (init_spec): If defined, prepend it between LINK_EH_SPEC and
2065 link_spec.
2066 * doc/install.texi: Document --enable-linker-build-id option.
2067 * configure: Rebuild.
2068 * config.in: Rebuild.
2069
2070 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
2071
2072 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2073 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2074 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
2075 MIPS_GP_SAVE_AREA_SIZE.
2076 * config/mips/mips.c (struct mips_frame_info): Update comment
2077 before arg_pointer_offset and hard_frame_pointer_offset.
2078 (mips_compute_frame_info): Update diagram before function: to
2079 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2080 indicate the position of frame_pointer_rtx with -fstack-protector and
2081 to show args_size. Don't allocate cprestore area for leaf functions
2082 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
2083 cprestore_size.
2084 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2085
2086 2009-04-30 Michael Matz <matz@suse.de>
2087
2088 PR tree-optimization/39955
2089 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
2090
2091 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
2092
2093 * ira.c (setup_cover_and_important_classes): Use safe macro
2094 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2095 directly.
2096 * genpreds.c (write_tm_preds_h): Output suitable definition of
2097 REG_CLASS_FOR_CONSTRAINT.
2098
2099 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
2100
2101 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2102 instead of an int.
2103 * bitmap.c (bitmap_descriptor): Likewise.
2104 * ggc-common.c (loc_descriptor): Likewise.
2105 * varray.c (varray_descriptor): Likewise.
2106 * vec.c (vec_descriptor): Likewise.
2107
2108 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
2109
2110 * Makefile.in (dce.o): Add $(EXCEPT_H).
2111 * dce.c: Include except.h and delete redundant vector definitions.
2112 (deletable_insn_p): Return false for non-call insns that can throw
2113 if DF is running.
2114
2115 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
2116
2117 * gcse.c (ae_gen): Remove.
2118 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2119 and make non-static function to make it available in store-motion.c.
2120 Update call sites with search-and-replace.
2121 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2122 extract_mentioned_regs, extract_mentioned_regs_helper,
2123 find_moveable_store, compute_store_table, load_kills_store, find_loads,
2124 store_killed_in_insn, store_killed_after, store_killed_before,
2125 build_store_vectors, insert_insn_start_basic_block, insert-store,
2126 remove_reachable_equiv_notes, replace_store_insn, delete_store,
2127 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2128 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2129 * store-motion.c: ...new file. Also copy data structures from gcse.c
2130 and clean up to remove parts not used by store motion.
2131 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2132 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2133
2134 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2135
2136 PR target/38571
2137 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2138 when optimizing for size.
2139
2140 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
2141
2142 * gcse.c (gcse_constant_p): Fix typo in last change.
2143
2144 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
2145
2146 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2147
2148 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
2149
2150 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2151
2152 2009-04-29 James E. Wilson <wilson@codesourcery.com>
2153
2154 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2155 CONST_HIGH_PART result.
2156
2157 2009-04-29 Anatoly Sokolov <aesok@post.ru>
2158
2159 * config/avr/avr.c (initial_elimination_offset): Rename to
2160 avr_initial_elimination_offset.
2161 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2162 change return type to bool.
2163 (avr_can_eliminate): New function.
2164 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2165 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2166 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
2167 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
2168 avr_initial_elimination_offset.
2169 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2170 (avr_initial_elimination_offset): Define.
2171
2172 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
2173 Steven Bosscher <steven@gcc.gnu.org>
2174
2175 PR rtl-optimization/39938
2176 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2177 * cfgrtl.c: Include insn-attr.h.
2178 (rest_of_pass_free_cfg): New function.
2179 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2180 * resource.c (init_resource_info): Remove call to df_analyze.
2181
2182 2009-04-29 Richard Guenther <rguenther@suse.de>
2183
2184 PR target/39943
2185 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2186 allow conversion to signed integers.
2187
2188 2009-04-29 Richard Guenther <rguenther@suse.de>
2189
2190 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2191 shifts of floating point vectors if the shift amount is
2192 a constant multiple of the element size.
2193
2194 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
2195 Michael Matz <matz@suse.de>
2196
2197 PR middle-end/39927
2198 PR bootstrap/39929
2199 * tree-outof-ssa.c (emit_partition_copy): New function.
2200 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2201 insert_part_to_rtx_on_edge): Perform the partition base var
2202 copy using emit_partition_copy.
2203 (insert_value_copy_on_edge): Convert constants to the right mode.
2204 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2205 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2206
2207 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2208
2209 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2210 scan backwards to try to find a constant to initialize it.
2211
2212 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2213 insn before the loop_end instruction, don't look past labels.
2214
2215 2009-04-29 Richard Guenther <rguenther@suse.de>
2216
2217 PR middle-end/39937
2218 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2219 loose type conversions.
2220 (forward_propagate_addr_expr): Fix tuplification bug. Remove
2221 stmts only if there are no uses of its definition.
2222
2223 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2224
2225 * config/bfin/bfin.h (splitting_loops): Declare.
2226 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2227 Reorder bit definitions to be ascending.
2228 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2229 * config/bfin/bfin.c (splitting_loops): New variable.
2230 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2231 (struct loop_info): Remove members INIT and LOOP_INIT.
2232 (bfin_optimize_loop): Don't set them. Reorder the code that generates
2233 the LSETUP sequence. Allow LC to be loaded from any register, but
2234 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
2235 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2236 set to 1.
2237 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2238 of reload_completed.
2239
2240 From Jie Zhang:
2241 * config/bfin/bfin.md (movsi_insn): Refine constraints.
2242
2243 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
2244
2245 * Makefile.in (PLUGIN_VERSION_H): New.
2246 (OBJS-common): Remove plugin-version.o.
2247 (plugin.o): Depend on (PLUGIN_VERSION_H).
2248 (plugin-version.o): Remove.
2249 * configure: Regenerate
2250 * configure.ac: Create plugin-version.h.
2251 * gcc-plugin.h (plugin_gcc_version): Remove.
2252 (plugin_default_version_check): Change signature.
2253 * plugin-version.c: Remove.
2254 * plugin.c: Include plugin-version.h.
2255 (str_plugin_gcc_version_name): Remove.
2256 (try_init_one_plugin): Pass gcc version to plugin_init.
2257 (plugin_default_version_check): Both gcc and plugin versions are now
2258 arguments.
2259
2260 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2261
2262 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2263 problematic last insns. Test for TYPE_CALL rather than CALL_P.
2264 Remove special case testing for last insn of inner loops. Don't fail
2265 if the loop ends with a jump, emit an extra nop instead.
2266
2267 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2268 DREGS rather than comparing directly. Remove code that tries to
2269 account for latencies.
2270
2271 2009-04-29 Richard Guenther <rguenther@suse.de>
2272
2273 PR tree-optimization/39941
2274 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2275 eliminating an indirect call.
2276
2277 2009-04-29 Richard Guenther <rguenther@suse.de>
2278
2279 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2280 parameter. Allow invariants as base if !require_lvalue.
2281 (verify_gimple_assign_single): Adjust.
2282
2283 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2284
2285 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2286 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
2287 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2288 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
2289 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2290 a VEC_SELECT.
2291 * config/bfin/bfin.c (bfin_expand_builtin,
2292 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
2293
2294 2009-04-28 Richard Guenther <rguenther@suse.de>
2295
2296 * tree-vect-loop.c (get_initial_def_for_induction): Use
2297 correct types for pointer increment.
2298
2299 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2300
2301 * toplev.c (print_version): Update GMP version string calculation.
2302
2303 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
2304
2305 PR rtl-optimization/39938
2306 * resource.c (init_resource_info): Add call to df_analyze.
2307
2308 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
2309
2310 * config/alpha/alpha.md (usegp): Cast the result of
2311 alpha_find_lo_sum_using_gp to enum attr_usegp.
2312 * config/alpha/alpha.c (override_options): Remove end-of-structure
2313 marker element from cpu_table. Use array size of cpu_table to handle
2314 -mcpu and -mtune options.
2315 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2316
2317 2009-04-28 Joseph Myers <joseph@codesourcery.com>
2318
2319 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2320 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
2321 tune_32 and tune_64.
2322 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2323 support on PowerPC.
2324 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2325 * config/rs6000/option-defaults.h: ... here. New file.
2326 (OPT_64, OPT_32): Define.
2327 (MASK_64BIT): Define to 0 if not already defined.
2328 (OPT_ARCH64, OPT_ARCH32): Define.
2329 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2330 and tune_64.
2331
2332 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2333
2334 * config/arm/arm.c (arm_override_options): Emit error on using
2335 fpa with AAPCS.
2336
2337 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
2338
2339 PR rtl-optimization/39914
2340 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2341 registers for allocnos created from user-defined variables only
2342 when not optimizing.
2343
2344 2009-04-28 Richard Guenther <rguenther@suse.de>
2345
2346 PR middle-end/39937
2347 * fold-const.c (fold_binary): Use distribute_real_division only
2348 on float types.
2349
2350 2009-04-28 Steve Ellcey <sje@cup.hp.com>
2351
2352 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2353 add hpux-stdint.h to tm_file.
2354 (hppa[12]*-*-hpux11*): Ditto.
2355 (ia64*-*-hpux*): Ditto.
2356 * config/hpux-stdint.h: New.
2357 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
2358 __STDC_EXT__ for all compiles.
2359 * config/pa/pa-hpux.h: Ditto.
2360 * config/pa/pa-hpux10.h: Ditto.
2361 * config/pa/pa-hpux11.h: Ditto.
2362
2363 2009-04-28 Catherine Moore <clm@codesourcery.com>
2364
2365 * debug.h (set_name): Add comment.
2366
2367 2009-04-28 Andrew Pinski <pinskia@gmail.com>
2368
2369 PR target/39929
2370 * config/darwin.c (machopic_gen_offset): Check
2371 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2372 * config/arm/arm.c (require_pic_register): Likewise.
2373
2374 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
2375
2376 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2377 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2378 m32c_promote_prototypes): Delete.
2379
2380 2009-04-28 Michael Matz <matz@suse.de>
2381
2382 PR middle-end/39922
2383 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2384 constants.
2385
2386 2009-04-28 Richard Guenther <rguenther@suse.de>
2387
2388 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
2389
2390 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2391
2392 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2393 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2394 * config/arm/arm-tune.md: Regenerate.
2395
2396 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
2397
2398 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2399 block if there are complex incoming edges.
2400 (sel_merge_blocks): Remove useless assert.
2401 (sel_redirect_edge_and_branch): Check that edge was redirected.
2402 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2403 (sel_find_rgns): Delete declaration.
2404 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2405 the region when it is not a preheader.
2406
2407 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
2408
2409 PR c/39323
2410 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2411
2412 2009-04-28 Richard Guenther <rguenther@suse.de>
2413
2414 * tree.h (SSA_NAME_VALUE): Remove.
2415 (struct tree_ssa_name): Remove value_handle member.
2416 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2417 array for jump threading.
2418 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2419 SSA_NAME_VALUEs.
2420 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2421 * tree-flow.h (threadedge_initialize_values): Declare.
2422 (threadedge_finalize_values): Likewise.
2423 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2424 (SSA_NAME_VALUE): Define.
2425 (threadedge_initialize_values): New function.
2426 (threadedge_finalize_values): Likewise.
2427 * tree-ssa-dom.c (ssa_name_values): New global variable.
2428 (SSA_NAME_VALUE): Define.
2429 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
2430
2431 2009-04-28 Ira Rosen <irar@il.ibm.com>
2432
2433 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2434 Use REPORT_VECTORIZED_LOCATIONS instead
2435 REPORT_VECTORIZED_LOOPS.
2436 * tree-vectorizer.c (vect_verbosity_level): Make static.
2437 (vect_loop_location): Rename to vect_location.
2438 (vect_set_verbosity_level): Update comment.
2439 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2440 and vect_location.
2441 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2442 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2443 instead REPORT_UNVECTORIZED_LOOPS.
2444 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2445 and vect_loop_def to vect_external_def and vect_internal_def.
2446 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
2447 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
2448 REPORT_UNVECTORIZED_LOCATIONS.
2449 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2450 and vect_used_in_loop and to vect_unused_in_scope and
2451 vect_used_in_scope.
2452 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2453 (vect_verbosity_level): Remove declaration.
2454 (vect_analyze_operations): Likewise.
2455 (vect_analyze_stmt): Declare.
2456 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2457 REPORT_UNVECTORIZED_LOCATIONS.
2458 (vect_get_loop_niters): Fix indentation.
2459 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2460 (vect_analyze_loop_operations): New function.
2461 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2462 vect_analyze_operations.
2463 (vect_is_simple_reduction): Use new names.
2464 (vectorizable_live_operation, vect_transform_loop): Likewise.
2465 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2466 to specify whether the data references can be a part of interleaving
2467 chain.
2468 (vect_analyze_data_ref_dependence): Use new names.
2469 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2470 (vect_create_addr_base_for_vector_ref): Remove redundant code.
2471 * tree-vect-patterns.c (widened_name_p): Use new names.
2472 (vect_recog_dot_prod_pattern): Likewise.
2473 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2474 (process_use, vect_mark_stmts_to_be_vectorized,
2475 vect_model_simple_cost, vect_model_store_cost,
2476 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2477 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2478 vectorizable_operation, vectorizable_type_demotion,
2479 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2480 vectorizable_condition): Likewise.
2481 (vect_analyze_operations): Split into vect_analyze_loop_operations
2482 and ...
2483 (vect_analyze_stmt): ... new function.
2484 (new_stmt_vec_info): Use new names.
2485 (vect_is_simple_use): Use new names and fix comment.
2486 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2487 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2488
2489 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
2490
2491 PR target/39911
2492 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2493 and integer modes for x87 operands. Do not ICE for unsupported size,
2494 generate error instead. Generate error for unsupported operand types.
2495 ['z']: Do not handle HImode memory operands specially. Warning
2496 for floating-point operands. Fallthru to 'Z' for unsupported operand
2497 types. Do not ICE for unsupported size, generate error instead.
2498 (output_387_binary_op): Use %Z to output operands.
2499 (output_fp_compare): Ditto.
2500 (output_387_reg_move): Ditto.
2501
2502 2009-04-28 Ben Elliston <bje@au.ibm.com>
2503
2504 PR c++/35652
2505 Revert:
2506
2507 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2508
2509 * builtins.c (c_strlen): Do not warn here.
2510 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2511 * c-common.c (pointer_int_sum): Take an explicit location.
2512 Warn about offsets out of bounds.
2513 * c-common.h (pointer_int_sum): Adjust declaration.
2514
2515 2009-04-27 Ian Lance Taylor <iant@google.com>
2516
2517 * collect2.c (is_ctor_dtor): Change type of ret field in struct
2518 names to symkind.
2519 * dce.c (run_fast_df_dce): Change type of old_flags to int.
2520 * df-core.c (df_set_flags): Change return type to int. Change
2521 type of old_flags to int.
2522 (df_clear_flags): Likewise.
2523 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2524 (df_get_conditional_uses): Likewise.
2525 * df.h (df_set_flags, df_clear_flags): Update declarations.
2526 * dwarf2out.c (struct indirect_string_node): Change type of form
2527 field to enum dwarf_form.
2528 (AT_string_form): Change return type to enum dwarf_form.
2529 * fixed-value.c (fixed_compare): Add cast to enum type.
2530 * fwprop.c (update_df): Change 0 to VOIDmode.
2531 * gensupport.c: Change 0 to UNKNOWN.
2532 * gimple.h (gimple_cond_code): Add cast to enum type.
2533 * haifa-sched.c (reemit_notes): Add cast to enum type.
2534 * hooks.c (hook_int_void_no_regs): Remove function.
2535 * hooks.h (hook_int_void_no_regs): Remove declaration.
2536 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
2537 * predict.c (combine_predictions_for_insn): Add casts to enum type.
2538 * real.c (real_arithmetic): Add cast to enum type.
2539 (real_compare): Likewise.
2540 * target.h (struct gcc_target): Change return type of
2541 branch_target_register_class to enum reg_class.
2542 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2543 default_branch_target_register_class.
2544 * targhooks.c (default_branch_target_register_class): New function.
2545 * targhooks.h (default_branch_target_register_class): Declare.
2546 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
2547 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2548 cast to int.
2549 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2550 ERROR_MARK.
2551 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2552 vect_uninitialized_def. Change 0 to ERROR_MARK.
2553 * tree-vect-stmts.c (supportable_widening_operation): Don't
2554 initialize icode1 and icode2.
2555 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
2556 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2557 and to STD_C89.
2558 (cmn_err_flag_specs): Change 0 to STD_C89.
2559 (cmn_err_char_table): Likewise.
2560 * config/arm/arm.c (get_arm_condition_code): Change type of code
2561 to enum arm_cond_code.
2562 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2563 (IWMMXT_BUILTIN2): Likewise.
2564 (neon_builtin_type_bits): Don't define typedef.
2565 (neon_builtin_datum): Change type of bits field to int.
2566 (arm_expand_neon_args): Add cast to enum type.
2567 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2568 TLS_MODEL_NONE.
2569 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
2570 casts to enum type.
2571 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2572 MIPS_FP_COND_f.
2573 * config/mips/mips.md (jal_macro): Return enum constant.
2574 (single_insn): Likewise.
2575 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2576 CODE_FOR_nothing.
2577 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2578 casts to enum type.
2579 * config/s390/s390.c (s390_tune_flags): Change type to int.
2580 (s390_arch_flags): Likewise.
2581 (s390_handle_arch_option): Change flags field of struct pta to int.
2582 * config/s390/s390.h (s390_tune_flags): Update declaration.
2583 (s390_arch_flags): Likewise.
2584 * config/sh/sh.c (prepare_move_operands): Compare
2585 tls_symbolic_operand result with enum constant.
2586 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2587 (sh_expand_prologue): Add cast to enum type.
2588 (sh_expand_epilogue): Likewise.
2589 (tls_symbolic_operand): Change return type to enum tls_model.
2590 (fpscr_set_from_mem): Add cast to enum type.
2591 (legitimize_pic_address): Compare tls_symbolic_operand result with
2592 enum constant.
2593 (sh_target_reg_class): Change return type to enum reg_class.
2594 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2595 PROCESSOR_xxx.
2596 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2597 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
2598 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2599 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2600 (delayed_branch, tls_call_delay): Likewise.
2601 (eligible_for_sibcall_delay): Likewise.
2602 (eligible_for_return_delay): Likewise.
2603 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2604 (spu_expand_builtin_1): Likewise.
2605
2606 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2607 for all types of conversions.
2608 (output_init_element): Issue -Wc++-compat warning if needed when
2609 initializing a bitfield with enum type.
2610 * c-parser.c (c_parser_expression): Set original_type to
2611 original_type of right hand operand of comman operator.
2612
2613 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2614
2615 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2616 grammar nits.
2617 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
2618 * doc/cpp.texi (Standard Predefined Macros)
2619 (Implementation-defined behavior): Likewise.
2620 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
2621 * doc/gimple.texi (GIMPLE Exception Handling)
2622 (@code{GIMPLE_ASSIGN}): Likewise.
2623 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
2624 * doc/invoke.texi (Warning Options, Optimize Options)
2625 (AVR Options, Darwin Options): Likewise.
2626 (Optimize Options): Reformulate -fwhole-program description.
2627 * doc/loop.texi (Lambda): Likewise.
2628 * doc/md.texi (Output Template, Define Constraints)
2629 (Standard Names, Insn Splitting): Likewise.
2630 * doc/options.texi (Option properties): Likewise.
2631 * doc/passes.texi (Tree-SSA passes): Likewise.
2632 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2633 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2634 (File Names and DBX): Likewise.
2635 * doc/trouble.texi (Incompatibilities): Likewise.
2636
2637 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2638
2639 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2640 instruction is correct.
2641
2642 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
2643
2644 Allow non-constant arguments to conversion intrinsics.
2645 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2646 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2647 * spu.c (print_operand): Handle 'v' and 'w'.
2648 (exp2_immediate_p, spu_gen_exp2): Define.
2649 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2650 spu_convtf_1): Update parameter descriptions.
2651 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
2652 * constraints.md ('v', 'w'): New.
2653 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2654 Remove.
2655 (i2f, I2F): New define_mode_attr.
2656 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2657 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2658 fixuns_truncv4sfv4si2): Update to use mode attribute.
2659 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2660 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2661 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2662 patterns for combine.
2663
2664 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
2665
2666 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2667 (cprop, hoist, pre, store_motion): New debug counters.
2668 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2669 is not an RTL pass anymore.
2670 (pass_profiling): Remove extern decl for pass removed in 2005.
2671 (pass_gcse, pass_jump_bypass): Remove.
2672 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2673 to 0 for clean state.
2674 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2675 * cse.c (gate_handle_cse_after_global_opts,
2676 rest_of_handle_cse_after_global_opts): New functions.
2677 (pass_cse_after_global_opts): New pass, does local CSE.
2678 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2679 (TV_CPROP): New timevar.
2680 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2681 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2682 (gcse_main, recompute_all_luids): Remove.
2683 (compute_hash_table_work): Call max_reg_num instead of reading
2684 max_gcse_regno.
2685 (cprop_jump): Don't set run_jump_opt_after_gcse.
2686 (constprop_register): Always allow to alter jumps.
2687 (cprop_insn): Likewise.
2688 (do_local_cprop): Likewise.
2689 (local_cprop_pass): Likewise. Return non-zero if something changed.
2690 (cprop): Remove function, fold interesting bits into one_cprop_pass.
2691 (find_implicit_sets): Add note about missed optimization opportunity.
2692 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2693 pass_rtl_cprop execute function.
2694 Don't bother tracking the pass number, each pass gets its own dumpfile
2695 now anyway.
2696 Always allow to alter jumpsand bypass jumps.
2697 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2698 will just find no suitable set.
2699 (pre_edge_insert): Fix dumping, this function is for PRE only.
2700 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2701 pass_rtl_pre execute function.
2702 (hoist_code): Return non-zero if something changed. Keep track of
2703 substitutions and insertions for statistics gathering similar to PRE.
2704 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2705 called from the pass_rtl_hoist execute function. Show pass statistics.
2706 (compute_store_table): Use max_reg_num directly instead of using the
2707 formerly global max_gcse_regno.
2708 (build_store_vectors): Likewise.
2709 (replace_store_insn): Fix dumping.
2710 (store_motion): Rename to ...
2711 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
2712 pass, called from the pass_rtl_store_motion execute function. Keep
2713 track of substitutions and insertions for statistics gathering similar
2714 to PRE.
2715 (bypass_jumps): Remove, fold interesting bits into ...
2716 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
2717 from the pass_rtl_cprop execute function.
2718 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2719 pass_jump_bypass): Remove.
2720 (gate_handle_gcse, rest_of_handle_gcse): Remove.
2721 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2722 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2723 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2724 (gate_rtl_store_motion, execute_rtl_store_motion,
2725 pass_rtl_store_motion): New.
2726 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2727 make it clear that -fcse-skip-blocks is a no-op for backward compat.
2728 * passes.c (init_optimization_passes): Remove pass_gcse and
2729 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
2730 and cse_after_global_opts in place of pass_gcse. Schedule cprop
2731 instead of pass_jump_bypass.
2732
2733 2009-04-27 Richard Guenther <rguenther@suse.de>
2734
2735 PR middle-end/39928
2736 * gimplify.c (gimplify_expr): If we are required to create
2737 a temporary make sure it ends up as register.
2738
2739 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
2740
2741 PR target/39903
2742 * config/i386/i386.c (construct_container): Don't call
2743 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2744 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2745
2746 2009-04-27 Michael Matz <matz@suse.de>
2747
2748 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2749 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2750 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2751 (dump_replaceable_exprs): Take a bitmap.
2752 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2753 array.
2754 (expand_gimple_basic_block): Likewise.
2755 * tree-ssa-ter.c (struct temp_expr_table_d): Make
2756 replaceable_expressions member a bitmap.
2757 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2758 (mark_replaceable): Likewise.
2759 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2760 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2761
2762 2009-04-27 Richard Guenther <rguenther@suse.de>
2763
2764 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2765 (verify_stmts): Dispatch to gimple/type verification code.
2766 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2767 issue with call argument types.
2768
2769 2009-04-27 Michael Matz <matz@suse.de>
2770
2771 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2772 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2773 to above.
2774
2775 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
2776 Eric Botcazou <ebotcazou@adacore.com>
2777
2778 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2779 a label's basic block.
2780 (mark_target_live_regs): Tidy and rework obsolete comments.
2781 Change back DF problem to LIVE. If a label starts a basic block,
2782 assume that all registers that used to be live then still are.
2783 (init_resource_info): If a label starts a basic block, set its
2784 BLOCK_FOR_INSN accordingly.
2785 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
2786
2787 2009-04-27 Richard Guenther <rguenther@suse.de>
2788
2789 * tree-flow-inline.h (function_ann): Remove.
2790 (get_function_ann): Likewise.
2791 * tree-dfa.c (create_function_ann): Remove.
2792 * tree-flow.h (struct static_var_ann_d): Remove.
2793 (struct function_ann_d): Likewise.
2794 (union tree_ann_d): Remove fdecl member.
2795 (function_ann_t): Remove.
2796 (function_ann, get_function_ann, create_function_ann): Remove
2797 declarations.
2798
2799 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
2800
2801 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
2802
2803 2009-04-27 Jan Hubicka <jh@suse.cz>
2804
2805 * ipa-pure-const.c (struct funct_state_d): New fields
2806 state_previously_known, looping_previously_known; remove
2807 state_set_in_source.
2808 (analyze_function): Use new fields.
2809 (propagate): Avoid assumption that state_set_in_source imply
2810 nonlooping.
2811
2812 * tree-ssa-loop-niter.c (finite_loop_p): New function.
2813 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
2814 * cfgloop.h (finite_loop_p): Declare.
2815
2816 2009-04-26 Michael Matz <matz@suse.de>
2817
2818 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
2819
2820 2009-04-26 Michael Matz <matz@suse.de>
2821
2822 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
2823 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
2824 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
2825 pass_mark_used_blocks): Remove.
2826 * tree-optimize.c (pass_free_datastructures,
2827 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
2828 * passes.c (init_optimization_passes): Don't call
2829 pass_mark_used_blocks, remove dead code.
2830
2831 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
2832
2833 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
2834 * tree-ssa-live.h (register_ssa_partition): Likewise.
2835
2836 2009-04-26 Michael Matz <matz@suse.de>
2837
2838 Expand from SSA.
2839 * builtins.c (fold_builtin_next_arg): Handle SSA names.
2840 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
2841 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
2842 SSA names.
2843 (compare_pairs): Swap cost comparison.
2844 (coalesce_ssa_name): Don't use change_partition_var.
2845 * tree-nrv.c (struct nrv_data): Add modified member.
2846 (finalize_nrv_r): Set it.
2847 (tree_nrv): Use it to update statements.
2848 (pass_nrv): Require PROP_ssa.
2849 * tree-mudflap.c (mf_decl_cache_locals,
2850 mf_build_check_statement_for): Use make_rename_temp.
2851 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
2852 * alias.c (find_base_decl): Handle SSA names.
2853 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
2854 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
2855 * rtl.h (set_reg_attrs_for_parm): Declare.
2856 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
2857 to "optimized", remove unused locals at finish.
2858 (execute_free_datastructures): Make global, call
2859 delete_tree_cfg_annotations.
2860 (execute_free_cfg_annotations): Don't call
2861 delete_tree_cfg_annotations.
2862
2863 * ssaexpand.h: New file.
2864 * expr.c (toplevel): Include ssaexpand.h.
2865 (expand_assignment): Handle SSA names the same as register variables.
2866 (expand_expr_real_1): Expand SSA names.
2867 * cfgexpand.c (toplevel): Include ssaexpand.h.
2868 (SA): New global variable.
2869 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
2870 (SSAVAR): New macro.
2871 (set_rtl): New helper function.
2872 (add_stack_var): Deal with SSA names, use set_rtl.
2873 (expand_one_stack_var_at): Likewise.
2874 (expand_one_stack_var): Deal with SSA names.
2875 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
2876 before unique numbers.
2877 (expand_stack_vars): Use set_rtl.
2878 (expand_one_var): Accept SSA names, add asserts for them, feed them
2879 to above subroutines.
2880 (expand_used_vars): Expand all partitions (without default defs),
2881 then only the local decls (ignoring those expanded already).
2882 (expand_gimple_cond): Remove edges when jumpif() expands an
2883 unconditional jump.
2884 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
2885 or remove abnormal edges. Ignore insns setting the LHS of a TERed
2886 SSA name.
2887 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
2888 members of SA; deal with PARM_DECL partitions here; expand
2889 all PHI nodes, free tree datastructures and SA. Commit instructions
2890 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
2891 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
2892 info and statements at start, collect garbage at finish.
2893 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
2894 (VAR_ANN_PARTITION) Remove.
2895 (change_partition_var): Don't declare.
2896 (partition_to_var): Always return SSA names.
2897 (var_to_partition): Only accept SSA names.
2898 (register_ssa_partition): Only check argument.
2899 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
2900 member.
2901 (delete_var_map): Don't free it.
2902 (var_union): Only accept SSA names, simplify.
2903 (partition_view_init): Mark only useful SSA names as used.
2904 (partition_view_fini): Only deal with SSA names.
2905 (change_partition_var): Remove.
2906 (dump_var_map): Use ssa_name instead of partition_to_var member.
2907 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
2908 basic blocks.
2909 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
2910 (struct _elim_graph): New member const_dests; nodes member vector of
2911 ints.
2912 (set_location_for_edge): New static helper.
2913 (create_temp): Remove.
2914 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
2915 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
2916 (new_elim_graph): Allocate const_dests member.
2917 (clean_elim_graph): Truncate const_dests member.
2918 (delete_elim_graph): Free const_dests member.
2919 (elim_graph_size): Adapt to new type of nodes member.
2920 (elim_graph_add_node): Likewise.
2921 (eliminate_name): Likewise.
2922 (eliminate_build): Don't take basic block argument, deal only with
2923 partition numbers, not variables.
2924 (get_temp_reg): New static helper.
2925 (elim_create): Use it, deal with RTL temporaries instead of trees.
2926 (eliminate_phi): Adjust all calls to new signature.
2927 (assign_vars, replace_use_variable, replace_def_variable): Remove.
2928 (rewrite_trees): Only do checking.
2929 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
2930 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
2931 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
2932 contains_tree_r, MAX_STMTS_IN_LATCH,
2933 process_single_block_loop_latch, analyze_edges_for_bb,
2934 perform_edge_inserts): Remove.
2935 (expand_phi_nodes): New global function.
2936 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
2937 functions, initialize new parameter, remember partitions having a
2938 default def.
2939 (finish_out_of_ssa): New global function.
2940 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
2941 don't reset in_ssa_p here, don't disable TER when mudflap.
2942 (pass_del_ssa): Remove.
2943 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
2944 partition members.
2945 (execute_free_datastructures): Declare.
2946 * Makefile.in (SSAEXPAND_H): New variable.
2947 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
2948 * basic-block.h (commit_one_edge_insertion): Declare.
2949 * passes.c (init_optimization_passes): Move pass_nrv and
2950 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
2951 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
2952 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
2953 (redirect_branch_edge): Deal with super block when expanding, split
2954 out jump patching itself into ...
2955 (patch_jump_insn): ... here, new static helper.
2956
2957 2009-04-26 Michael Matz <matz@suse.de>
2958
2959 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
2960 beyond num_ssa_names.
2961 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2962 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
2963
2964 2009-04-26 Jakub Jelinek <jakub@redhat.com>
2965
2966 PR inline-asm/39543
2967 * fwprop.c (forward_propagate_asm): New function.
2968 (forward_propagate_and_simplify): Propagate also into __asm, if it
2969 doesn't increase the number of referenced registers.
2970
2971 PR c/39889
2972 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
2973
2974 2009-04-26 Jakub Jelinek <jakub@redhat.com>
2975
2976 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
2977 note_nonlocal_vla_type for nonlocal VLAs.
2978 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
2979 contains_remapped_vars, remap_vla_decls): New functions.
2980 (convert_nonlocal_reference_stmt): If not optimizing, call
2981 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
2982 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
2983 if it wasn't found in var_map.
2984 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
2985 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
2986 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
2987 declare_vars.
2988 * gimplify.c (nonlocal_vlas): New variable.
2989 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
2990 referenced VLAs.
2991 (gimplify_body): Create and destroy nonlocal_vlas.
2992
2993 * dwarf2out.c (loc_descr_plus_const): New function.
2994 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
2995 mem_loc_descriptor, loc_descriptor_from_tree_1,
2996 descr_info_loc, gen_variable_die): Use it.
2997
2998 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
2999 !TREE_STATIC VAR_DECLs.
3000 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
3001 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
3002 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
3003 DECL_BY_REFERENCE is valid.
3004 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
3005 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
3006 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
3007 Copy DECL_BY_REFERENCE.
3008 (struct nesting_copy_body_data): New type.
3009 (nesting_copy_decl): New function.
3010 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
3011 if they have variable length.
3012
3013 2009-04-26 Michael Matz <matz@suse.de>
3014
3015 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
3016 mark new temporaries for renaming.
3017
3018 2009-04-26 Joseph Myers <joseph@codesourcery.com>
3019
3020 PR c/39581
3021 * c-decl.c (global_bindings_p): Return negative value.
3022 (c_variable_size): New. Based on variable_size from
3023 stor-layout.c.
3024 (grokdeclarator): Call c_variable_size not variable_size.
3025
3026 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
3027
3028 * config/i386/i386.c (print_operand) ['z']: Fix typo.
3029
3030 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
3031
3032 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
3033 Redefine it to just use mingw/include.
3034 (ASM_SPEC): Rules for -m32 and -m64.
3035 (LINK_SPEC): Use Likewise.
3036 (SPEC_32): New define.
3037 (SPEC_64): Likewise.
3038 (SUB_LINK_SPEC): Likewise.
3039 (MULTILIB_DEFAULTS): New define.
3040 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3041 Add multilib options.
3042 (MULTILIB_DIRNAMES): Likewise.
3043 (MULTILIB_OSDIRNAMES): Likewise.
3044 (LIBGCC): Likewise.
3045 (INSTALL_LIBGCC): Likewise.
3046
3047 2009-04-26 Joseph Myers <joseph@codesourcery.com>
3048
3049 PR c/39556
3050 * c-tree.h (enum c_inline_static_type): New.
3051 (record_inline_static): Declare.
3052 * c-decl.c (struct c_inline_static, c_inline_statics,
3053 record_inline_static, check_inline_statics): New.
3054 (pop_file_scope): Call check_inline_statics.
3055 (start_decl): Call record_inline_static instead of pedwarning
3056 directly for static in inline function.
3057 * c-typeck.c (build_external_ref): Call record_inline_static
3058 instead of pedwarning directly for static referenced in inline
3059 function.
3060
3061 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
3062
3063 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3064 not new but only being rescanned.
3065 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3066 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3067 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3068 record_set_info, compute_set, grealloc): Remove.
3069 (recompute_all_luids): New function.
3070 (gcse_main): Don't compute sets, and don't do related memory
3071 allocations/free-ing. If something changed before the end of the
3072 pass, update LUIDs using recompute_all_luids.
3073 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
3074 (free_gcse_mem): Don't free it either.
3075 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3076 Use the df insn LUIDs.
3077 (load_killed_in_block): Likewise.
3078 (compute_hash_table_work): Don't compute reg_set_in_block.
3079 (compute_transp): Use DF_REG_DEF_CHAINs.
3080 (local_cprop_pass): Don't use compute_sets and related functions.
3081 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3082 Use get_max_uid() instead of max_cuid.
3083 (insert_insn_end_basic_block, pre_insert_copy_insn,
3084 update_ld_motion_stores): Don't try to
3085 keep reg_set tables up to date.
3086 (pre_insert_copies): Use df insn LUIDs.
3087 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3088 (reg_set_info): Don't use extra bitmap argument.
3089 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
3090 information to compute regs_set_in_block.
3091 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3092 (bypass_jumps): Don't use compute_sets and friends.
3093
3094 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3095
3096 PR testsuite/39710
3097 * opts.c (undocumented_msg): Do not leave blank even with
3098 ENABLE_CHECKING.
3099
3100 2009-04-25 Joseph Myers <joseph@codesourcery.com>
3101
3102 * c-decl.c (build_enumerator): Allow values folding to integer
3103 constants but not integer constant expressions with a pedwarn if
3104 pedantic.
3105
3106 2009-04-25 Joseph Myers <joseph@codesourcery.com>
3107
3108 PR c/39582
3109 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3110 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3111 type is an integer constant.
3112
3113 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
3114
3115 PR target/39897
3116 * config/i386/i386.c (print_operand) ['z']: Revert handling of
3117 HImode operands.
3118
3119 2009-04-25 Joseph Myers <joseph@codesourcery.com>
3120
3121 PR c/39564
3122 * c-decl.c (grokdeclarator): Diagnose declarations of functions
3123 with variably modified return type and no storage class
3124 specifiers, except for the case of nested functions. Distinguish
3125 extern declarations of functions with variably modified return
3126 types from those of objects with variably modified types.
3127
3128 2009-04-25 Jan Hubicka <jh@suse.cz>
3129
3130 * tree.c (list_equal_p): New function.
3131 * tree.h (list_equal_p): Declare.
3132 * coretypes.h (edge_def, edge, const_edge, basic_block_def
3133 basic_block_def, basic_block, const_basic_block): New.
3134 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3135 (redirect_eh_edge): New function.
3136 (make_eh_edge_update_phi): EH edges are not abnormal.
3137 * except.c: Include tree-flow.h.
3138 (list_match): New function.
3139 (eh_region_replaceable_by_p): New function.
3140 (replace_region): New function.
3141 (hash_type_list): New function.
3142 (hash_eh_region): New function.
3143 (eh_regions_equal_p): New function.
3144 (merge_peers): New function.
3145 (remove_unreachable_regions): Verify EH tree when checking;
3146 merge peers.
3147 (copy_eh_region_1): New function.
3148 (copy_eh_region): New function.
3149 (push_reachable_handler): New function.
3150 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3151 regions without label but with live RESX.
3152 * except.h (redirect_eh_edge_to_label): New.
3153 * tree-flow.h (redirect_eh_edge): New.
3154 * coretypes.h (edge_def, edge, const_edge, basic_block_def
3155 basic_block_def, basic_block, const_basic_block): Remove.
3156 * Makefile.in (except.o): Add dependency on tree-flow.h
3157 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3158 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3159 Remove.
3160
3161 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
3162
3163 PR bootstrap/39645
3164 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3165 on the destination of memcpy.
3166
3167 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
3168
3169 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3170 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3171 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3172
3173 2009-04-25 Jan Hubicka <jh@suse.cz>
3174
3175 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3176 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3177 to be reached by different label than left.
3178 (update_eh_edges): Update comment; remove edge_to_remove if possible
3179 and return true if suceeded.
3180 (cleanup_empty_eh): Accept sharing map; handle shared regions.
3181 (cleanup_eh): Compute sharing map.
3182 * except.c (remove_eh_handler_and_replace): Add argument if we should
3183 update regions.
3184 (remove_unreachable_regions): Update for label sharing.
3185 (label_to_region_map): Likewise.
3186 (get_next_region_sharing_label): New function.
3187 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3188 prev_try pointers.
3189 (remove_eh_handler): Update.
3190 (remove_eh_region_and_replace_by_outer_of): New function.
3191 * except.h (struct eh_region): Add next_region_sharing_label.
3192 (remove_eh_region_and_replace_by_outer_of,
3193 get_next_region_sharing_label): Declare.
3194 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3195
3196 2009-04-25 Jan Hubicka <jh@suse.cz>
3197
3198 * tree-cfg.c (split_critical_edges): Split also edges where we can't
3199 insert code even if they are not critical.
3200
3201 2009-04-25 Jan Hubicka <jh@suse.cz>
3202
3203 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3204 (gimple_can_remove_branch_p): EH edges won't remove branch by
3205 redirection.
3206 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3207 updating of non-abnormal EH edges.
3208 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3209 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3210 (split_critical_edges): Split also edges where emitting code on them
3211 will lead to splitting later.
3212
3213 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
3214 H.J. Lu <hongjiu.lu@intel.com>
3215
3216 PR target/39590
3217 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3218 the configured assembler supports fildq and fistpq mnemonics.
3219 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3220 * configure: Regenerated.
3221 * config.in: Ditto.
3222
3223 * config/i386/i386.c (print_operand): Handle 'Z'.
3224 ['z']: Remove handling of special fild/fist suffixes.
3225 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3226 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3227 suffix of fild insn.
3228 (*floatsi<mode>2_vector_mixed): Ditto.
3229 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3230 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3231 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3232 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3233 * config/i386/gas.h (GAS_MNEMONICS): Remove.
3234
3235 2009-04-25 Ben Elliston <bje@au.ibm.com>
3236
3237 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3238 the source of a set operation.
3239
3240 2009-04-25 Anatoly Sokolov <aesok@post.ru>
3241
3242 * target.h (struct gcc_target): Add case_values_threshold field.
3243 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3244 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3245 * targhooks.c (default_case_values_threshold): New function.
3246 * targhooks.h (default_case_values_threshold): Declare function.
3247 * stmt.c (expand_case): Use case_values_threshold target hook.
3248 * expr.h (case_values_threshold): Remove declartation.
3249 * expr.c (case_values_threshold): Remove function.
3250 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3251
3252 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3253 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3254 (avr_case_values_threshold): Declare as static.
3255 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3256
3257 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3258 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3259 (mn10300_case_values_threshold): New function.
3260
3261 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3262
3263 * ira.c (setup_cover_and_important_classes): Add enum cast.
3264
3265 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
3266
3267 * genpreds.c (write_enum_constraint_num): Output definition of
3268 CONSTRAINT_NUM_DEFINED_P macro.
3269 * ira.c (setup_cover_and_important_classes): Use
3270 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3271
3272 2009-04-24 DJ Delorie <dj@redhat.com>
3273
3274 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3275 __SH2A_SINGLE_ONLY__ also.
3276
3277 2009-04-24 Steve Ellcey <sje@cup.hp.com>
3278
3279 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3280 (movdf_internal): Ditto.
3281 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3282 SFmode and DFmode constants.
3283 (ia64_print_operand): Add 'G' format for printing
3284 floating point constants.
3285
3286 2009-04-24 Richard Guenther <rguenther@suse.de>
3287
3288 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3289 from unsigned additions.
3290
3291 2009-04-24 Joseph Myers <joseph@codesourcery.com>
3292
3293 * c-typeck.c (set_init_index): Allow array designators that are
3294 not integer constant expressions with a pedwarn if pedantic.
3295
3296 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3297
3298 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3299 zero if no overlap in nonzero bits between the operands.
3300
3301 2009-04-24 Ian Lance Taylor <iant@google.com>
3302
3303 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3304 (record_dead_and_set_regs): Likewise.
3305 * df.h (struct df_mw_hardreg): Change flags field to int.
3306 (struct df_base_ref): Likewise.
3307 (struct df): Change changeable_flags field to int.
3308 * df-scan.c (df_defs_record): Change clobber_flags to int.
3309 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3310 constants rather than #define macros.
3311 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3312 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3313 (enum dwarf_calling_convention): Likewise.
3314 (enum dwarf_line_number_x_ops): Likewise.
3315 (enum dwarf_call_frame_info): Likewise.
3316 (enum dwarf_source_language): Likewise.
3317 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3318 (add_calling_convention_attribute): Likewise.
3319 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3320 (combine_comparisons): Change compcode to int. Add cast to enum type.
3321 * genrecog.c (maybe_both_true_2): Change c to int.
3322 (write_switch): Likewise. Add cast to enum type.
3323 * gimplify.c (gimplify_omp_for): Handle return values from
3324 gimplify_expr using MIN rather than bitwise or.
3325 (gimplify_expr): Add cast to enum type.
3326 * ipa-prop.c (update_jump_functions_after_inlining): Change
3327 IPA_BOTTOM to IPA_JF_UNKNOWN.
3328 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3329 Add casts to enum type.
3330 (setup_cover_and_important_classes): Change cl to int. Add casts
3331 to enum type.
3332 (setup_class_translate): Change cl and mode to int.
3333 (ira_init_once): Change mode to int.
3334 (free_register_move_costs): Likewise.
3335 (setup_prohibited_mode_move_regs): Add casts to enum type.
3336 * langhooks.c (add_builtin_function_common): Rework assertion that
3337 value fits bitfield.
3338 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3339 * omega.c (omega_do_elimination): Avoid math on enum types.
3340 * optabs.c (expand_vec_shift_expr): Remove casts to int.
3341 * opts.c (set_debug_level): Change 2 to enum constant. Use new
3342 int local to handle integral_argment value.
3343 * regmove.c (try_auto_increment): Change PUT_MODE to
3344 PUT_REG_NOTE_KIND.
3345 * reload.c (push_secondary_reload): Add casts to enum type.
3346 (secondary_reload_class, find_valid_class): Likewise.
3347 * reload1.c (emit_input_reload_insns): Likewise.
3348 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3349 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3350 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3351 constant.
3352 * tree.c (build_common_builtin_nodes): Add casts to enum type.
3353 * tree-complex.c (complex_lattice_t): Typedef to int rather than
3354 enum type.
3355 (expand_complex_libcall): Add casts to enum type.
3356 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3357 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3358 with ERROR_MARK, not NUM_TREE_CODES.
3359 (vect_create_epilog_for_reduction): Likewise.
3360 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
3361 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
3362 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3363 enum machine_mode.
3364 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3365 vect_unused_in_loop. Change 0 to loop_vect.
3366 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
3367 * var-tracking.c (get_init_value): Change return type to enum
3368 var_init_status.
3369 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3370 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3371 arm_fp_model.
3372 (arm_override_options): Add casts to enum type.
3373 (arm_emit_tls_decoration): Likewise.
3374 * config/i386/i386.c (ix86_function_specific_restore): Add casts
3375 to enum type.
3376 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3377 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3378 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3379 enum type.
3380 * config/s390/s390.c (code_for_builtin_64): Change to array of
3381 enum insn_code.
3382 (code_for_builtin_31): Likewise.
3383 (s390_expand_builtin): Change code_for_builtin to enum insn_code
3384 const *.
3385 * config/sparc/sparc.c (sparc_override_options): Change value
3386 field in struct code_model to enum cmodel. In initializer change
3387 0 to NULL and add cast to enum type.
3388
3389 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3390 Change all callers. Issue a -Wc++-compat warning using
3391 lhs_origtype if necessary.
3392 (convert_for_assignment): Issue -Wc++-compat warnings about
3393 invalid conversions to enum type on assignment.
3394 * c-common.h (build_modify_expr): Update declaration.
3395
3396 2009-04-24 Nick Clifton <nickc@redhat.com>
3397
3398 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3399 (function_arg_advance): Likewise.
3400 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3401 5th alternative.
3402
3403 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
3404
3405 * config/s390/constraints.md ('I', 'J'): Fix condition.
3406
3407 2009-04-24 Diego Novillo <dnovillo@google.com>
3408
3409 * gengtype-parse.c (parse_error): Add newline after message.
3410
3411 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3412
3413 * config/i386/sse.md (avxmodesuffixs): Removed.
3414 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3415 (*avx_pinsr<ssevecsize>): This.
3416
3417 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3418
3419 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3420 follow chains of regs with a single definition, and allow expressions
3421 that are function_invariant_p.
3422 (simple_rhs_p): Allow expressions that are function_invariant_p.
3423
3424 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
3425
3426 PR middle-end/39867
3427 * fold-const.c (fold_cond_expr_with_comparison): When folding
3428 > and >= to MAX, make sure the MAX uses the same type as the
3429 comparison's operands.
3430
3431 2009-04-24 Nick Clifton <nickc@redhat.com>
3432
3433 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3434 addressing for DImode accesses.
3435 (frv_print_operand_address): Handle PLUS case.
3436 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
3437
3438 2009-04-24 Jakub Jelinek <jakub@redhat.com>
3439
3440 PR rtl-optimization/39794
3441 * alias.c (canon_true_dependence): Add x_addr argument.
3442 * rtl.h (canon_true_dependence): Adjust prototype.
3443 * cse.c (check_dependence): Adjust canon_true_dependence callers.
3444 * cselib.c (cselib_invalidate_mem): Likewise.
3445 * gcse.c (compute_transp): Likewise.
3446 * dse.c (scan_reads_nospill): Likewise.
3447 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
3448 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3449 canon_base_addr of the group, plus optional offset.
3450 (struct group_info): Rename canon_base_mem to
3451 canon_base_addr.
3452 (get_group_info): Set canon_base_addr to canon_rtx of base, not
3453 canon_rtx of base_mem.
3454
3455 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
3456
3457 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3458 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3459
3460 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3461
3462 * config/spu/spu-builtins.h: Delete file.
3463
3464 * config/spu/spu.h (enum spu_builtin_type): Move here from
3465 spu-builtins.h.
3466 (struct spu_builtin_description): Likewise. Add GTY marker.
3467 Do not use enum spu_function_code or enum insn_code.
3468 (spu_builtins): Add extern declaration.
3469
3470 * config/spu/spu.c: Do not include "spu-builtins.h".
3471 (enum spu_function_code, enum spu_builtin_type_index,
3472 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3473 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3474 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3475 unsigned_V2DI_type_node): Move here from spu-builtins.h.
3476 (spu_builtin_types): Make static. Add GTY marker.
3477 (spu_builtins): Add extern declaration with GTY marker.
3478 Include "gt-spu.h".
3479
3480 * config/spu/spu-c.c: Do not include "spu-builtins.h".
3481 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3482 Check programmatically whether all parameters are scalar.
3483
3484 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3485
3486 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
3487
3488 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3489 assignment from the constructor either if the target is volatile.
3490
3491 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
3492
3493 * config/arm/arm.md (insv): Do not share operands[0].
3494
3495 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
3496
3497 * config/vxlib-tls.c (active_tls_threads): Delete.
3498 (delete_hook_installed): New.
3499 (tls_delete_hook): Don't delete the delete hook.
3500 (tls_destructor): Delete it here.
3501 (__gthread_set_specific): Adjust installing the delete hook.
3502 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3503 __gthread_leave_tsd_dtor_context.
3504
3505 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
3506
3507 * c-format.c (gcc_tdiag_char_table): Add support for %E.
3508
3509 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
3510
3511 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3512 enum type.
3513 (alpha_rtx_costs): Ditto.
3514 (emit_unlikely_jump): Use add_reg_note.
3515 (emit_frame_store_1): Ditto.
3516 (alpha_expand_prologue): Ditto.
3517 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3518 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3519
3520 2009-04-23 Nick Clifton <nickc@redhat.com>
3521
3522 * config/v850/v850.md (epilogue): Remove suppressed code.
3523 (return): Rename to return_simple and remove test of frame size.
3524 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3525 to gen_return_simple.
3526
3527 2009-04-22 Jing Yu <jingyu@google.com>
3528
3529 PR testsuite/39781
3530 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3531
3532 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
3533
3534 PR C/31499
3535 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3536 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
3537 value is a VECTOR_CST, the element type is the element type of the
3538 vector.
3539
3540 2009-04-22 DJ Delorie <dj@redhat.com>
3541
3542 * config/m32c/m32c.h: Update GTY annotations to new syntax.
3543
3544 2009-04-22 Jakub Jelinek <jakub@redhat.com>
3545
3546 * alias.c (find_base_term): Move around LO_SUM case, so that
3547 CONST falls through into PLUS/MINUS handling.
3548
3549 PR c/39855
3550 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3551 into 0, use omit_one_operand.
3552
3553 2009-04-23 Ben Elliston <bje@au.ibm.com>
3554
3555 * config/rs6000/linux-unwind.h (get_regs): Remove type
3556 puns. Change the type of `pc' to an array of unsigned ints and
3557 update all users. Constify frame24.
3558
3559 2009-04-22 DJ Delorie <dj@redhat.com>
3560
3561 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3562 declarations before code.
3563 (current_function_special_page_vector): Likewise.
3564 (m32c_expand_insv): Silence a warning.
3565
3566 2009-04-21 Taras Glek <tglek@mozilla.com>
3567
3568 * alias.c: Update GTY annotations to new syntax.
3569 * basic-block.h: Likewise.
3570 * bitmap.h: Likewise.
3571 * c-common.h: Likewise.
3572 * c-decl.c: Likewise.
3573 * c-parser.c: Likewise.
3574 * c-pragma.c: Likewise.
3575 * c-tree.h: Likewise.
3576 * cfgloop.h: Likewise.
3577 * cgraph.h: Likewise.
3578 * config/alpha/alpha.c: Likewise.
3579 * config/arm/arm.h: Likewise.
3580 * config/avr/avr.h: Likewise.
3581 * config/bfin/bfin.c: Likewise.
3582 * config/cris/cris.c: Likewise.
3583 * config/darwin.c: Likewise.
3584 * config/frv/frv.c: Likewise.
3585 * config/i386/i386.c: Likewise.
3586 * config/i386/i386.h: Likewise.
3587 * config/i386/winnt.c: Likewise.
3588 * config/ia64/ia64.h: Likewise.
3589 * config/iq2000/iq2000.c: Likewise.
3590 * config/mips/mips.c: Likewise.
3591 * config/mmix/mmix.h: Likewise.
3592 * config/pa/pa.c: Likewise.
3593 * config/pa/pa.h: Likewise.
3594 * config/rs6000/rs6000.c: Likewise.
3595 * config/s390/s390.c: Likewise.
3596 * config/sparc/sparc.c: Likewise.
3597 * config/xtensa/xtensa.c: Likewise.
3598 * cselib.h: Likewise.
3599 * dbxout.c: Likewise.
3600 * dwarf2out.c: Likewise.
3601 * except.c: Likewise.
3602 * except.h: Likewise.
3603 * fixed-value.h: Likewise.
3604 * function.c: Likewise.
3605 * function.h: Likewise.
3606 * gimple.h: Likewise.
3607 * integrate.c: Likewise.
3608 * optabs.c: Likewise.
3609 * output.h: Likewise.
3610 * real.h: Likewise.
3611 * rtl.h: Likewise.
3612 * stringpool.c: Likewise.
3613 * tree-data-ref.c: Likewise.
3614 * tree-flow.h: Likewise.
3615 * tree-scalar-evolution.c: Likewise.
3616 * tree-ssa-address.c: Likewise.
3617 * tree-ssa-alias.h: Likewise.
3618 * tree-ssa-operands.h: Likewise.
3619 * tree.c: Likewise.
3620 * tree.h: Likewise.
3621 * varasm.c: Likewise.
3622 * varray.h: Likewise.
3623 * vec.h: Likewise.
3624 * coretypes.h: Do not define GTY macro if it is already defined.
3625 * doc/gty.texi: Update GTY documentation to new syntax.
3626 * gengtype-lex.l: Enforce attribute-like syntax for GTY
3627 annotations on structs.
3628 * gengtype-parse.c: Likewise.
3629
3630 2009-04-22 Mark Heffernan <meheff@google.com>
3631
3632 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
3633
3634 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
3635
3636 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3637 where appropriate.
3638
3639 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
3640
3641 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3642 the same as a PLUS without a shift. Increase the cost of a
3643 CONST_INT in MULT.
3644
3645 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3646
3647 * Makefile.in: Update dependencies.
3648 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
3649 * errors.h: Remove bogus comment about compatibility.
3650 (warning): Update declaration.
3651 * genautomata.c: Update all calls to warning.
3652 * gimple.c: Do not include errors.h. Include toplev.h.
3653 * tree-ssa-structalias.c: Do not include errors.h.
3654 * omega.c: Likewise.
3655 * tree-ssa-reassoc.c: Likewise.
3656 * config/spu/spu-c.c: Likewise.
3657 * config/spu/t-spu-elf: Update dependencies.
3658
3659 2009-04-22 Richard Guenther <rguenther@suse.de>
3660
3661 PR tree-optimization/39824
3662 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3663 make sure the types are compatible.
3664
3665 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3666
3667 PR c++/14875
3668 * c-common.c (c_parse_error): Take a token_flags parameter.
3669 Use token_type for the token type instead.
3670 Pass token_flags to cpp_type2name.
3671 * c-common.h (c_parse_error): Update declaration.
3672 * c-parser.c (c_parser_error): Pass 0 as token flags.
3673
3674 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
3675
3676 PR rtl-optimization/39580
3677 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
3678
3679 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3680
3681 * function.c (expand_function_end): Do not emit a jump to the "naked"
3682 return label for fall-through returns.
3683 * except.c (sjlj_emit_function_exit): Always place the call to the
3684 unregister function at the location installed by expand_function_end.
3685
3686 2009-04-22 Richard Guenther <rguenther@suse.de>
3687
3688 PR tree-optimization/39845
3689 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3690 (gen_inbound_check): Likewise.
3691
3692 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
3693
3694 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3695 padding for PPC.
3696 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3697 * config/vxlib.c (__gthread_once): Add race guard for PPC.
3698
3699 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
3700
3701 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3702 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3703 shift counts to avoid out-of-bounds array accesses.
3704
3705 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
3706
3707 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3708 (Pmode): Move above.
3709
3710 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
3711
3712 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3713 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3714 GET_CODE macro. Use IN_RANGE macro where appropriate.
3715 * config/alpha/alpha.h: Ditto.
3716 * config/alpha/alpha.md: Ditto.
3717 * config/alpha/constraints.md: Ditto.
3718 * config/alpha/predicates.md: Ditto.
3719
3720 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
3721
3722 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3723 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3724 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3725 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3726 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3727 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3728 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3729 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3730 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3731 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3732 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3733 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3734 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3735 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3736 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3737 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3738 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3739 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3740 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3741 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3742 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3743 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3744 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3745 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3746 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3747 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3748 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3749
3750 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3751
3752 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3753 references from comments.
3754 * cfgbuild.c: (count_basic_blocks): Delete.
3755 (find_basic_blocks_1): Delete.
3756 (find_basic_blocks): Delete.
3757 * except.c (finish_eh_generation): Make static. Move comment from
3758 except.h here. Remove find_basic_blocks references from comments.
3759 * except.h (finish_eh_generation): Delete.
3760 * basic-block.h (find_basic_blocks): Delete.
3761 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3762
3763 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
3764
3765 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
3766 (sdbout_parms): Likewise.
3767
3768 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
3769
3770 * config/sh/sh.c (prepare_cbranch_operands): Use
3771 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3772 (expand_cbranchdi4): Likewise.
3773 (from_compare): Add cast to enum type.
3774 (expand_cbranchsi4): Use add_reg_note.
3775 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3776 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3777 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3778 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3779 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3780 instead of CODE_FOR_nothing.
3781 (cbranchdi4): Likewise. Fix the order of arguments for
3782 gen_rtx_fmt_ee.
3783 (push_fpscr): Use add_reg_note.
3784 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
3785 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
3786
3787 2009-04-21 Joseph Myers <joseph@codesourcery.com>
3788
3789 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
3790 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3791 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3792 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
3793 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
3794 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
3795 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
3796 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
3797 config/alpha/x-vms, config/arc/t-arc,
3798 config/arm/README-interworking, config/arm/arm-c.c,
3799 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
3800 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
3801 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
3802 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
3803 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
3804 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
3805 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
3806 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
3807 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
3808 config/cris/t-elfmulti, config/crx/t-crx,
3809 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
3810 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
3811 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
3812 config/h8300/t-h8300, config/i386/athlon.md,
3813 config/i386/darwin-libgcc.10.4.ver,
3814 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
3815 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
3816 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
3817 config/i386/t-linux64, config/i386/t-nwld,
3818 config/i386/t-rtems-i386, config/i386/t-sol2-10,
3819 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
3820 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
3821 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
3822 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
3823 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
3824 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
3825 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
3826 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
3827 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
3828 config/m68k/t-uclinux, config/mcore/t-mcore,
3829 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
3830 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
3831 config/mips/crtn.asm, config/mips/irix-crti.asm,
3832 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
3833 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
3834 config/mips/mips-fixed.md, config/mips/sb1.md,
3835 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
3836 config/mips/t-iris6, config/mips/t-isa3264,
3837 config/mips/t-libgcc-mips16, config/mips/t-linux64,
3838 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
3839 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
3840 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
3841 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
3842 config/mn10300/t-linux, config/mn10300/t-mn10300,
3843 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
3844 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
3845 config/picochip/libgccExtras/clzsi2.asm,
3846 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
3847 config/rs6000/darwin-libgcc.10.4.ver,
3848 config/rs6000/darwin-libgcc.10.5.ver,
3849 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
3850 config/rs6000/t-aix43, config/rs6000/t-aix52,
3851 config/rs6000/t-darwin, config/rs6000/t-fprules,
3852 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
3853 config/rs6000/t-lynx, config/rs6000/t-netbsd,
3854 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
3855 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
3856 config/rs6000/t-rtems, config/rs6000/t-spe,
3857 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
3858 config/score/t-score-elf, config/sh/divcost-analysis,
3859 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
3860 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
3861 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
3862 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
3863 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
3864 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
3865 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
3866 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
3867 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
3868 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
3869 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
3870 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
3871 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
3872 limitx.h, version.c, xcoff.h: Add copyright and license notices.
3873 * config/h8300/genmova.sh: Include copyright and license notices
3874 in generated output.
3875 * config/h8300/mova.md: Regenerate.
3876 * doc/install.texi2html: Include word "Copyright" in copyright
3877 notice and use name "Free Software Foundation, Inc.".
3878 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
3879 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
3880 ChangeLog-2007, ChangeLog-2008: Correct dates.
3881
3882 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
3883
3884 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
3885 NE_EXPR operations as well.
3886 * c-parser.c (c_parser_condition): Do not set location information on
3887 the condition.
3888 (c_parser_conditional_expression): Likewise.
3889 (c_parser_binary_expression): Set location information on operators.
3890 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
3891 TRUTH_NOT_EXPR has been folded.
3892 * fold-const.c (fold_truth_not_expr): Copy location information from
3893 the incoming expression to the outgoing one.
3894 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
3895 recursive calls on the LHS of the operator but pass that of the
3896 operator to recursive calls on the RHS of the operator. Set it
3897 on the COND_EXPR.
3898 (shortcut_cond_expr): Set the locus of the operator on the second
3899 COND_EXPR and that of the expression on the first in degenerate cases.
3900 Pass the locus of the expression to calls to shortcut_cond_r.
3901 Set the locus of the 'then' block on the associated jump, if any.
3902 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
3903 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
3904 expression to call to gimplify_boolean_expr.
3905
3906 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
3907
3908 * config.gcc: Add additional configuration for
3909 i686-w64-mingw* and x86_64-w64-mingw* triplet.
3910 * config/i386/mingw-w64.h: New mingw-w64 specific header.
3911 (CPP_SPEC): Redefine for allowing -municode option.
3912 (STARTFILE_SPEC): Likewise.
3913 * config/i386/t-mingw-w64: New.
3914 * config/i386/mingw-w64.opt: New.
3915 (municode): Add new target option.
3916 * doc/invoke.texi (municode): Add documentation for new option.
3917
3918 2009-04-21 Ian Lance Taylor <iant@google.com>
3919
3920 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3921 Correct test for number of arguments.
3922 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
3923
3924 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
3925
3926 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
3927 argument of emit_library_call.
3928
3929 2009-04-21 Richard Guenther <rguenther@suse.de>
3930
3931 PR middle-end/39829
3932 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
3933 inside VIEW_CONVERT_EXPRs.
3934
3935 2009-04-21 Martin Jambor <mjambor@suse.cz>
3936
3937 * tree-switch-conversion.c (build_constructors): Split a long line.
3938 (constructor_contains_same_values_p): New function.
3939 (build_one_array): Create assigns of constants if possible, do not
3940 call mark_sym_for_renaming, call update_stmt.
3941 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
3942 make_rename_temp. Do not call mark_symbols_for_renaming, call
3943 update_stmt.
3944 (gen_def_assigns): Do not call mark_symbols_for_renaming or
3945 find_new_referenced_vars, call update_stmt.
3946 (gen_inbound_check): Use create_tmp_var and create ssa names manually
3947 instead of calling make_rename_temp. Do not call
3948 find_new_referenced_vars or mark_symbols_for_renaming, call
3949 update_stmt.
3950
3951 2009-04-21 Richard Guenther <rguenther@suse.de>
3952
3953 PR tree-optimization/39827
3954 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
3955 (tree_ssa_phiprop): Pass the correct array size.
3956
3957 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
3958
3959 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
3960
3961 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
3962
3963 PR 16202
3964 * c-typeck.c (lvalue_p): Move declaration ...
3965 * c-common.h (lvalue_p): ... to here.
3966 * c-common.c (candidate_equal_p): New.
3967 (add_tlist): Use it.
3968 (merge_tlist): Use it.
3969 (warn_for_collisions_1): Likewise.
3970 (warning_candidate_p): Accept more candidates.
3971 (verify_tree): A warning candidate can be an expression. Use
3972 candidate_equal_p.
3973
3974 2009-04-21 Ben Elliston <bje@au.ibm.com>
3975
3976 PR target/5267
3977 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3978 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
3979 options. Remove -mcall-solaris documentation.
3980
3981 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3982
3983 PR c++/13358
3984 * doc/invoke.texi (-Wlong-long): Update description.
3985 * c-lex (interpret_integer): Only warn if there was no previous
3986 overflow and -Wlong-long is enabled.
3987 * c-decl.c (declspecs_add_type): Drop redundant flags.
3988 * c.opt (Wlong-long): Init to -1.
3989 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
3990 and front-end warn_long_long. Wlong-long only depends on other
3991 flags if it is uninitialized.
3992 * c-parser.c (disable_extension_diagnostics): warn_long_long is
3993 the same for CPP and FE.
3994 (restore_extension_diagnostics): Likewise.
3995
3996 2009-04-20 Ian Lance Taylor <iant@google.com>
3997
3998 Fix enum conversions which are invalid in C++:
3999 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
4000 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
4001 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
4002 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
4003 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
4004 (dbxout_parms): Likewise.
4005 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
4006 (df_clear_flags): Likewise.
4007 * df-problems.c (df_rd_bb_local_compute_process_def): Change
4008 top_flag parameter to int.
4009 (df_chain_create_bb_process_use): Likewise.
4010 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
4011 Remove cast.
4012 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
4013 (df_ref_create_structure, df_def_record_1): Likewise.
4014 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
4015 (df_notes_rescan): Change 0 to VOIDmode in function call.
4016 (df_get_call_refs, df_insn_refs_collect): Likewise.
4017 (df_bb_regs_collect): Likewise.
4018 (df_entry_block_defs_collect): Likewise.
4019 (df_exit_block_uses_collect): Likewise.
4020 * df.h: Update declarations.
4021 * double-int.c (double_int_divmod): Add cast to enum type.
4022 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
4023 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
4024 (based_loc_descr): Likewise.
4025 (loc_descriptor_from_tree_1): Change first_op and second_op to
4026 enum dwarf_location_atom. Add cast to enum type.
4027 * expmed.c (init_expmed): Change 0 to SET in function call.
4028 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
4029 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
4030 (do_store_flag): Likewise.
4031 * fixed-value.h (struct fixed_value): Change mode to enum
4032 machine_mode.
4033 * function.c (assign_parms): Change 0 to VOIDmode in function call.
4034 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
4035 function call.
4036 (insert_insn_decl, insert_decl, insert_state): Likewise.
4037 (automata_list_finish): Likewise.
4038 * genrecog.c (process_define_predicate): Add cast to enum type.
4039 * gensupport.c (init_predicate_table): Add cast to enum type.
4040 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4041 function call.
4042 (gimple_build_call_1, gimple_build_label): Likewise.
4043 (gimple_build_goto, gimple_build_asm_1): Likewise.
4044 (gimple_build_switch_1, gimple_build_cdt): Likewise.
4045 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
4046 (enum fallback): Rename from enum fallback_t.
4047 (fallback_t): Typedef as int.
4048 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4049 GSI_SAME_STMT in function call.
4050 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4051 enum type.
4052 (setup_reg_class_relations): Likewise.
4053 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
4054 (setup_prohibited_class_mode_regs): Add cast to enum type.
4055 (setup_prohibited_mode_move_regs): Likewise.
4056 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
4057 (record_address_regs): Change i to enum reg_class.
4058 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4059 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4060 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4061 (GET_MODE_2XWIDER_MODE): Likewise.
4062 (GET_CLASS_NARROWEST_MODE): Likewise.
4063 * omp-low.c (expand_omp_for): Add cast to enum type.
4064 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4065 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4066 * postreload.c (reload_cse_simplify_operands): Change rclass local
4067 to enum reg_class.
4068 * predict.c (combine_predictions_for_insn): Change best_predictor
4069 and predictor to enum br_predictor.
4070 (combine_predictions_for_bb): Likewise.
4071 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4072 use SET_PREDICT_EXPR_OUTCOME.
4073 * real.c (real_arithmetic): Change icode to code in function call.
4074 * reginfo.c (init_move_cost): Add casts to enum type.
4075 (init_reg_sets_1, init_fake_stack_mems): Likewise.
4076 * regmove.c (regclass_compatible_p): Change class0 and class1 to
4077 enum reg_class.
4078 * reload.c (find_valid_class): Add casts to enum type.
4079 (push_reload): Change 0 to NO_REGS in function call.
4080 (find_reloads): Change this_alternative to array of enum
4081 reg_class. Remove some now-unnecessary casts.
4082 (make_memloc): Change 0 to VOIDmode in function call.
4083 * reload1.c (reload): Change 0 to VOIDmode in function call.
4084 (eliminate_regs_1, elimination_effects): Likewise.
4085 (eliminate_regs_in_insn): Likewise.
4086 (emit_input_reload_insns): Add cast to enum type.
4087 (delete_output_reload): Change 0 to VOIDmode in function call.
4088 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4089 to enum type in function call.
4090 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4091 (SET_PREDICT_EXPR_OUTCOME): Define.
4092 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
4093 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4094 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4095 (dump_function): Likewise.
4096 * tree-dump.h: Update declarations.
4097 * tree-pass.h: Update declarations.
4098 * varasm.c (assemble_integer): Change mclass to enum mode_class.
4099 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4100 enum type.
4101 (arm_rtx_costs_1): Correct parenthesization.
4102 (arm_rtx_costs): Add casts to enum type.
4103 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4104 (vfp_emit_fstmd): Use add_rg_note.
4105 (emit_multi_reg_push, emit_sfm): Likewise.
4106 (thumb_set_frame_pointer): Likewise.
4107 (arm_expand_prologue): Likewise.
4108 (arm_regno_class): Change return type to enum reg_class.
4109 (thumb1_expand_prologue): Use add_reg_note.
4110 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4111 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4112 in function call.
4113 * config/arm/gentune.sh: Add cast to enum type.
4114 * config/arm/arm-tune.md: Rebuild.
4115 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4116 (ix86_split_fp_branch, predict_jump): Likewise.
4117 (ix86_expand_multi_arg_builtin): Change sub_code from enum
4118 insn_code to enum rtx_code.
4119 (ix86_builtin_vectorized_function): Add cast to enum type.
4120 * config/i386/i386.md (truncdfsf2): Change slot to enum
4121 ix86_stack_slot.
4122 (truncxf<mode>2, isinf<mode>2): Likewise.
4123 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4124 enum type.
4125 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4126 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4127 (insert_bundle_state): Change 1 to INSERT in function call.
4128 (ia64_add_bundle_selector_before): Likewise.
4129 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4130 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4131 (restore_stack_nonlocal): Likewise.
4132 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4133 function call.
4134 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4135 function call.
4136 (mips_rtx_costs): Likewise.
4137 (mips_override_options): Add casts to enum type.
4138 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4139 in function call.
4140 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4141 (store_reg, set_reg_plus_d): Likewise.
4142 (hppa_expand_prologue, hppa_profile_hook): Likewise.
4143 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4144 cast to enum type.
4145 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4146 function call.
4147 (emit_unlikely_jump): Use add_reg_note.
4148 (rs6000_emit_allocate_stack): Likewise.
4149 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4150 (output_toc): Change 1 to INSERT in function call.
4151 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4152 (rs6000_initialize_trampoline): Likewise.
4153 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4154 function call.
4155 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4156 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4157 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4158 (save_gprs): Use add_reg_note.
4159 (s390_emit_prologue): Likewise.
4160 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4161 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4162 (sparc_fold_builtin): Add cast to enum type.
4163 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4164 enum insn_code.
4165 (spu_expand_prologue): Use add_reg_note.
4166 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
4167
4168 2009-04-20 Ian Lance Taylor <iant@google.com>
4169
4170 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4171 (c_parser_postfix_expression_after_primary): Get VEC for list of
4172 arguments. Get original types of arguments. Call
4173 build_function_call_vec.
4174 (cached_expr_list_1, cached_expr_list_2): New static variables.
4175 (c_parser_expr_list): Change return type to VEC *. Add
4176 p_orig_types parameter. Change all callers.
4177 (c_parser_release_expr): New static function.
4178 (c_parser_vec_to_tree_list): New static function.
4179 * c-typeck.c (build_function_call): Rewrite to build a VEC and
4180 call build_function_call_vec.
4181 (build_function_call_vec): New function, based on old
4182 build_function_call.
4183 (convert_arguments): Remove nargs and argarray parameters. Change
4184 values to a VEC. Add origtypes parameter.
4185 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
4186 (convert_for_assignment): Add origtype parameter. Change all
4187 callers. If warn_cxx_compat, check for conversion to an enum
4188 type when calling a function.
4189 (store_init_value): Add origtype parameter. Change all callers.
4190 (digest_init): Likewise.
4191 (struct init_node): Add origtype field.
4192 (add_pending_init): Add origtype parameter. Change all callers.
4193 (output_init_element): Likewise.
4194 (output_pending_init_elements): Pass origtype from init_node to
4195 output_init_element.
4196 (process_init_element): Pass origtype from c_expr to
4197 output_init_element.
4198 (c_finish_return): Add origtype parameter. Change all callers.
4199 * c-common.c (sync_resolve_size): Change params to VEC *. Change
4200 caller.
4201 (sync_resolve_params): Likewise.
4202 (sync_resolve_return): Change params to first_param. Change caller.
4203 (resolve_overloaded_builtins): Change params to VEC *. Change
4204 callers. Save first parameter around call to build_function_call_vec.
4205 * c-decl.c (finish_decl): Add origtype parameter. Change all
4206 callers. Call build_function_call_vec rather than
4207 build_function_call for cleanup.
4208 * c-tree.h: Update declarations.
4209 * c-common.h: Update declarations.
4210 * stub-objc.c (objc_rewrite_function_call): Change parameter from
4211 params to first_param.
4212 * target.h (struct gcc_target): Change resolve_overloaded_builtin
4213 params parameter from tree to void *.
4214 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4215 Change arglist parameter to have type void *, and to be a pointer
4216 to a VEC.
4217 * config/rs6000/rs6000-protos.h
4218 (altivec_resolve_overloaded_builtin): Update declaration.
4219 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4220 fnargs parameter to have type void *, and to be a pointer to a
4221 VEC. Call build_function_call_vec instead of
4222 build_function_call.
4223 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
4224
4225 2009-04-20 Joey Ye <joey.ye@intel.com>
4226 Xuepeng Guo <xuepeng.guo@intel.com>
4227 H.J. Lu <hongjiu.lu@intel.com>
4228
4229 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4230
4231 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4232 (IX86_LEA_PRIORITY): Likewise.
4233 (distance_non_agu_define): New function.
4234 (distance_agu_use): Likewise.
4235 (ix86_lea_for_add_ok): Likewise.
4236 (ix86_dep_by_shift_count): Likewise.
4237
4238 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4239 should split for LEA.
4240
4241 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4242 function.
4243 (ix86_dep_by_shift_count): Likewise.
4244
4245 2009-04-20 Richard Guenther <rguenther@suse.de>
4246
4247 * expr.c (handled_component_p): Move ...
4248 * tree.h (handled_component_p): ... here.
4249 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4250 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4251 and REALPART_EXPR to be in one group.
4252
4253 2009-04-20 Richard Guenther <rguenther@suse.de>
4254
4255 * basic-block.h (get_all_dominated_blocks): Declare.
4256 * dominance.c (get_all_dominated_blocks): New function.
4257 * tree-cfg.c (get_all_dominated_blocks): Remove.
4258 (remove_edge_and_dominated_blocks): Adjust.
4259 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4260 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
4261 instead of recursing.
4262
4263 2009-04-20 Doug Kwan <dougkwan@google.com>
4264
4265 * cgraph.h (cgraph_node_ptr): New type for vector functions.
4266 (struct cgraph_node_set_def): New type.
4267 (cgraph_node_set) New type. Also declare vector functions.
4268 (struct cgraph_node_set_element_def): New type.
4269 (cgraph_node_set_element): Ditto.
4270 (cgraph_node_set_iterator): New iterator type.
4271 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4272 cgraph_node_set_remove, dump_cgraph_node_set,
4273 debug_cgraph_node_set): New prototypes.
4274 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4275 cgraph_node_set_size): New inlines.
4276 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4277 including cgraph.h.
4278 (struct ipa_opt_pass): Add struct cgraph_node_set_def
4279 argument to function 'write_summary'.
4280 * ipa.c: Include ggc.h.
4281 (hash_cgraph_node_set_element,
4282 eq_cgraph_node_set_element, cgraph_node_set_new,
4283 cgraph_node_set_add, cgraph_node_set_remove,
4284 cgraph_node_set_find, dump_cgraph_node_set,
4285 debug_cgraph_node_set): New functions.
4286 * Makefile.in (ipa.o): Add dependency on GGC_H.
4287
4288 2009-04-20 Ira Rosen <irar@il.ibm.com>
4289
4290 PR tree-optimization/39675
4291 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
4292 check of the return code of vect_schedule_slp. Check that
4293 stmt_vec_info still exists for the statement, before checking its
4294 vectorization type.
4295
4296 2009-04-20 Michael Matz <matz@suse.de>
4297
4298 * Makefile.in (generated_files): Take out $(simple_generated_c).
4299
4300 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
4301
4302 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
4303 (UINTPTR_TYPE): Likewise.
4304
4305 2009-04-19 Joseph Myers <joseph@codesourcery.com>
4306
4307 PR c/37481
4308 * c-typeck.c (digest_init): Check for initializing an array with a
4309 string literal.
4310
4311 2009-04-19 Joseph Myers <joseph@codesourcery.com>
4312
4313 PR c/19771
4314 * c-semantics.c (pop_stmt_list): Propagate
4315 STATEMENT_LIST_HAS_LABEL to parent statement list.
4316
4317 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
4318
4319 * config/mips/mips.h (mips_tune_attr): New macro.
4320 * config/mips/mips.md (cpu): Use it.
4321
4322 2009-04-19 Joseph Myers <joseph@codesourcery.com>
4323
4324 PR c/38243
4325 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4326 declaring a tag.
4327
4328 2009-04-19 Diego Novillo <dnovillo@google.com>
4329
4330 * toplev.c (compile_file): Move call to coverage_finish ...
4331 * cgraphunit.c (ipa_passes): ... here.
4332 Call cgraph_process_new_functions.
4333 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4334 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4335
4336 2009-04-19 Jan Hubicka <jh@suse.cz>
4337
4338 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4339 cfun.
4340 (dump_cgraph_node): Dump can throw external flag.
4341 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4342
4343 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4344
4345 PR c/32061
4346 PR c++/36954
4347 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4348 * common.opt (Wlogical-op): Move from here...
4349 * c.opt (Wlogical-op): ... to here.
4350 * c-typeck.c (parser_build_binary_op): Update call to
4351 warn_logical_operator.
4352 * c-opts.c (c_common_post_options): Enable warn_logical_op with
4353 extra_warnings.
4354 * c-common.c (warn_logical_op): Update.
4355 * c-common.h (warn_logical_op): Update declaration.
4356
4357 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
4358
4359 * tree.c (protected_set_expr_location): Fix formatting.
4360
4361 2009-04-18 Joseph Myers <joseph@codesourcery.com>
4362
4363 PR c/27676
4364 * c-typeck.c (readonly_warning): new.
4365 (build_unary_op, build_modify_expr): Use readonly_warning for
4366 storing into something readonly but not const-qualified.
4367
4368 2009-04-18 Joseph Myers <joseph@codesourcery.com>
4369
4370 PR c/22367
4371 * c-typeck.c (build_unary_op): Check for taking address of
4372 expression of type void.
4373
4374 2009-04-18 Joseph Myers <joseph@codesourcery.com>
4375
4376 PR c/35210
4377 * c-typeck.c (build_function_call): Check for calling a function
4378 with qualified void return types. Call require_complete_type when
4379 generating a trap.
4380
4381 2009-04-18 Jan Hubicka <jh@suse.cz>
4382
4383 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4384 Set nothrow flag.
4385 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4386 can_throw_external flag.
4387 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4388 * ipa-pure-const.c (ignore_edge): New function.
4389 (propagate): Compute order for NOTHROW computation; set NOTHROWs
4390 only over can_throw_external edges.
4391 (local_pure_const): Add nothrow flag.
4392 * ipa-utils.c (searchc): Add ignore_edge callback.
4393 (ipa_utils_reduced_inorder): Add ignore_edge callback.
4394 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4395 (set_nothrow_function_flags): Update cgraph.
4396 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4397
4398 2009-04-18 Richard Guenther <rguenther@suse.de>
4399
4400 PR middle-end/39804
4401 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4402 (fold_stmt): ... this and ...
4403 (fold_stmt_inplace): ... this.
4404 (fold_stmt_1): Fold references in calls and asms.
4405 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4406
4407 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
4408
4409 * tree-vrp.c (ssa_name_nonzero_p): Remove.
4410 * tree.h: Remove the prototype for ssa_name_nonzero_p.
4411
4412 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
4413
4414 * tree.c (function_args_count): Remove.
4415 * tree.h: Remove the prototype for function_args_count.
4416
4417 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
4418
4419 * tree-iterator.c (expr_only): Remove.
4420 * tree.h: Remove the prototype for expr_only.
4421
4422 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
4423
4424 * reginfo.c (cannot_change_mode_set_regs): Remove.
4425 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4426
4427 2009-04-08 Anatoly Sokolov <aesok@post.ru>
4428
4429 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4430 whether operands 0 and 1 overlaps.
4431
4432 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4433
4434 PR middle-end/36902
4435 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4436 pointer. Use warning_at instead of warning.
4437 (search_for_addr_array): Likewise.
4438 (check_array_bounds): Likewise.
4439 (check_all_array_refs): Check that the incoming edge is not in the
4440 list of edges to be removed.
4441 (check_all_array_refs): Avoid the temporal pointer.
4442 (vrp_visit_cond_stmt): Fix typo.
4443 (simplify_switch_using_ranges): Handle the case where the switch
4444 index is an integer constant.
4445
4446 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
4447
4448 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4449
4450 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
4451
4452 * doc/extend.texi, doc/invoke.texi: Fix typos.
4453
4454 2009-04-17 Cary Coutant <ccoutant@google.com>
4455
4456 * tree-flow-inline.h (get_lineno): Fix inverted test.
4457
4458 2009-04-17 Diego Novillo <dnovillo@google.com>
4459
4460 * tree-ssa-pre.c (create_expression_by_pieces): Remove
4461 assertion for AVAIL_OUT.
4462
4463 2009-04-17 Mike Frysinger <vapier@gentoo.org>
4464
4465 PR target/38627
4466 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4467 * config/sh/linux-atomic.asm: Likewise.
4468
4469 2009-04-17 Diego Novillo <dnovillo@google.com>
4470
4471 * except.c (debug_eh_tree): New.
4472 (struct eh_region, struct eh_status): Move ...
4473 * except.h: ... here.
4474 (add_type_for_runtime): Declare extern.
4475 (lookup_type_for_runtime): Likewise.
4476 (debug_eh_tree): Declare.
4477 * Makefile.in (GTFILES): List except.h before except.c
4478
4479 2009-04-17 Diego Novillo <dnovillo@google.com>
4480
4481 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
4482 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4483 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4484 (find_vars_r): ... here.
4485 * tree-flow.h (find_referenced_vars_in): Declare.
4486 * tree-ssa-pre.c (create_expression_by_pieces): Assert
4487 that AVAIL_OUT exists for BLOCK.
4488 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4489 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4490 (tree-parloops.o): Likewise.
4491
4492 2009-04-17 Simon Baldwin <simonb@google.com>
4493
4494 * toplev.c (default_tree_printer): Add handling for %E format.
4495
4496 2009-04-17 Diego Novillo <dnovillo@google.com>
4497
4498 * tree-pretty-print.c (dump_generic_node): Add break after
4499 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
4500 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
4501 FUNCTION_TYPE together. Call print_struct_decl when printing
4502 structures and TDF_SLIM is not given.
4503 (print_struct_decl): Fix logic for detecting recursion.
4504
4505 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
4506
4507 PR 31567
4508 * gcc.c (create_at_file): New.
4509 (compile_input_file_p): New.
4510 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4511 * main.c (main): Update call to toplev_main.
4512 * toplev.c (toplev_main): Change signature. Call expandargv.
4513 * toplev.h (toplev_main): Change signature.
4514
4515 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4516
4517 * dwarf2out.c (field_byte_offset): Use the type size as the field size
4518 if the latter is not constant.
4519
4520 2009-04-17 David Edelsohn <edelsohn@gnu.org>
4521
4522 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4523
4524 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4525
4526 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4527 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4528
4529 2009-04-17 Richard Guenther <rguenther@suse.de>
4530
4531 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4532 Handle component references view-converting an invariant address.
4533
4534 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
4535
4536 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4537 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4538 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4539 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4540 Use @deftypevr rather than @deftypevar.
4541
4542 2009-04-17 Richard Guenther <rguenther@suse.de>
4543
4544 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
4545 (get_prop_source_stmt): Likewise.
4546 (can_propagate_from): Likewise.
4547
4548 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
4549
4550 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4551 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4552 (--with-multilib-list): Add default value.
4553 * configure: Regenerate.
4554 * Makefile.in (TM_ENDIAN_CONFIG): Define.
4555 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4556 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4557 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4558 Don't add default cpu to multilib list unnecessarily, but do enable
4559 the relevant compiler option..
4560 Add support for --with-multilib-list=<blank> and
4561 --with-multilib-list=!<somelib> to supress unwanted multilibs.
4562 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4563 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4564 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4565 TM_MULTILIB_CONFIG.
4566 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4567 (MULTILIB_OSDIRNAMES): New variable.
4568 * config/sh/t-1e: Delete file.
4569 * config/sh/t-mlib-sh1: Delete file.
4570 * config/sh/t-mlib-sh2: Delete file.
4571 * config/sh/t-mlib-sh2a: Delete file.
4572 * config/sh/t-mlib-sh2a-nofpu: Delete file.
4573 * config/sh/t-mlib-sh2a-single: Delete file.
4574 * config/sh/t-mlib-sh2a-single-only: Delete file.
4575 * config/sh/t-mlib-sh2e: Delete file.
4576 * config/sh/t-mlib-sh3e: Delete file.
4577 * config/sh/t-mlib-sh4: Delete file.
4578 * config/sh/t-mlib-sh4-nofpu: Delete file.
4579 * config/sh/t-mlib-sh4-single: Delete file.
4580 * config/sh/t-mlib-sh4-single-only: Delete file.
4581 * config/sh/t-mlib-sh4a: Delete file.
4582 * config/sh/t-mlib-sh4a-nofpu: Delete file.
4583 * config/sh/t-mlib-sh4a-single: Delete file.
4584 * config/sh/t-mlib-sh4a-single-only: Delete file.
4585 * config/sh/t-mlib-sh4al: Delete file.
4586 * config/sh/t-mlib-sh5-32media: Delete file.
4587 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4588 * config/sh/t-mlib-sh5-64media: Delete file.
4589 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4590 * config/sh/t-mlib-sh5-compact: Delete file.
4591 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4592 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4593 * doc/install.texi (Options specification): Add
4594 --with-multilib-list and --with-endian.
4595
4596 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
4597
4598 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4599 REVISION_c.
4600 (OBJS-common): Add plugin-version.o.
4601 (plugin-version.o): New.
4602 * gcc-plugin.h (plugin_gcc_version): New.
4603 (plugin_default_version_check): New.
4604 (plugin_init_func, plugin_init): Add version argument.
4605 * plugin-version.c: New.
4606 * plugin.c (str_plugin_gcc_version_name): New.
4607 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4608 pass it to the init function.
4609 (plugin_default_version_check): New.
4610
4611 2009-04-17 Richard Guenther <rguenther@suse.de>
4612
4613 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4614 for decl-vs-decl disambiguation.
4615
4616 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
4617
4618 * config/s390/s390.h (s390_tune_attr): New macro definition.
4619 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4620
4621 2009-04-17 Richard Guenther <rguenther@suse.de>
4622
4623 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4624 (fold_stmt_r): Likewise.
4625 (maybe_fold_reference): New function.
4626 (fold_gimple_assign): Handle cases fold_stmt_r did.
4627 (fold_stmt): Do not use fold_stmt_r.
4628 (fold_stmt_inplace): Likewise.
4629
4630 2009-04-17 Richard Guenther <rguenther@suse.de>
4631
4632 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4633 (record_equivalences_from_stmt): Remove useless checks and
4634 simplifications.
4635 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4636 the type is already suitable.
4637
4638 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
4639
4640 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4641
4642 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
4643
4644 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4645 (CMPtype): Define as __gcc_CMPtype.
4646
4647 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
4648
4649 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4650 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4651
4652 2009-04-17 Richard Guenther <rguenther@suse.de>
4653
4654 PR tree-optimization/39746
4655 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4656 special-casing for builtins and static variable use/def.
4657 (call_may_clobber_ref_p_1): Likewise.
4658
4659 2009-04-16 Ian Lance Taylor <iant@google.com>
4660
4661 * df.h: Include "timevar.h".
4662 (struct df_problem): Change tv_id field to timevar_id_t.
4663 * tree-pass.h: Include "timevar.h".
4664 (struct opt_pass): Change tv_id field to timevar_id_t.
4665 * timevar.h (timevar_id_t): Define TV_NONE.
4666 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4667 TV_NONE rather than tv_id != 0.
4668 (execute_one_pass): Likewise.
4669 * Makefile.in (DF_H): Add $(TIMEVAR_H).
4670 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
4671 dependencies to $(TREE_PASS_H).
4672 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4673 to TV_NONE.
4674 (pass_branch_target_load_optimize2): Likewise.
4675 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4676 (pass_outof_cfg_layout_mode): Likewise.
4677 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4678 (pass_rebuild_cgraph_edges): Likewise.
4679 (pass_remove_cgraph_callee_edges): Likewise.
4680 * df-core.c (pass_df_initialize_opt): Likewise.
4681 (pass_df_initialize_no_opt): Likewise.
4682 (pass_df_finish): Likewise.
4683 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4684 * except.c (pass_set_nothrow_function_flags): Likewise.
4685 (pass_convert_to_eh_region_ranges): Likewise.
4686 * final.c (pass_compute_alignments): Likewise.
4687 * function.c (pass_instantiate_virtual_regs): Likewise.
4688 (pass_init_function): Likewise.
4689 (pass_leaf_regs): Likewise.
4690 (pass_match_asm_constraints): Likewise.
4691 * gimple-low.c (pass_lower_cf): Likewise.
4692 (pass_mark_used_blocks): Likewise.
4693 * init-regs.c (pass_initialize_regs): Likewise.
4694 * integrate.c (pass_initial_value_sets): Likewise.
4695 * ira.c (pass_ira): Likewise.
4696 * jump.c (pass_cleanup_barriers): Likewise.
4697 * omp-low.c (pass_expand_omp): Likewise.
4698 (pass_lower_omp): Likewise.
4699 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4700 * recog.c (pass_split_all_insns): Likewise.
4701 (pass_split_after_reload): Likewise.
4702 (pass_split_before_regstack): Likewise.
4703 (pass_split_before_sched2): Likewise.
4704 (pass_split_for_shorten_branches): Likewise.
4705 * reginfo.c (pass_reginfo_init): Likewise.
4706 (pass_subregs_of_mode_init): Likewise.
4707 (pass_subregs_of_mode_finish): Likewise.
4708 * passes.c (pass_postreload): Likewise.
4709 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4710 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4711 (pass_warn_function_return): Likewise.
4712 (pass_warn_function_noreturn): Likewise.
4713 * tree-complex.c (pass_lower_complex): Likewise.
4714 (pass_lower_complex_O0): Likewise.
4715 * tree-if-conv.c (pass_if_conversion): Likewise.
4716 * tree-into-ssa.c (pass_build_ssa): Likewise.
4717 * tree-mudflap.c (pass_mudflap_1): Likewise.
4718 (pass_mudflap_2): Likewise.
4719 * tree-nomudflap.c (pass_mudflap_1): Likewise.
4720 (pass_mudflap_2): Likewise.
4721 * tree-nrv.c (pass_return_slot): Likewise.
4722 * tree-object-size.c (pass_object_sizes): Likewise.
4723 * tree-optimize.c (pass_all_optimizations): Likewise.
4724 (pass_early_local_passes): Likewise.
4725 (pass_all_early_optimizations): Likewise.
4726 (pass_cleanup_cfg): Likewise.
4727 (pass_cleanup_cfg_post_optimizing): Likewise.
4728 (pass_free_datastructures): Likewise.
4729 (pass_free_cfg_annotations): Likewise.
4730 (pass_fixup_cfg): Likewise.
4731 (pass_init_datastructures): Likewise.
4732 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4733 (pass_late_warn_uninitialized): Likewise.
4734 (pass_update_address_taken): Likewise.
4735 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4736 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4737 (pass_cse_sincos): Likewise.
4738 (pass_convert_to_rsqrt): Likewise.
4739 * tree-ssa-structalias.c (pass_build_alias): Likewise.
4740 * tree-stdarg.c (pass_stdarg): Likewise.
4741 * tree-tailcall.c (pass_tail_recursion): Likewise.
4742 (pass_tail_calls): Likewise.
4743 * tree-vect-generic.c (pass_lower_vector): Likewise.
4744 (pass_lower_vector_ssa): Likewise.
4745 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4746
4747 2009-04-16 Joseph Myers <joseph@codesourcery.com>
4748
4749 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4750 XLR entry.
4751 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4752 Handle -march=xlr.
4753 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4754 logical and signext.
4755
4756 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
4757
4758 PR target/39767
4759 * config/sh/predicates.md (arith_operand): Check if the operand
4760 of TRUNCATE is a REG.
4761
4762 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
4763
4764 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4765 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4766
4767 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
4768
4769 * tree-iterator.c (tsi_split_statement_list_after,
4770 tsi_split_statement_list_before): Remove.
4771 * tree-iterator.h: Remove the prototypes for
4772 tsi_split_statement_list_after and tsi_split_statement_list_before.
4773
4774 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
4775
4776 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4777 * tree-ssa-propagate.h: Remove the prototype for
4778 stmt_makes_single_load.
4779
4780 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
4781
4782 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
4783 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
4784
4785 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
4786
4787 * tree-iterator.c (EXPR_LAST_BODY): Remove.
4788
4789 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
4790
4791 * except.c (eh_region_outer_p): Remove.
4792 * except.h: Remove the prototype for eh_region_outer_p.
4793
4794 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
4795
4796 * function.c (current_function_assembler_name): Remove.
4797 * function.h: Remove the prototype for
4798 current_function_assembler_name.
4799
4800 2009-04-16 Ian Lance Taylor <iant@google.com>
4801
4802 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
4803 (add_reg_note): Call alloc_reg_note.
4804 * rtl.h (alloc_reg_note): Declare.
4805 * combine.c (try_combine): Use alloc_reg_note.
4806 (recog_for_combine, move_deaths): Likewise.
4807 (distribute_notes): Use alloc_reg_note and add_reg_note.
4808 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
4809 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
4810 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
4811
4812 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
4813
4814 PR rtl-optimization/39762
4815 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
4816 ira_may_move_out_cost): Add comments about way of their usage.
4817 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
4818
4819 * ira-conflicts.c (process_regs_for_copy): Use function
4820 ira_get_register_move_cost instead of global
4821 ira_register_move_cost.
4822
4823 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
4824 color_pass, move_spill_restore, update_curr_costs): Ditto.
4825
4826 * ira-lives.c (process_single_reg_class_operands): Ditto.
4827
4828 * ira-emit.c (emit_move_list): Ditto.
4829
4830 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
4831 (record_reg_classes): Ditto. Use functions
4832 ira_get_register_move_cost and ira_get_may_move_cost instead of
4833 global vars ira_register_move_cost, ira_may_move_out_cost and
4834 ira_may_move_in_cost.
4835 (record_address_regs): Don't call ira_init_register_move_cost.
4836 Use function ira_get_may_move_cost instead of global
4837 ira_may_move_in_cost.
4838 (process_bb_node_for_hard_reg_moves): Use function
4839 ira_get_register_move_cost instead of global ira_register_move_cost.
4840 (ira_costs): Don't call ira_init_register_move_cost.
4841
4842 2009-04-16 Richard Guenther <rguenther@suse.de>
4843
4844 * tree-cfg.c (verify_gimple_assign_binary):
4845 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
4846 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
4847 (create_general_new_stmt): Note that this function is broken.
4848
4849 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
4850
4851 * common.opt (fhelp): Add Var(help_flag).
4852 * gcc-plugin.h (plugin_info): Add help.
4853 * plugin.c (plugin_name_args): Add help.
4854 (register_plugin_info): Set plugin->help.
4855 (print_help_one_plugin): New.
4856 (print_plugins_help): New.
4857 * plugin.h (print_plugins_help): New.
4858 * toplev.c (toplev_main): Call print_plugins_help if needed.
4859
4860 2009-04-16 Richard Guenther <rguenther@suse.de>
4861
4862 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
4863 (gimple_ior_addresses_taken_1): New function.
4864 (gimple_ior_addresses_taken): Likewise.
4865 * gimple.h (struct gimple_statement_with_ops_base): Remove
4866 addresses_taken member.
4867 (gimple_ior_addresses_taken): Declare.
4868 (gimple_addresses_taken, gimple_addresses_taken_ptr,
4869 gimple_set_addresses_taken): Remove.
4870 * ipa-reference.c (mark_address): New function.
4871 (scan_stmt_for_static_refs): Use it for marking addresses taken.
4872 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
4873 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
4874 (gimple_add_to_addresses_taken): Remove.
4875 (get_tmr_operands): Call mark_address_taken.
4876 (get_asm_expr_operands): Likewise.
4877 (get_expr_operands): Likewise.
4878 (build_ssa_operands): Do not clear the addresses_taken bitmap.
4879 (free_stmt_operands): Do not free it.
4880 * tree-ssa.c (delete_tree_ssa): Likewise.
4881 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
4882
4883 2009-04-16 Richard Guenther <rguenther@suse.de>
4884
4885 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
4886 (walk_stmt_load_store_ops): Likewise.
4887 * gimple.c (get_base_loadstore): New function.
4888 (walk_stmt_load_store_addr_ops): Likewise.
4889 (walk_stmt_load_store_ops): Likewise.
4890 * ipa-pure-const.c (check_op): Simplify.
4891 (check_load, check_store): New functions.
4892 (check_stmt): Use walk_stmt_load_store_ops.
4893 * ipa-reference.c (mark_load): Adjust signature.
4894 (mark_store): Likewise.
4895 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
4896
4897 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
4898
4899 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
4900 (plugin_info): New.
4901 * opts.c (common_handle_option): Don't call print_version.
4902 * plugin.c (plugin_name_args): Add version.
4903 (register_plugin_info): New.
4904 (register_callback): Handle PLUGIN_INFO.
4905 (try_init_one_plugin): New.
4906 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
4907 if failed to init.
4908 (finalize_one_plugin): New.
4909 (finalize_plugins): New.
4910 (print_one_plugin): New.
4911 (print_plugins_versions): New.
4912 * plugin.h (print_plugins_versions): New.
4913 (finalize_plugins): New.
4914 * toplev.c (compile_file): Don't call initialize_plugins.
4915 (print_version): Call print_plugins_versions.
4916 (toplev_main): Call initialize_plugins. Print version if needed.
4917 Call finalize_plugins.
4918
4919 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
4920
4921 * common.opt (fversion): New.
4922 * gcc.c (print_version): New.
4923 (process_command): Don't print the version. Just set print_version.
4924 (main): Print version. Call subprocesses if print_version and
4925 verbose_flag are set.
4926 * opts.c (common_handle_option): Handle OPT_fversion.
4927
4928 2009-04-16 Richard Guenther <rguenther@suse.de>
4929 Ira Rosen <irar@il.ibm.com>
4930
4931 PR tree-optimization/39698
4932 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
4933 type of the reduction variable. Only generate the def if
4934 it is needed.
4935
4936 * omp-low.c (expand_omp_for_generic): When converting to a pointer
4937 make sure to first convert to an integer of the same precision.
4938 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
4939 the type of the evolution correctly in computing the new
4940 induction variable base.
4941
4942 2009-04-16 Richard Guenther <rguenther@suse.de>
4943
4944 PR middle-end/39625
4945 * tree-cfg.c (make_blocks): Split statements with to-be
4946 abnormal SSA names on the lhs.
4947
4948 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
4949
4950 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
4951 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
4952 * c-typeck.c (really_start_incremental_init): Likewise.
4953 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
4954 (TARGET_INITIALIZER): Remove it.
4955 * target.h (struct target): Remove vector_opaque_p.
4956 * tree.c (build_opaque_vector_type): New.
4957 * tree.h (TYPE_VECTOR_OPAQUE): New.
4958 (build_opaque_vector_type): Declare.
4959 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
4960 * config/rs6000/rs6000.c (build_opaque_vector_type,
4961 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
4962 (rs6000_init_builtins): Use build_opaque_vector_type for
4963 opaque_V4SI_type_node.
4964
4965 2009-04-15 Catherine Moore <clm@codesourcery.com>
4966
4967 * debug.h (set_name): Declare.
4968 * dwarf2out.c (dwarf2out_set_name): Declare.
4969 (dwarf2_debug_hooks): Add set_name.
4970 (find_AT_string): New.
4971 (add_AT_string): Call find_AT_string.
4972 (dwarf2out_set_name): New.
4973 * cp/decl.c (grokdeclarator): Call set_name.
4974 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
4975 * debug.c (do_nothing_debug_hooks): Likewise.
4976 * dbxout.c (dbx_debug_hooks): Likewise.
4977 * sdbout.c (sdb_debug_hooks): Likewise.
4978
4979 2009-04-15 Michael Eager <eager@eagercon.com>
4980
4981 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
4982 reg for single-precision FPU.
4983 * config/rs6000/rs6000.md (movsi_internal1): Only for
4984 !TARGET_SINGLE_FPU.
4985 (movsi_internal1_single): New. Add pattern to move SI values to/from
4986 single-precision FP regs.
4987
4988 2009-04-15 Richard Guenther <rguenther@suse.de>
4989
4990 * omp-low.c (lower_rec_input_clauses): Build correct address
4991 expressions.
4992 (expand_omp_for_generic): Fix multiplication type.
4993 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
4994 (generate_memset_zero): Fix types.
4995 * tree-profile.c (prepare_instrumented_value): Correctly
4996 widen a pointer.
4997
4998 2009-04-15 Ian Lance Taylor <iant@google.com>
4999
5000 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
5001 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
5002 for -Wall and for -Wc++-compat.
5003 (c_common_post_options): For C++, set warn_enum_compare if not
5004 already set.
5005 * c-tree.h (struct c_expr): Add field original_type.
5006 (build_external_ref): Update declaration.
5007 * c-parser.c (c_parser_braced_init): Set original_type.
5008 (c_parser_initelt): Likewise.
5009 (c_parser_expr_no_commas): Likewise.
5010 (c_parser_conditional_expression): Likewise.
5011 (c_parser_cast_expression): Likewise.
5012 (c_parser_unary_expression): Likewise. Pull setting of
5013 original_code to top of function.
5014 (c_parser_sizeof_expression): Set original_type.
5015 (c_parser_alignof_expression): Likewise.
5016 (c_parser_postfix_expression): Likewise. Pull setting of
5017 original_code to top of function.
5018 (c_parser_postfix_expression_after_paren_type): Set original_type.
5019 (c_parser_postfix_expression_after_primary): Likewise.
5020 (c_parser_expression): Likewise.
5021 * c-typeck.c (build_external_ref): Add type parameter. Change all
5022 callers.
5023 (c_expr_sizeof_expr): Set original_type field.
5024 (parser_build_unary_op): Likewise.
5025 (parser_build_binary_op): Likewise. Optionally warn about
5026 comparisons of enums of different types.
5027 (digest_init): Set original_type field.
5028 (really_start_incremental_init): Likewise.
5029 (push_init_level, pop_init_level): Likewise.
5030 * doc/invoke.texi (Warning Options): -Wenum-compare now
5031 supported in C.
5032
5033 2009-04-15 Richard Guenther <rguenther@suse.de>
5034
5035 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
5036 out a necessary conversion.
5037 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5038 names we didn't value number.
5039 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5040
5041 2009-04-15 Richard Guenther <rguenther@suse.de>
5042
5043 PR tree-optimization/39764
5044 * tree-ssa-ccp.c (get_value): Canonicalize value with
5045 canonicalize_float_value.
5046
5047 2009-04-15 Jan Hubicka <jh@suse.cz>
5048
5049 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5050 Wrong version of patch.
5051
5052 2009-04-15 Jan Hubicka <jh@suse.cz>
5053
5054 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5055
5056 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
5057
5058 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5059 our distinct integral and vector types.
5060
5061 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
5062
5063 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5064 * init.c (build_vtbl_address): Remove call to assemble_external.
5065
5066 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
5067
5068 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5069 output for other floating point modes.
5070
5071 2009-04-14 Diego Novillo <dnovillo@google.com>
5072
5073 * diagnostic.c (diagnostic_report_diagnostic): Do not
5074 warn about loaded plugins for DK_ERROR and DK_WARNING.
5075 * c-decl.c (declspecs_add_type): Move call to
5076 invoke_plugin_callbacks ...
5077 * c-parser.c (c_parser_declspecs): ... here.
5078 * plugin.c (dump_active_plugins): Tidy output.
5079
5080 2009-04-14 Diego Novillo <dnovillo@google.com>
5081 Le-Chun Wu <lcwu@google.com>
5082
5083 * configure.ac: Add --enable-plugin support.
5084 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5085 * Makefile.in (PLUGIN_H): Define.
5086 Export ENABLE_PLUGIN and GMPINC to site.exp.
5087 Add PLUGINLIBS to link command.
5088 Add/modify dependencies for plugin.o and files including plugin.h.
5089 (plugin.o): New.
5090 * config.in: Regenerate.
5091
5092 * opts.c (common_handle_option): Handle OPT_fplugin_ and
5093 OPT_fplugin_arg_.
5094
5095 2009-04-14 Le-Chun Wu <lcwu@google.com>
5096
5097 * tree-pass.h (register_one_dump_file): Add a prototype for
5098 register_one_dump_file.
5099 * toplev.c (compile_file): Call initialize_plugins.
5100 (do_compile): Call invoke_plugin_callbacks.
5101 (toplev_main): Call invoke_plugin_callbacks.
5102 * common.opt: Add -fplugin= and -fplugin-arg-.
5103 * gcc-plugin.h: New public header file for plugins to include.
5104 * plugin.c: New source file.
5105 * plugin.h: New internal header file.
5106 * passes.c (register_one_dump_file): Make it external.
5107
5108 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5109
5110 2009-04-14 Diego Novillo <dnovillo@google.com>
5111
5112 * doc/plugins.texi: New.
5113 * doc/gccint.texi: Add reference to Plugins chapter.
5114 * doc/invoke.texi: Document -fplugin and -fplugin-arg
5115 * diagnostic.c (diagnostic_report_diagnostic): Warn about
5116 loaded plugins, if any.
5117 * timevar.def (TV_PLUGIN_INIT): Define.
5118 (TV_PLUGIN_RUN): Define.
5119 * plugin.c: Include timevar.h
5120 (plugins_active_p): New.
5121 (dump_active_plugins): New.
5122 (debug_active_plugins): New.
5123
5124 2009-04-14 Joseph Myers <joseph@codesourcery.com>
5125
5126 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5127 library paths.
5128 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5129
5130 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
5131
5132 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5133 the same as a minus without a shift.
5134
5135 2009-04-14 Nick Clifton <nickc@redhat.com>
5136
5137 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5138 comparisons with small integers will always produce a short
5139 branch.
5140
5141 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
5142
5143 Merge:
5144 2008-12-19 Diego Novillo <dnovillo@google.com>
5145
5146 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
5147
5148 2009-04-14 Richard Guenther <rguenther@suse.de>
5149
5150 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5151 verification.
5152 (verify_gimple_assign_binary): Likewise. Handle shifts and
5153 rotates correctly.
5154 (verify_gimple_phi): Print the mismatched argument position.
5155 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5156 Fix types.
5157 (vect_update_init_of_dr): Likewise.
5158 * matrix-reorg.c (transform_access_sites): Do what the
5159 comment suggests.
5160 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5161
5162 2009-04-13 Michael Eager <eager@eagercon.com>
5163
5164 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5165 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5166 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
5167 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
5168 remove duplicate config
5169
5170 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
5171
5172 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5173 file_name:line_number type locator of the call site.
5174
5175 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
5176
5177 * genautomata.c: Put blank after comma.
5178 (automaton_decls): New.
5179 (struct unit_usage): Add comments to member next.
5180 (store_alt_unit_usage): Keep the list ordered.
5181 (unit_present_on_list_p, equal_alternatives_p): New.
5182 (check_regexp_units_distribution): Check units distribution
5183 correctness correctly.
5184 (main): Don't write automata if error is found. Return correct
5185 exit code.
5186
5187 * config/m68k/cf.md (cfv4_ds): Remove.
5188 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5189 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5190
5191 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5192 power4-load-ext, power4-store, power4-store-update,
5193 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5194 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5195 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5196 power4-sqrt, power4-isync): Modify reservation to make correct
5197 unit distribution to automata.
5198
5199 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5200 power5-store-update, power5-two, power5-three, power5-lmul,
5201 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
5202
5203 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
5204
5205 * except.c (pass_set_nothrow_function_flags): Set name and add
5206 TODO_dump_func.
5207 (set_nothrow_function_flags): Mention in the dump file when
5208 changing a function to nothrow.
5209
5210 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
5211
5212 PR/39066
5213 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5214 instead of unsigned long.
5215
5216 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5217
5218 * config/arm/arm.c (return_used_this_function): Remove.
5219 (arm_output_function_prologue): Remove use of
5220 return_used_this_function.
5221 (output_return_instruction): Replace use of
5222 return_used_this_function
5223 by cfun->machine->return_used_this_function.
5224 (arm_output_epilogue): Likewise.
5225 (arm_output_function_epilogue): Likewise.
5226 (thumb_unexpanded_epilogue): Likewise.
5227 * config/arm/arm.h (struct machine_function):
5228 New member return_used_this_function.
5229
5230 2009-04-12 Mark Mitchell <mark@codesourcery.com>
5231
5232 * doc/install.texi: Correct description of default directory for
5233 --with-gxx-include-dir.
5234
5235 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
5236
5237 * fold-const.c (build_range_check): Properly deal with enumeral and
5238 boolean base types.
5239
5240 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
5241
5242 * doc/invoke.texi (max_gcse_passes): Remove documentation.
5243 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5244 * params.h (MAX_GCSE_PASSES): Remove.
5245 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5246 in sequence. Remove ability to run multiple passes.
5247 (bypass_jumps): Report run as third CPROP pass.
5248
5249 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
5250
5251 PR middle-end/39651
5252 * except.c (can_throw_external): Look at each insn in a SEQUENCE
5253 when deciding whether the whole SEQUENCE can throw.
5254
5255 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
5256
5257 PR target/39740
5258 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5259 offseted label references.
5260
5261 2009-04-11 Jan Hubicka <jh@suse.cz>
5262
5263 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5264
5265 2009-04-11 Richard Guenther <rguenther@suse.de>
5266
5267 PR middle-end/39732
5268 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5269 return variables as TREE_ADDRESSABLE.
5270
5271 2009-04-11 Richard Guenther <rguenther@suse.de>
5272
5273 PR tree-optimization/39713
5274 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5275 reference trees have SSA_NAME operands.
5276
5277 2009-04-11 Richard Guenther <rguenther@suse.de>
5278
5279 PR c/39712
5280 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5281 address expressions.
5282
5283 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
5284
5285 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
5286 match changes in Cygwin 1.7
5287 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5288 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
5289
5290 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
5291
5292 PR tree-optimization/39701
5293 * doc/invoke.texi (Optimization Options): Document change in
5294 meaning and initialization of -fdelete-null-pointer-checks.
5295
5296 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5297
5298 PR middle-end/39701
5299 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5300
5301 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5302 here.
5303
5304 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5305
5306 2009-04-10 Chao-ying Fu <fu@mips.com>
5307
5308 * doc/tm.texi (Instruction Output): Document
5309 TARGET_ASM_FINAL_POSTSCAN_INSN.
5310 * target.h (final_postscan_insn): New field in asm_out.
5311 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5312 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5313 * final.c (final_scan_insn): Call
5314 targetm.asm_out.final_postscan_insn after outputting
5315 an asm macro and a normal instruction.
5316
5317 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5318 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5319 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5320 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5321 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5322
5323 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
5324
5325 PR middle-end/39701
5326 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5327 variables as non-NULL even with -fdelete-null-pointer-checks.
5328
5329 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5330
5331 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5332
5333 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
5334
5335 PR target/39678
5336 * config/i386/i386.c (classify_argument): Handle SCmode with
5337 (bit_offset % 64) != 0.
5338
5339 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
5340
5341 * doc/invoke.texi (Optimize Options): Add cross-reference to
5342 -Q --help=optimizers examples.
5343
5344 2009-04-10 Ben Elliston <bje@au.ibm.com>
5345
5346 PR target/36800
5347 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5348 regalign for the reg == fpr and TDmode case.
5349
5350 2009-04-09 David Ayers <ayers@fsfe.org>
5351
5352 PR objc/29200
5353 * objc/objc-act.c (warn_with_method): Remove helper function.
5354 (check_duplicates): Call warning and inform directly.
5355 (really_start_method): Likewise.
5356
5357 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
5358
5359 * expmed.c (expand_divmod): Always use a comparison for a division
5360 by a large unsigned integer.
5361
5362 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5363 for things others than variables or functions as nonzero.
5364
5365 2009-04-09 Nick Clifton <nickc@redhat.com>
5366
5367 * unwind-compat.c: Change copyright header to refer to version
5368 3 of the GNU General Public License with version 3.1 of the
5369 GCC Runtime Library Exception and to point readers at the
5370 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
5371 * config/alpha/crtfastmath.c: Likewise.
5372 * config/alpha/linux-unwind.h: Likewise.
5373 * config/alpha/qrnnd.asm: Likewise.
5374 * config/alpha/vms-crt0-64.c: Likewise.
5375 * config/alpha/vms-crt0.c: Likewise.
5376 * config/alpha/vms-dwarf2.asm: Likewise.
5377 * config/alpha/vms-dwarf2eh.asm: Likewise.
5378 * config/alpha/vms-psxcrt0-64.c: Likewise.
5379 * config/alpha/vms-psxcrt0.c: Likewise.
5380 * config/alpha/vms_tramp.asm: Likewise.
5381 * config/arc/initfini.c: Likewise.
5382 * config/arc/lib1funcs.asm: Likewise.
5383 * config/arm/bpabi-v6m.S: Likewise.
5384 * config/arm/bpabi.S: Likewise.
5385 * config/arm/bpabi.c: Likewise.
5386 * config/arm/crti.asm: Likewise.
5387 * config/arm/crtn.asm: Likewise.
5388 * config/arm/ieee754-df.S: Likewise.
5389 * config/arm/ieee754-sf.S: Likewise.
5390 * config/arm/lib1funcs.asm: Likewise.
5391 * config/arm/libunwind.S: Likewise.
5392 * config/arm/linux-atomic.c: Likewise.
5393 * config/arm/mmintrin.h: Likewise.
5394 * config/arm/pr-support.c: Likewise.
5395 * config/arm/unaligned-funcs.c: Likewise.
5396 * config/arm/unwind-arm.c: Likewise.
5397 * config/arm/unwind-arm.h: Likewise.
5398 * config/avr/libgcc.S: Likewise.
5399 * config/bfin/crti.s: Likewise.
5400 * config/bfin/crtlibid.s: Likewise.
5401 * config/bfin/crtn.s: Likewise.
5402 * config/bfin/lib1funcs.asm: Likewise.
5403 * config/bfin/linux-unwind.h: Likewise.
5404 * config/cris/arit.c: Likewise.
5405 * config/cris/cris_abi_symbol.c: Likewise.
5406 * config/darwin-64.c: Likewise.
5407 * config/darwin-crt2.c: Likewise.
5408 * config/darwin-crt3.c: Likewise.
5409 * config/darwin.h: Likewise.
5410 * config/dbxelf.h: Likewise.
5411 * config/dfp-bit.c: Likewise.
5412 * config/dfp-bit.h: Likewise.
5413 * config/elfos.h: Likewise.
5414 * config/fixed-bit.c: Likewise.
5415 * config/fixed-bit.h: Likewise.
5416 * config/fp-bit.c: Likewise.
5417 * config/fp-bit.h: Likewise.
5418 * config/fr30/crti.asm: Likewise.
5419 * config/fr30/crtn.asm: Likewise.
5420 * config/fr30/lib1funcs.asm: Likewise.
5421 * config/freebsd-spec.h: Likewise.
5422 * config/frv/cmovd.c: Likewise.
5423 * config/frv/cmovh.c: Likewise.
5424 * config/frv/cmovw.c: Likewise.
5425 * config/frv/frvbegin.c: Likewise.
5426 * config/frv/frvend.c: Likewise.
5427 * config/frv/lib1funcs.asm: Likewise.
5428 * config/glibc-stdint.h: Likewise.
5429 * config/h8300/clzhi2.c: Likewise.
5430 * config/h8300/crti.asm: Likewise.
5431 * config/h8300/crtn.asm: Likewise.
5432 * config/h8300/ctzhi2.c: Likewise.
5433 * config/h8300/fixunssfsi.c: Likewise.
5434 * config/h8300/lib1funcs.asm: Likewise.
5435 * config/h8300/parityhi2.c: Likewise.
5436 * config/h8300/popcounthi2.c: Likewise.
5437 * config/i386/ammintrin.h: Likewise.
5438 * config/i386/att.h: Likewise.
5439 * config/i386/avxintrin.h: Likewise.
5440 * config/i386/biarch64.h: Likewise.
5441 * config/i386/bmmintrin.h: Likewise.
5442 * config/i386/cpuid.h: Likewise.
5443 * config/i386/cross-stdarg.h: Likewise.
5444 * config/i386/crtfastmath.c: Likewise.
5445 * config/i386/crtprec.c: Likewise.
5446 * config/i386/cygming-crtbegin.c: Likewise.
5447 * config/i386/cygming-crtend.c: Likewise.
5448 * config/i386/cygwin.asm: Likewise.
5449 * config/i386/emmintrin.h: Likewise.
5450 * config/i386/gmm_malloc.h: Likewise.
5451 * config/i386/gthr-win32.c: Likewise.
5452 * config/i386/i386.h: Likewise.
5453 * config/i386/immintrin.h: Likewise.
5454 * config/i386/linux-unwind.h: Likewise.
5455 * config/i386/linux64.h: Likewise.
5456 * config/i386/mm3dnow.h: Likewise.
5457 * config/i386/mmintrin-common.h: Likewise.
5458 * config/i386/mmintrin.h: Likewise.
5459 * config/i386/nmmintrin.h: Likewise.
5460 * config/i386/pmm_malloc.h: Likewise.
5461 * config/i386/pmmintrin.h: Likewise.
5462 * config/i386/smmintrin.h: Likewise.
5463 * config/i386/sol2-c1.asm: Likewise.
5464 * config/i386/sol2-ci.asm: Likewise.
5465 * config/i386/sol2-cn.asm: Likewise.
5466 * config/i386/sol2-gc1.asm: Likewise.
5467 * config/i386/tmmintrin.h: Likewise.
5468 * config/i386/unix.h: Likewise.
5469 * config/i386/w32-unwind.h: Likewise.
5470 * config/i386/wmmintrin.h: Likewise.
5471 * config/i386/x86-64.h: Likewise.
5472 * config/i386/x86intrin.h: Likewise.
5473 * config/i386/xmmintrin.h: Likewise.
5474 * config/ia64/crtbegin.asm: Likewise.
5475 * config/ia64/crtend.asm: Likewise.
5476 * config/ia64/crtfastmath.c: Likewise.
5477 * config/ia64/crti.asm: Likewise.
5478 * config/ia64/crtn.asm: Likewise.
5479 * config/ia64/fde-glibc.c: Likewise.
5480 * config/ia64/lib1funcs.asm: Likewise.
5481 * config/ia64/linux-unwind.h: Likewise.
5482 * config/ia64/quadlib.c: Likewise.
5483 * config/ia64/unwind-ia64.c: Likewise.
5484 * config/linux.h: Likewise.
5485 * config/m32c/m32c-lib1.S: Likewise.
5486 * config/m32c/m32c-lib2-trapv.c: Likewise.
5487 * config/m32c/m32c-lib2.c: Likewise.
5488 * config/m32r/initfini.c: Likewise.
5489 * config/m68hc11/larith.asm: Likewise.
5490 * config/m68hc11/m68hc11-crt0.S: Likewise.
5491 * config/m68k/cf.md: Likewise.
5492 * config/m68k/crti.s: Likewise.
5493 * config/m68k/crtn.s: Likewise.
5494 * config/m68k/lb1sf68.asm: Likewise.
5495 * config/m68k/linux-unwind.h: Likewise.
5496 * config/mcore/crti.asm: Likewise.
5497 * config/mcore/crtn.asm: Likewise.
5498 * config/mcore/lib1.asm: Likewise.
5499 * config/mips/linux-unwind.h: Likewise.
5500 * config/mips/loongson.h: Likewise.
5501 * config/mips/mips16.S: Likewise.
5502 * config/mmix/crti.asm: Likewise.
5503 * config/mmix/crtn.asm: Likewise.
5504 * config/pa/fptr.c: Likewise.
5505 * config/pa/hpux-unwind.h: Likewise.
5506 * config/pa/lib2funcs.asm: Likewise.
5507 * config/pa/linux-atomic.c: Likewise.
5508 * config/pa/linux-unwind.h: Likewise.
5509 * config/pa/milli64.S: Likewise.
5510 * config/pa/quadlib.c: Likewise.
5511 * config/pa/stublib.c: Likewise.
5512 * config/picochip/libgccExtras/adddi3.asm: Likewise.
5513 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5514 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5515 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5516 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5517 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5518 * config/picochip/libgccExtras/divmod15.asm: Likewise.
5519 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5520 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5521 * config/picochip/libgccExtras/longjmp.asm: Likewise.
5522 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5523 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5524 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5525 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5526 * config/picochip/libgccExtras/setjmp.asm: Likewise.
5527 * config/picochip/libgccExtras/subdi3.asm: Likewise.
5528 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5529 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5530 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5531 * config/rs6000/750cl.h: Likewise.
5532 * config/rs6000/altivec.h: Likewise.
5533 * config/rs6000/biarch64.h: Likewise.
5534 * config/rs6000/crtresfpr.asm: Likewise.
5535 * config/rs6000/crtresgpr.asm: Likewise.
5536 * config/rs6000/crtresxfpr.asm: Likewise.
5537 * config/rs6000/crtresxgpr.asm: Likewise.
5538 * config/rs6000/crtsavfpr.asm: Likewise.
5539 * config/rs6000/crtsavgpr.asm: Likewise.
5540 * config/rs6000/darwin-asm.h: Likewise.
5541 * config/rs6000/darwin-fallback.c: Likewise.
5542 * config/rs6000/darwin-fpsave.asm: Likewise.
5543 * config/rs6000/darwin-ldouble.c: Likewise.
5544 * config/rs6000/darwin-tramp.asm: Likewise.
5545 * config/rs6000/darwin-unwind.h: Likewise.
5546 * config/rs6000/darwin-vecsave.asm: Likewise.
5547 * config/rs6000/darwin-world.asm: Likewise.
5548 * config/rs6000/e500crtres32gpr.asm: Likewise.
5549 * config/rs6000/e500crtres64gpr.asm: Likewise.
5550 * config/rs6000/e500crtres64gprctr.asm: Likewise.
5551 * config/rs6000/e500crtrest32gpr.asm: Likewise.
5552 * config/rs6000/e500crtrest64gpr.asm: Likewise.
5553 * config/rs6000/e500crtresx32gpr.asm: Likewise.
5554 * config/rs6000/e500crtresx64gpr.asm: Likewise.
5555 * config/rs6000/e500crtsav32gpr.asm: Likewise.
5556 * config/rs6000/e500crtsav64gpr.asm: Likewise.
5557 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5558 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5559 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5560 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5561 * config/rs6000/eabi-ci.asm: Likewise.
5562 * config/rs6000/eabi-cn.asm: Likewise.
5563 * config/rs6000/eabi.asm: Likewise.
5564 * config/rs6000/linux-unwind.h: Likewise.
5565 * config/rs6000/linux64.h: Likewise.
5566 * config/rs6000/paired.h: Likewise.
5567 * config/rs6000/paired.md: Likewise.
5568 * config/rs6000/ppc64-fp.c: Likewise.
5569 * config/rs6000/ppu_intrinsics.h: Likewise.
5570 * config/rs6000/rs6000.h: Likewise.
5571 * config/rs6000/si2vmx.h: Likewise.
5572 * config/rs6000/sol-ci.asm: Likewise.
5573 * config/rs6000/sol-cn.asm: Likewise.
5574 * config/rs6000/spe.h: Likewise.
5575 * config/rs6000/spu2vmx.h: Likewise.
5576 * config/rs6000/sysv4.h: Likewise.
5577 * config/rs6000/tramp.asm: Likewise.
5578 * config/rs6000/vec_types.h: Likewise.
5579 * config/s390/linux-unwind.h: Likewise.
5580 * config/s390/tpf-unwind.h: Likewise.
5581 * config/score/crti.asm: Likewise.
5582 * config/score/crtn.asm: Likewise.
5583 * config/sh/crt1.asm: Likewise.
5584 * config/sh/crti.asm: Likewise.
5585 * config/sh/crtn.asm: Likewise.
5586 * config/sh/divtab-sh4-300.c: Likewise.
5587 * config/sh/divtab-sh4.c: Likewise.
5588 * config/sh/divtab.c: Likewise.
5589 * config/sh/lib1funcs-4-300.asm: Likewise.
5590 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5591 * config/sh/lib1funcs.asm: Likewise.
5592 * config/sh/lib1funcs.h: Likewise.
5593 * config/sh/linux-atomic.asm: Likewise.
5594 * config/sh/linux-unwind.h: Likewise.
5595 * config/sh/shmedia.h: Likewise.
5596 * config/sh/sshmedia.h: Likewise.
5597 * config/sh/ushmedia.h: Likewise.
5598 * config/sparc/crtfastmath.c: Likewise.
5599 * config/sparc/linux-unwind.h: Likewise.
5600 * config/sparc/sol2-c1.asm: Likewise.
5601 * config/sparc/sol2-ci.asm: Likewise.
5602 * config/sparc/sol2-cn.asm: Likewise.
5603 * config/spu/divmodti4.c: Likewise.
5604 * config/spu/divv2df3.c: Likewise.
5605 * config/spu/float_disf.c: Likewise.
5606 * config/spu/float_unsdidf.c: Likewise.
5607 * config/spu/float_unsdisf.c: Likewise.
5608 * config/spu/float_unssidf.c: Likewise.
5609 * config/spu/mfc_multi_tag_release.c: Likewise.
5610 * config/spu/mfc_multi_tag_reserve.c: Likewise.
5611 * config/spu/mfc_tag_release.c: Likewise.
5612 * config/spu/mfc_tag_reserve.c: Likewise.
5613 * config/spu/mfc_tag_table.c: Likewise.
5614 * config/spu/multi3.c: Likewise.
5615 * config/spu/spu_internals.h: Likewise.
5616 * config/spu/spu_intrinsics.h: Likewise.
5617 * config/spu/spu_mfcio.h: Likewise.
5618 * config/spu/vec_types.h: Likewise.
5619 * config/spu/vmx2spu.h: Likewise.
5620 * config/stormy16/stormy16-lib2.c: Likewise.
5621 * config/svr4.h: Likewise.
5622 * config/sync.c: Likewise.
5623 * config/v850/lib1funcs.asm: Likewise.
5624 * config/vxlib-tls.c: Likewise.
5625 * config/vxlib.c: Likewise.
5626 * config/vxworks-dummy.h: Likewise.
5627 * config/xtensa/crti.asm: Likewise.
5628 * config/xtensa/crtn.asm: Likewise.
5629 * config/xtensa/ieee754-df.S: Likewise.
5630 * config/xtensa/ieee754-sf.S: Likewise.
5631 * config/xtensa/lib1funcs.asm: Likewise.
5632 * config/xtensa/lib2funcs.S: Likewise.
5633 * config/xtensa/linux-unwind.h: Likewise.
5634 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5635 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5636 * coretypes.h: Likewise.
5637 * crtstuff.c: Likewise.
5638 * defaults.h: Likewise.
5639 * dwarf2.h: Likewise.
5640 * emutls.c: Likewise.
5641 * gbl-ctors.h: Likewise.
5642 * gcov-io.h: Likewise.
5643 * ginclude/float.h: Likewise.
5644 * ginclude/iso646.h: Likewise.
5645 * ginclude/stdarg.h: Likewise.
5646 * ginclude/stdbool.h: Likewise.
5647 * ginclude/stddef.h: Likewise.
5648 * ginclude/stdfix.h: Likewise.
5649 * ginclude/stdint-gcc.h: Likewise.
5650 * ginclude/tgmath.h: Likewise.
5651 * gthr-aix.h: Likewise.
5652 * gthr-dce.h: Likewise.
5653 * gthr-gnat.c: Likewise.
5654 * gthr-gnat.h: Likewise.
5655 * gthr-lynx.h: Likewise.
5656 * gthr-mipssde.h: Likewise.
5657 * gthr-nks.h: Likewise.
5658 * gthr-posix.c: Likewise.
5659 * gthr-posix.h: Likewise.
5660 * gthr-posix95.h: Likewise.
5661 * gthr-rtems.h: Likewise.
5662 * gthr-single.h: Likewise.
5663 * gthr-solaris.h: Likewise.
5664 * gthr-tpf.h: Likewise.
5665 * gthr-vxworks.h: Likewise.
5666 * gthr-win32.h: Likewise.
5667 * gthr.h: Likewise.
5668 * libgcc2.c: Likewise.
5669 * libgcc2.h: Likewise.
5670 * libgcov.c: Likewise.
5671 * tsystem.h: Likewise.
5672 * typeclass.h: Likewise.
5673 * unwind-c.c: Likewise.
5674 * unwind-compat.h: Likewise.
5675 * unwind-dw2-fde-compat.c: Likewise.
5676 * unwind-dw2-fde-darwin.c: Likewise.
5677 * unwind-dw2-fde-glibc.c: Likewise.
5678 * unwind-dw2-fde.c: Likewise.
5679 * unwind-dw2-fde.h: Likewise.
5680 * unwind-dw2.c: Likewise.
5681 * unwind-dw2.h: Likewise.
5682 * unwind-generic.h: Likewise.
5683 * unwind-pe.h: Likewise.
5684 * unwind-sjlj.c: Likewise.
5685 * unwind.inc: Likewise.
5686 * config/arm/neon-gen.ml: Change generated copyright header to
5687 refer to version 3 of the GNU General Public License with
5688 version 3.1 of the GCC Runtime Library Exception and to point
5689 readers at the COPYING3 and COPYING3.RUNTIME files and the
5690 FSF's license web page.
5691 * config/arm/arm_neon.h: Regenerate.
5692
5693 2009-04-09 Jakub Jelinek <jakub@redhat.com>
5694
5695 * config/cris/cris.md: Change copyright header to refer to version
5696 3 of the GNU General Public License.
5697 * doc/install.texi2html: Change copyright header to refer to version
5698 3 of the GNU General Public License and to point readers at the
5699 COPYING3 file and the FSF's license web page.
5700 * config/vax/linux.h: Likewise.
5701
5702 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
5703
5704 * config/i386/i386.md (cmpcc): New.
5705 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5706 (sync_compare_and_swap_cc*): Delete.
5707
5708 * config/s390/s390.c (s390_compare_emitted): Remove.
5709 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5710 s390_compare_emitted used to be handled. Assert that modes match.
5711 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5712 refer to sync_compare_and_swap_ccsi.
5713 * config/s390/s390.h (s390_compare_emitted): Remove.
5714 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5715 instead of s390_compare_emitted.
5716 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5717 instead of s390_compare_emitted.
5718 * config/s390/s390.md (cmpcc): New.
5719 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5720 CC_REGNUM, do not pretend it's set.
5721 (sync_compare_and_swap_cc*): Delete.
5722 * config/s390/predicates.md (cc_reg_operand): New.
5723
5724 * expr.c (sync_compare_and_swap_cc): Delete.
5725 * optabs.h (sync_compare_and_swap_cc): Delete.
5726 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5727 is being used with can_compare_p.
5728 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5729 (find_cc_set): New.
5730 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5731 look for a MODE_CC set instead. Use emit_store_flag.
5732 (expand_compare_and_swap_loop): Likewise, with some additional
5733 complication to avoid a force_reg when useless. Use
5734 emit_cmp_and_jump_insns.
5735 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5736 * doc/md.texi (sync_compare_and_swap_cc): Merge with
5737 sync_compare_and_swap documentation.
5738
5739 2009-04-09 Jan Hubicka <jh@suse.cz>
5740
5741 * except.c (find_prev_try): Break out from ....
5742 (duplicate_eh_regions): ... here; properly update prev_try pointers
5743 when duplication part of tree.
5744 (dump_eh_tree): Improve dumping.
5745 (verify_eh_region): New.
5746 (verify_eh_tree): Use it.
5747
5748 2009-04-06 Richard Guenther <rguenther@suse.de>
5749
5750 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5751 &ARRAY addresses by adjusting their types and prepending
5752 a conversion.
5753 * tree-cfg.c (verify_gimple_assign_single): Verify that
5754 addresses are correct.
5755
5756 2009-04-09 Richard Guenther <rguenther@suse.de>
5757
5758 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5759 indices into an array reference if possible.
5760 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5761 Fold POINTER_PLUS_EXPR statements with invariant address.
5762
5763 2009-04-09 Alan Modra <amodra@bigpond.net.au>
5764
5765 PR target/39634
5766 * config.gcc (powerpc64-*-linux*): Always build biarch.
5767
5768 2009-04-09 Joseph Myers <joseph@codesourcery.com>
5769
5770 PR c/39613
5771 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5772 it and pedwarn if this results in an INTEGER_CST.
5773
5774 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5775
5776 * doc/install.texi: Update minimum GMP version. Remove obsolete
5777 text in MPFR section.
5778
5779 2009-04-08 Jakub Jelinek <jakub@redhat.com>
5780
5781 * dwarf2out.c (class_scope_p): New static inline.
5782 (class_or_namespace_scope_p): Use it.
5783 (gen_variable_die): Use DW_TAG_member tag for static data member
5784 declarations instead of DW_TAG_variable.
5785
5786 PR middle-end/39573
5787 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
5788 variables.
5789
5790 2009-04-08 Richard Guenther <rguenther@suse.de>
5791
5792 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
5793 valueize random data.
5794
5795 2009-04-08 David Edelsohn <edelsohn@gnu.org>
5796
5797 * config.gcc (aix tm_file): Add aix-stdint.h.
5798 (aix tm clause use_gcc_stdint): Set to wrap.
5799 * config/rs6000/aix-stdint.h: New file.
5800
5801 2009-04-08 Richard Guenther <rguenther@suse.de>
5802
5803 PR middle-end/36291
5804 * tree-dfa.c (add_referenced_var): Do not recurse into
5805 global initializers.
5806 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
5807 exposed variables.
5808 (fold_const_aggregate_ref): Likewise.
5809
5810 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
5811
5812 * recog.c (ordered_comparison_operator): New.
5813 * gensupport.c (std_preds): Add it.
5814 * doc/md.texi (Machine-Independent Predicates): Document it.
5815
5816 2009-04-08 Jan Hubicka <jh@suse.cz>
5817
5818 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
5819 * function.h (rtl_eh): Remove exception_handler_label_map.
5820 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
5821 remove_exception_handler_label, for_each_eh_label_1): Remove.
5822 (rtl_remove_unreachable_regions): Remove.
5823 (convert_from_eh_region_ranges): Do not remove unreachable regions.
5824 (find_exception_handler_labels): Don't build the hashtable.
5825 (maybe_remove_eh_handler): Remove.
5826 (for_each_eh_label): Rewrite to walk the tree.
5827 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
5828 * except.h (maybe_remove_eh_handler): Remove.
5829 * passes.c (init_optimization_passes): Schedule second EH cleanup
5830 before out-of-ssa.
5831 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
5832 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
5833
5834 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
5835
5836 * genoutput.c (validate_optab_operands): New.
5837 (gen_insn, gen_expand): Call it.
5838
5839 * genflags.c (gen_insn): Detect misused iterators.
5840 (main): Pass line_no to gen_insn, exit with status 1 on error.
5841
5842 * genextract.c (line_no): Make global.
5843 (VEC_safe_set_locstr): Change assertion to error message.
5844 (main): Exit with status 1 on error.
5845
5846 2009-04-08 Joseph Myers <joseph@codesourcery.com>
5847
5848 PR c/39614
5849 PR c/39673
5850 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5851 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5852 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
5853 * c-convert.c (convert): Do not call fold on results of conversion
5854 functions when the result is a C_MAYBE_CONST_EXPR.
5855 * c-parser.c (c_parser_postfix_expression): Do not fold condition
5856 of __builtin_choose_expr.
5857 * c-typeck.c (remove_c_maybe_const_expr): New.
5858 (build_unary_op, build_conditional_expr, build_compound_expr,
5859 build_binary_op, c_objc_common_truthvalue_conversion): Call
5860 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
5861 integer operands.
5862
5863 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
5864
5865 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
5866 CODE to produce a new one. Add a prototype to use fold_convert_const
5867
5868 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
5869
5870 PR bootstrap/39660
5871 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
5872 mix declarations and code.
5873
5874 2009-04-08 Ben Elliston <bje@au.ibm.com>
5875
5876 * gcc.c: Replace `CC' with `GCC' throughout.
5877
5878 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
5879
5880 * doc/invoke.texi: Document Atom support.
5881
5882 2009-04-07 Jason Merrill <jason@redhat.com>
5883
5884 PR c++/25185
5885 * c-common.h, c-common.c: Add flag_pretty_templates.
5886 * c-opts.c (c_common_handle_option): Set it.
5887 * c.opt: Add -fno-pretty-templates.
5888 * doc/invoke.texi (C++ Dialect Options): Likewise.
5889
5890 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
5891
5892 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
5893 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5894 (ia64_expand_builtin): Likewise.
5895
5896 2009-04-07 Martin Jambor <mjambor@suse.cz>
5897
5898 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
5899 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
5900 ADDR_EXPRS are include too.
5901
5902 2009-04-07 Richard Guenther <rguenther@suse.de>
5903
5904 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
5905 decls are only used if passes as parameters or if they are
5906 local statics and the call is not to a builtin.
5907 (call_may_clobber_ref_p_1): Likewise.
5908
5909 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
5910
5911 * expr.c (do_store_flag): Remove last argument. Simplify code
5912 to avoid duplication of tests already done by can_compare_p.
5913 (expand_expr_real_1): Adjust caller.
5914
5915 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
5916
5917 * optabs.c (can_compare_p): Test the predicate of a
5918 cbranch and cstore pattern.
5919
5920 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
5921
5922 * expr.c (convert_move): Use emit_store_flag instead of
5923 "emulating" it.
5924
5925 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
5926
5927 * config/i386/i386.c (ix86_compare_emitted): Remove.
5928 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
5929 ix86_compare_op0 like ix86_compare_emitted used to be handled.
5930 * config/i386/i386.h (ix86_compare_emitted): Remove.
5931 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
5932 instead of ix86_compare_emitted.
5933 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
5934
5935 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
5936
5937 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
5938 Add t-sysroot-suffix to tmake_file.
5939 * config/print-sysroot-suffix.sh: New file.
5940 * config/t-sysroot-suffix: New file.
5941
5942 2009-04-07 Ben Elliston <bje@au.ibm.com>
5943
5944 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
5945 as the latter produces a warning when the target does not support
5946 infinity.
5947
5948 2009-04-07 Ben Elliston <bje@au.ibm.com>
5949
5950 * dfp.c: Replace type punning assignments with memcpy throughout.
5951 * Makefile.in (dfp.o-warn): Remove.
5952
5953 2009-04-07 Alan Modra <amodra@bigpond.net.au>
5954
5955 PR target/39634
5956 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
5957 Include soft-fp/t-softfp after rs6000/t-linux64.
5958
5959 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
5960
5961 * stor-layout.c (set_sizetype): Use the full precision of their
5962 machine mode for bitsize types.
5963
5964 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
5965
5966 * config/i386/i386.md: Revert 2 accidental checkins.
5967
5968 2009-04-06 Joey Ye <joey.ye@intel.com>
5969 Xuepeng Guo <xuepeng.guo@intel.com>
5970 H.J. Lu <hongjiu.lu@intel.com>
5971
5972 Atom pipeline model, tuning and insn selection.
5973 * config.gcc (atom): Add atom config options and target.
5974
5975 * config/i386/atom.md: New.
5976
5977 * config/i386/i386.c (atom_cost): New cost.
5978 (m_ATOM): New macro flag.
5979 (initial_ix86_tune_features): Set m_ATOM.
5980 (x86_accumulate_outgoing_args): Likewise.
5981 (x86_arch_always_fancy_math_387): Likewise.
5982 (processor_target): Add Atom cost.
5983 (cpu_names): Add Atom cpu name.
5984 (override_options): Set Atom ISA.
5985 (ix86_issue_rate): New case PROCESSOR_ATOM.
5986 (ix86_adjust_cost): Likewise.
5987
5988 * config/i386/i386.h (TARGET_ATOM): New target macro.
5989 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
5990 (TARGET_OPT_AGU): New target option.
5991 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
5992 (processor_type): Add PROCESSOR_ATOM.
5993
5994 * config/i386/i386.md (cpu): Add new value "atom".
5995 (use_carry, movu): New attr.
5996 (atom.md): Include atom.md.
5997 (adddi3_carry_rex64): Set attr "use_carry".
5998 (addqi3_carry): Likewise.
5999 (addhi3_carry): Likewise.
6000 (addsi3_carry): Likewise.
6001 (*addsi3_carry_zext): Likewise.
6002 (subdi3_carry_rex64): Likewise.
6003 (subqi3_carry): Likewise.
6004 (subhi3_carry): Likewise.
6005 (subsi3_carry): Likewise.
6006 (x86_movdicc_0_m1_rex64): Likewise.
6007 (*x86_movdicc_0_m1_se): Likewise.
6008 (x86_movsicc_0_m1): Likewise.
6009 (*x86_movsicc_0_m1_se): Likewise.
6010 (*adddi_1_rex64): Emit add insn as much as possible.
6011 (*addsi_1): Likewise.
6012 (return_internal): Set atom_unit.
6013 (return_internal_long): Likewise.
6014 (return_pop_internal): Likewise.
6015 (*rcpsf2_sse): Set atom_sse_attr attr.
6016 (*qrt<mode>2_sse): Likewise.
6017 (*prefetch_sse): Likewise.
6018
6019 * config/i386/i386-c.c (ix86_target_macros_internal): New case
6020 PROCESSOR_ATOM.
6021 (ix86_target_macros_internal): Likewise.
6022
6023 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
6024 (*prefetch_sse_rex): Likewise.
6025 (sse_rcpv4sf2): Likewise.
6026 (sse_vmrcpv4sf2): Likewise.
6027 (sse_sqrtv4sf2): Likewise.
6028 (<sse>_vmsqrt<mode>2): Likewise.
6029 (sse_ldmxcsr): Likewise.
6030 (sse_stmxcsr): Likewise.
6031 (*sse_sfence): Likewise.
6032 (sse2_clflush): Likewise.
6033 (*sse2_mfence): Likewise.
6034 (*sse2_lfence): Likewise.
6035 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
6036 (<sse>_movup<ssemodesuffixf2c>): Likewise.
6037 (avx_movdqu<avxmodesuffix>): Likewise.
6038 (avx_lddqu<avxmodesuffix>): Likewise.
6039 (sse2_movntv2di): Change attr "type" to "ssemov".
6040 (sse2_movntsi): Likewise.
6041 (rsqrtv8sf2): Change attr "type" to "sseadd".
6042 (sse3_addsubv2df3): Set attr "atom_unit".
6043 (sse3_h<plusminus_insn>v4sf3): Likewise.
6044 (*sse2_pmaddwd): Likewise.
6045 (*vec_extractv2di_1_rex64): Likewise.
6046 (*vec_extractv2di_1_avx): Likewise.
6047 (sse2_psadbw): Likewise.
6048 (ssse3_phaddwv8hi3): Likewise.
6049 (ssse3_phaddwv4hi3): Likewise.
6050 (ssse3_phadddv4si3): Likewise.
6051 (ssse3_phadddv2si3): Likewise.
6052 (ssse3_phaddswv8hi3): Likewise.
6053 (ssse3_phaddswv4hi3): Likewise.
6054 (ssse3_phsubwv8hi3): Likewise.
6055 (ssse3_phsubwv4hi3): Likewise.
6056 (ssse3_phsubdv4si3): Likewise.
6057 (ssse3_phsubdv2si3): Likewise.
6058 (ssse3_phsubswv8hi3): Likewise.
6059 (ssse3_phsubswv4hi3): Likewise.
6060 (ssse3_pmaddubsw128): Likewise.
6061 (sse3_pmaddubsw: Likewise.
6062 (ssse3_palignrti): Likewise.
6063 (ssse3_palignrdi): Likewise.
6064
6065 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
6066
6067 * doc/install.texi (Specific): Fix two cross-references to MinGW.
6068
6069 2009-04-06 Richard Guenther <rguenther@suse.de>
6070
6071 PR tree-optimization/28868
6072 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6073 of which PHI results we inserted.
6074 (insert_into_preds_of_block): Record inserted PHIs.
6075 (eliminate): Eliminate redundant PHI nodes.
6076 (init_pre): Init inserted_phi_names.
6077
6078 2009-04-06 Richard Guenther <rguenther@suse.de>
6079
6080 PR tree-optimization/39643
6081 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6082 IMAGPART_EXPRs of complex constants.
6083 (execute_fold_all_builtins): If we folded a call queue
6084 TODO_update_address_taken.
6085
6086 2009-04-06 Jan Hubicka <jh@suse.cz>
6087
6088 PR middle-end/39659
6089 * except.c (remove_unreachable_regions): Propagate may_contain_throw
6090 flag.
6091
6092 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
6093
6094 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6095 delay slot.
6096 (ic_invalidate_array): Likewise.
6097
6098 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6099
6100 * calls.c (emit_library_call_value_1): Fix a problem with parameter
6101 alignment for library calls.
6102
6103 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
6104
6105 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
6106 (mingw32 tm clause use_gcc_stdint): Set to wrap.
6107 * config/i386/mingw-stdint.h: New file.
6108
6109 2009-04-05 Richard Guenther <rguenther@suse.de>
6110
6111 PR tree-optimization/39648
6112 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6113 our &A vs. &A[0] IL deficiencies.
6114
6115 2009-04-04 Jan Hubicka <jh@suse.cz>
6116
6117 * except.c (sjlj_find_directly_reachable_regions): Be ready for
6118 removed toplevel regions.
6119 (sjlj_mark_call_sites): Likewise.
6120
6121 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
6122
6123 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
6124 (cygwin tm clause use_gcc_stdint): Set to wrap.
6125 * config/i386/cygwin-stdint.h: New file.
6126
6127 2009-04-04 Richard Guenther <rguenther@suse.de>
6128
6129 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6130 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6131 single-argument PHIs if we are in loop-closed SSA form.
6132 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6133 for the pre-condition.
6134 (slpeel_tree_peel_loop_to_edge): Likewise.
6135 (vect_build_loop_niters): Take an optional sequence to append stmts.
6136 (vect_generate_tmps_on_preheader): Likewise.
6137 (vect_do_peeling_for_loop_bound): Take extra guards for the
6138 pre-condition.
6139 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
6140 the cost model check.
6141 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
6142 guards if we are going to peel. Do not apply versioning in that case.
6143 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6144 (vect_do_peeling_for_loop_bound): Likewise.
6145 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6146 loop bound only record extra pre-conditions, do not apply loop
6147 versioning.
6148
6149 2009-04-04 Richard Guenther <rguenther@suse.de>
6150
6151 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6152 renaming code.
6153
6154 2009-04-04 Jan Hubicka <jh@suse.cz>
6155
6156 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6157 last_basic_block for size of bb->index indexed array.
6158 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6159 compute_out, link_btr_uses, build_btr_def_use_webs,
6160 build_btr_def_use_webs, migrate_btr_defs): Likewise.
6161
6162 2009-04-04 Jan Hubicka <jh@suse.cz>
6163
6164 * except.c (remove_eh_handler_and_replace): Break out from ...
6165 (remove_eh_handler): ... here.
6166 (bring_to_root): New function.
6167 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6168 handled ones, bring others to root of tree.
6169
6170 2009-04-04 Jan Hubicka <jh@suse.cz>
6171
6172 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6173 (all_phis_safe_to_merge): New function.
6174 (update_info): New structure.
6175 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6176 (cleanup_empty_eh): Update SSA if possible.
6177
6178 2009-04-04 Richard Guenther <rguenther@suse.de>
6179
6180 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6181 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6182 (append_vuse): Likewise.
6183
6184 2009-04-04 Jakub Jelinek <jakub@redhat.com>
6185
6186 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6187 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6188 instead of REG_UNSAVED for DW_CFA_undefined.
6189 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6190 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6191 outermost frame.
6192
6193 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
6194
6195 PR target/39501
6196 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6197 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6198 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6199
6200 2009-04-04 Richard Guenther <rguenther@suse.de>
6201
6202 PR tree-optimization/8781
6203 PR tree-optimization/37892
6204 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6205 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6206 (valueize_refs): Call it for *& valueizations.
6207 (shared_reference_ops_from_ref): Rename to ...
6208 (valueize_shared_reference_ops_from_ref): ... this and valueize.
6209 (shared_reference_ops_from_call): Rename to ...
6210 (valueize_shared_reference_ops_from_call): ... this and valueize.
6211 (vn_reference_lookup): Update.
6212 (visit_reference_op_call): Likewise.
6213 * tree-ssa-pre.c (phi_translate_1): Fold *&.
6214 (eliminate): Value-replace the call address in call statements.
6215
6216 2009-04-04 Richard Guenther <rguenther@suse.de>
6217
6218 PR tree-optimization/39636
6219 * tree-ssa-forwprop.c
6220 (forward_propagate_addr_into_variable_array_index): Check for
6221 GIMPLE_ASSIGN before accessing the rhs code.
6222
6223 2009-04-03 Jason Merrill <jason@redhat.com>
6224
6225 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6226
6227 2009-04-03 Steve Ellcey <sje@cup.hp.com>
6228
6229 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6230 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6231 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6232 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6233 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6234 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6235 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6236 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6237 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6238 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6239 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6240 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6241 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6242 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6243 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6244 Use fr_reg_or_fp01_operand instead of fr_register_operand
6245
6246 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6247 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6248 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6249
6250 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
6251
6252 PR rtl-optimization/39607
6253 PR rtl-optimization/39631
6254
6255 Revert:
6256
6257 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
6258 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6259 instead of DF_LR_OUT.
6260 * ira-lives.c (process_bb_node_lives): Ditto.
6261 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6262 instead of DF_LR_{OUT,IN}.
6263 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6264 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6265
6266 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
6267
6268 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6269 (execute_lower_omp): Always run but take the short way out if -fopenmp
6270 is not given.
6271 (gate_lower_omp): Remove, forcing the pass manager to always run the
6272 pass and always set PROP_gimple_lomp.
6273 (pass_lower_omp): Remove gate function.
6274 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6275 PROP_trees. Instead, require it.
6276 * ipa-cp.c (pass_ipa_cp): Likewise.
6277 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6278 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6279 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6280 and PROP_gimple_leh.
6281
6282 2009-04-03 Richard Guenther <rguenther@suse.de>
6283
6284 PR middle-end/13146
6285 PR tree-optimization/23940
6286 PR tree-optimization/33237
6287 PR middle-end/33974
6288 PR middle-end/34093
6289 PR tree-optimization/36201
6290 PR tree-optimization/36230
6291 PR tree-optimization/38049
6292 PR tree-optimization/38207
6293 PR tree-optimization/38230
6294 PR tree-optimization/38301
6295 PR tree-optimization/38585
6296 PR middle-end/38895
6297 PR tree-optimization/38985
6298 PR tree-optimization/39299
6299 * tree-ssa-structalias.h: Remove.
6300 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6301 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6302 (struct vuse_element_d): Remove.
6303 (struct vuse_vec_d): Likewise.
6304 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6305 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6306 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6307 VUSE_ELEMENT_VAR): Likewise.
6308 (struct voptype_d): Likewise.
6309 (NUM_VOP_FREE_BUCKETS): Likewise.
6310 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6311 (struct stmt_operands_d): Remove.
6312 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6313 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6314 VDEF_NUM, VDEF_VECT): Likewise.
6315 (copy_virtual_operands): Remove.
6316 (operand_build_cmp): Likewise.
6317 (create_ssa_artificial_load_stmt): Likewise.
6318 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6319 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6320 vuse_index and mayuse_index members. Pack and move done and iter_type
6321 members to the front.
6322 (SSA_OP_VMAYUSE): Remove.
6323 (SSA_OP_VIRTUAL_USES): Adjust.
6324 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6325 (unlink_stmt_vdef): Declare.
6326 (add_to_addressable_set): Remove.
6327 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6328 (vrp_visit_stmt): Likewise.
6329 * doc/tree-ssa.texi (Alias analysis): Update.
6330 * doc/invoke.texi (max-aliased-vops): Remove docs.
6331 (avg-aliased-vops): Likewise.
6332 * tree-into-ssa.c (syms_to_rename): Remove.
6333 (need_to_update_vops_p): Likewise.
6334 (need_to_initialize_update_ssa_p): Rename to ...
6335 (update_ssa_initialized_fn): ... this. Track function we are
6336 initialized for.
6337 (symbol_marked_for_renaming): Simplify.
6338 (add_new_name_mapping): Do not set need_to_update_vops_p.
6339 (dump_currdefs): Use SYMS_TO_RENAME.
6340 (rewrite_update_stmt): Always walk all uses/defs.
6341 (dump_update_ssa): Adjust.
6342 (init_update_ssa): Take function argument. Track what we are
6343 initialized for.
6344 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6345 (create_new_def_for): Initialize for cfun, assert we are initialized
6346 for cfun.
6347 (mark_sym_for_renaming): Simplify.
6348 (mark_set_for_renaming): Do not initialize update-ssa.
6349 (need_ssa_update_p): Simplify. Take function argument.
6350 (name_mappings_registered_p): Assert we ask for the correct function.
6351 (name_registered_for_update_p): Likewise.
6352 (ssa_names_to_replace): Likewise.
6353 (release_ssa_name_after_update_ssa): Likewise.
6354 (update_ssa): Likewise. Use SYMS_TO_RENAME.
6355 (dump_decl_set): Do not print a newline.
6356 (debug_decl_set): Do it here.
6357 (dump_update_ssa): And here.
6358 * tree-ssa-loop-im.c (move_computations): Adjust.
6359 (movement_possibility): Likewise.
6360 (determine_max_movement): Likewise.
6361 (gather_mem_refs_stmt): Likewise.
6362 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6363 or NAME_MEMORY_TAG.
6364 * tree-complex.c (update_all_vops): Remove.
6365 (expand_complex_move): Adjust.
6366 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6367 Simplify test for memory referencing statement. Exclude
6368 non-invariant ADDR_EXPRs.
6369 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6370 * tree-loop-distribution.c (generate_memset_zero): Adjust.
6371 (rdg_flag_uses): Likewise.
6372 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6373 related code.
6374 (tree_optimize_tail_calls_1): Also split the
6375 edge from the entry block if we have degenerate PHI nodes in
6376 the first basic block.
6377 * tree.c (init_ttree): Remove memory-tag related code.
6378 (tree_code_size): Likewise.
6379 (tree_node_structure): Likewise.
6380 (build7_stat): Re-write to be build6_stat.
6381 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6382 (SSA_VAR_P): Adjust.
6383 (struct tree_memory_tag): Remove.
6384 (struct tree_memory_partition_tag): Likewise.
6385 (union tree_node): Adjust.
6386 (build7): Re-write to be build6.
6387 * tree-pass.h (pass_reset_cc_flags): Remove.
6388 (TODO_update_address_taken): New flag.
6389 (pass_simple_dse): Remove.
6390 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6391 * params.h (MAX_ALIASED_VOPS): Remove.
6392 (AVG_ALIASED_VOPS): Likewise.
6393 * omp-low.c (expand_omp_taskreg): Update SSA form.
6394 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6395 aliases the lhs in a copy stmt.
6396 * tree-ssa-dse.c (struct address_walk_data): Remove.
6397 (memory_ssa_name_same): Likewise.
6398 (memory_address_same): Likewise.
6399 (get_kill_of_stmt_lhs): Likewise.
6400 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
6401 unused stores. Look through PHI nodes into post-dominated regions.
6402 (dse_optimize_stmt): Simplify. Properly remove stores.
6403 (tree_ssa_dse): Compute dominators.
6404 (execute_simple_dse): Remove.
6405 (pass_simple_dse): Likewise.
6406 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6407 gimple_loaded_syms and gimple_stored_syms computation.
6408 * toplev.c (dump_memory_report): Dump alias and pta stats.
6409 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6410 (vn_reference_eq): Likewise.
6411 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6412 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6413 valueize_vuses): Remove.
6414 (get_def_ref_stmt_vuses): Simplify. Rename to ...
6415 (get_def_ref_stmt_vuse): ... this.
6416 (vn_reference_lookup_2): New function.
6417 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6418 walking equivalent vuses. Simplify.
6419 (vn_reference_lookup): Likewise.
6420 (vn_reference_insert): Likewise.
6421 (vn_reference_insert_pieces): Likewise.
6422 (visit_reference_op_call): Simplify.
6423 (visit_reference_op_load): Likewise.
6424 (visit_reference_op_store): Likewise.
6425 (init_scc_vn): Remove shared_lookup_vuses initialization.
6426 (free_scc_vn): Remove shared_lookup_vuses freeing.
6427 (sort_vuses, sort_vuses_heap): Remove.
6428 (get_ref_from_reference_ops): Export.
6429 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6430 vector with single vuse pointer.
6431 (vn_reference_lookup_pieces, vn_reference_lookup,
6432 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6433 (shared_vuses_from_stmt): Remove.
6434 (get_ref_from_reference_ops): Declare.
6435 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6436 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6437 memory-tag related code.
6438 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6439 (likely_value): Add comment, skip static-chain of call statements.
6440 (surely_varying_stmt_p): Adjust.
6441 (gimplify_and_update_call_from_tree): Likewise.
6442 (execute_fold_all_builtins): Do not rebuild alias info.
6443 (gimplify_and_update_call_from_tree): Properly update VOPs.
6444 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6445 (copy_ref_info): Remove memory-tag related code.
6446 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6447 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6448 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6449 computation.
6450 * tree-ssa-dom.c (gimple_p): Remove typedef.
6451 (eliminate_redundant_computations): Adjust.
6452 (record_equivalences_from_stmt): Likewise.
6453 (avail_expr_hash): Likewise.
6454 (avail_expr_eq): Likewise.
6455 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
6456 (stmt_makes_single_load): Likewise.
6457 (stmt_makes_single_store): Likewise.
6458 * tree-ssa-alias.c: Rewrite completely.
6459 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6460 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6461 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6462 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6463 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6464 Remove public functions.
6465 (pass_reset_cc_flags): Remove.
6466 (pass_build_alias): Move ...
6467 * tree-ssa-structalias.c (pass_build_alias): ... here.
6468 * tree-ssa-alias.c (may_be_aliased): Move ...
6469 * tree-flow-inline.h (may_be_aliased): ... here.
6470 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6471 count_uses_and_derefs): Move ...
6472 * gimple.c: ... here.
6473 * gimple.h (count_uses_and_derefs): Declare.
6474 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6475 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6476 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6477 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6478 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6479 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6480 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6481 New functions.
6482 * tree-dfa.c (refs_may_alias_p): Move ...
6483 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
6484 * tree-ssa-alias.h: New file.
6485 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6486 (statement_sink_location): Likewise.
6487 * opts.c (decode_options): Do not adjust max-aliased-vops or
6488 avg-aliased-vops values.
6489 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6490 (TV_CALL_CLOBBER): Likewise.
6491 (TV_FLOW_SENSITIVE): Likewise.
6492 (TV_FLOW_INSENSITIVE): Likewise.
6493 (TV_MEMORY_PARTITIONING): Likewise.
6494 (TV_ALIAS_STMT_WALK): New timevar.
6495 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6496 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6497 (get_address_description): Remove memory-tag related code.
6498 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6499 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6500 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6501 and immediate uses in statements. Document.
6502 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6503 (dump_symbols): Remove.
6504 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6505 * alias.c (get_deref_alias_set): New function split out from ...
6506 (get_alias_set): ... here.
6507 * alias.h (get_deref_alias_set): Declare.
6508 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6509 type parameter. Remove restrict pointer handling. Create a
6510 ref-all pointer in case type-based alias sets do not conflict.
6511 (vect_analyze_data_refs): Remove SMT related code.
6512 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6513 (vectorizable_load): Likewise.
6514 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6515 (DR_SYMBOL_TAG, DR_VOPS): Remove.
6516 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6517 Ignore vops and SMTs.
6518 (dr_analyze_alias): Likewise..
6519 (free_data_ref): Likewise.
6520 (create_data_ref): Likewise.
6521 (analyze_all_data_dependences): Likewise.
6522 (get_references_in_stmt): Adjust.
6523 * tree-flow-inline.h (gimple_aliases_computed_p,
6524 gimple_addressable_vars, gimple_call_clobbered_vars,
6525 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6526 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6527 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6528 gimple_mem_ref_stats): Remove.
6529 (gimple_vop): New function.
6530 (op_iter_next_use): Remove vuses and mayuses cases.
6531 (op_iter_next_def): Remove vdefs case.
6532 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6533 (clear_and_done_ssa_iter): Do not set removed fields.
6534 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
6535 Assert we are not iterating over vuses or vdefs if not also
6536 iterating over uses or defs.
6537 (op_iter_init_use): Likewise.
6538 (op_iter_init_def): Likewise.
6539 (op_iter_next_vdef): Remove.
6540 (op_iter_next_mustdef): Likewise.
6541 (op_iter_init_vdef): Likewise.
6542 (compare_ssa_operands_equal): Likewise.
6543 (link_use_stmts_after): Handle vuse operand.
6544 (is_call_used): Use is_call_clobbered.
6545 (is_call_clobbered): Global variables are always call clobbered,
6546 query the call-clobbers bitmap.
6547 (mark_call_clobbered): Ignore global variables.
6548 (clear_call_clobbered): Likewise.
6549 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6550 virtual operands sanity check.
6551 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6552 Remove.
6553 (TARGET_MEM_REF): Remove TMR_TAG operand.
6554 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6555 Remove call-clobber related code.
6556 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
6557 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6558 partitions or escape reason.
6559 (get_single_def_stmt, get_single_def_stmt_from_phi,
6560 get_single_def_stmt_with_phi): Remove.
6561 (dump_referenced_vars): Tidy.
6562 (get_ref_base_and_extent): Allow bare decls.
6563 (collect_dfa_stats): Adjust.
6564 * graphite.c (rename_variables_in_stmt): Adjust.
6565 (graphite_copy_stmts_from_block): Likewise.
6566 (translate_clast): Likewise.
6567 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6568 (EXPR_DIES): New.
6569 (translate_vuse_through_block): Use the oracle.
6570 (phi_translate_1): Adjust.
6571 (value_dies_in_block_x): Use the oracle. Cache the outcome
6572 in EXPR_DIES.
6573 (valid_in_sets): Check if the VUSE for
6574 a REFERENCE is available.
6575 (eliminate): Do not remove stmts during elimination,
6576 instead queue and remove them afterwards.
6577 (do_pre): Do not rebuild alias info.
6578 (pass_pre): Run TODO_rebuild_alias before PRE.
6579 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6580 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6581 (mark_all_v_defs_stmt): Remove.
6582 (mark_all_v_defs_seq): Adjust.
6583 (sra_replace): Likewise.
6584 (scalarize_use): Likewise.
6585 (scalarize_copy): Likewise.
6586 (scalarize_init): Likewise.
6587 (scalarize_ldst): Likewise.
6588 (todoflags): Remove.
6589 (tree_sra): Do not rebuild alias info.
6590 (tree_sra_early): Adjust.
6591 (pass_sra): Run TODO_update_address_taken before SRA.
6592 * tree-predcom.c (set_alias_info): Remove.
6593 (prepare_initializers_chain): Do not call it.
6594 (mark_virtual_ops_for_renaming): Adjust.
6595 (mark_virtual_ops_for_renaming_list): Remove.
6596 (initialize_root_vars): Adjust.
6597 (initialize_root_vars_lm): Likewise.
6598 (prepare_initializers_chain): Likewise.
6599 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6600 (may_propagate_copy_into_stmt): Likewise.
6601 (merge_alias_info): Do nothing for now.
6602 (propagate_tree_value_into_stmt): Adjust.
6603 (stmt_may_generate_copy): Likewise.
6604 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6605 not mark symbols for renaming.
6606 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6607 with the same statement, make sure to update the new pointed-to one.
6608 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6609 call statements, do not mark symbols for renaming.
6610 (mark_operand_necessary): Dump something.
6611 (ref_may_be_aliased): New function.
6612 (mark_aliased_reaching_defs_necessary_1): New helper function.
6613 (mark_aliased_reaching_defs_necessary): Likewise.
6614 (mark_all_reaching_defs_necessary_1): Likewise.
6615 (mark_all_reaching_defs_necessary): Likewise.
6616 (propagate_necessity): Do not process virtual PHIs. For
6617 non-aliased loads mark all reaching definitions as necessary.
6618 For aliased loads and stores mark the immediate dominating
6619 aliased clobbers as necessary.
6620 (visited): New global static.
6621 (perform_tree_ssa_dce): Free visited bitmap after propagating
6622 necessity.
6623 (remove_dead_phis): Perform simple dead virtual PHI removal.
6624 (remove_dead_stmt): Properly unlink virtual operands when
6625 removing stores.
6626 (eliminate_unnecessary_stmts): Schedule PHI removal after
6627 stmt removal.
6628 * tree-ssa-ter.c (is_replaceable_p): Adjust.
6629 (process_replaceable): Likewise.
6630 (find_replaceable_in_bb): Likewise.
6631 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6632 based on the single gimple vop.
6633 (verify_flow_insensitive_alias_info): Remove.
6634 (verify_flow_sensitive_alias_info): Likewise.
6635 (verify_call_clobbering): Likewise.
6636 (verify_memory_partitions): Likewise.
6637 (verify_alias_info): Likewise.
6638 (verify_ssa): Adjust..
6639 (execute_update_addresses_taken): Export. Update SSA
6640 manually. Optimize only when optimizing. Use a local bitmap.
6641 (pass_update_address_taken): Remove TODO_update_ssa, add
6642 TODO_dump_func.
6643 (pass_update_address_taken): Just use TODO_update_address_taken.
6644 (init_tree_ssa): Do not initialize addressable_vars.
6645 (verify_ssa): Verify new VUSE / VDEF properties.
6646 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6647 Do not call verify_alias_info.
6648 (delete_tree_ssa): Clear the VUSE, VDEF operands.
6649 Do not free the loaded and stored syms bitmaps. Reset the escaped
6650 and callused solutions. Do not free addressable_vars.
6651 Remove memory-tag related code.
6652 (warn_uninitialized_var): Aliases are always available.
6653 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6654 * lambda-code.c (can_put_in_inner_loop): Adjust.
6655 (can_put_after_inner_loop): Likewise.
6656 (perfect_nestify): Likewise.
6657 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6658 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6659 (vectorizable_conversion): Do not mark symbols for renaming.
6660 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6661 (expand_call_inline): Unlink the calls virtual operands before
6662 replacing it.
6663 (tree_function_versioning): Do not call update_ssa if we are not
6664 updating clones. Simplify.
6665 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6666 (propagate_with_phi): Likewise..
6667 * tree-outof-ssa.c (create_temp): Remove memory tag and call
6668 clobber code. Assert we are not aliased or global.
6669 * tree-flow.h: Include tree-ssa-alias.h
6670 (enum escape_type): Remove.
6671 (struct mem_sym_stats_d): Likewise.
6672 (struct mem_ref_stats_d): Likewise.
6673 (struct gimple_df): Add vop member. Remove global_var,
6674 call_clobbered_vars, call_used_vars, addressable_vars,
6675 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
6676 escaped and callused members.
6677 (struct ptr_info_def): Remove all members, add points-to solution
6678 member pt.
6679 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6680 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6681 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6682 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6683 (tree-ssa-alias.o): Likewise.
6684 (toplev.o): Add tree-ssa-alias.h
6685 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6686 * gimple.c (gimple_set_bb): Fix off-by-one error.
6687 (is_gimple_reg): Do not handle memory tags.
6688 (gimple_copy): Also copy virtual operands.
6689 Delay updating the statement. Do not reset loaded and stored syms.
6690 (gimple_set_stored_syms): Remove.
6691 (gimple_set_loaded_syms): Likewise.
6692 (gimple_call_copy_skip_args): Copy the virtual operands
6693 and mark the new statement modified.
6694 * tree-ssa-structalias.c (may_alias_p): Remove.
6695 (set_uids_in_ptset): Take the alias set to prune with as
6696 parameter. Fold in the alias test of may_alias_p.
6697 (compute_points_to_sets): Compute whether a ptr is dereferenced
6698 in a local sbitmap.
6699 (process_constraint): Deal with &ANYTHING on the lhs, reject all
6700 other ADDRESSOF constraints on the lhs.
6701 (get_constraint_for_component_ref): Assert that we don't get
6702 ADDRESSOF constraints from the base of the reference.
6703 Properly generate UNKNOWN_OFFSET for DEREF if needed.
6704 (struct variable_info): Remove collapsed_to member.
6705 (get_varinfo_fc): Remove.
6706 (new_var_info): Do not set collapsed_to.
6707 (dump_constraint): Do not follow cycles.
6708 (dump_constraint_graph): Likewise.
6709 (build_pred_graph): Likewise.
6710 (build_succ_graph): Likewise.
6711 (rewrite_constraints): Likewise.
6712 (do_simple_structure_copy): Remove.
6713 (do_rhs_deref_structure_copy): Remove.
6714 (do_lhs_deref_structure_copy): Remove.
6715 (collapse_rest_of_var): Remove.
6716 (do_structure_copy): Re-implement.
6717 (pta_stats): New global variable.
6718 (dump_pta_stats): New function.
6719 (struct constraint_expr): Make offset signed.
6720 (UNKNOWN_OFFSET): Define special value.
6721 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6722 (solution_set_expand): New helper function split out from ...
6723 (do_sd_constraint): ... here.
6724 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
6725 (do_ds_constraint): Likewise.
6726 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
6727 and CALLUSED = *CALLUSED.
6728 (set_union_with_increment): Make inc argument signed.
6729 (type_safe): Remove.
6730 (get_constraint_for_ptr_offset): Handle unknown and negative
6731 constant offsets.
6732 (first_vi_for_offset): Handle offsets before start. Bail
6733 out early for offsets beyond the variable extent.
6734 (first_or_preceding_vi_for_offset): New function.
6735 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6736 Together with ESCAPED = *ESCAPED this properly computes reachability.
6737 (find_what_var_points_to): New function.
6738 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6739 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6740 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6741 pt_solutions_intersect): New functions.
6742 (compute_call_used_vars): Remove.
6743 (compute_may_aliases): New main entry into PTA computation.
6744 * gimple.h (gimple_p): New typedef.
6745 (struct gimple_statement_base): Remove references_memory_p.
6746 (struct gimple_statement_with_memory_ops_base): Remove
6747 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
6748 members.
6749 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6750 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6751 gimple_set_references_memory): Remove.
6752 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6753 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6754 New functions.
6755 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6756 (verify_expr): Allow RESULT_DECL.
6757 (gimple_duplicate_bb): Do not copy virtual operands.
6758 (gimple_duplicate_sese_region): Adjust.
6759 (gimple_duplicate_sese_tail): Likewise.
6760 (mark_virtual_ops_in_region): Remove.
6761 (move_sese_region_to_fn): Do not call it.
6762 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6763 and pass_simple_dse.
6764 (execute_function_todo): Handle TODO_update_address_taken,
6765 call execute_update_addresses_taken for TODO_rebuild_alias.
6766 (execute_todo): Adjust.
6767 (execute_one_pass): Init dump files early.
6768 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6769 call-clobbered.
6770 (create_general_new_stmt): Clear vops.
6771 * tree-ssa-reassoc.c (get_rank): Adjust.
6772 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6773 symbols for renaming.
6774 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6775 (PARAM_AVG_ALIASED_VOPS): Likewise.
6776 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6777 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
6778 * tree-ssa-operands.c: Simplify for new virtual operand representation.
6779 (operand_build_cmp, copy_virtual_operands,
6780 create_ssa_artificial_load_stmt, add_to_addressable_set,
6781 gimple_add_to_addresses_taken): Remove public functions.
6782 (unlink_stmt_vdef): New function.
6783
6784 2009-04-03 Alan Modra <amodra@bigpond.net.au>
6785
6786 * config.gcc (powerpc-*-linux*): Merge variants.
6787
6788 2009-04-02 Chao-ying Fu <fu@mips.com>
6789 James Grosbach <james.grosbach@microchip.com>
6790
6791 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
6792 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
6793 cop0_sp_offset.
6794 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
6795 keep_interrupts_masked_p, use_debug_exception_return_p.
6796 (mips_attribute_table): Add interrupt, use_shadow_register_set,
6797 keep_interrupts_masked, use_debug_exception_return.
6798 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
6799 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
6800 New functions.
6801 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
6802 (mips_print_operand): Process COP0 registers to print $0 .. $31
6803 correctly for GAS to process.
6804 (mips_interrupt_extra_call_saved_reg_p): New function.
6805 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
6806 extra registers.
6807 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6808 (mips_compute_frame_info): Add supports for interrupt context that
6809 includes doubleword accumulators and COP0 registers.
6810 (mips_for_each_saved_acc): New function.
6811 (mips_for_each_saved_gpr_and_fpr): Change the function name from
6812 mips_for_each_saved_reg.
6813 (mips_save_reg): Save accumulators.
6814 (mips_kernel_reg_p): A new for_each_rtx callback.
6815 (mips_expand_prologue): Support interrupt handlers.
6816 (mips_restore_reg): Restore accumulators.
6817 (mips_expand_epilogue): Support interrupt handlers.
6818 (mips_can_use_return_insn): Return false for interrupt handlers.
6819 (mips_epilogue_uses): New function.
6820 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
6821 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
6822 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
6823 cop0_move): New instructions.
6824 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
6825 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
6826 defines.
6827 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
6828 New defines.
6829 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
6830 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
6831 interrupt handlers, we use K0 as the temporary register.
6832 (EPILOGUE_USES): Change to a function call.
6833 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
6834 handlers, we use K0 as the temporary register.
6835
6836 * doc/extend.texi (Function Attributes): Document interrupt,
6837 use_shadow_register_set, keep_interrupts_masked,
6838 use_debug_exception_return for MIPS attributes.
6839
6840 2009-04-03 Alan Modra <amodra@bigpond.net.au>
6841
6842 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
6843 Remove a number of t-files from tmake_file.
6844 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
6845 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
6846 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
6847 target_prototype, not TARGET_PROTOTYPE.
6848 (LINK_OS_GNU_SPEC): Define.
6849 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
6850 and darwin-ldoubdle.c.
6851
6852 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
6853
6854 PR driver/39293
6855 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
6856 (cpp_options): Ditto.
6857 (default_compilers): Ditto.
6858 (display_help): Ditto.
6859 (process_command): Ditto.
6860 (do_spec_1): Ditto.
6861 (set_input): Use lbasename instead of duplicate code.
6862 (save_temps_prefix): New static for -save-temps=obj.
6863 (save_temps_length): Ditto.
6864
6865 * doc/invoke.texi (-save-temps=obj): Document new variant to
6866 -save-temps switch.
6867
6868 2009-04-02 Jeff Law <law@redhat.com>
6869
6870 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
6871 variable.
6872
6873 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6874
6875 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
6876 * configure: Regenerated.
6877
6878 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
6879
6880 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
6881 share the argument list.
6882
6883 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
6884
6885 Merge
6886
6887 2009-02-12 Diego Novillo <dnovillo@google.com>
6888
6889 * varpool.c (debug_varpool): New.
6890 * cgraph.h (debug_varpool): Declare.
6891
6892 2009-04-02 Jan Hubicka <jh@suse.cz>
6893
6894 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
6895 pass.
6896
6897 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
6898
6899 * config/i386/i386.c (ix86_abi): Move initialization to ...
6900 (override_options): Here.
6901
6902 2009-04-02 Christian Bruel <christian.bruel@st.com>
6903
6904 * config/sh/sh.c (sh_dwarf_register_span): New function.
6905 (TARGET_DWARF_REGISTER_SPAN): Define.
6906 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
6907
6908 2009-04-02 Ira Rosen <irar@il.ibm.com>
6909
6910 PR tree-optimization/39595
6911 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
6912 interleaved loads group is not greater than the SLP group size.
6913
6914 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
6915
6916 * builtins.c (is_builtin_name): New.
6917 (called_as_built_in): Use is_builtin_name.
6918 * tree.h (is_builtin_name): New.
6919 * varasm.c (incorporeal_function_p): Use is_builtin_name
6920
6921 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
6922
6923 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
6924
6925 2009-04-02 Dodji Seketeli <dodji@redhat.com>
6926
6927 PR c++/26693
6928 * c-decl.c (clone_underlying_type): Move this ...
6929 * c-common.c (set_underlying_type): ... here.
6930 Also, make sure the function properly sets TYPE_STUB_DECL() on
6931 the newly created typedef variant type.
6932 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
6933 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
6934 points.
6935
6936 2009-04-02 Richard Guenther <rguenther@suse.de>
6937
6938 PR tree-optimization/37221
6939 * tree-flow.h (degenerate_phi_result): Declare.
6940 * tree-ssa-dom.c (degenerate_phi_result): Export.
6941 * tree-scalar-evolution.c (analyze_initial_condition): If
6942 the initial condition is defined by a degenerate PHI node
6943 use the degenerate value.
6944
6945 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
6946
6947 PR rtl-optimization/39588
6948 * combine.c (merge_outer_ops): Do not set the constant when this
6949 is not necessary.
6950 (simplify_shift_const_1): Do not modify it either in this case.
6951
6952 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
6953
6954 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
6955 tuning is deprecated if -mtune value is set to an Itanium1 variant.
6956
6957 2009-04-01 Janis Johnson <janis187@us.ibm.com>
6958
6959 PR c/29027
6960 * c-lex.c (interpret_float): Default (no suffix) is double.
6961
6962 2009-04-1 Xinliang David Li <davidxl@google.com>
6963
6964 * config/i386/i386.c (legitimate_constant_p): Recognize
6965 all one vector constant.
6966
6967 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6968
6969 * config/vax/vax.c: Add #includes to silence warnings.
6970 Change #include order to silence two warnings.
6971
6972 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6973
6974 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
6975 (ASM_SPEC): Pass -k to the assembler for PIC code.
6976
6977 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6978
6979 * config.gcc: Add vax-*-linux* to the switch.
6980 * config/vax/linux.h: New file. (TARGET_VERSION,
6981 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
6982
6983 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6984
6985 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
6986 Use predicate macros instead of GET_CODE() == foo.
6987 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
6988 ashlsi3, rotrsi3, <unnamed>): Likewise.
6989
6990 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
6991
6992 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
6993 jbbccihi, jbbccisi): Remova trailing whitespace.
6994 * config/vax/constraints.md: Likewise.
6995 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6996 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
6997 * config/vax/predicates.md: Likewise.
6998 * config/vax/vax.c (print_operand_address, vax_output_int_move,
6999 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
7000 * config/vax/vax.h: Likewise.
7001 * config/vax/vax.md (nonlocal_goto): Likewise.
7002
7003 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
7004
7005 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
7006 (indirectable_address_p, adjacent_operands_p): Add spaces around
7007 braces.
7008 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
7009
7010 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
7011
7012 * config/vax/vax.c (legitimate_constant_address_p,
7013 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
7014 index_term_p, reg_plus_index_p, legitimate_address_p,
7015 vax_mode_dependent_address_p): Update comments to match functions
7016 modified by the recent int->bool conversion.
7017
7018 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
7019
7020 * config/vax/builtins.md: Update copyright message.
7021 * config/vax/constraints.md: Likewise.
7022 * config/vax/netbsd-elf.h: Likewise.
7023 * config/vax/predicates.md: Likewise.
7024 * config/vax/vax-protos.h: Likewise.
7025 * config/vax/vax.c: Likewise.
7026 * config/vax/vax.h: Likewise.
7027 * config/vax/vax.md: Likewise.
7028 * config/vax/vax.opt: Likewise.
7029
7030 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
7031
7032 * config/vax/builtins.md (ffssi2, ffssi2_internal,
7033 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
7034 * config/vax/constraints.md (B, R): Likewise.
7035 * config/vax/predicates.md (external_memory_operand,
7036 nonimmediate_addsub_di_operand): Likewise.
7037 * config/vax/vax.c (vax_output_int_add): Likewise.
7038 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
7039 untyped_call): Likewise.
7040
7041 2009-04-01 Matt Thomas <matt@3am-software.com>
7042
7043 * config/vax/predicates.md: New file.
7044 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
7045 external_const_operand, nonsymbolic_operand, external_memory_operand,
7046 indirect_memory_operand, indexed_memory_operand,
7047 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7048 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7049 predicate.
7050 * config/vax/constraints.md: New file.
7051 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7052 New constraint.
7053 * config/vax/builtins.md: New file.
7054 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7055 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7056 jbbccisi): Define.
7057 * config/vax/vax.opt (mqmath): Add option.
7058 * config/vax/vax.md (isfx): Extend with DI.
7059 (VAXintQH, VAXintQHSD): Define.
7060 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7061 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7062 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7063 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7064 (movdi): Update constraints and use vax_output_int_move().
7065 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7066 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7067 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7068 nonlocal_goto): New.
7069 (mov<mode>): Extend accepted operand types.
7070 (subdi3_old): Rename from subdi3, change update constraints and use
7071 a new implementation.
7072 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
7073 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7074 MOVE_RATIO, CLEAR_RATIO): Define.
7075 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7076 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7077 (PRINT_OPERAND): Redefine using a function instead of inlined code.
7078 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7079 (split_quadword_operands): Make static and really allow variable
7080 splitting.
7081 (print_operand_address): Update for PIC generation.
7082 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7083 indexable_address_p, fixup_mathdi_operand,
7084 vax_expand_addsub_di_operands, adjacent_operands_p): New.
7085 (vax_float_literal, legitimate_constant_p,
7086 indirectable_constant_address_p, index_term_p,
7087 reg_plus_index_p): Return bool instead of int.
7088 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7089 where needed.
7090 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7091 generation.
7092 (vax_output_conditional_branch): Indent.
7093 (legitimate_constant_address_p, indirectable_constant_address_p,
7094 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7095 vax_mode_dependent_address_p): Return bool instead of int, update for
7096 PIC generation.
7097 * config/vax/vax-protos.h (legitimate_constant_address_p,
7098 legitimate_constant_p, legitimate_address_p,
7099 vax_mode_dependent_address_p): Change declaration to bool.
7100 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7101 vax_expand_addsub_di_operands, vax_output_int_subtract,
7102 vax_output_movmemsi): Declare.
7103 (split_quadword_operands, vax_float_literal): Delete declaration.
7104 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7105 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7106 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7107 ASM_OUTPUT_DWARF_PCREL): Define.
7108 (ASM_SPEC): Change definition to allow PIC generation.
7109
7110 2009-04-01 Steve Ellcey <sje@cup.hp.com>
7111
7112 * doc/sourcebuild.texi: Update front-end requirements.
7113
7114 2009-04-01 Jakub Jelinek <jakub@redhat.com>
7115
7116 PR target/39226
7117 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7118 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7119 (booldi3_internal3): Use boolean_or_operator instead of
7120 boolean_operator.
7121
7122 2009-04-01 Joseph Myers <joseph@codesourcery.com>
7123
7124 PR c/39605
7125 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7126 declarator whose size is not an integer constant expression but
7127 folds to an integer constant, then treat it as a constant
7128 subsequently.
7129
7130 2009-04-01 Richard Guenther <rguenther@suse.de>
7131
7132 * fold-const.c (fold_plusminus_mult_expr): Do not fold
7133 i * 4 + 2 to (i * 2 + 1) * 2.
7134
7135 2009-04-01 Jakub Jelinek <jakub@redhat.com>
7136
7137 PR c/37772
7138 * c-parser.c (c_parser_asm_statement): Skip until close paren and
7139 return if c_parser_asm_string_literal returned NULL.
7140
7141 2009-04-01 Nick Clifton <nickc@redhat.com>
7142
7143 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7144 already defined.
7145 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7146 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
7147 other typedefs to avoid conflicts with libgcc2.c. Define labels
7148 to gain 16-bit bit-manipulation functions from libgcc2.c and then
7149 include it.
7150 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
7151 to gain 16-bit trapping arithmetic functions from libgcc2.c and
7152 then include it.
7153
7154 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
7155
7156 * varasm.c (default_function_rodata_section): Declare DOT as
7157 const char*.
7158
7159 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
7160 Andrey Galkin <agalkin@hypercom.com>
7161
7162 PR/39492
7163 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7164 Make object_name unique for each process.
7165
7166 2009-04-01 Jakub Jelinek <jakub@redhat.com>
7167
7168 PR other/39591
7169 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7170 addressable variables in the parallel that could go out of scope while
7171 running queued tasks.
7172
7173 2009-04-01 Anatoly Sokolov <aesok@post.ru>
7174
7175 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7176 (CASE_VALUES_THRESHOLD): Redefine.
7177 * config/avr/avr.c (avr_override_options): Remove initialization of
7178 avr_case_values_threshold variable.
7179 (avr_case_values_threshold): Remove variable. Add new function.
7180 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7181 * config/avr/avr.opt (mno-tablejump): Remove option.
7182 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7183
7184 2009-04-01 DJ Delorie <dj@redhat.com>
7185
7186 * varasm.c (default_function_rodata_section): Don't assume
7187 anything about where the first '.' in the section name is.
7188
7189 2009-04-01 Alan Modra <amodra@bigpond.net.au>
7190
7191 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7192 rs6000_emit_stack_tie.
7193
7194 2009-03-31 Ian Lance Taylor <iant@google.com>
7195
7196 * tree-eh.c (tree_remove_unreachable_handlers): Compare
7197 gimple_code with GIMPLE_RESX, not RESX.
7198
7199 2009-03-31 Joseph Myers <joseph@codesourcery.com>
7200
7201 * c-common.c (c_get_ident): New.
7202 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
7203
7204 2009-04-01 Ben Elliston <bje@au.ibm.com>
7205
7206 * config/rs6000/sysv4.opt (msdata): Improve option description.
7207
7208 2009-03-31 Steve Ellcey <sje@cup.hp.com>
7209
7210 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7211 (divdf3_internal_lat): Remove.
7212 (divxf3_internal_lat): Remove.
7213 (divxf3_internal_thr): Remove.
7214 (divxf): Use divxf3_internal.
7215 * config/ia64/div.md (divsf3_internal_lat): New.
7216 (divdf3_internal_lat): New.
7217 (divxf3_internal): New.
7218
7219 2009-03-31 Joseph Myers <joseph@codesourcery.com>
7220
7221 PR c/448
7222 * Makefile.in (USE_GCC_STDINT): Define.
7223 (stmp-int-hdrs): Install stdint.h if applicable.
7224 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7225 if known.
7226 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7227 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7228 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7229 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7230 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7231 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7232 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7233 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7234 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7235 (c_common_nodes_and_builtins): Initialize
7236 underlying_wchar_type_node. Do not initialize
7237 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
7238 nodes for new types.
7239 (c_stddef_cpp_builtins): Define macros for new types.
7240 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7241 Remove.
7242 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7243 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7244 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7245 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7246 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7247 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7248 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7249 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7250 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7251 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7252 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7253 int16_type_node, int32_type_node, int64_type_node,
7254 uint8_type_node, uint16_type_node, c_uint32_type_node,
7255 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7256 int_least32_type_node, int_least64_type_node,
7257 uint_least8_type_node, uint_least16_type_node,
7258 uint_least32_type_node, uint_least64_type_node,
7259 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7260 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7261 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7262 uintptr_type_node): Define.
7263 * c-cppbuiltin.c (builtin_define_constants,
7264 builtin_define_type_minmax): New.
7265 (builtin_define_stdint_macros): Define more macros.
7266 (c_cpp_builtins): Define more limit macros.
7267 (type_suffix): New.
7268 (builtin_define_type_max): Define in terms of
7269 builtin_define_type_minmax. Remove is_long parameter. All
7270 callers changed.
7271 * config.gcc (use_gcc_stdint): Define.
7272 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7273 Add newlib-stdint.h for generic targets.
7274 * config/glibc-stdint.h, config/newlib-stdint.h,
7275 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7276 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7277 * config/score/score.h (UINTPTR_TYPE): Define.
7278 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7279 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7280 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7281 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7282 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7283 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7284 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7285 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7286 * config/spu/spu.h (STDINT_LONG32): Define.
7287 * configure.ac (use_gcc_stdint): Substitute.
7288 * configure: Regenerate.
7289 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7290 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7291 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7292 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7293 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7294 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7295 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7296 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7297 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7298 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7299 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7300 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7301 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7302 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7303 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7304 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7305 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7306 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7307 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7308 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7309 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7310 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7311 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7312 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7313 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7314 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7315 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7316 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7317 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7318
7319 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
7320
7321 * loop-iv.c (suitable_set_for_replacement): Renamed from
7322 simplify_using_assignment; changed to return bool and to accept new
7323 args DEST and SRC. Return true iff we find a source/destination pair
7324 that can be used to make a replacement, and fill SRC and DEST if so.
7325 Remove arg ALTERED. Don't deal with altered regs here. All callers
7326 changed.
7327 (simplify_using_initial_values): Deal with altered regs here and track
7328 more precisely the effect they have on the validity of our expression.
7329
7330 * loop-iv.c (simplify_using_condition): A condition of the form
7331 (EQ REG CONST) can be used to simply make a substitution.
7332 (simplify_using_initial_values): Keep track of conditions we have seen
7333 and keep using them to simplify new expressions, while applying the
7334 same substitutions to them as to the expression.
7335
7336 * simplify-rtx.c (simplify_relational_operation_1): Simplify
7337 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7338 GEU/LTU reversed.
7339
7340 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
7341 changed. Use this when trying to improve the upper bound.
7342 Generate the comparison by using simplify_gen_relational.
7343
7344 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7345
7346 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7347 functions.
7348 (simplify_using_assignment, simplify_using_initial_values): Call
7349 replace_in_expr to make replacements. Call replace_single_def_regs
7350 once on the initial version of the expression.
7351
7352 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7353
7354 PR target/27237
7355 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
7356
7357 2009-03-31 Richard Guenther <rguenther@suse.de>
7358
7359 PR middle-end/31029
7360 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7361 equality comparisons. Fold C - X CMP X if C % 2 == 1.
7362
7363 2009-03-31 Richard Guenther <rguenther@suse.de>
7364
7365 * tree.h (div_if_zero_remainder): Declare.
7366 * fold-const.c (div_if_zero_remainder): Export.
7367 * tree-ssa-forwprop.c
7368 (forward_propagate_addr_into_variable_array_index): Handle
7369 constant array index addition outside of the variable index.
7370
7371 2009-03-31 Joseph Myers <joseph@codesourcery.com>
7372
7373 PR target/39592
7374 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7375 define_splits, floatunssi<mode>2): Require x87 conversions from
7376 DImode to be permitted.
7377
7378 2009-03-31 Joseph Myers <joseph@codesourcery.com>
7379
7380 PR preprocessor/15638
7381 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7382
7383 2009-03-31 Richard Guenther <rguenther@suse.de>
7384
7385 PR middle-end/23401
7386 PR middle-end/27810
7387 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7388 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7389 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7390 a separate statement.
7391 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7392 (lookup_tmp_var): Likewise.
7393 (is_gimple_formal_tmp_or_call_rhs): Remove.
7394 (is_gimple_reg_or_call_rhs): Rename to ...
7395 (is_gimple_reg_rhs_or_call): ... this.
7396 (is_gimple_mem_or_call_rhs): Rename to ...
7397 (is_gimple_mem_rhs_or_call): ... this.
7398 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
7399 DECL_GIMPLE_REG_P only if is_formal is true.
7400 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
7401 for non-proper post-modify expression gimplification.
7402 (gimplify_self_mod_expr): For post-modify expressions gimplify
7403 the lvalue to a minimal lvalue.
7404 (rhs_predicate_for): Remove formal temp case.
7405 (gimplify_modify_expr_rhs): Likewise.
7406 (gimplify_addr_expr): Use is_gimple_reg.
7407 (gimplify_expr): Remove formal temp cases.
7408 (gimple_regimplify_operands): Likewise.
7409 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7410 and FILTER_EXPR like constants.
7411 * gimple.c (walk_gimple_op): Fix val_only initialization, use
7412 is_gimple_reg.
7413 (is_gimple_formal_tmp_rhs): Remove.
7414 (is_gimple_reg_rhs): Remove special casing.
7415 (is_gimple_mem_rhs): Fix.
7416 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7417 (is_gimple_formal_tmp_var): Remove.
7418 (is_gimple_formal_tmp_reg): Likewise.
7419 (is_gimple_min_lval): Allow invariant component ref parts.
7420 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7421 is_gimple_formal_tmp_reg): Remove declarations.
7422 * tree-cfg.c (verify_expr): Verify that variables with address
7423 taken do not have DECL_GIMPLE_REG_P set.
7424 * tree-mudflap.c (mf_build_check_statement_for): Use
7425 force_gimple_operand instead of gimplify_expr.
7426
7427 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
7428
7429 * modulo-sched.c (sms_schedule_by_order): Pass the actual
7430 schedulable rows to compute_split_row.
7431
7432 2009-03-31 Ben Elliston <bje@au.ibm.com>
7433
7434 PR target/31635
7435 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7436 OPT_mvrsave.
7437
7438 2009-03-31 Alan Modra <amodra@bigpond.net.au>
7439
7440 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7441 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7442 * configure: Regenerate.
7443 * config.in: Regenerate.
7444 * config/rs6000/rs6000.opt (mtls-markers): Add.
7445 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7446 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7447 (tls_ld_aix, tls_ld_sysv): Likewise.
7448 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7449 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7450
7451 2009-03-31 Alan Modra <amodra@bigpond.net.au>
7452
7453 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7454
7455 2009-03-30 Jan Hubicka <jh@suse.cz>
7456
7457 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7458 out of RESX.
7459 (tree_remove_unreachable_handlers): Cleanup EH predecestor
7460 detection and label handling.
7461
7462 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7463
7464 * ira-int.h (ira_allocno): Rename left_conflicts_num to
7465 left_conflicts_size.
7466 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7467 ALLOCNO_LEFT_CONFLICTS_SIZE.
7468
7469 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7470 remove_allocno_from_bucket_and_push,
7471 allocno_spill_priority_compare, push_allocnos_to_stack,
7472 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7473 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7474 (setup_allocno_left_conflicts_num): Ditto. Rename to
7475 setup_allocno_left_conflicts_size.
7476 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7477 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7478 setup_allocno_left_conflicts_size instead of
7479 setup_allocno_left_conflicts_num.
7480
7481 * ira-build.c (ira_create_allocno): Use
7482 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7483 ALLOCNO_LEFT_CONFLICTS_NUM.
7484
7485 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7486
7487 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7488 instead of DF_LR_OUT.
7489
7490 * ira-lives.c (process_bb_node_lives): Ditto.
7491
7492 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7493 instead of DF_LR_{OUT,IN}.
7494
7495 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7496
7497 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7498
7499 2009-03-30 Jan Hubicka <jh@suse.cz>
7500
7501 * except.c (label_to_region_map): Fix thinko.
7502
7503 2009-03-30 Steve Ellcey <sje@cup.hp.com>
7504
7505 PR middle-end/38237
7506 * tree.h (tree_find_value): New declaration.
7507 * tree.c (tree_find_value): New function.
7508 * varasm.c (assemble_external): Avoid duplicate entries on lists.
7509
7510 2009-03-30 Jakub Jelinek <jakub@redhat.com>
7511
7512 PR debug/39563
7513 * c-decl.c (struct c_binding): Add locus field.
7514 (bind): Add locus argument, set locus field from it.
7515 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7516 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7517 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7518 implicitly_declare, undeclared_variable, lookup_label,
7519 declare_label, c_make_fname_decl, c_builtin_function,
7520 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7521 bind callers.
7522
7523 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
7524
7525 PR target/38781
7526 * config/i386/i386.c (classify_argument): Check total size of
7527 structure.
7528
7529 2009-03-30 Martin Jambor <mjambor@suse.cz>
7530
7531 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7532 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7533 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7534 respectively.
7535
7536 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7537 seen_variable_array_ref while also traversing a union.
7538
7539 * tree-inline.c (optimize_inline_calls): Do not call
7540 cgraph_node_remove_callees.
7541 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7542 (pass_remove_cgraph_callee_edges): New variable.
7543 * passes.c (init_optimization_passes): Add
7544 pass_remove_cgraph_callee_edges after early inlining and before all
7545 late intraprocedural passes.
7546
7547 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7548
7549 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
7550
7551 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7552 Fix typos in names.
7553
7554 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
7555
7556 * combine.c (simplify_comparison): Use have_insn_for.
7557 * dojump.c (do_jump): Likewise.
7558
7559 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
7560
7561 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7562 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7563 sparc_compare_op0 like sparc_compare_emitted used to be handled.
7564 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7565 instead of sparc_compare_emitted.
7566 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7567 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7568 instead of sparc_compare_emitted.
7569
7570 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
7571
7572 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7573 enter/exit cfglayout mode.
7574 (pass_partition_block): Require it.
7575 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7576 (combine_instructions): Track basic blocks instead of labels.
7577 (update_cfg_for_uncondjump): New.
7578 (try_combine): Use it. Update jumps after rescanning.
7579 (pass_combine): Require PROP_cfglayout.
7580 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7581
7582 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
7583
7584 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7585 Provide/destroy PROP_cfglayout respectively.
7586 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7587 * tree-pass.h (PROP_cfglayout): New.
7588
7589 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
7590
7591 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7592 fold_convert_const_fixed_from_fixed,
7593 fold_convert_const_fixed_from_int,
7594 fold_convert_const_fixed_from_real, fold_negate_const): Do not
7595 set TREE_CONSTANT_OVERFLOW.
7596 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7597 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7598
7599 2009-03-30 Ira Rosen <irar@il.ibm.com>
7600
7601 * tree-vect-loop-manip.c: New file.
7602 * tree-vectorizer.c: Update documentation and included files.
7603 (vect_loop_location): Make extern.
7604 (rename_use_op): Move to tree-vect-loop-manip.c
7605 (rename_variables_in_bb, rename_variables_in_loop,
7606 slpeel_update_phis_for_duplicate_loop,
7607 slpeel_update_phi_nodes_for_guard1,
7608 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7609 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7610 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
7611 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
7612 find_loop_location): Likewise.
7613 (new_stmt_vec_info): Move to tree-vect-stmts.c.
7614 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7615 get_vectype_for_scalar_type, vect_is_simple_use,
7616 supportable_widening_operation, supportable_narrowing_operation):
7617 Likewise.
7618 (bb_in_loop_p): Move to tree-vect-loop.c.
7619 (new_loop_vec_info, destroy_loop_vec_info,
7620 reduction_code_for_scalar_code, report_vect_op,
7621 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7622 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7623 (vect_supportable_dr_alignment): Likewise.
7624 * tree-vectorizer.h (tree-data-ref.h): Include.
7625 (vect_loop_location): Declare.
7626 Reorganize function declarations according to the new file structure.
7627 * tree-vect-loop.c: New file.
7628 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
7629 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7630 * tree-vect-data-refs.c: New file.
7631 * tree-vect-patterns.c (timevar.h): Don't include.
7632 * tree-vect-stmts.c: New file.
7633 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
7634 tree-vect-slp.c, tree-vect-loop.c.
7635 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7636 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
7637 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7638 (tree-vect-analyze.o): Remove.
7639 (tree-vect-transform.o): Likewise.
7640 (tree-vect-data-refs.o): Add rule.
7641 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
7642 tree-vect-slp.o): Likewise.
7643 (tree-vect-patterns.o): Remove redundant dependencies.
7644 (tree-vectorizer.o): Likewise.
7645 * tree-vect-slp.c: New file.
7646
7647 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7648
7649 * optc-gen.awk: Warn if an option flag has multiple different
7650 help strings.
7651
7652 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
7653
7654 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7655 -floop-block): Document dependences on PPL, CLooG and Graphite.
7656
7657 2009-03-30 Joseph Myers <joseph@codesourcery.com>
7658
7659 PR rtl-optimization/323
7660 * c-common.c (c_fully_fold, convert_and_check,
7661 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7662 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7663 * c-common.def (EXCESS_PRECISION_EXPR): New.
7664 * c-cppbuiltin.c (builtin_define_float_constants): Define
7665 constants with enough digits for long double.
7666 * c-lex.c (interpret_float): Interpret constant with excess
7667 precision where appropriate.
7668 * c-opts.c (c_common_post_options): Set
7669 flag_excess_precision_cmdline. Give an error for
7670 -fexcess-precision=standard for C++ for processors where the
7671 option is significant.
7672 * c-parser.c (c_parser_conditional_expression): Handle excess
7673 precision in condition.
7674 * c-typeck.c (convert_arguments): Handle arguments with excess
7675 precision.
7676 (build_unary_op): Move excess precision outside operation.
7677 (build_conditional_expr): Likewise.
7678 (build_compound_expr): Likewise.
7679 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7680 (build_modify_expr): Handle excess precision in RHS.
7681 (convert_for_assignment): Handle excess precision in converted
7682 value.
7683 (digest_init, output_init_element, process_init_element): Handle
7684 excess precision in initializer.
7685 (c_finish_return): Handle excess precision in return value.
7686 (build_binary_op): Handle excess precision in operands and add
7687 excess precision as needed for operation.
7688 * common.opt (-fexcess-precision=): New option.
7689 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7690 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7691 For standard excess precision, output explicit conversion to and
7692 truncation from XFmode.
7693 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7694 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7695 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7696 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7697 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7698 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7699 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7700 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7701 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7702 define_splits, sqrt<mode>2): Disable where appropriate for
7703 standard excess precision.
7704 * convert.c (convert_to_real): Do not shorten arithmetic to type
7705 for which excess precision would be used.
7706 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7707 * doc/invoke.texi (-fexcess-precision=): Document option.
7708 (-mfpmath=): Correct index entry.
7709 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7710 flag_excess_precision): New.
7711 * langhooks.c (lhd_post_options): Set
7712 flag_excess_precision_cmdline.
7713 * opts.c (common_handle_option): Handle -fexcess-precision=.
7714 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7715 init_excess_precision): New.
7716 (lang_dependent_init_target): Call init_excess_precision.
7717 * tree.c (excess_precision_type): New.
7718 * tree.h (excess_precision_type): Declare.
7719
7720 2009-03-30 Joseph Myers <joseph@codesourcery.com>
7721
7722 PR c/35235
7723 * c-typeck.c (build_component_ref): Do not copy qualifiers from
7724 non-lvalue to component.
7725
7726 2009-03-29 Joseph Myers <joseph@codesourcery.com>
7727
7728 PR preprocessor/34695
7729 * Makefile.in (c-opts.o): Depend on c-tree.h.
7730 * c-common.c: Move down include of diagnostic.h.
7731 (done_lexing, c_cpp_error): New.
7732 * c-common.h (done_lexing): Declare.
7733 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7734 (parse_in).
7735 * c-opts.c: Include c-tree.h.
7736 (c_common_init_options): Set preprocessor error callback.
7737 (c_common_handle_option): Do not set preprocessor
7738 inhibit_warnings, warnings_are_errors, warn_system_headers,
7739 pedantic_errors or inhibit_warnings flags.
7740 (c_common_post_options): Do not check cpp_errors (parse_in).
7741 (c_common_finish): Do not output dependencies if there were
7742 errors. Do not check return value of cpp_finish.
7743 * c-ppoutput.c (pp_file_change): Set input_location.
7744 * c-tree.h (c_cpp_error): Declare.
7745 * diagnostic.c (diagnostic_set_info_translated): Also initialize
7746 override_column.
7747 (diagnostic_build_prefix): Check override_column.
7748 * diagnostic.h (diagnostic_info): Add override_column field.
7749 (diagnostic_override_column): Define.
7750
7751 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
7752
7753 * c-common.c (c_expand_expr, c_staticp): Remove.
7754 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7755 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7756 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7757 * c-gimplify.c (gimplify_compound_literal_expr,
7758 optimize_compound_literals_in_ctor): Remove.
7759 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7760 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7761 * c-semantics.c (emit_local_var): Remove.
7762
7763 * langhooks-def.h (lhd_expand_expr): Remove.
7764 * langhooks.c (lhd_expand_expr): Remove.
7765 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7766
7767 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7768 handling from c-semantics.c; don't call into langhook.
7769 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7770 * gimplify.c (gimplify_compound_literal_expr,
7771 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7772 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7773 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7774 as was done in c-gimplify.c.
7775 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7776 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7777 Move from c-common.h.
7778 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
7779
7780 * tree.c (staticp): Do not call langhook.
7781 * langhooks.c (lhd_staticp): Delete.
7782 * langhooks-def.h (lhd_staticp): Delete prototype.
7783 (LANG_HOOKS_STATICP): Delete.
7784 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
7785
7786 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
7787 instead of DECL_STMTs.
7788
7789 2009-03-29 Joseph Myers <joseph@codesourcery.com>
7790
7791 PR c/456
7792 PR c/5675
7793 PR c/19976
7794 PR c/29116
7795 PR c/31871
7796 PR c/35198
7797 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
7798 void_type_node.
7799 (fold_call_expr): Return a NOP_EXPR from folding rather than the
7800 contained expression.
7801 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
7802 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
7803 conditional expressions for C.
7804 (decl_constant_value_for_optimization): Move from
7805 decl_constant_value_for_broken_optimization in c-typeck.c. Check
7806 whether optimizing and that the expression is a VAR_DECL not of
7807 array type instead of doing such checks in the caller. Do not
7808 check pedantic. Call gcc_unreachable for C++.
7809 * c-common.def (C_MAYBE_CONST_EXPR): New.
7810 * c-common.h (c_fully_fold, c_save_expr,
7811 decl_constant_value_for_optimization): New prototypes.
7812 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
7813 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
7814 EXPR_INT_CONST_OPERANDS): Define.
7815 * c-convert.c (convert): Strip nops from expression.
7816 * c-decl.c (groktypename): Take extra parameters expr and
7817 expr_const_operands. Update call to grokdeclarator.
7818 (start_decl): Update call to grokdeclarator. Add statement for
7819 expressions used in type of decl.
7820 (grokparm): Update call to grokdeclarator.
7821 (push_parm_decl): Update call to grokdeclarator.
7822 (build_compound_literal): Add parameter non_const and build a
7823 C_MAYBE_COSNT_EXPR if applicable.
7824 (grokdeclarator): Take extra parameters expr and
7825 expr_const_operands. Track expressions used in declaration
7826 specifiers and declarators. Fold array sizes and track whether
7827 they are constant expressions and whether they are integer
7828 constant expressions.
7829 (parser_xref_tag): Set expr and expr_const_operands fields in
7830 return value.
7831 (grokfield): Update call to grokdeclarator.
7832 (start_function): Update call to grokdeclarator.
7833 (build_null_declspecs): Set expr and expr_const_operands fields in
7834 return value.
7835 (declspecs_add_type): Handle expressions in typeof specifiers.
7836 * c-parser.c (c_parser_declspecs): Set expr and
7837 expr_const_operands fields for declaration specifiers.
7838 (c_parser_enum_specifier): Likewise.
7839 (c_parser_struct_or_union_specifier): Likewise.
7840 (c_parser_typeof_specifier): Likewise. Update call to
7841 groktypename. Fold expression as needed. Return expressions with
7842 type instead of adding statements.
7843 (c_parser_attributes): Update calls to c_parser_expr_list.
7844 (c_parser_statement_after_labels): Fold expression before passing
7845 to objc_build_throw_stmt.
7846 (c_parser_condition): Fold expression.
7847 (c_parser_asm_operands): Fold expression.
7848 (c_parser_conditional_expression): Use c_save_expr. Update call
7849 to build_conditional_expr.
7850 (c_parser_alignof_expression): Update call to groktypename.
7851 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
7852 original_code. Fold expression argument of va_arg. Create
7853 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
7854 argument to va_arg. Update calls to groktypename. Fold array
7855 index for offsetof. Verify that first argument to
7856 __builtin_choose_expr has integer type.
7857 (c_parser_postfix_expression_after_paren_type): Update calls to
7858 groktypename and build_compound_literal. Handle expressions with
7859 side effects in type name.
7860 (c_parser_postfix_expression_after_primary): Update call to
7861 c_parser_expr_list. Set original_code for calls to
7862 __builtin_constant_p.
7863 (c_parser_expr_list): Take extra parameter fold_p. Fold
7864 expressions if requested.
7865 (c_parser_objc_type_name): Update call to groktypename.
7866 (c_parser_objc_synchronized_statement): Fold expression.
7867 (c_parser_objc_receiver): Fold expression.
7868 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
7869 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
7870 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
7871 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
7872 (struct c_typespec): Add elements expr and expr_const_operands.
7873 (struct c_declspecs): Add elements expr and expr_const_operands.
7874 (groktypename, build_conditional_expr, build_compound_literal):
7875 Update prototypes.
7876 (in_late_binary_op): Declare.
7877 * c-typeck.c (note_integer_operands): New function.
7878 (in_late_binary_op): New variable.
7879 (decl_constant_value_for_broken_optimization): Move to c-common.c
7880 and rename to decl_constant_value_for_optimization.
7881 (default_function_array_conversion): Do not strip nops.
7882 (default_conversion): Do not call
7883 decl_constant_value_for_broken_optimization.
7884 (build_array_ref): Do not fold result.
7885 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
7886 result when operand is a VLA.
7887 (c_expr_sizeof_type): Update call to groktypename. Handle
7888 expressions included in type name. Use C_MAYBE_CONST_EXPR for
7889 result when operand names a VLA type.
7890 (build_function_call): Update call to build_compound_literal.
7891 Only fold result for calls to __builtin_* functions. Strip
7892 NOP_EXPR from INTEGER_CST returned from such functions. Fold
7893 the function designator.
7894 (convert_arguments): Fold arguments. Update call to
7895 convert_for_assignment.
7896 (build_unary_op): Handle increment and decrement of
7897 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
7898 decrement earlier. Fold operand of increment and decrement.
7899 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
7900 built for integer operand. Wrap returns that are INTEGER_CSTs
7901 without being integer constant expressions or that have integer
7902 constant operands without being INTEGER_CSTs.
7903 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
7904 (build_conditional_expr): Add operand ifexp_bcp. Track whether
7905 result is an integer constant expression or can be used in
7906 unevaluated parts of one and avoid folding and wrap as
7907 appropriate. Fold operands before possibly doing -Wsign-compare
7908 warnings.
7909 (build_compound_expr): Wrap result for C99 if operands can be used
7910 in integer constant expressions.
7911 (build_c_cast): Update call to digest_init. Do not ignore
7912 overflow from casting floating-point constants to integers. Wrap
7913 results that could be confused with integer constant expressions,
7914 null pointer constants or floating-point constants.
7915 (c_cast_expr): Update call to groktypename. Handle expressions
7916 included in type name.
7917 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
7918 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
7919 Update calls to convert_for_assignment.
7920 (convert_for_assignment): Take new parameter
7921 null_pointer_constant. Do not strip nops or call
7922 decl_constant_value_for_broken_optimization. Set
7923 in_late_binary_op for conversions to boolean.
7924 (store_init_value): Update call to digest_init.
7925 (digest_init): Take new parameter null_pointer_constant. Do not
7926 call decl_constant_value_for_broken_optimization. pedwarn for
7927 initializers not constant expressions. Update calls to
7928 convert_for_assignment.
7929 (constructor_nonconst): New.
7930 (struct constructor_stack): Add nonconst element.
7931 (really_start_incremental_init, push_init_level, pop_init_level):
7932 Handle constructor_nonconst and nonconst element.
7933 (set_init_index): Call constant_expression_warning for array
7934 designators.
7935 (output_init_element): Fold value. Set constructor_nonconst as
7936 applicable. pedwarn for initializers not constant expressions.
7937 Update call to digest_init. Call constant_expression_warning
7938 where constant initializers are required.
7939 (process_init_element): Use c_save_expr.
7940 (c_finish_goto_ptr): Fold expression.
7941 (c_finish_return): Fold return value. Update call to
7942 convert_for_assignment.
7943 (c_start_case): Fold switch expression.
7944 (c_process_expr_stmt): Fold expression.
7945 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
7946 ensure statement expression is not evaluated in constant expression.
7947 (build_binary_op): Track whether results are integer constant
7948 expressions or may occur in such, disable folding and wrap results
7949 as applicable. Fold operands for -Wsign-compare warnings unless
7950 in_late_binary_op.
7951 (c_objc_common_truthvalue_conversion): Handle results folded to
7952 integer constants that are not integer constant expressions.
7953 * doc/extend.texi: Document when typeof operands are evaluated,
7954 that condition of __builtin_choose_expr is an integer constant
7955 expression, and more about use of __builtin_constant_p in
7956 initializers.
7957
7958 2009-03-29 Richard Guenther <rguenther@suse.de>
7959
7960 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
7961 propagate addresses of array references.
7962
7963 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
7964
7965 * regmove.c (perhaps_ends_bb_p): Remove.
7966 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
7967 from INSN and check that the main loop stays within that basic block.
7968 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
7969 (regmove_forward_pass): Split out from regmove_optimize. Use
7970 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
7971 (regmove_backward_pass): Split out from regmove_optimize. Use
7972 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
7973 (regmove_optimize): Simplify.
7974
7975 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7976
7977 PR target/39545
7978 * config/i386/i386.c (classify_argument): Ignore flexible array
7979 member in struct and warn ABI change.
7980
7981 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
7982
7983 * config/i386/i386-protos.h (ix86_agi_dependent): New.
7984
7985 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
7986 (ix86_adjust_cost): Updated.
7987
7988 2009-03-29 Jan Hubicka <jh@suse.cz>
7989
7990 PR middle-end/28850
7991 * tree-pass.h (pass_cleanup_eh): New function.
7992 (remove_unreachable_regions): Break code handling RTL
7993 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
7994 that can not be reached by runtime.
7995 (can_be_reached_by_runtime): New function.
7996 (label_to_region_map): New function.
7997 (num_eh_regions): New function.
7998 (rtl_remove_unreachable_regions): New function.
7999 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
8000 (remove_eh_region): New function.
8001 * except.h: Include sbitmap and vecprim.
8002 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
8003 num_eh_regions): Declare.
8004 * passes.c (init_optimization_passes): Schedule cleanup_eh.
8005 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
8006 * tree-eh.c (tree_remove_unreachable_handlers): New function.
8007 (tree_empty_eh_handler_p): New function.
8008 (cleanup_empty_eh): New function.
8009 (cleanup_eh): New function.
8010 (pass_cleanup_eh): New function.
8011
8012 2009-03-29 Jan Hubicka <jh@suse.cz>
8013
8014 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
8015 for removed regions.
8016
8017 2009-03-29 Jan Hubicka <jh@suse.cz>
8018
8019 * except.c (dump_eh_tree): Dump all datastructures.
8020
8021 2009-03-29 Jan Hubicka <jh@suse.cz>
8022
8023 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
8024 (duplicate_eh_regions_1): Likewise.
8025 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
8026 vector; call EH verification.
8027 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8028 Be ready for region being removed.
8029
8030 2009-03-29 Jan Hubicka <jh@suse.cz>
8031
8032 * bitmap.c (bitmap_last_set_bit): New function.
8033 * bitmap.h (bitmap_last_set_bit): Declare.
8034
8035 2009-03-29 David Ayers <ayers@fsfe.org>
8036
8037 PR objc/27377
8038 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8039 by calling objc_compare_types and surpress warnings about
8040 incompatible C pointers that are compatible ObjC pointers.
8041
8042 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
8043
8044 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8045 call initialize_inline_failed.
8046 (initialize_inline_failed): Move it from here ...
8047 * cgraph.c (initialize_inline_failed): ... to here.
8048 (cgraph_create_edge): Call initialize_inline_failed rather than
8049 setting inline_failed directly.
8050
8051 2009-03-29 Ben Elliston <bje@au.ibm.com>
8052
8053 PR target/32542
8054 * sysv4.opt (msdata): Improve comment.
8055 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8056 * sysv4.h (SVR4_ASM_SPEC): Likewise.
8057
8058 2009-03-29 Ben Elliston <bje@au.ibm.com>
8059
8060 PR target/30451
8061 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8062 load and store attributes.
8063
8064 2009-03-29 Ben Elliston <bje@au.ibm.com>
8065
8066 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8067 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8068 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8069 * doc/extend.texi (X86 Built-in Functions): Add index entries for
8070 __builtin_infq and __builtin_huge_valq.
8071
8072 2009-03-28 Anatoly Sokolov <aesok@post.ru>
8073
8074 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8075 atmega8m1 devices.
8076 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8077 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8078
8079 2009-03-28 Xinliang David Li <davidxl@google.com>
8080
8081 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
8082 (do_dbg_cnt): New function.
8083
8084 2009-03-28 Jan Hubicka <jh@suse.cz>
8085
8086 Merge from pretty-ipa:
8087
8088 2009-03-27 Jan Hubicka <jh@suse.cz>
8089
8090 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8091 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8092 * passes.c (function_called_by_processed_nodes_p): New.
8093 * ipa-pure-const.c (check_call): Fix handling of operands.
8094 (analyze_function): Dump debug output for skipped bodies.
8095 (local_pure_const): Use function_called_by_processed_nodes_p.
8096 * dwarf2out.c (reference_to_unused): Use output.
8097 * passes.c (do_per_function_toporder): Likewise.
8098
8099 2008-11-12 Jan Hubicka <jh@suse.cz>
8100
8101 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8102 * ipa-pure-const.c (funct_state_d): Add can throw field; make
8103 state_set_in_source enum
8104 (check_decl): Ignore memory tags; do not set fake looping flags;
8105 dump diagnostics.
8106 (check_operand, check_tree, check_rhs_var, check_lhs_var,
8107 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8108 (check_call, analyze_function): Rewrite.
8109 (check_stmt): New.
8110 (add_new_function): Update call of analyze_function.
8111 (generate_summary): Add call of analyze_function.
8112 (propagate): Propagate can_throw; handle state_set_in_source correctly.
8113 (local_pure_const): New function.
8114 (pass_local_pure_const): New pass.
8115 * ipa-inline.c (inline_transform): Set after_inlining.
8116 * tree-eh.c (stmt_can_throw_external): New.
8117 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8118 work with aliasing built.
8119 * tree-flow.h (stmt_can_throw_external): New.
8120 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8121 and local pure/const pass in early and late optimization queue.
8122
8123 2009-03-28 Martin Jambor <mjambor@suse.cz>
8124
8125 * fold-const.c (get_pointer_modulus_and_residue): New parameter
8126 allow_func_align.
8127 (fold_binary): Allow function decl aligment consideration is the
8128 second argument is integer constant one.
8129 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8130 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8131 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8132
8133 2009-03-28 Jan Hubicka <jh@suse.cz>
8134
8135 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8136 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8137 * function.h (rtl_data): Add nothrow flag.
8138 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8139 set DECL_NOTHROW for AVAILABLE functions.
8140
8141 2009-03-28 Jakub Jelinek <jakub@redhat.com>
8142
8143 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8144 following vector keyword has expansion starting with pixel or bool
8145 keyword, expand vector to __vector and pixel or bool to __pixel or
8146 __bool.
8147
8148 PR c++/39554
8149 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8150 warn_if_disallowed_function_p): Removed.
8151 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8152 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8153 warning_if_disallowed_function_p.
8154 * flags.h (warn_if_disallowed_function_p,
8155 warn_disallowed_functions): Removed.
8156 * common.opt (Wdisallowed-function-list=): Removed.
8157 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8158
8159 2009-03-28 Richard Guenther <rguenther@suse.de>
8160
8161 PR tree-optimization/38723
8162 * tree-ssa-pre.c (compute_avail): Add all default definitions to
8163 the entry block.
8164
8165 2009-03-28 Jan Hubicka <jh@suse.cz>
8166
8167 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8168 test introduced by my previous patch.
8169
8170 2009-03-28 Richard Guenther <rguenther@suse.de>
8171
8172 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8173 the PHIs value undefined.
8174
8175 2009-03-28 Jan Hubicka <jh@suse.cz>
8176
8177 * tree-pass.h (pass_fixup_cfg): New pass.
8178 * ipa-inline.c (inline_transform): Set
8179 always_inline_functions_inlined/after_inlining.
8180 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8181 (pass_fixup_cfg): New pass.
8182 * passes.c (init_optimization_passes): Add fixup_cfg.
8183
8184 2009-03-28 Richard Guenther <rguenther@suse.de>
8185
8186 PR tree-optimization/38458
8187 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8188 argument use the arguments copy-of value.
8189
8190 2009-03-28 Richard Guenther <rguenther@suse.de>
8191
8192 PR tree-optimization/38180
8193 * tree-ssa-ccp.c (get_default_value): Simplify.
8194 (likely_value): Likewise.
8195 (surely_varying_stmt_p): Properly handle VOP case.
8196 (ccp_initialize): Likewise.
8197 (ccp_fold): Handle propagating through *&.
8198 (fold_const_aggregate_ref): Also handle decls.
8199
8200 2009-03-28 Jan Hubicka <jh@suse.cz>
8201
8202 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8203 * cgraph.h (cgraph_node): Likewise.
8204 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8205 (cgraph_reset_node): Use process flag.
8206 (cgraph_mark_functions_to_output): Likewise.
8207 (cgraph_expand_function): Likewise.
8208 (cgraph_expand_all_functions): Likewise.
8209 (cgraph_output_in_order): Likewise.
8210 * dwarf2out.c (reference_to_unused): Likewise.
8211 * passes.c do_per_function_toporder): Likewise.
8212
8213 2009-03-28 Jan Hubicka <jh@suse.cz>
8214
8215 Bring from lto-branch:
8216
8217 2008-09-03 Doug Kwan <dougkwan@google.com>
8218
8219 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8220 enums instead of reason strings.
8221 * cgraph.c (cgraph_create_edge): Same.
8222 (cgraph_inline_failed_string): New function.
8223 * cgraph.h (cgraph_inline_failed_t): New enum type.
8224 (cgraph_inline_failed_string): New prototype.
8225 (struct cgraph_edge): Change type of INLINED_FAILED from constant
8226 char pointer to cgraph_inline_failed_t.
8227 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8228 (cgraph_default_inline_p): Ditto.
8229 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
8230 to cgraph_inline_failed_t pointer.
8231 * cif-code.def: New file.
8232 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8233 reason string.
8234 (cgraph_check_inline_limits): Change type of REASON to pointer to
8235 cgraph_inline_failed_t. Replace reason strings with enums.
8236 (cgraph_default_inline_p): Ditto.
8237 (cgraph_recursive_inlining_p): Ditto.
8238 (update_caller_keys): Change type of FAILED_REASON to
8239 cgraph_inline_failed_t.
8240 (cgraph_set_inline_failed): Change type of REASON to pointer to
8241 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
8242 convert enums to strings for text output.
8243 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8244 to be of type cgraph_inline_failed_t. Replace reason strings with
8245 enums. Call cgraph_inline_failed_string to covert enums
8246 to strings for text output.
8247 (cgraph_decide_inlining): Replace reason strings with enums.
8248 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8249 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
8250 for text output.
8251 * tree-inline.c (expand_call_inline): Change type of REASON
8252 to cgraph_inline_failed_t. Replace reason strings with enums.
8253 Call cgraph_inline_failed_string for text output.
8254 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8255 (cgraph.o): Ditto.
8256
8257 2009-03-28 Jan Hubicka <jh@suse.cz>
8258
8259 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8260 cgraph_clone_node): Remove master clone handling.
8261 (cgraph_is_master_clone, cgraph_master_clone): Remove.
8262 * cgraph.h (master_clone): Remove.
8263 (cgraph_is_master_clone, cgraph_master_clone): Remove.
8264 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8265 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8266
8267 2009-03-28 Jan Hubicka <jh@suse.cz>
8268
8269 * cgraph.c (cgraph_function_body_availability): Functions declared
8270 inline are always safe to assume that it is not going to be replaced.
8271
8272 2009-03-28 Richard Guenther <rguenther@suse.de>
8273
8274 PR tree-optimization/38513
8275 * tree-ssa-pre.c (eliminate): Remove redundant stores.
8276 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8277 EXC_PTR_EXPR and FILTER_EXPR.
8278 (get_ref_from_reference_ops): Likewise.
8279
8280 2009-03-28 Richard Guenther <rguenther@suse.de>
8281
8282 PR tree-optimization/38968
8283 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8284 Use FLOOR_MOD_EXPR to compute misalignment.
8285
8286 2009-03-28 Richard Guenther <rguenther@suse.de>
8287
8288 PR tree-optimization/37795
8289 * tree.h (combine_comparisons): Declare.
8290 * fold-const.c (combine_comparisons): Export.
8291 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8292 comparisons.
8293 (ifcombine_iforif): Use combine_comparisons.
8294
8295 2009-03-28 Jan Hubicka <jh@suse.cz>
8296
8297 * tree-eh.c (inlinable_call_p): New function.
8298 (make_eh_edges): Use it.
8299 (verify_eh_edges): Use it.
8300 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8301 * except.c (reachable_next_level): Add inlinable_function argument
8302 (sjlj_find_directly_reachable_regions): Update.
8303 (add_reachable_handler): Do not set saw_any_handlers.
8304 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8305 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8306 Add new inlinable call parameter.
8307 (can_throw_internal, can_throw_external): Update.
8308 * except.h (can_throw_internal_1, can_throw_external_1,
8309 foreach_reachable_handler): Update declaration.
8310
8311 2009-03-28 Joseph Myers <joseph@codesourcery.com>
8312
8313 * config/arm/t-arm-coff, config/h8300/coff.h,
8314 config/i386/i386-aout.h, config/i386/i386-coff.h,
8315 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8316 config/pdp11/2bsd.h, config/rs6000/aix41.h,
8317 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8318 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8319 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8320 sys-types.h: Remove.
8321 * Makefile.in: Remove protoize and fixproto support and references
8322 in comments.
8323 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8324 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8325 Remove.
8326 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8327 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8328 unprotoize$(exeext).
8329 (rest.encap): Don't depend on $(STMP_FIXPROTO)
8330 (.PHONY): Don't depend on proto.
8331 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8332 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8333 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8334 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8335 build/gen-protos.o, build/scan.o, xsys-protos.h,
8336 build/fix-header$(build_exeext), build/fix-header.o,
8337 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8338 stmp-install-fixproto): Remove.
8339 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8340 SYSCALLS.c or fixproto files.
8341 (install-common): Don't install protoize.
8342 (install-headers-tar, install-headers-cpio, install-headers-cp):
8343 Don't depend on $(STMP_FIXPROTO).
8344 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
8345 install fixproto files or write out fixproto settings.
8346 (uninstall): Don't uninstall protoize.
8347 * config.gcc (use_fixproto): Remove.
8348 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8349 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8350 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8351 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8352 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8353 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8354 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8355 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8356 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8357 * config/t-vxworks (STMP_FIXPROTO): Remove.
8358 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8359 STMP_FIXPROTO): Remove.
8360 * config.in, configure: Regenerate.
8361 * crtstuff.c (gid_t, uid_t): Don't undefine.
8362 * doc/install.texi: Change m68k-coff to m68k-elf in example.
8363 (arm-*-coff, arm-*-aout: Remove target entries.
8364 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8365 Remove mention of AIX 4.1.
8366 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8367 * doc/invoke.texi (Running Protoize): Remove.
8368 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8369 (Protoize Caveats): Remove.
8370 * tsystem.h: Update comments on headers assumed to exist.
8371
8372 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
8373
8374 * genautomata.c: Add a new year to the copyright. Add a new
8375 reference.
8376 (struct insn_reserv_decl): Add comments for member bypass_list.
8377 (find_bypass): Remove.
8378 (insert_bypass): New.
8379 (process_decls): Use insert_bypass.
8380 (output_internal_insn_latency_func): Output all bypasses with the
8381 same input insn in one switch case.
8382
8383 * rtl.def (define_bypass): Describe bypass choice.
8384 * doc/md.texi (define_bypass): Ditto.
8385
8386 2009-03-27 Richard Guenther <rguenther@suse.de>
8387
8388 * gimplify.c (mark_addressable): Export.
8389 * tree-flow.h (mark_addressable): Declare.
8390 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8391 * tree-ssa.c (verify_phi_args): Verify that address taken
8392 variables have TREE_ADDRESSABLE set.
8393
8394 2009-03-27 Richard Guenther <rguenther@suse.de>
8395
8396 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8397 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
8398 Do not mark decls TREE_ADDRESSABLE.
8399 (build_fold_addr_expr): Adjust.
8400 (fold_addr_expr): Remove.
8401 (fold_unary): Use build_fold_addr_expr.
8402 (fold_comparison): Likewise.
8403 (split_address_to_core_and_offset): Likewise.
8404 * coverage.c (tree_coverage_counter_addr): Mark the array decl
8405 TREE_ADDRESSABLE.
8406 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8407 (gimplify_modify_expr_to_memcpy): Mark source and destination
8408 addressable.
8409 * omp-low.c (create_omp_child_function): Mark the object decl
8410 TREE_ADDRESSABLE.
8411 (lower_rec_input_clauses): Mark the var we take the address of
8412 TREE_ADDRESSABLE.
8413 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8414
8415 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8416
8417 PR middle-end/39315
8418 * cfgexpand.c (expand_one_stack_var_at): Change alignment
8419 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8420
8421 2009-03-27 Richard Guenther <rguenther@suse.de>
8422
8423 PR tree-optimization/39120
8424 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8425 constraints.
8426 (handle_lhs_call): Process return constraints. Add escape
8427 constraints if necessary.
8428 (handle_const_call): Fill out return constraints. Make nested
8429 case more precise. Avoid consttmp if possible.
8430 (handle_pure_call): Fill out return constraints. Avoid
8431 callused if possible.
8432 (find_func_aliases): Simplify call handling.
8433
8434 2009-03-27 Richard Guenther <rguenther@suse.de>
8435
8436 PR tree-optimization/39120
8437 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8438 as a representative.
8439 (solve_graph): Do propagate CALLUSED.
8440 (handle_pure_call): Use a scalar constraint from CALLUSED for
8441 the return value.
8442 (find_what_p_points_to): CALLUSED shall not appear in poins-to
8443 solutions.
8444
8445 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8446
8447 PR c/39323
8448 * c-common.c (handle_aligned_attribute): Properly check alignment
8449 overflow. Use (1U << i) instead of (1 << i).
8450
8451 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
8452
8453 * expr.h (get_mem_align_offset): Updated.
8454
8455 * tree.h (tree_decl_common): Change align to "unsigned int" and
8456 move it before pointer_alias_set.
8457
8458 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8459 Jakub Jelinek <jakub@redhat.com>
8460
8461 PR target/38034
8462 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8463 gr_register_operand with gr_reg_or_0_operand.
8464 (cmpxchg_rel_di): Likewise.
8465 (sync_lock_test_and_set<mode>): Likewise.
8466
8467 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8468
8469 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8470 (true_regnum): Likewise.
8471
8472 * rtlanal.c (subreg_info): Moved to ...
8473 * rtl.h (subreg_info): Here. New.
8474 (subreg_get_info): New.
8475
8476 * rtlanal.c (subreg_get_info): Make it extern.
8477
8478 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8479
8480 PR target/39472
8481 * config/i386/i386.c (ix86_abi): New.
8482 (override_options): Handle -mabi=.
8483 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
8484 (ix86_call_abi_override): Likewise.
8485 (init_cumulative_args): Likewise.
8486 (function_arg_advance): Likewise.
8487 (function_arg_64): Likewise.
8488 (function_arg): Likewise.
8489 (ix86_pass_by_reference): Likewise.
8490 (ix86_function_value_regno_p): Likewise.
8491 (ix86_build_builtin_va_list_abi): Likewise.
8492 (setup_incoming_varargs_64): Likewise.
8493 (is_va_list_char_pointer): Likewise.
8494 (ix86_init_machine_status): Likewise.
8495 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
8496 (ix86_function_type_abi): Return enum calling_abi. Rewrite
8497 for 64bit. Replace DEFAULT_ABI with ix86_abi.
8498 (ix86_function_abi): Make it static and return enum calling_abi.
8499 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
8500 with ix86_abi.
8501 (ix86_fn_abi_va_list): Updated.
8502
8503 * config/i386/i386.h (ix86_abi): New.
8504 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8505 (CONDITIONAL_REGISTER_USAGE): Likewise.
8506 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8507 (machine_function): Likewise.
8508
8509 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8510 with ix86_abi.
8511 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8512 (STACK_BOUNDARY): Likewise.
8513 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8514
8515 * config/i386/i386.opt (mabi=): New.
8516
8517 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8518 return enum calling_abi.
8519 (ix86_function_type_abi): Likewise.
8520 (ix86_function_abi): Removed.
8521
8522 * doc/invoke.texi: Document -mabi= option for x86.
8523
8524 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8525
8526 * builtins.c (real_dconstp): Delete.
8527 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8528
8529 2009-03-27 Dodji Seketeli <dodji@redhat.com>
8530 Jakub Jelinek <jakub@redhat.com>
8531
8532 PR debug/37959
8533 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8534 (gen_subprogram_die): When a function is explicit, generate the
8535 DW_AT_explicit attribute.
8536 * langhooks.h (struct lang_hooks_for_decls): Add
8537 function_decl_explicit_p langhook.
8538 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8539 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8540
8541 2009-03-27 Jakub Jelinek <jakub@redhat.com>
8542
8543 * builtins.c (fold_builtin_memory_op): Optimize memmove
8544 into memcpy if we can prove source and destination don't overlap.
8545
8546 * tree-inline.c: Include gt-tree-inline.h.
8547 (clone_fn_id_num): New variable.
8548 (clone_function_name): New function.
8549 (tree_function_versioning): Use it.
8550 * Makefile.in (GTFILES): Add tree-inline.c.
8551
8552 2009-03-27 Mark Mitchell <mark@codesourcery.com>
8553
8554 * BASE-VER: Change to 4.5.0.
8555
8556 2009-03-27 Xinliang David Li <davidxl@google.com>
8557
8558 PR tree-optimization/39557
8559 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8560
8561 2009-03-27 Xinliang David Li <davidxl@google.com>
8562
8563 PR tree-optimization/39548
8564 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
8565 candidate check.
8566
8567 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8568
8569 * c-common.c (pointer_int_sum): Use %wd on return from
8570 tree_low_cst.
8571
8572 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8573
8574 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8575 on return from tree_low_cst.
8576
8577 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
8578
8579 PR c++/36799
8580 * ginclude/stdarg.h (va_copy): Define also for
8581 __GXX_EXPERIMENTAL_CXX0X__.
8582
8583 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8584
8585 PR c++/35652
8586 * builtins.h (c_strlen): Do not warn here.
8587 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8588 * c-common.c (pointer_int_sum): Take an explicit location.
8589 Warn about offsets out of bounds.
8590 * c-common.h (pointer_int_sum): Adjust declaration.
8591
8592 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8593
8594 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8595 markup glitch.
8596
8597 2009-03-26 Jakub Jelinek <jakub@redhat.com>
8598
8599 PR c++/39554
8600 * opts.c (warn_if_disallowed_function_p): Don't assume
8601 get_callee_fndecl must return non-NULL.
8602
8603 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
8604
8605 PR rtl-optimization/39522
8606 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8607 when reg_reloaded_valid is set.
8608
8609 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8610
8611 * config/spu/divv2df3.c: New file.
8612 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8613 (DPBIT_FUNCS): Filter out _div_df.
8614
8615 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
8616
8617 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8618 a jump insn, count that jump in the distance to the loop start.
8619
8620 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
8621
8622 PR target/39523
8623 * config/sh/sh.c (calc_live_regs): Fix condition for global
8624 registers except PIC_OFFSET_TABLE_REGNUM.
8625
8626 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
8627
8628 PR/39518
8629 * doc/invoke.texi (-mconsole): New.
8630 (-mcygwin): New.
8631 (-mno-cygwin): New.
8632 (-mdll): New.
8633 (-mnop-fun-dllimport): New.
8634 (-mthread): New.
8635 (-mwin32): New.
8636 (-mwindows): New.
8637 (sub section "i386 and x86-64 Windows Options"): New.
8638
8639 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
8640
8641 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8642 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8643
8644 2009-03-25 Richard Guenther <rguenther@suse.de>
8645
8646 PR middle-end/39497
8647 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8648 of -Wno-error.
8649
8650 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
8651
8652 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8653 neither of haifa/selective schedulers are working.
8654
8655 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8656
8657 * doc/invoke.texi (Debugging Options): Fix description of
8658 -fno-merge-debug-strings.
8659
8660 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
8661
8662 * config/cris/libgcc.ver: New version-script.
8663 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8664
8665 * configure.ac <GAS features, nop mnemonic>: Add pattern
8666 crisv32-*-* for "nop".
8667 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
8668 * configure: Regenerate.
8669
8670 2009-03-24 Ira Rosen <irar@il.ibm.com>
8671
8672 PR tree-optimization/39529
8673 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8674 mark_sym_for_renaming for the tag copied to the new vector
8675 pointer.
8676
8677 2009-03-24 Arthur Loiret <aloiret@debian.org>
8678
8679 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
8680 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8681 EXTRA_SPEC_FUNCTIONS.
8682 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8683 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8684 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8685 -march and -mtune options.
8686
8687 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
8688
8689 * config/m68k/t-rtems: Add m5329 multilib.
8690
8691 2009-03-24 Dodji Seketeli <dodji@redhat.com>
8692 Jakub Jelinek <jakub@redhat.com>
8693
8694 PR debug/39524
8695 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8696 nodes.
8697
8698 2009-03-23 Jakub Jelinek <jakub@redhat.com>
8699
8700 PR c/39495
8701 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8702 instead of c_parser_expression_conv, if original_code isn't one of the
8703 4 allowed comparison codes, fail.
8704
8705 2009-03-23 Richard Guenther <rguenther@suse.de>
8706
8707 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8708 * tree.h (struct tree_type): Likewise.
8709 * reload.h (struct insn_chain): Likewise.
8710 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8711 * function.h (struct function): Likewise.
8712 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8713
8714 2009-03-23 Jakub Jelinek <jakub@redhat.com>
8715
8716 PR tree-optimization/39516
8717 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8718
8719 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
8720
8721 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
8722 should be set true if BITS_PER_WORD of target is bigger than 32
8723
8724 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
8725
8726 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8727 Translate -B-options to -rpath-link. Correct existing
8728 rpath-link and conditionalize on !nostdlib.
8729
8730 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8731
8732 * doc/extend.texi (Function Attributes, Variable Attributes):
8733 Fix typos.
8734 * doc/invoke.texi (Debugging Options, Optimize Options)
8735 (i386 and x86-64 Options, MCore Options): Likewise.
8736
8737 2009-03-20 Jakub Jelinek <jakub@redhat.com>
8738
8739 PR debug/37890
8740 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8741 it for block local namespace aliases.
8742 (gen_decl_die): Pass context_die to gen_namespace_die.
8743
8744 2009-03-19 Jakub Jelinek <jakub@redhat.com>
8745
8746 PR c/39495
8747 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8748 minimum or maximum value.
8749
8750 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
8751
8752 * reginfo.c (globalize_reg): Recompute derived reg sets.
8753
8754 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
8755
8756 PR target/39063
8757 * libgcc2.c (mprotect): Do not use signed arguments for
8758 VirtualProtect, use DWORD arguments. Also fix the 'may
8759 be used uninitialized' warning for the np variable.
8760
8761 2009-03-19 Jakub Jelinek <jakub@redhat.com>
8762
8763 PR target/39496
8764 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8765 functions using regparm calling conventions when not optimizing.
8766 (ix86_function_sseregparm): Similarly for sseregparm calling
8767 conventions.
8768
8769 2009-03-19 Li Feng <nemokingdom@gmail.com>
8770
8771 PR middle-end/39500
8772 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8773 dependence if the first conflict is after niter iterations.
8774
8775 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
8776
8777 PR middle-end/38609
8778 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8779 functions with dynamic stack-pointer adjustments.
8780
8781 2009-03-19 Ben Elliston <bje@au.ibm.com>
8782
8783 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
8784 option; change to -msdata=data.
8785
8786 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8787
8788 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
8789 and -fopenmp.
8790
8791 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
8792
8793 PR target/35180
8794 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
8795
8796 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
8797
8798 * doc/invoke.texi (Code Gen Options): Expand discussion of
8799 -fno-common.
8800
8801 2009-03-18 Jakub Jelinek <jakub@redhat.com>
8802
8803 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
8804 * matrix-reorg.c (struct matrix_info): Likewise.
8805 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
8806 * rtl.h (struct mem_attrs): Likewise.
8807 * df.h (struct df): Likewise.
8808 * tree-data-ref.h (struct data_dependence_relation): Likewise.
8809 * ira-int.h (struct ira_allocno): Likewise.
8810 * df-scan.c (struct df_collection_rec): Likewise.
8811 * ira.c (struct equivalence): Likewise.
8812 * function.c (struct temp_slot): Likewise.
8813 * cfgloop.h (struct loop): Likewise.
8814
8815 PR debug/39485
8816 * function.c (use_register_for_decl): When not optimizing, disregard
8817 register keyword for variables with types containing methods.
8818
8819 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
8820
8821 PR middle-end/39447
8822 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
8823 (is_simple_operand): Call contains_component_ref_p before calling data
8824 reference analysis that would fail on COMPONENT_REFs.
8825
8826 * tree-vrp.c (search_for_addr_array): Fix formatting.
8827
8828 2009-03-18 Richard Guenther <rguenther@suse.de>
8829
8830 * tree-vect-transform.c (vect_loop_versioning): Fold the
8831 generated comparisons.
8832 * tree-vectorizer.c (set_prologue_iterations): Likewise.
8833 (slpeel_tree_peel_loop_to_edge): Likewise.
8834
8835 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8836
8837 PR middle-end/37805
8838 * opts.c (print_specific_help): In addition to `undocumented',
8839 accept `separate' and `joined' flags if passed alone. Describe
8840 output by the first matched one of those.
8841 (common_handle_option): Skip over empty strings.
8842 * gcc.c (display_help): Fix help string for `--help='.
8843 * doc/invoke.texi (Option Summary, Overall Options): With
8844 `--help=', classes and qualifiers can both be repeated, but
8845 only the latter can be negated. One should not pass only
8846 negated qualifiers. Fix markup and examples.
8847
8848 Revert
8849 2008-10-14 Jakub Jelinek <jakub@redhat.com>
8850 PR middle-end/37805
8851 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
8852 and -fhelp=separate.
8853
8854 2009-03-17 Jing Yu <jingyu@google.com>
8855
8856 PR middle-end/39378
8857 * function.h (struct rtl_data): Move is_thunk from here...
8858 (struct function): ...to here.
8859 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
8860 * varasm.c (assemble_start_function): Change is_thunk from crtl to
8861 cfun.
8862 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
8863 cfun.
8864 (alpha_does_function_need_gp, alpha_start_function): Likewise.
8865 (alpha_output_function_end_prologue): Likewise.
8866 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
8867 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
8868 (rs6000_output_function_epilogue): Likewise.
8869 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
8870
8871 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
8872
8873 PR target/39482
8874 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
8875 from different units in a single alternative.
8876 (*truncdfsf_i387): Ditto.
8877 (*truncxfsf2_mixed): Ditto.
8878 (*truncxfdf2_mixed): Ditto.
8879
8880 2009-03-17 Jakub Jelinek <jakub@redhat.com>
8881
8882 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
8883 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
8884
8885 PR debug/39474
8886 * tree-ssa-live.c (remove_unused_locals): Don't remove local
8887 unused non-artificial variables when not optimizing.
8888
8889 PR debug/39471
8890 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
8891 DW_TAG_imported_module even if decl is IMPORTED_DECL with
8892 NAMESPACE_DECL in its DECL_INITIAL.
8893
8894 PR middle-end/39443
8895 * optabs.c (set_user_assembler_libfunc): New function.
8896 * expr.h (set_user_assembler_libfunc): New prototype.
8897 * c-common.c: Include libfuncs.h.
8898 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
8899 for memcmp, memset, memcpy, memmove and abort.
8900 * Makefile.in (c-common.o): Depend on libfuncs.h.
8901
8902 PR debug/39412
8903 * dwarf2out.c (gen_inlined_enumeration_type_die,
8904 gen_inlined_structure_type_die, gen_inlined_union_type_die,
8905 gen_tagged_type_instantiation_die): Removed.
8906 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
8907 do nothing.
8908
8909 2009-03-17 Janis Johnson <janis187@us.ibm.com>
8910
8911 PR testsuite/38526
8912 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
8913 its use.
8914 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
8915 (check-parallel-%): Ditto.
8916 (check-consistency): Ditto.
8917
8918 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
8919
8920 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
8921 local variable rhs by NULL_TREE.
8922
8923 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8924
8925 PR target/39477
8926 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
8927
8928 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8929
8930 PR target/39476
8931 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
8932
8933 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
8934
8935 PR target/39473
8936 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
8937 for ms->sysv ABI calls only in 64bit mode.
8938
8939 * config/i386/i386.md (untyped_call): Support 32bit.
8940
8941 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
8942
8943 * doc/extend.texi: Replace x86_65 with x86_64.
8944
8945 2009-03-16 Jakub Jelinek <jakub@redhat.com>
8946
8947 PR tree-optimization/39455
8948 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
8949 mismatches for POINTER_TYPE_P (type).
8950 (number_of_iterations_le): Likewise.
8951
8952 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
8953
8954 * config/picochip/picochip.c: Removed profiling support.
8955 * config/picochip/picochip.md: Removed profiling instruction.
8956 * config/picochip/picochip.h: Removed profiling builtin.
8957
8958 2009-03-16 Joseph Myers <joseph@codesourcery.com>
8959
8960 * doc/install.texi (--with-host-libstdcxx): Document.
8961
8962 2009-03-14 Anatoly Sokolov <aesok@post.ru>
8963
8964 PR target/34299
8965 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
8966 generate a warning if the function name does not begin with
8967 "__vector" and the function has either the 'signal' or 'interrupt'
8968 attribute, from here to ...
8969 (avr_declare_function_name): ...here. New function.
8970 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
8971 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
8972
8973 2009-03-14 Jakub Jelinek <jakub@redhat.com>
8974
8975 PR bootstrap/39454
8976 * cse.c (fold_rtx): Don't modify original const_arg1 when
8977 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
8978 separate variable instead.
8979 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
8980 from out of range shift counts.
8981 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
8982
8983 2009-03-13 Catherine Moore <clm@codesourcery.com>
8984
8985 * config/i386/x-mingw32 (host-mingw32.o): Replace
8986 diagnostic.h with $(DIAGNOSTIC_H).
8987
8988 2009-03-12 Jakub Jelinek <jakub@redhat.com>
8989
8990 PR target/39431
8991 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
8992 predicate.
8993 * config/i386/sync.md (sync_compare_and_swap<mode>,
8994 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
8995 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
8996 into a register.
8997 (sync_double_compare_and_swapdi_pic,
8998 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
8999 cmpxchg8b_pic_memory_operand instead of just memory_operand.
9000
9001 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9002
9003 PR target/39445
9004 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
9005
9006 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9007
9008 PR target/39327
9009 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9010 (avx_addsubv4df3): Likewise.
9011 (*avx_addsubv4sf3): Likewise.
9012 (sse3_addsubv4sf3): Likewise.
9013
9014 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9015
9016 PR target/38824
9017 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
9018
9019 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
9020
9021 PR debug/39432
9022 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
9023 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9024 registers for allocnos created from user-defined variables.
9025
9026 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9027
9028 PR target/39181
9029 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
9030 of non-integer mode as well.
9031
9032 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
9033
9034 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
9035 for functions for which the parameter types are unknown.
9036
9037 2009-03-11 Jakub Jelinek <jakub@redhat.com>
9038
9039 PR target/39137
9040 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9041 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9042 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9043 * config/i386/i386.c (ix86_local_alignment): For
9044 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9045 long long variables on the stack to avoid dynamic realignment.
9046 Allow the first argument to be a decl rather than type.
9047 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9048
9049 2009-03-11 Nick Clifton <nickc@redhat.com>
9050
9051 PR target/5362
9052 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9053 options.
9054 Add description to mno-lsim option.
9055 * config/mcore/mcore.h: Remove comment about deprecated m4align
9056 option.
9057 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9058 * doc/invoke.texi: Add description of mno-lsim and
9059 mstack-increment options.
9060
9061 * config/fr30/fr30.opt: Document the -mno-lsim option.
9062 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9063 and -mno-lsim options.
9064
9065 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9066
9067 * fold-const.c (fold_comparison): Only call fold_inf_compare
9068 if the mode supports infinities.
9069
9070 2009-03-11 Jason Merrill <jason@redhat.com>
9071
9072 PR debug/39086
9073 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9074 end already did. Notice GIMPLE_CALL modifications of the result.
9075 Don't copy debug information from an ignored decl or a decl from
9076 another function.
9077
9078 2009-03-10 Richard Guenther <rguenther@suse.de>
9079 Nathan Froyd <froydnj@codesourcery.com>
9080
9081 PR middle-end/37850
9082 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
9083 (__divMODE3): Likewise.
9084
9085 2009-03-09 Jakub Jelinek <jakub@redhat.com>
9086
9087 PR tree-optimization/39394
9088 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9089 DECL_SIZE_UNIT of variable length FIELD_DECLs.
9090
9091 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9092
9093 * recog.c (verfiy_changes): Disallow renaming of hard regs in
9094 inline asms for register asm ("") declarations.
9095
9096 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
9097
9098 * fold-const.c (fold_unary): Fix comment.
9099
9100 2009-03-07 Jan Hubicka <jh@suse.cz>
9101
9102 PR target/39361
9103 * tree-inline.c (setup_one_parameter): Do replacement of const
9104 argument by constant in SSA form.
9105
9106 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9107
9108 PR middle-end/38028
9109 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9110 determine alignment passed to assign_stack_local.
9111 (assign_parms_unsplit_complex): Likewise.
9112 * except.c (sjlj_build_landing_pads): Likewise.
9113
9114 2009-03-06 Jakub Jelinek <jakub@redhat.com>
9115
9116 PR middle-end/39360
9117 * tree-flow.h (add_referenced_var): Return bool instead of void.
9118 * tree-dfa.c (add_referenced_var): Return result of
9119 referenced_var_check_and_insert call.
9120 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9121 of referenced_var_check_and_insert.
9122
9123 PR debug/39372
9124 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9125 (gen_variable_die): Emit DW_AT_location on abstract static variable's
9126 DIE, don't emit it if abstract origin already has it.
9127 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9128 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9129
9130 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9131
9132 * genpreds.c (needs_variable): Fix parentheses at variable name
9133 detection.
9134 (write_tm_constrs_h): Indent generated code.
9135
9136 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9137
9138 * doc/extend.texi (Function Attributes): Add documentation
9139 for isr attributes.
9140
9141 2009-03-06 Jakub Jelinek <jakub@redhat.com>
9142
9143 PR debug/39387
9144 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9145 take locus from its DECL_SOURCE_LOCATION instead of input_location.
9146
9147 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
9148
9149 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9150 the loop as bad.
9151
9152 2009-03-05 Jakub Jelinek <jakub@redhat.com>
9153
9154 PR debug/39379
9155 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9156 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9157
9158 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
9159
9160 * config/i386/i386.md (R8_REG, R9_REG): New constants.
9161 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9162 constants instead of magic numbers.
9163 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9164 (QI_REG_P): Ditto.
9165 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9166 (x86_64_ms_abi_int_parameter_registers): Ditto.
9167 (x86_64_int_return_registers): Ditto.
9168 (ix86_maybe_switch_abi): Ditto.
9169 (ix86_expand_call): Ditto for clobbered_registers array.
9170 (ix86_hard_regno_mode_ok): Ditto.
9171 (x86_extended_QIreg_mentioned_p): Ditto.
9172
9173 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
9174
9175 PR tree-optimization/39349
9176 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9177
9178 * combine.c (gen_lowpart_for_combine): Use omode when generating
9179 clobber.
9180
9181 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
9182
9183 PR rtl-optimization/39235
9184 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9185
9186 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
9187
9188 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9189
9190 2009-03-04 Richard Guenther <rguenther@suse.de>
9191
9192 PR tree-optimization/39362
9193 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9194 that occur in abnormal PHIs should be varying.
9195
9196 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
9197
9198 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9199 Extend comments.
9200 (simple_iv): Take loop as an argument instead of statement.
9201 * tree-scalar-evolution.h (simple_iv): Declaration changed.
9202 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9203 to simple_iv.
9204 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9205 Ditto.
9206 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9207 * matrix-reorg.c (analyze_transpose): Ditto.
9208 * tree-data-ref.c (dr_analyze_innermost): Ditto.
9209 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9210 * tree-predcom.c (ref_at_iteration): Ditto.
9211 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9212
9213 2009-03-04 Richard Guenther <rguenther@suse.de>
9214
9215 PR tree-optimization/39358
9216 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9217 escaped_id and callused_id.
9218 (solve_graph): Likewise.
9219
9220 2009-03-04 Richard Guenther <rguenther@suse.de>
9221
9222 PR tree-optimization/39339
9223 * tree-sra.c (try_instantiate_multiple_fields): Make it
9224 no longer ICE on the above.
9225
9226 2009-03-03 Joseph Myers <joseph@codesourcery.com>
9227
9228 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9229 that fits within Pmode.
9230
9231 2009-03-03 Steve Ellcey <sje@cup.hp.com>
9232
9233 PR middle-end/10109
9234 * tm.texi (LIBCALL_VALUE): Update description.
9235
9236 2009-03-03 Steve Ellcey <sje@cup.hp.com>
9237
9238 PR middle-end/34443
9239 * doc/extend.texi (section): Update description.
9240
9241 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
9242
9243 PR middle-end/39345
9244 * tree-inline.c (remapped_type): New.
9245 (can_be_nonlocal): Call remapped_type instead of remap_type.
9246
9247 2009-03-03 Jakub Jelinek <jakub@redhat.com>
9248
9249 PR fortran/39354
9250 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9251 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9252
9253 2009-03-03 Richard Guenther <rguenther@suse.de>
9254
9255 PR middle-end/39272
9256 * tree.c (tree_nonartificial_location): New function.
9257 * tree.h (tree_nonartificial_location): Declare.
9258 * builtins.c (expand_builtin_memory_chk): Provide location
9259 of the call location for artificial function pieces.
9260 (maybe_emit_chk_warning): Likewise.
9261 (maybe_emit_sprintf_chk_warning): Likewise.
9262 (maybe_emit_free_warning): Likewise.
9263 * expr.c (expand_expr_real_1): Likewise.
9264
9265 2009-03-03 Jakub Jelinek <jakub@redhat.com>
9266
9267 PR tree-optimization/39343
9268 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9269 COMPONENT_REF t has ARRAY_TYPE.
9270
9271 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
9272
9273 PR middle-end/39335
9274 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9275 when the type precision of the induction variable should be
9276 larger than the type precision of nit.
9277 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9278 * graphite.c (graphite_loop_normal_form): Same.
9279 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9280
9281 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
9282
9283 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9284 (*call_1_rex64_ms_sysv): Use named constants instead of magic
9285 numbers to describe clobbered registers.
9286 (*call_value_0_rex64_ms_sysv): Ditto.
9287 * config/i386/mmx.md (mmx_emms): Ditto.
9288 (mmx_femms): Ditto.
9289
9290 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
9291
9292 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9293 of ABI_64.
9294
9295 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9296
9297 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9298 (spu_section_type_flags): New function.
9299
9300 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
9301
9302 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9303 reg_class_contents of FLOAT_REGS into a temporary.
9304
9305 2009-03-02 Richard Guenther <rguenther@suse.de>
9306 Ira Rosen <irar@il.ibm.com>
9307
9308 PR tree-optimization/39318
9309 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9310 information to the vectorized statement.
9311
9312 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
9313
9314 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9315 variable. Use defined names instead of magic constants for REX SSE
9316 registers.
9317
9318 2009-03-01 Richard Guenther <rguenther@suse.de>
9319
9320 PR tree-optimization/39331
9321 * omp-low.c (lower_send_shared_vars): Do not receive new
9322 values for the reference of DECL_BY_REFERENCE parms or results.
9323
9324 2009-03-01 Jan Hubicka <jh@suse.cz>
9325
9326 PR debug/39267
9327 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9328 BLOCK_NONLOCALIZED_VAR): New macros.
9329 (tree_block): Add nonlocalized_vars.
9330 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9331 gen_decl_die): Add origin argument. Allow generation of die with
9332 origin at hand only.
9333 (gen_member_die, gen_type_die_with_usage, force_decl_die,
9334 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9335 of gen_*.
9336 (gen_block_die): Fix checking for unused blocks.
9337 (process_scope_var): Break out from .... ; work with origins only.
9338 (decls_for_scope) ... here; process nonlocalized list.
9339 (dwarf2out_ignore_block): Look for nonlocalized vars.
9340 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9341 vars.
9342 (dump_scope_block): Dump them.
9343 * tree-inline.c (remap_decls): Handle nonlocalized vars.
9344 (remap_block): Likewise.
9345 (can_be_nonlocal): New predicate.
9346 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9347
9348 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9349
9350 * configure: Regenerate.
9351
9352 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9353
9354 * optc-gen.awk: No need to duplicate option flags twice.
9355 Reuse help texts for duplicate options which do not have any.
9356
9357 * gcc.c (display_help): Document --version.
9358
9359 * gcc.c (main): If print_help_list and verbose_flag, ensure
9360 driver output comes before subprocess output.
9361
9362 * optc-gen.awk: Assign all remaining fields to help string,
9363 space-separated, for multi-line help in *.opt.
9364
9365 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9366 -Wno-pedantic-ms-format is for MinGW targets only.
9367
9368 * doc/options.texi (Option file format): Fix bad indentation,
9369 restoring dropped sentence.
9370
9371 2009-02-28 Jan Hubicka <jh@suse.cz>
9372
9373 * tree-inline.c (tree_function_versioning): Output debug info.
9374
9375 2009-02-28 Jan Hubicka <jh@suse.cz>
9376
9377 PR debug/39267
9378 * tree-inline.c (setup_one_parameter): Do not copy propagate
9379 arguments when not optimizing.
9380
9381 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
9382
9383 PR target/39327
9384 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9385 (avx_addsubv4df3): Likewise.
9386 (*avx_addsubv4sf3): Likewise.
9387 (sse3_addsubv4sf3): Likewise.
9388 (*avx_addsubv2df3): Likewise.
9389 (sse3_addsubv2df3): Likewise.
9390 (avx_unpckhps256): Correct item selectors.
9391 (avx_unpcklps256): Likewise.
9392 (avx_unpckhpd256): Likewise.
9393 (avx_unpcklpd256): Likewise.
9394
9395 2009-02-28 Jan Hubicka <jh@suse.cz>
9396
9397 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9398 static vars.
9399 (copy_arguments_for_versioning): If var is declared don't declare it.
9400 (tree_function_versioning): First setup substitutions and then copy
9401 args.
9402
9403 2009-02-27 Jan Hubicka <jh@suse.cz>
9404
9405 PR debug/39267
9406 * cgraph.h (varpool_output_debug_info): Remove.
9407 * cgraphunit.c (varpool_output_debug_info): Remove.
9408 * dwarf2out.c (deferred_locations_struct): New struct
9409 (deferred_locations): New type.
9410 (deferred_locations_list): New static var.
9411 (deffer_location): New function.
9412 (gen_variable_die): Use it.
9413 (decls_for_scope): Output info on local static vars.
9414 (dwarf2out_finish): Process deferred locations.
9415 * varpool.c (varpool_output_debug_info): Remove.
9416
9417 2009-02-27 Jan Hubicka <jh@suse.cz>
9418
9419 PR debug/39267
9420 * tree.h (TREE_PROTECTED): Fix comment.
9421 (BLOCK_HANDLER_BLOCK): Remove.
9422 (struct tree_block): Remove handler_block add body_block.
9423 (inlined_function_outer_scope_p): New.
9424 (is_body_block): Remove.
9425 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9426 * dwarf2out.c (is_inlined_entry_point): Remove.
9427 (add_high_low_attributes): Use inlined_function_outer_scope_p.
9428 (gen_block_die): Use is_inlined_entry_point check. Remove body block
9429 code.
9430 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9431 * gimplify.c (gimplify_expr): Gimplify body blocks.
9432 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9433 block with multiple subblocks.
9434 (dump_scope_block): Prettier output; dump more flags and info.
9435 (dump_scope_blocks): New.
9436 (remove_unused_locals): Use dump_scope_blocks.
9437 * tree-flow.h (dump_scope_blocks): Declare.
9438 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9439 * stmt.c (is_body_block): Remove.
9440 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9441 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9442
9443 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
9444
9445 PR middle-end/39308
9446 * graphite.c (graphite_loop_normal_form): Do not call
9447 number_of_iterations_exit from a gcc_assert.
9448
9449 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9450
9451 * config/s390/s390.c (s390_swap_cmp): Look for conditional
9452 jumps if COND is NULL.
9453 (find_cond_jump): New function.
9454 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
9455 * config/s390/s390.md: Remove z10_cobra attribute value.
9456
9457 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
9458
9459 * config/alpha/alpha.h (alpha_expand_mov): Return false if
9460 force_const_mem returns NULL_RTX.
9461
9462 2009-02-26 Jan Hubicka <jh@suse.cz>
9463
9464 PR debug/39267
9465 * cgraph.h (varpool_output_debug_info): Remove.
9466 * cgraphunit.c (varpool_output_debug_info): Remove.
9467 * dwarf2out.c (deferred_locations_struct): New struct
9468 (deferred_locations): New type.
9469 (deferred_locations_list): New static var.
9470 (deffer_location): New function.
9471 (gen_variable_die): Use it.
9472 (decls_for_scope): Output info on local static vars.
9473 (dwarf2out_finish): Process deferred locations.
9474 * varpool.c (varpool_output_debug_info): Remove.
9475
9476 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
9477
9478 PR rtl-optimization/39241
9479 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9480 to subreg_offset_representable_p.
9481
9482 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
9483
9484 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9485 execute function prototype. Get f and nregs from max_reg_num
9486 and get_insns. Remove the first backward pass as it's dead,
9487 guard the forward pass by flag_expensive_optimizations.
9488 (rest_of_handle_regmove): Delete.
9489 (pass_regmove): Replace it with regmove_optimize.
9490
9491 2009-02-25 Martin Jambor <mjambor@suse.cz>
9492
9493 PR tree-optimization/39259
9494 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
9495 calls_alloca function flags.
9496 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9497 calls are detected.
9498
9499 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
9500
9501 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9502 flags_set_1_rtx, flags_set_1_set): Delete.
9503 (regmove_optimize): Do not call mark_flags_life_zones.
9504
9505 2009-02-24 Julian Brown <julian@codesourcery.com>
9506
9507 PR target/35965
9508 * config/arm/arm.c (require_pic_register): Only set
9509 cfun->machine->pic_reg once per function.
9510
9511 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
9512
9513 * doc/invoke.texi (Link Options): Document an easier way to pass
9514 options that take arguments to the GNU linker using -Xlinker and -Wl.
9515
9516 2009-02-24 Steve Ellcey <sje@cup.hp.com>
9517
9518 PR target/33785
9519 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9520
9521 2009-02-24 Richard Guenther <rguenther@suse.de>
9522
9523 PR debug/39285
9524 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9525
9526 2009-02-24 Richard Guenther <rguenther@suse.de>
9527 Zdenek Dvorak <ook@ucw.cz>
9528
9529 PR tree-optimization/39233
9530 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9531 from converting them to a generic type.
9532
9533 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
9534
9535 PR tree-optimization/39260
9536 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9537 contains a condition with a real type.
9538 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9539
9540 2009-02-23 Jason Merrill <jason@redhat.com>
9541
9542 PR c++/38880
9543 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9544 narrowing_initializer_constant_valid_p.
9545 (narrowing_initializer_constant_valid_p): Don't return
9546 null_pointer_node for adding a pointer to itself.
9547
9548 2009-02-23 Jan Hubicka <jh@suse.cz>
9549
9550 PR c/12245
9551 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9552 resizing.
9553
9554 2009-02-23 Jan Hubicka <jh@suse.cz>
9555
9556 PR tree-optimization/37709
9557 * tree.c (block_ultimate_origin): Move here from dwarf2out.
9558 * tree.h (block_ultimate_origin): Declare.
9559 * dwarf2out.c (block_ultimate_origin): Move to tree.c
9560 * tree-ssa-live.c (remove_unused_scope_block_p):
9561 Eliminate blocks containig no instructions nor live variables nor
9562 nested blocks.
9563 (dump_scope_block): New function.
9564 (remove_unused_locals): Enable removal of dead blocks by default;
9565 enable dumping at TDF_DETAILS.
9566
9567 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
9568
9569 * config/i386/i386.c (classify_argument): Don't allow COImode
9570 and OImode.
9571 (function_arg_advance_32): Don't allow OImode.
9572 (function_arg_32): Likewise.
9573 (function_value_32): Likewise.
9574 (return_in_memory_32): Likewise.
9575 (function_arg_64): Remove OImode comment.
9576
9577 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
9578
9579 PR target/39261
9580 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9581 ix86_expand_vector_set for V4DImode in 64bit mode only.
9582 (ix86_expand_vector_init_one_var): Likewise.
9583
9584 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
9585
9586 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9587
9588 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9589
9590 PR bootstrap/39257
9591 * loop-iv.c: Revert last change.
9592 * emit-rtl.c: Likewise.
9593
9594 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
9595
9596 PR target/39256
9597 * config/i386/i386.c (type_natural_mode): Remove an extra
9598 space in the warning message.
9599 (function_value_32): Handle 32-byte vector modes.
9600 (return_in_memory_32): Likewise.
9601
9602 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9603
9604 * loop-iv.c (truncate_value): New function.
9605 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9606 of lowpart_subreg.
9607 (lowpart_subreg): Move to...
9608 * emit-rtl.c: ...here.
9609
9610 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
9611
9612 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9613 accidental and undocumented change at revision 140860.
9614
9615 2009-02-21 Joseph Myers <joseph@codesourcery.com>
9616
9617 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9618 take gimple_seq * arguments.
9619 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9620 types_compatible_p langhook.
9621
9622 2009-02-20 Mark Mitchell <mark@codesourcery.com>
9623 Joseph Myers <joseph@codesourcery.com>
9624
9625 * config/arm/arm.c (arm_builtin_va_list): New function.
9626 (arm_expand_builtin_va_start): Likewise.
9627 (arm_gimplify_va_arg_expr): Likewise.
9628 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9629 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9630 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9631 (va_list_type): New variable.
9632 (arm_mangle_type): Mangle va_list_type appropriately.
9633
9634 2009-02-20 Jakub Jelinek <jakub@redhat.com>
9635
9636 PR middle-end/39157
9637 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9638 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9639 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9640 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9641 parameter to 1000 for -O1 by default.
9642 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9643 parameter.
9644 * loop-invariant.c: Include params.h.
9645 (move_loop_invariants): Don't call move_single_loop_invariants on
9646 very large loops.
9647
9648 2009-02-20 Jaka Mocnik <jaka@xlab.si>
9649
9650 * calls.c (emit_library_call_value_1): Use slot_offset instead of
9651 offset when calculating bounds for indexing stack_usage_map. Fixes
9652 a buffer overflow with certain target setups.
9653
9654 2009-02-20 Jakub Jelinek <jakub@redhat.com>
9655
9656 PR target/39240
9657 * calls.c (expand_call): Clear try_tail_call if caller and callee
9658 disagree in promotion of function return value.
9659
9660 2009-02-19 Jakub Jelinek <jakub@redhat.com>
9661
9662 PR target/39175
9663 * c-common.c (c_determine_visibility): If visibility changed and
9664 DECL_RTL has been already set, call make_decl_rtl to update symbol
9665 flags.
9666
9667 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
9668
9669 PR c++/39188
9670 * varasm.c (assemble_variable): Don't check DECL_NAME when
9671 globalizing a variable.
9672
9673 2009-02-19 Joseph Myers <joseph@codesourcery.com>
9674
9675 PR c/38483
9676 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9677 expression before any __builtin_trap call.
9678 * c-typeck.c (build_function_call): Convert and check function
9679 arguments before generating a call to a trap. Evaluate the
9680 function arguments before the trap.
9681
9682 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
9683
9684 PR target/39228
9685 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9686 (UNSPEC_FXAM_MEM): New unspec.
9687 (fxam<mode>2_i387_with_temp): New insn and split pattern.
9688 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
9689 memory using fxam<mode>2_i387_with_temp to remove excess precision.
9690
9691 2009-02-19 Richard Guenther <rguenther@suse.de>
9692
9693 PR tree-optimization/39207
9694 PR tree-optimization/39074
9695 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9696 storedanything_tree): New.
9697 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
9698 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9699 (build_succ_graph): Add edges from STOREDANYTHING to all
9700 non-direct nodes.
9701 (init_base_vars): Initialize STOREDANYTHING.
9702 (compute_points_to_sets): Free substitution info after
9703 building the succ graph.
9704 (ipa_pta_execute): Likewise.
9705
9706 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9707 field.
9708 (do_ds_constraint): Do not add to special var or non-pointer
9709 field solutions.
9710 (type_could_have_pointers): Split out from ...
9711 (could_have_pointers): ... here. For arrays use the element type.
9712 (create_variable_info_for): Initialize may_have_pointers.
9713 (new_var_info): Likewise.
9714 (handle_lhs_call): Make the HEAP variable unknown-sized.
9715 (intra_create_variable_infos): Use a type with pointers for
9716 PARM_NOALIAS, make it unknown-sized.
9717
9718 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
9719
9720 PR target/39224
9721 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
9722
9723 2009-02-18 Jason Merrill <jason@redhat.com>
9724
9725 PR target/39179
9726 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9727 value if DECL_EXTERNAL.
9728 * tree-sra.c (sra_walk_gimple_assign): Likewise.
9729 * target.h (gcc_target::binds_local_p): Clarify "module".
9730 * tree.h (TREE_PUBLIC): Clarify "module".
9731
9732 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
9733
9734 PR target/38891
9735 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9736 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9737
9738 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
9739
9740 PR target/39082
9741 * c.opt (Wabi): Support C and ObjC.
9742 (Wpsabi): New.
9743
9744 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9745
9746 * config/i386/i386.c (classify_argument): Warn once about the ABI
9747 change when passing union with long double.
9748
9749 * doc/invoke.texi: Update -Wabi for warning psABI changes.
9750
9751 2009-02-18 Joseph Myers <joseph@codesourcery.com>
9752
9753 PR c/35447
9754 * c-parser.c (c_parser_compound_statement): Always enter and leave
9755 a scope.
9756
9757 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9758
9759 PR target/34587
9760 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9761
9762 2009-02-18 Jakub Jelinek <jakub@redhat.com>
9763
9764 PR tree-optimization/36922
9765 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9766 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9767 Likewise.
9768
9769 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9770
9771 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9772 to 0 for EABI64.
9773
9774 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9775
9776 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9777
9778 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9779
9780 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9781 tree sharing.
9782
9783 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
9784 Richard Sandiford <rdsandiford@googlemail.com>
9785
9786 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
9787 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
9788 (loongson_biadd): ...this.
9789
9790 2009-02-17 Richard Guenther <rguenther@suse.de>
9791
9792 PR tree-optimization/39202
9793 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
9794 a var make sure to follow existing collapses.
9795
9796 2009-02-17 Richard Guenther <rguenther@suse.de>
9797
9798 PR middle-end/39214
9799 * langhooks.c (lhd_print_error_function): Check for NULL block.
9800
9801 2009-02-17 Richard Guenther <rguenther@suse.de>
9802
9803 PR tree-optimization/39204
9804 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
9805 of the PHI arg.
9806
9807 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
9808
9809 * config/soft-fp/double.h: Update from glibc CVS.
9810
9811 2009-02-17 Richard Guenther <rguenther@suse.de>
9812
9813 PR tree-optimization/39207
9814 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
9815 strict-aliasing warnings for pointers pointing to NULL.
9816
9817 2009-02-16 Joseph Myers <joseph@codesourcery.com>
9818
9819 PR c/35446
9820 * c-parser.c (c_parser_braced_init): Call pop_init_level when
9821 skipping until next close brace.
9822
9823 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
9824
9825 PR target/37049
9826 * config/i386/i386.c (ix86_expand_push): Set memory alignment
9827 to function argument boundary.
9828
9829 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
9830
9831 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
9832 in the lea_add. Reload eventually constraints it properly.
9833 * config/picochip/constraints.md: Remove the target constraint
9834 "b", since it is not needed anymore.
9835
9836 2009-02-16 Jakub Jelinek <jakub@redhat.com>
9837
9838 * gthr-dce.h: Uglify function parameter and local variable names.
9839 * gthr-gnat.h: Likewise.
9840 * gthr-mipssde.h: Likewise.
9841 * gthr-nks.h: Likewise.
9842 * gthr-posix95.h: Likewise.
9843 * gthr-posix.h: Likewise.
9844 * gthr-rtems.h: Likewise.
9845 * gthr-single.h: Likewise.
9846 * gthr-solaris.h: Likewise.
9847 * gthr-tpf.h: Likewise.
9848 * gthr-vxworks.h: Likewise.
9849 * gthr-win32.h: Likewise.
9850
9851 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
9852
9853 PR target/39196
9854 * config/i386/i386.md: Restrict the new peephole2 to move
9855 between MMX/SSE registers.
9856
9857 2009-02-15 Richard Guenther <rguenther@suse.de>
9858
9859 Revert
9860 2009-02-13 Richard Guenther <rguenther@suse.de>
9861
9862 * configure.ac: Enable LFS.
9863 * configure: Re-generate.
9864 * config.in: Likewise.
9865
9866 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9867
9868 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
9869 spu_srqwbyte, spu_srqwbytebc): Define.
9870 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
9871 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
9872 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
9873 "shrqby_<mode>"): New insn-and-split patterns.
9874 * config/spu/spu.c (expand_builtin_args): Determine and return
9875 number of operands using spu_builtin_description data.
9876 (spu_expand_builtin_1): Use it.
9877
9878 2009-02-13 Steve Ellcey <sje@cup.hp.com>
9879
9880 PR target/38056
9881 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
9882 TARGET_CONST_GP.
9883
9884 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9885
9886 PR target/39149
9887 * config/i386/i386.c (override_options): Correct warning
9888 messages for -malign-loops, -malign-jumps and -malign-functions.
9889
9890 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9891
9892 PR target/39152
9893 * config/i386/i386.md: Restrict the new peephole2 to move
9894 between the general purpose registers.
9895
9896 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
9897
9898 PR target/39162
9899 * config/i386/i386.c (type_natural_mode): Add a new argument.
9900 Return the original mode and warn ABI change if vector size is 32byte.
9901 (function_arg_advance): Updated.
9902 (function_arg): Likewise.
9903 (ix86_function_value): Likewise.
9904 (ix86_return_in_memory): Likewise.
9905 (ix86_sol10_return_in_memory): Likewise.
9906 (ix86_gimplify_va_arg): Likewise.
9907 (function_arg_32): Don't warn ABX ABI change here.
9908 (function_arg_64): Likewise.
9909
9910 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
9911
9912 * loop-iv.c (implies_p): In the final case, test that operands 0
9913 of the two comparisons match.
9914
9915 * config/bfin/bfin.c (find_prev_insn_start): New function.
9916 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
9917 (find_next_insn_start): Move.
9918
9919 2009-02-13 Richard Guenther <rguenther@suse.de>
9920
9921 * configure.ac: Enable LFS.
9922 * configure: Re-generate.
9923 * config.in: Likewise.
9924
9925 2009-02-13 Joseph Myers <joseph@codesourcery.com>
9926
9927 PR c/35444
9928 * c-parser.c (c_parser_parms_list_declarator): Discard pending
9929 sizes on syntax error after some arguments have been parsed.
9930
9931 2009-02-12 Jakub Jelinek <jakub@redhat.com>
9932
9933 * doc/invoke.texi (-fira): Remove.
9934
9935 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9936
9937 * caller-save.c: Replace regclass.c with reginfo.c in comments.
9938 * recog.c: Likewise.
9939 * rtl.h: Likewise.
9940
9941 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
9942
9943 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
9944 (umul_ppmm): Likewise.
9945 (count_leading_zeros): Likewise.
9946 (count_trailing_zeros): Likewise.
9947 (UMUL_TIME): Likewise.
9948
9949 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9950
9951 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
9952 soft-fp/t-softfp to tmake_file.
9953
9954 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
9955 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
9956 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
9957 IA64_BUILTIN_INFQ]: New.
9958 (ia64_init_builtins): Initialize __builtin_infq,
9959 __builtin_fabsq and __builtin_copysignq if not HPUX.
9960 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
9961 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
9962
9963 * config/ia64/lib1funcs.asm (__divtf3): Define only if
9964 SHARED is defined.
9965 (__fixtfti): Likewise.
9966 (__fixunstfti): Likewise.
9967 (__floattitf): Likewise.
9968
9969 * config/ia64/libgcc-glibc.ver: New.
9970 * config/ia64/t-fprules-softfp: Likewise.
9971 * config/ia64/sfp-machine.h: Likewise.
9972
9973 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
9974 (LIBGCC2_TF_CEXT): Likewise.
9975 (TF_SIZE): Likewise.
9976 (TARGET_INIT_LIBFUNCS): Likewise.
9977
9978 * config/ia64/t-glibc (SHLINB_MAPFILES):
9979 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
9980
9981 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
9982
9983 * config/i386/i386.c (construct_container): Rewrite processing
9984 BLKmode with X86_64_SSE_CLASS.
9985
9986 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
9987
9988 PR target/39152
9989 * config/i386/i386.md: Replace simplify_replace_rtx with
9990 replace_rtx in the new peephole2.
9991
9992 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
9993
9994 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
9995 loop unrolling do not happen at -O2.
9996
9997 2009-02-12 Michael Matz <matz@suse.de>
9998
9999 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
10000
10001 2009-02-12 Jakub Jelinek <jakub@redhat.com>
10002
10003 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
10004 for -g3.
10005
10006 2009-02-12 Ben Elliston <bje@au.ibm.com>
10007
10008 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
10009 patterns when updating the back chain. Missed in the 2009-02-10
10010 change.
10011
10012 2009-02-11 Janis Johnson <janis187@us.ibm.com>
10013
10014 * doc/extend.texi (Decimal Floating Types): Update identifier of
10015 draft TR and list of missing support.
10016
10017 2009-02-11 Jakub Jelinek <jakub@redhat.com>
10018
10019 PR middle-end/39154
10020 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
10021 bit to variable length decl's flags, add it also to its
10022 pointer replacement variable.
10023
10024 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
10025 Jakub Jelinek <jakub@redhat.com>
10026
10027 PR target/39118
10028 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
10029 (memory_blockage): New expander.
10030 (*memory_blockage): New insn pattern.
10031 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
10032 instead of general blockage at the end of function prologue when
10033 frame pointer is used to access red zone area. Do not emit blockage
10034 when profiling, it is emitted in generic code.
10035 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
10036 function epilogue when frame pointer is used to access red zone area.
10037
10038 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
10039
10040 PR target/38824
10041 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10042 by arithmetic with memory operands.
10043 * config/i386/predicates.md (commutative_operator): New.
10044
10045 2009-02-10 Janis Johnson <janis187@us.ibm.com>
10046
10047 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10048 bulleted lists.
10049
10050 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
10051
10052 * alias.h (record_alias_subset): Declare.
10053 * alias.c (record_alias_subset): Make global.
10054
10055 2009-02-10 Nick Clifton <nickc@redhat.com>
10056
10057 * tree-parloops.c: Change license to GPLv3.
10058 * ipa-struct-reorg.c: Change license to GPLv3.
10059 * ipa-struct-reorg.h: Change license to GPLv3.
10060
10061 2009-02-10 Steve Ellcey <sje@cup.hp.com>
10062
10063 PR c/39084
10064 * c-decl.c (start_struct): Return NULL on error.
10065
10066 2009-02-10 Jakub Jelinek <jakub@redhat.com>
10067
10068 PR middle-end/39124
10069 * cfgloopmanip.c (remove_path): Call remove_bbs after
10070 cancel_loop_tree, not before it.
10071
10072 PR target/39139
10073 * function.h (struct function): Add has_local_explicit_reg_vars bit.
10074 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10075 VAR_DECLs were seen.
10076 * tree-ssa-live.c (remove_unused_locals): Recompute
10077 cfun->has_local_explicit_reg_vars.
10078 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10079 copies or clearings if cfun->has_local_explicit_reg_vars.
10080
10081 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
10082
10083 PR target/39118
10084 * config/i386/i386.c (expand_prologue): Emit blockage at the end
10085 of function prologue when frame pointer is used to access
10086 red zone area.
10087
10088 2009-02-10 Richard Guenther <rguenther@suse.de>
10089
10090 PR middle-end/39127
10091 * gimplify.c (gimple_regimplify_operands): Always look if
10092 we need to create a temporary.
10093
10094 2009-02-10 Richard Guenther <rguenther@suse.de>
10095
10096 PR tree-optimization/39132
10097 * tree-loop-distribution.c (todo): New global var.
10098 (generate_memset_zero): Trigger TODO_rebuild_alias.
10099 (tree_loop_distribution): Return todo.
10100
10101 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
10102
10103 PR target/39119
10104 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10105 (x86_64_reg_class_name): Removed.
10106 (classify_argument): Return 0 if bytes > 32. Return 0 if the
10107 first one isn't X86_64_SSE_CLASS or any other ones aren't
10108 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
10109 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10110 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
10111 and 3 X86_64_SSEUP_CLASS.
10112 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
10113 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10114
10115 2009-02-10 Ben Elliston <bje@au.ibm.com>
10116
10117 * config/rs6000/rs6000.md (allocate_stack): Always use an update
10118 form instruction to update the stack back chain word, even if the
10119 user has disabled the generation of update instructions.
10120 (movdi_<mode>_update_stack): New.
10121 (movsi_update_stack): Likewise.
10122 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10123 always use an update form instruction to update the stack back
10124 chain word.
10125
10126 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
10127
10128 PR middle-end/38953
10129 * graphite.c (if_region_set_false_region): After moving a region in
10130 the false branch of a condition, remove the empty dummy basic block.
10131 (gloog): Remove wrong fix for PR38953.
10132
10133 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10134
10135 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10136 generation due to implicit sign extension.
10137
10138 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
10139
10140 PR middle-end/38981
10141 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10142 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10143
10144 2009-02-09 Richard Guenther <rguenther@suse.de>
10145
10146 PR middle-end/35202
10147 * convert.c (convert_to_real): Disable (float)fn((double)x)
10148 to fnf(x) conversion if errno differences may occur and
10149 -fmath-errno is set.
10150
10151 2009-02-07 Anatoly Sokolov <aesok@post.ru>
10152
10153 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10154 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10155 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10156
10157 2009-02-06 Joseph Myers <joseph@codesourcery.com>
10158
10159 PR c/35434
10160 * c-common.c (handle_alias_attribute): Disallow attribute for
10161 anything not a FUNCTION_DECL or VAR_DECL.
10162
10163 2009-02-06 Janis Johnson <janis187@us.ibm.com>
10164
10165 PR c/39035
10166 * real.c (do_compare): Special-case compare of zero against
10167 decimal float value.
10168
10169 2009-02-06 Joseph Myers <joseph@codesourcery.com>
10170
10171 PR c/36432
10172 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10173 as indicating flexible array members unless the field itself is
10174 being declarared as the incomplete array.
10175
10176 2009-02-06 Jan Hubicka <jh@suse.cz>
10177
10178 PR tree-optimization/38844
10179 * ipa-inline.c (try_inline): Stop inlining recursion when edge
10180 is already inlined.
10181
10182 2009-02-06 Richard Guenther <rguenther@suse.de>
10183
10184 PR middle-end/38977
10185 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10186 fork because we may expand it as __gcov_fork.
10187
10188 2009-02-06 Nick Clifton <nickc@redhat.com>
10189
10190 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
10191
10192 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
10193
10194 PR tree-optimization/35659
10195 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10196 vn_phi_eq): Shortcut if hashcode does not match.
10197 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10198 NULL operands.
10199 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10200 and avoid iterative_hash_expr.
10201 (FOR_EACH_VALUE_ID_IN_SET): New.
10202 (value_id_compare): Remove.
10203 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10204 sort expressions by value id.
10205
10206 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
10207
10208 PR target/38991
10209 * config/sh/predicates.md (general_movsrc_operand): Don't check
10210 the subreg of system registers here.
10211
10212 2009-02-05 Jakub Jelinek <jakub@redhat.com>
10213
10214 PR c++/39106
10215 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10216 on the copied decl.
10217
10218 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
10219
10220 PR rtl-optimization/39110
10221 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10222 addresses, not aligned ones.
10223
10224 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
10225 Richard Guenther <rguenther@suse.de>
10226
10227 PR tree-optimization/39100
10228 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10229 comment says and add edges.
10230
10231 2009-02-05 Joseph Myers <joseph@codesourcery.com>
10232
10233 PR c/35435
10234 * c-common.c (handle_tls_model_attribute): Ignore attribute for
10235 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10236
10237 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
10238
10239 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10240 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10241 register_bb_in_sese, new_sese, free_sese): Moved.
10242 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10243 outermost_loop_in_scop, build_scop_iteration_domain,
10244 expand_scalar_variables_ssa_name, get_vdef_before_scop,
10245 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10246 Use loop_in_sese_p instead of loop_in_scop_p.
10247 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10248 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10249 (scopdet_basic_block_info): Fix bug in scop detection.
10250 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10251 eq_loop_to_cloog_loop): Remove.
10252 (nb_loops_around_loop_in_scop, nb_loop
10253 ref_nb_loops): Moved here...
10254 * graphite.h (ref_nb_loops): ... from here.
10255 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10256 (loop_domain_dim, loop_iteration_vector_dim): Remove.
10257 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10258 * testsuite/gcc.dg/graphite/scop-19.c: New
10259
10260 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
10261 Hans-Peter Nilsson <hp@axis.com>
10262
10263 PR rtl-optimization/37889
10264 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10265 Move offset handling from PLUS to before the switch. Use new
10266 arguments when considering SYMBOL_REFs too.
10267 (rtx_addr_can_trap_p): Pass dummy offset and size.
10268 (enum may_trap_p_flags): Remove.
10269 (may_trap_p_1): Pass size from MEM_SIZE.
10270
10271 PR rtl-optimization/38921
10272 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10273 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10274 * rtlanal.c (may_trap_after_code_motion_p): Delete.
10275 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10276
10277 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
10278
10279 AVX Programming Reference (January, 2009)
10280 * config/i386/sse.md (*vpclmulqdq): New.
10281
10282 2009-02-04 Jakub Jelinek <jakub@redhat.com>
10283
10284 PR tree-optimization/38977
10285 PR gcov-profile/38292
10286 * calls.c (special_function_p): Disregard __builtin_ prefix.
10287
10288 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
10289
10290 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10291 non-indexable addresses even before reload.
10292
10293 2009-02-03 Joseph Myers <joseph@codesourcery.com>
10294
10295 PR c/29129
10296 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10297 as having variable size. Do not give an error for unnamed
10298 parameters with [*] declarators. Give a warning for type names
10299 with [*] declarators and mark them as variable size.
10300 * c-parser.c (c_parser_sizeof_expression): Do not give an error
10301 for sizeof applied to [*] type names.
10302
10303 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
10304
10305 PR C++/36607
10306 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10307
10308 2009-02-03 Jakub Jelinek <jakub@redhat.com>
10309
10310 * gcc.c (process_command): Update copyright notice dates.
10311 * gcov.c (print_version): Likewise.
10312 * gcov-dump.c (print_version): Likewise.
10313 * mips-tfile.c (main): Likewise.
10314 * mips-tdump.c (main): Likewise.
10315
10316 2009-02-03 Joseph Myers <joseph@codesourcery.com>
10317
10318 PR c/35433
10319 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10320 for composite type involving a zero-length array type.
10321
10322 2009-02-03 Jakub Jelinek <jakub@redhat.com>
10323
10324 PR target/35318
10325 * function.c (match_asm_constraints_1): Skip over
10326 initial optional % in the constraint.
10327
10328 PR inline-asm/39059
10329 * c-parser.c (c_parser_postfix_expression): If fixed point is not
10330 supported, don't accept FIXED_CSTs.
10331 * c-decl.c (finish_declspecs): Error if fixed point is not supported
10332 and _Sat is used without _Fract/_Accum. Set specs->type to
10333 integer_type_node for cts_fract/cts_accum if fixed point is not
10334 supported.
10335
10336 2009-02-02 Catherine Moore <clm@codesourcery.com>
10337
10338 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
10339
10340 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
10341
10342 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10343 (ABI_HAS_64BIT_SYMBOLS): Use it.
10344 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10345
10346 2009-02-02 Paul Brook <paul@codesourcery.com>
10347
10348 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10349
10350 2009-02-02 Jakub Jelinek <jakub@redhat.com>
10351
10352 PR inline-asm/39058
10353 * recog.h (asm_operand_ok): Add constraints argument.
10354 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
10355 recurse on matching constraint.
10356 (check_asm_operands): Pass constraints as 3rd argument to
10357 asm_operand_ok. Don't look up matching constraint here.
10358 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10359 to asm_operand_ok.
10360
10361 2009-02-02 Ben Elliston <bje@au.ibm.com>
10362
10363 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10364 TARGET_NARROW_VOLATILE_BITFIELD macro names.
10365
10366 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10367
10368 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10369 information. Remove some obsolete information. Reorganize.
10370
10371 * config/pa/fptr.c: Revert license to GPL 2.
10372 * config/pa/milli64.S: Likewise.
10373
10374 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10375
10376 PR target/38904
10377 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
10378 LIBRARY name in, instead of hard-coding it.
10379 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
10380 extra target make frag to tmake_files according to EH model.
10381 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10382 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
10383 frags that define makefile variable EH_MODEL appropriately.
10384 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
10385 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
10386 to "-sjlj" according to type of EH configured.
10387 (LIBGCC_SONAME): Concatenate it to shared library base name.
10388 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
10389 to "_sjlj" according to type of EH configured.
10390 (LIBGCC_SONAME): Concatenate it to shared library base name.
10391 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
10392 (SHLIB_LINK): Add missing semicolon to if-else construct.
10393 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10394 string value of "pe_dll" command-line option.
10395 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
10396 (SHLIB_SONAME): Use it when overriding t-cygming default.
10397 (SHLIB_IMPLIB): Override t-cygming default.
10398 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10399 string value of "pe_dll" command-line option.
10400
10401 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10402
10403 PR target/38952
10404 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
10405 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
10406
10407 2009-01-31 Richard Guenther <rguenther@suse.de>
10408
10409 PR tree-optimization/38937
10410 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10411 computing the transitive closure.
10412
10413 2009-01-30 Richard Guenther <rguenther@suse.de>
10414
10415 PR tree-optimization/39041
10416 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10417 Propagate variable indices only if the types match for this stmt.
10418
10419 2009-01-30 Jakub Jelinek <jakub@redhat.com>
10420
10421 PR target/39013
10422 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10423 inline but never defined.
10424
10425 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
10426
10427 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10428 (*insv_h_di_reg_extimm): New insn.
10429 (*insv_l<mode>_reg_extimm): New insn.
10430
10431 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
10432
10433 * config/picochip/picochip.c (flag_conserve_stack): set
10434 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10435 fconserve-stack. Reduce call-overhead used by inliner.
10436
10437 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
10438
10439 PR/38157
10440 * common.opt (flag_conserve_stack): Initialised to zero.
10441
10442 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
10443
10444 PR/39002
10445 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10446 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10447 method.
10448
10449 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
10450
10451 * ira-color.c (allocno_reload_assign): Update comments.
10452 * regmove.c (regmove_optimize): Likewise.
10453
10454 * ra.h: Removed.
10455
10456 2009-01-29 Robert Millan <rmh@aybabtu.com>
10457
10458 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10459 * config/i386/kopensolaris-gnu.h: New file. Undefine
10460 `MD_UNWIND_SUPPORT'.
10461 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
10462
10463 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
10464
10465 PR tree-optimization/39007
10466 * tree-loop-distribution.c (generate_builtin): Use
10467 recompute_dominator to compute the immediate dominator of the
10468 basic block just after the loop.
10469
10470 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
10471
10472 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10473 (ASM_OUTPUT_DWARF_PCREL): Define.
10474
10475 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
10476
10477 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10478 * doc/passes.texi: Remove entries about regclass, local-alloc, and
10479 global. Modify entries about regmove and IRA.
10480
10481 * ra-conflict.c: Remove the file.
10482
10483 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10484
10485 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10486 (pass_regclass_init): Rename to pass_reginfo_init.
10487
10488 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10489
10490 * toplev.h (flag_ira): Remove.
10491
10492 * caller-save.c (setup_save_areas): Remove flag_ira.
10493
10494 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
10495
10496 * global.c: Remove the file.
10497
10498 * opts.c (decode_options): Remove flag_ira.
10499
10500 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10501
10502 * regmove.c: Modify file description.
10503 (find_use_as_address, try_auto_increment): Define them only if
10504 AUTO_INC_DEC is defined.
10505 (replacement_quality, replace_in_call_usage, fixup_match_1,
10506 stable_and_no_regs_but_for_p): Remove.
10507 (reg_set_in_bb): Make it static.
10508 (regmove_optimize): Remove flag_ira and code which worked for
10509 !flag_ira.
10510
10511 * local-alloc.c: Remove the file.
10512
10513 * common.opt (fira): Remove.
10514
10515 * ira.c: Include except.h.
10516 (eliminable_regset): Move from global.c.
10517 (mark_elimination): Ditto. Remove flag_ira.
10518 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10519 equiv_mem_modified, validate_equiv_mem_from_store,
10520 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10521 contains_replace_regs, memref_referenced_p, memref_used_between_p,
10522 no_equiv, recorded_label_ref): Move from local-alloc.c.
10523 (update_equiv_regs): Ditto. Make it static.
10524 (print_insn_chain, print_insn_chains): Move it from global.c.
10525 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
10526 (build_insn_chain): Ditto. Make it static.
10527 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
10528 Rename to init_live_subregs.
10529 (gate_ira): Remove flag_ira.
10530
10531 * regclass.c: Rename reginfo.c. Change file description.
10532 (FORBIDDEN_INC_DEC_CLASSES): Remove.
10533 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
10534 (init_reg_sets_1): Remove code for evaluation of
10535 reg_class_superclasses and losing_caller_save_reg_set.
10536 (init_regs): Remove init_reg_autoinc.
10537 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10538 ok_for_base_p_nonstrict): Remove.
10539 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
10540 (pass_regclass_init): Rename to pass_reginfo_init. Modify
10541 corresponding entries.
10542 (dump_regclass, record_operand_costs, scan_one_insn,
10543 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10544 record_address_regs, auto_inc_dec_reg_p): Remove.
10545 (gt-regclass.h): Rename to gt-reginfo.h.
10546
10547 * rtl.h (dump_global_regs, retry_global_alloc,
10548 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
10549
10550 * Makefile.in (RA_H): Remove.
10551 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10552 Rename regclass.o to reginfo.o.
10553 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
10554 gt-reginfo.h.
10555 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10556 (GTFILES): Rename regclass.c to reginfo.c.
10557
10558 * passes.c (init_optimization_passes): Remove pass_local_alloc and
10559 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
10560
10561 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10562 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10563 Remove flag_ira.
10564 (finish_spills): Ditto. Remove code for !flag_ira.
10565
10566 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
10567
10568 PR middle-end/35854
10569 * doc/invoke.texi (rtl debug options): Complete rewrite.
10570 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10571 to auto_inc_dec".
10572 * mode-switching.c (pass_mode_switching): Rename pass from
10573 "mode-sw" to "mode_sw".
10574 * except.c (pass_convert_to_eh_ranges): Rename pass from
10575 "eh-ranges" to "eh_ranges".
10576 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10577 to "subreg1".
10578
10579
10580 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
10581 Alexander Monakov <amonakov@ispras.ru>
10582
10583 PR middle-end/38857
10584 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10585 register.
10586 (move_exprs_to_boundary): Change return type and pass through
10587 should_move from move_op. Relax assert. Update usage ...
10588 (schedule_expr_on_boundary): ... here. Use should_move instead of
10589 cant_move.
10590 (move_op_orig_expr_found): Indicate that insn was disconnected from
10591 stream.
10592 (code_motion_process_successors): Do not call after_merge_succs
10593 callback if original expression was not found when traversing any of
10594 the branches.
10595 (code_motion_path_driver): Change return type. Update prototype.
10596 (move_op): Update comment. Add a new parameter (should_move). Update
10597 prototype. Set *should_move based on indication provided by
10598 move_op_orig_expr_found.
10599
10600 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
10601
10602 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10603 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10604 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10605 * config/rs6000/rs6000.c (rs6000_override_options): Default
10606 avoid-indexed-addresses on for Power6, off for everything else.
10607 (avoiding_indexed_address_p): New function.
10608 (rs6000_legitimize_address): Use it.
10609 (rs6000_legitimate_address): Likewise.
10610 * config/rs6000/rs6000.md (movXX_updateX): Likewise
10611
10612 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
10613
10614 PR tree-optimization/38997
10615 * tree-loop-distribution.c (generate_memset_zero): Use
10616 POINTER_PLUS_EXPR for a pointer addition.
10617
10618 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
10619
10620 * config/s390/s390.md (bswap<mode>2): New pattern added.
10621
10622 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10623
10624 * config/s390/s390.md (*tls_load_31): Added type attribute.
10625
10626 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10627
10628 * config/s390/s390.md: Fix a few comments.
10629
10630 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10631
10632 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10633 (*tm<mode>_full): Fixed z10prop attribute.
10634 (*tst<mode>_extimm): Fixed z10prop attribute.
10635 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10636 (*tstqiCCT_cconly): Fixed z10prop attribute.
10637 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10638 (*movsi_larl): Fixed z10prop attribute.
10639 (*movsi_zarch): Fixed z10prop attribute.
10640 (*movsi_eas): Fixed z10prop attribute.
10641 (*movhi): Fixed z10prop attribute.
10642 (*movqi): Fixed z10prop attribute.
10643 (*movstrictqi): Fixed z10prop attribute.
10644 (*mov<mode>): Fixed z10prop attribute.
10645 (*movcc): Fixed z10prop attribute.
10646 (*sethighpartdi_64): Fixed z10prop attribute.
10647 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10648 (*negdi2_sign_cc): Fixed z10prop attribute.
10649 (*negdi2_sign): Fixed z10prop attribute.
10650 (*absdi2_sign_cc): Fixed z10prop attribute.
10651 (*absdi2_sign): Fixed z10prop attribute.
10652 (*negabsdi2_sign_cc): Fixed z10prop attribute.
10653 (*negabsdi2_sign): Fixed z10prop attribute.
10654 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10655 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10656 (doloop_si64): Fixed z10prop attribute.
10657 (doloop_si31): Fixed z10prop attribute.
10658 (doloop_long): Fixed z10prop attribute.
10659 (indirect_jump): Fixed z10prop attribute.
10660 (nop): Fixed z10prop attribute.
10661 (main_base_64): Fixed z10prop attribute.
10662 (reload_base_64): Fixed z10prop attribute.
10663
10664 2009-01-28 Jakub Jelinek <jakub@redhat.com>
10665
10666 PR rtl-optimization/38740
10667 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10668 if !optimize.
10669 * config/mips/mips.c (mips_reorg): Likewise.
10670
10671 2009-01-28 Richard Guenther <rguenther@suse.de>
10672
10673 PR tree-optimization/38926
10674 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10675 with the correct value id to a value.
10676 (do_regular_insertion): Use the value number of edoubleprime
10677 for the value number of the expr.
10678
10679 Revert
10680 2008-08-21 Richard Guenther <rguenther@suse.de>
10681
10682 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10683 a PHI ask VN if it is already available.
10684 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10685 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
10686
10687 2009-01-28 Jakub Jelinek <jakub@redhat.com>
10688
10689 PR middle-end/38934
10690 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10691 set to varying whenever max has TREE_OVERFLOW set, similarly
10692 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10693
10694 2009-01-28 Richard Guenther <rguenther@suse.de>
10695
10696 PR middle-end/38908
10697 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10698 uninitialized aggregate uses in call arguments.
10699
10700 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
10701
10702 PR tree-optimization/38984
10703 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10704 the nothing_id variable if -fno-delete-null-pointer-checks.
10705
10706 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
10707
10708 PR target/38988
10709 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10710 (set_got_offset_rex64): Ditto.
10711
10712 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
10713
10714 PR target/38941
10715 * doc/extend.texi: Improve local variable with asm reg.
10716
10717 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
10718
10719 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10720 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10721 was not supplied then set warn_packed_bitfield_compat to the
10722 default value of 1.
10723 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10724 against 1.
10725
10726 2009-01-27 Richard Guenther <rguenther@suse.de>
10727
10728 PR tree-optimization/38503
10729 * cfgexpand.c (expand_gimple_basic_block): Ignore
10730 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10731 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10732 variables that cannot have TBAA applied.
10733 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10734 statements.
10735
10736 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
10737
10738 PR middle-end/38969
10739 * calls.c (initialize_argument_information): Do not wrap complex
10740 arguments in SAVE_EXPR.
10741
10742 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
10743
10744 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
10745 (INSTALL_LIBGCC): Revert typo commit.
10746
10747 2009-01-26 Richard Guenther <rguenther@suse.de>
10748
10749 PR tree-optimization/38745
10750 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10751 from special handling.
10752
10753 2009-01-26 Richard Guenther <rguenther@suse.de>
10754
10755 PR tree-optimization/38745
10756 * tree-ssa.c (execute_update_addresses_taken): Do not include
10757 variables that cannot possibly be a register in not_reg_needs.
10758 Do not clear TREE_ADDRESSABLE on vars that may not become
10759 registers.
10760 * tree-ssa.c (update_alias_info_1): Include those in the set
10761 of addressable vars.
10762
10763 2009-01-26 Richard Guenther <rguenther@suse.de>
10764
10765 PR middle-end/38851
10766 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10767 * tree-ssa-dse.c: Include langhooks.h
10768 (execute_simple_dse): Remove stores with zero size.
10769
10770 2009-01-24 Jakub Jelinek <jakub@redhat.com>
10771
10772 PR c/38957
10773 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10774 as PLUS_EXPR.
10775
10776 2009-01-24 Julian Brown <julian@codesourcery.com>
10777
10778 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10779 config/arm/linux-atomic.c.
10780 * config/arm/linux-atomic.c: New.
10781
10782 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
10783
10784 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
10785 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
10786 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
10787
10788 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
10789
10790 PR c/38938
10791 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
10792 properly.
10793
10794 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
10795
10796 PR tree-optimization/38953
10797 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
10798 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
10799 (gloog): Split the exit of the scop when the scop exit is a loop exit.
10800 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
10801 changed the CFG.
10802
10803 2009-01-24 Paul Brook <paul@codesourcery.com>
10804
10805 * config/arm/neon.md (neon_type): Move to arm.md.
10806 (neon_mov<VSTRUCT>): Add neon_type attribute.
10807 * config/arm/arm.md (neon_type): Move to here.
10808 (conds): Add "unconditioal" and use as default for NEON insns.
10809
10810 2009-01-24 Ben Elliston <bje@au.ibm.com>
10811
10812 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
10813 void *' warning from -Wc++-compat.
10814 * Makefile.in (dominance.o-warn): Remove.
10815
10816 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
10817
10818 PR tree-optimization/38932
10819 * fold-const.c (fold_unary_ignore_overflow): New.
10820 * tree.h (fold_unary_ignore_overflow): Declare.
10821 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
10822 * tree-ssa-sccvn.c (visit_reference_op_load,
10823 simplify_unary_expression): Likewise.
10824
10825 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
10826
10827 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
10828 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
10829 regardless of their type.
10830 * c-common.c (handle_packed_attribute): Don't ignore packed on
10831 bitfields.
10832 * c.opt (Wpacked-bitfield-compat): New warning option.
10833 * stor-layout.c (place_field): Warn if offset of a field changed.
10834 * doc/extend.texi (packed): Mention the ABI change.
10835 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
10836 (Warning Options): Add it to the list.
10837
10838 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
10839
10840 * c-opts.c (c_common_post_options): Fix a typo in comments.
10841
10842 2009-01-22 Steve Ellcey <sje@cup.hp.com>
10843
10844 PR middle-end/38615
10845 * gimplify.c (gimplify_init_constructor): Fix promotion of const
10846 variables to static.
10847 * doc/invoke.texi (-fmerge-all-constants): Update description.
10848
10849 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
10850
10851 PR target/38931
10852 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
10853 (*movdi_1_rex64): Use type "mmx" for alternative 5.
10854
10855 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
10856
10857 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
10858 a word boundary.
10859 (LOCAL_ALIGNMENT): Similarly.
10860
10861 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
10862 Joseph Myers <joseph@codesourcery.com>
10863
10864 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
10865 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
10866 * config/arm/arm-tune.md: Regenerate.
10867 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
10868 -march=iwmmxt2.
10869
10870 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
10871
10872 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
10873 version number to five.
10874
10875 2009-01-22 Dodji Seketeli <dodji@redhat.com>
10876
10877 PR c++/38930
10878 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
10879 * c-common.c (set_underlying_type): Likewise.
10880 (is_typedef_decl ): Likewise
10881 * tree.h: Likewise
10882 (set_underlying_type): Likewise.
10883 (is_typedef_type): Likewise.
10884
10885 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
10886
10887 PR middle-end/38587
10888 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
10889 crossing setjmps.
10890
10891 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
10892
10893 PR bootstrap/37660
10894 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
10895 (LIBGCC_SPEC): Don't define.
10896 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
10897
10898 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
10899
10900 PR rtl-optimization/38879
10901 * alias.c (base_alias_check): Unaligned access via AND address can
10902 alias all surrounding object types except those with sizes equal
10903 or wider than the size of unaligned access.
10904
10905 2009-01-21 Dodji Seketeli <dodji@redhat.com>
10906
10907 PR c++/26693
10908 * c-decl.c (clone_underlying_type): Move this ...
10909 * c-common.c (set_underlying_type): ... here.
10910 Also, make sure the function properly sets TYPE_STUB_DECL() on
10911 the newly created typedef variant type.
10912 (is_typedef_decl ): New entry point.
10913 * tree.h: Added a new member member_types_needing_access_check to
10914 struct tree_decl_non_common.
10915 (set_underlying_type): New entry point.
10916 (is_typedef_type): Likewise.
10917
10918 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
10919
10920 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
10921 Check whether two instructions have memory references that
10922 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
10923 are helper functions for traversing.
10924 * alias.h (insn_alias_sets_confilict_p): New prototypes.
10925 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
10926 not to draw dependency edge for instructions with non-conflicting
10927 alias sets.
10928
10929 2009-01-20 Joseph Myers <joseph@codesourcery.com>
10930
10931 PR other/38758
10932 * longlong.h: Update copyright years. Use soft-fp license notice.
10933 Sync __clz_tab declaration with glibc.
10934
10935 2009-01-20 Steve Ellcey <sje@cup.hp.com>
10936
10937 PR target/30687
10938 * doc/extend.texi (syscall_linkage): New.
10939 (version_id): Modify.
10940
10941 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
10942 Richard Guenther <rguenther@suse.de>
10943
10944 PR tree-optimization/38747
10945 PR tree-optimization/38748
10946 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
10947 conversion if the base address is an indirect reference and the
10948 aliasing sets could cause issues.
10949
10950 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10951
10952 * common.opt (fgraphite, fgraphite-identity): Add comment for
10953 explaining why these options are not documented.
10954
10955 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
10956
10957 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
10958 gimple_call_lhs is NULL.
10959
10960 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
10961
10962 PR target/38868
10963 * emit-rtl.c (adjust_address_1): Make sure memref is never
10964 overwritten.
10965
10966 2009-01-20 Ben Elliston <bje@au.ibm.com>
10967
10968 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10969 const qualifier from arg parameter. Remove unnecessary cast to char *.
10970 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
10971 const qualifier from arg 2.
10972
10973 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
10974
10975 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
10976
10977 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
10978
10979 PR c/38869
10980 * rtl.h (reinit_regs): New prototype.
10981 * regclass.c: Include ira.h.
10982 (reinit_regs): New.
10983 * Makefile.in (regclass.o): Add ira.h.
10984 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
10985
10986 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
10987
10988 PR target/38736
10989 * c-common.c (handle_aligned_attribute): Use
10990 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
10991 default alignment value.
10992
10993 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
10994
10995 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
10996 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
10997
10998 * doc/extend.texi: Update __attribute__ ((aligned)). Document
10999 __BIGGEST_ALIGNMENT__.
11000
11001 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
11002
11003 2009-01-18 Richard Guenther <rguenther@suse.de>
11004
11005 PR tree-optimization/38819
11006 * tree-flow.h (operation_could_trap_helper_p): Declare.
11007 * tree-eh.c (operation_could_trap_helper_p): Export.
11008 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
11009 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
11010 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
11011 are about to insert a possibly trapping instruction and fail
11012 in this case.
11013
11014 2009-01-18 Andreas Schwab <schwab@suse.de>
11015
11016 * doc/install.texi (Configuration): Remove obsolete paragraph
11017 about use of --with-gnu-ld with --with-gnu-as.
11018
11019 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
11020
11021 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
11022 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
11023 Follow spelling conventions.
11024
11025 2009-01-18 Ben Elliston <bje@au.ibm.com>
11026
11027 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
11028 C++ warning about implicit conversion from void * to struct
11029 bitmap_head_def *.
11030 (bitmap_obstack_free): Likewise for bitmap_element *.
11031 * Makefile.in (bitmap.o-warn): Remove.
11032
11033 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
11034
11035 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
11036
11037 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
11038 Tobias Grosser <tobi.grosser@amd.com>
11039
11040 * graphite.c (graphite_trans_scop_block): Do not block single
11041 nested loops.
11042
11043 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
11044
11045 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11046 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11047 test with assertion.
11048
11049 2009-01-16 Richard Guenther <rguenther@suse.de>
11050
11051 PR tree-optimization/38835
11052 PR middle-end/36227
11053 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11054 and INT + PTR -> (INT)(PTR p+ INT) folding.
11055 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11056
11057 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
11058
11059 PR target/38554
11060 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11061 the subreg from a lowpart subreg if it is also casting the value.
11062
11063 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
11064 Tobias Grosser <tobi.grosser@amd.com>
11065
11066 * graphite.c (compare_prefix_loops): New.
11067 (build_scop_canonical_schedules): Rewritten.
11068 (graphite_transform_loops): Move build_scop_canonical_schedules
11069 after build_scop_iteration_domain.
11070
11071 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
11072 Tobias Grosser <tobi.grosser@amd.com>
11073
11074 * graphite.c (add_conditions_to_domain): Add the loops to
11075 the dimension of the iteration domain. Do copy the domain
11076 only when it exists.
11077 (build_scop_conditions_1): Do not call add_conditions_to_domain.
11078 (add_conditions_to_constraints): New.
11079 (can_generate_code_stmt, can_generate_code): Removed.
11080 (gloog): Do not call can_generate_code.
11081 (graphite_transform_loops): Call add_conditions_to_constraints
11082 after building the iteration domain.
11083
11084 2009-01-16 Jakub Jelinek <jakub@redhat.com>
11085
11086 PR tree-optimization/38789
11087 * tree-ssa-threadedge.c
11088 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11089 __builtin_constant_p.
11090
11091 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
11092
11093 * dce.c (delete_unmarked_insns): Reversed the order that insns are
11094 examined before deleting them.
11095
11096 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
11097
11098 * function.c (aggregate_value_p): Correctly extract the function
11099 type from CALL_EXPR_FN lookup.
11100
11101 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
11102
11103 * config/picochip/picochip.c (picochip_override_options): Revert
11104 CFI asm flag disable commited previously.
11105
11106 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
11107 Tobias Grosser <tobi.grosser@amd.com>
11108 Jan Sjodin <jan.sjodin@amd.com>
11109
11110 * graphite.c (scan_tree_for_params): On substractions negate
11111 all the coefficients of the term.
11112 (clast_to_gcc_expression_red): New. Handle reduction expressions
11113 of more than two operands.
11114 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11115 (get_vdef_before_scop): Handle also the case of default definitions.
11116
11117 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
11118
11119 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11120 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11121 Also use them when walking CALL_INSN_FUNCTION_USAGE.
11122
11123 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
11124 Joey Ye <joey.ye@intel.com>
11125
11126 PR middle-end/37843
11127 * cfgexpand.c (expand_stack_alignment): Don't update stack
11128 boundary nor check incoming stack boundary here.
11129 (gimple_expand_cfg): Update stack boundary and check incoming
11130 stack boundary here.
11131
11132 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
11133
11134 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
11135
11136 2009-01-14 Jakub Jelinek <jakub@redhat.com>
11137
11138 PR rtl-optimization/38245
11139 * calls.c (expand_call): Add stack arguments to
11140 CALL_INSN_FUNCTION_USAGE even for pure calls (when
11141 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11142 in regs and partially in memory or BLKmode arguments.
11143 (emit_library_call_value_1): Add stack arguments to
11144 CALL_INSN_FUNCTION_USAGE even for pure calls (when
11145 ACCUMULATE_OUTGOING_ARGS).
11146 * dce.c: Include tm_p.h.
11147 (find_call_stack_args): New function.
11148 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
11149 argument.
11150 (mark_insn): Call find_call_stack_args for CALL_Ps.
11151 (prescan_insns_for_dce): Walk insns backwards in bb rather than
11152 forwards. Allocate and free arg_stores bitmap if needed, pass it
11153 down to deletable_insn_p, don't mark stores set in arg_stores
11154 bitmap, clear the bitmap at the beginning of each bb.
11155 * Makefile.in (dce.o): Depend on $(TM_P_H).
11156
11157 2009-01-14 Michael Meissner <gnu@the-meissners.org>
11158
11159 PR target/22599
11160 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11161 to make sure the insn is a conditional test (bug 22599). Reformat a
11162 few long lines.
11163
11164 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
11165
11166 PR middle-end/38431
11167 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11168 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11169 (gloog): Do not call cleanup_tree_cfg.
11170 (graphite_transform_loops): Call cleanup_tree_cfg after all
11171 scops have been code generated.
11172
11173 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
11174 * doc/gty.texi (Invoking the garbage collector): Added new node
11175 and section documenting ggc_collect.
11176
11177 2009-01-14 Richard Guenther <rguenther@suse.de>
11178
11179 PR tree-optimization/38826
11180 PR middle-end/38477
11181 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11182 initialization notes only if we actually emitted a warning.
11183 (intra_create_variable_infos): Add constraints for a result decl
11184 that is passed by hidden reference.
11185 (build_pred_graph): Mark all related variables non-direct on
11186 address-taking.
11187
11188 2009-01-14 Nick Clifton <nickc@redhat.com>
11189
11190 * ira-conflicts.c: Include addresses.h for the definition of
11191 base_reg_class.
11192 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11193 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
11194
11195 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
11196
11197 PR target/38811
11198 * Makefile.in (ira-lives.o): Add except.h.
11199
11200 * ira-lives.c: Include except.h.
11201 (process_bb_node_lives): Process can_throw_internal.
11202
11203 2009-01-13 Jakub Jelinek <jakub@redhat.com>
11204
11205 PR rtl-optimization/38774
11206 * combine.c (simplify_set): When undoing cc_use change, don't do
11207 PUT_CODE on the newly created comparison, but instead put back the
11208 old comparison.
11209
11210 2009-01-13 Joseph Myers <joseph@codesourcery.com>
11211
11212 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11213 values. Remove duplicate arm8 entry.
11214
11215 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
11216
11217 PR tree-optimization/38786
11218 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11219 the SSA_NAME case of expand_scalar_variables_expr.
11220 Set the type of an expression to the type of its assign statement.
11221 (expand_scalar_variables_expr): Also gather the scalar computation
11222 used to index the memory access. Do not pass loop_p.
11223 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
11224 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
11225 the gimple_stmt_iterator where it inserts new code.
11226 Do not pass loop_p.
11227 (copy_bb_and_scalar_dependences): Do not pass loop_p.
11228 (translate_clast): Update call to copy_bb_and_scalar_dependences.
11229
11230 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
11231
11232 * graphite.h (debug_value): Removed.
11233 * graphite.c (debug_value): Removed.
11234
11235 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
11236
11237 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11238 ldrd/strd with two 32-bit instructions.
11239
11240 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
11241
11242 * config/arm/arm.c (struct processors): Pass for speed down into
11243 cost helper functions.
11244 (const_ok_for_op): Handle COMPARE and inequality nodes.
11245 (arm_rtx_costs_1): Rewrite.
11246 (arm_size_rtx_costs): Update prototype.
11247 (arm_rtx_costs): Pass speed down to helper functions.
11248 (arm_slowmul_rtx_costs): Rework cost calculations.
11249 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11250 (arm_9e_rtx_costs): Likewise.
11251
11252 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
11253
11254 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
11255 relocations of local symbols wider than UNITS_PER_WORD are not valid.
11256 (alpha_legitimize_address): Do not split local symbols wider than
11257 UNITS_PER_WORD into HIGH/LO_SUM parts.
11258
11259 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
11260
11261 PR bootstrap/38580
11262 * gcc.c (process_command): Replace call to execvp with calls
11263 to pex_one and exit.
11264
11265 2009-01-03 Anatoly Sokolov <aesok@post.ru>
11266
11267 PR target/29141
11268 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11269 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11270 variant for devices with 3-byte PC.
11271 (__tablejump_elpm__): New.
11272
11273 2009-01-12 Jakub Jelinek <jakub@redhat.com>
11274
11275 PR c/32041
11276 * c-parser.c (c_parser_postfix_expression): Allow `->' in
11277 offsetof member-designator, handle it as `[0].'.
11278
11279 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11280
11281 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11282 function when not using named sections on targets with named sections
11283 if branch distance is less than 262132.
11284
11285 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
11286
11287 * combine.c (combine_instructions): Recompute
11288 optimize_this_for_speed_p for each BB in the main combine loop.
11289
11290 2009-01-12 Tomas Bily <tbily@suse.cz>
11291
11292 PR middlend/38385
11293 * tree-loop-distribution.c (prop_phis): New function.
11294 (generate_builtin): Call prop_phis.
11295 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
11296
11297 2009-01-12 Jakub Jelinek <jakub@redhat.com>
11298
11299 PR tree-optimization/38807
11300 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11301 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11302
11303 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
11304
11305 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11306 subreg of op0 to the original op0.
11307
11308 2009-01-11 Laurent GUERBY <laurent@guerby.net>
11309
11310 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
11311
11312 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
11313
11314 PR debug/7055
11315 * mips-tfile.c (parse_def): Fix parsing of def strings
11316 starting with digits.
11317
11318 2009-01-10 Jakub Jelinek <jakub@redhat.com>
11319
11320 PR target/38695
11321 * config/arm/arm.c (arm_is_long_call_p): Don't call
11322 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11323
11324 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
11325
11326 * regrename.c (regrename_optimize): Fix dumping.
11327 (find_oldest_value_reg): Preserve REG_POINTER.
11328 (copy_hardreg_forward_1): Likewise.
11329
11330 2009-01-09 Diego Novillo <dnovillo@google.com>
11331
11332 * gimple.h (struct gimple_statement_base) <uid>: Document
11333 the restrictions on its use.
11334 (gimple_uid): Tidy.
11335 (gimple_set_uid): Tidy.
11336
11337 2009-01-09 Jakub Jelinek <jakub@redhat.com>
11338
11339 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11340 zero guard even if align_bytes != 0 and count is smaller than
11341 size_needed.
11342
11343 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
11344
11345 PR rtl-optimization/38495
11346 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
11347 (add_range_and_copies_from_move_list): Print all added ranges.
11348 Add ranges to memory optimized destination.
11349
11350 2009-01-09 Jakub Jelinek <jakub@redhat.com>
11351
11352 PR target/38686
11353 PR target/38708
11354 * config/i386/i386.c (override_options): Reject
11355 -mstringop-strategy=rep_8byte with -m32.
11356 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11357 to 1. Do count comparison against epilogue_size_needed at compile
11358 time even when count_exp was constant forced into register. For
11359 size_needed don't jump to epilogue, instead just avoid aligning
11360 and invoke the body algorithm. If need_zero_guard, add zero guard
11361 even if count is non-zero, but smaller than size_needed + number of
11362 bytes that could be stored for alignment.
11363 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11364 to 1. If need_zero_guard, add zero guard even if count is non-zero,
11365 but smaller than size_needed + number of bytes that could be stored
11366 for alignment. Compare size_needed with epilogue_size_needed instead
11367 of desired_align - align, don't adjust size_needed, pass
11368 epilogue_size_needed to the epilogue expanders.
11369
11370 PR c/35742
11371 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
11372
11373 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11374
11375 * pa.c (last_address): Change to unsigned.
11376 (update_total_code_bytes): Change argument to unsigned. Don't
11377 check if insn addresses are set.
11378 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11379 addresses are not set.
11380 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11381
11382 2009-01-09 Nick Clifton <nickc@redhat.com>
11383
11384 * config/sh/symbian.c: Replace uses of DECL_INLINE with
11385 DECL_DECLARED_INLINE_P.
11386
11387 2009-01-09 Jakub Jelinek <jakub@redhat.com>
11388
11389 PR middle-end/38347
11390 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11391 GET_MODE (op0) in operand_subword_force calls.
11392
11393 PR middle-end/38771
11394 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11395 fold_convert arg0 operands to TREE_TYPE (op0) first.
11396
11397 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
11398
11399 * params.def (ira-max-conflict-table-size): Decrease default value
11400 to 1000.
11401
11402 2009-01-08 Jakub Jelinek <jakub@redhat.com>
11403
11404 PR tree-optimization/37031
11405 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11406 on parameter_set.
11407 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11408 allocate it using gc instead of heap, use VEC_quick_push instead of
11409 VEC_safe_push.
11410 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11411 instead of heap, use VEC_quick_push instead of VEC_safe_push.
11412 * tree-data-ref.h (struct access_matrix): Change matrix to gc
11413 allocated vector from heap allocated.
11414 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11415 * tree-loop-linear.c (linear_transform_loops): Allocate nest
11416 vector only after perfect_loop_nest_depth call.
11417
11418 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
11419 Jan Sjodin <jan.sjodin@amd.com>
11420
11421 PR tree-optimization/38559
11422 * graphite.c (debug_value, copy_constraint,
11423 swap_constraint_variables, scale_constraint_variable, ): New.
11424 (get_lower_bound, get_upper_bound): Removed.
11425 (graphite_trans_bb_strip_mine): Clean up this code that works
11426 only for constant number of iterations. Fully copy upper and
11427 lower bound constraints, not only the constant part of them.
11428 * graphite.h (debug_value): Declared.
11429
11430 2009-01-08 Ira Rosen <irar@il.ibm.com>
11431
11432 PR tree-optimization/37194
11433 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
11434 Don't add the cost of cost model guard in prologue to scalar
11435 outside cost in case of known number of iterations.
11436
11437 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
11438 Alan Modra <amodra@bigpond.net.au>
11439
11440 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11441 non-word-aligned REG+CONST addressing.
11442
11443 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
11444
11445 PR target/38706
11446 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11447 free_after_compilation when outputting a thunk.
11448 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11449 Do not call free_after_compilation here.
11450
11451 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
11452
11453 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
11454 (ix86_valid_target_attribute_inner_p): Ditto.
11455
11456 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
11457
11458 PR tree-optimization/38492
11459 PR tree-optimization/38498
11460 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11461 * tree-chrec.h (scev_is_linear_expression): Declared.
11462 * graphite.c (graphite_cannot_represent_loop_niter): New.
11463 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11464 (graphite_loop_normal_form): Use gcc_assert.
11465 (scan_tree_for_params): Use CASE_CONVERT.
11466 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11467 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11468 Use gcc_assert. Discard scops that contain unhandled cases.
11469 (build_scop_conditions): Return a boolean status for unhandled cases.
11470 (strip_mine_profitable_p): Print the loop number, not its depth.
11471 (is_interchange_valid): Pass the depth of the loop nest, don't
11472 recompute it wrongly.
11473 (graphite_trans_bb_block): Same.
11474 (graphite_trans_bb_block): Print tentative of loop blocking.
11475 (graphite_trans_scop_block): Do not print that the loop has been
11476 blocked.
11477 (graphite_transform_loops): Do not handle scops that contain condition
11478 scalar phi nodes.
11479
11480 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
11481
11482 AVX Programming Reference (December, 2008)
11483 * config/i386/avxintrin.h (_mm256_stream_si256): New.
11484 (_mm256_stream_pd): Likewise.
11485 (_mm256_stream_ps): Likewise.
11486
11487 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11488 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11489 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11490 (bdesc_special_args): Add __builtin_ia32_movntdq256,
11491 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11492 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11493 (ix86_expand_special_args_builtin): Likewise.
11494
11495 * config/i386/sse.md (AVXMODEDI): New.
11496 (avx_movnt<mode>): Likewise.
11497 (avx_movnt<mode>): Likewise.
11498 (<sse>_movnt<mode>): Remove AVX support.
11499 (sse2_movntv2di): Likewise.
11500
11501 2009-01-07 Richard Guenther <rguenther@suse.de>
11502
11503 PR middle-end/38751
11504 * fold-const.c (extract_muldiv): Remove obsolete comment.
11505 (fold_plusminus_mult_expr): Undo MINUS_EXPR
11506 to PLUS_EXPR canonicalization for the canonicalization.
11507
11508 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
11509
11510 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11511 hosted cross-compilers generating less efficient code.
11512
11513 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11514
11515 * function.h (rtl_data): Add a dbr_scheduled_p field.
11516 * reorg.c (dbr_schedule): Set it.
11517 (gate_handle_delay_slots): Check it.
11518 * config/mips/mips.c (mips_base_delayed_branch): Delete.
11519 (mips_reorg): Check flag_delayed_branch instead of
11520 mips_base_delayed_branch.
11521 (mips_override_options): Don't set mips_base_delayed_branch
11522 or flag_delayed_branch.
11523
11524 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11525
11526 PR rtl-optimization/38426.
11527 * ira.c (ira): Set current_function_is_leaf earlier.
11528
11529 2009-01-06 Jakub Jelinek <jakub@redhat.com>
11530
11531 PR rtl-optimization/38722
11532 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11533 too early, only set a flag and modify after last possible
11534 undo_all point.
11535
11536 2009-01-06 Janis Johnson <janis187@us.ibm.com>
11537
11538 PR c/34252
11539 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11540 * real.c (decimal_single_format): Correct values of emin and emax.
11541 (decimal_double_format): Ditto.
11542 (decimal_quad_format): Ditto.
11543 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11544 computation of DECnn_MIN and DECnn_MAX for corrected values of
11545 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
11546 __DECnn_MIN__, and adjust its computation for the corrected value
11547 of emin.
11548
11549 2009-01-06 Jan Hubicka <jh@suse.cz>
11550
11551 PR target/38744
11552 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
11553
11554 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
11555
11556 * doc/contrib.texi (Contributors): Slightly adjust the end note.
11557 Add Robert Clark to the list of testers.
11558
11559 2009-01-06 Jan Hubicka <jh@suse.cz>
11560 Kai Tietz <kai.tietz@onevision.com>
11561
11562 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11563 * config/i386/i386.c (ix86_expand_call): Add clobbers.
11564
11565 2009-01-06 Jan Hubicka <jh@suse.cz>
11566 Kai Tietz <kai.tietz@onevision.com>
11567
11568 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11569 for w64 ABI.
11570 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
11571 (ix86_nsaved_regs): Count only general purpose regs.
11572 (ix86_nsaved_sseregs): New.
11573 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11574 to 16 for w64; compute padding and size of sse reg save area.
11575 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11576 general purpose regs.
11577 (ix86_emit_save_sse_regs_using_mov): New.
11578 (ix86_expand_prologue): Save SSE regs if needed.
11579 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11580 (ix86_emit_restore_sse_regs_using_mov): New.
11581 (ix86_expand_epilogue): Save SSE regs if needed.
11582
11583 2009-01-06 Jan Hubicka <jh@suse.cz>
11584 Kai Tietz <kai.tietz@onevision.com>
11585
11586 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11587 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11588 functions when accumulate outgoing args is off.
11589
11590 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11591
11592 PR bootstrap/38742
11593 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11594 before using pseudos_have_intersected_live_ranges_p.
11595
11596 * ira-int.h (ira_assert): Always define.
11597
11598 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11599
11600 AVX Programming Reference (December, 2008)
11601 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11602 (_mm256_permute2_pd): Likewise.
11603 (_mm_permute2_ps): Likewise.
11604 (_mm256_permute2_ps): Likewise.
11605 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11606 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11607
11608 * config/i386/i386.c (ix86_builtins): Remove
11609 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11610 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11611 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11612 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11613 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11614 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11615 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11616 __builtin_ia32_vpermil2ps256.
11617 (ix86_init_mmx_sse_builtins): Updated.
11618 (ix86_expand_args_builtin): Likewise.
11619
11620 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11621
11622 * pa.c (output_call): Relocate non-jump insns in the delay slot of
11623 long absolute calls when generating PA 2.0 code.
11624
11625 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
11626
11627 PR rtl-optimization/38583
11628 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11629
11630 * params.def (ira-max-conflict-table-size): New.
11631
11632 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
11633
11634 * ira.h (ira_conflicts_p): New external definition.
11635
11636 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11637 table. Report this. Return result of building.
11638 (ira_build_conflicts): Use ira_conflicts_p. Check result of
11639 building conflict table.
11640
11641 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
11642 (ira_color): Use ira_conflicts_p.
11643
11644 * global.c: Include ira.h.
11645 (pseudo_for_reload_consideration_p, build_insn_chain): Use
11646 ira_conflicts_p.
11647
11648 * Makefile.in (global.o): Add ira.h.
11649
11650 * ira-build.c (mark_all_loops_for_removal,
11651 propagate_some_info_from_allocno): New.
11652 (remove_unnecessary_allocnos): Call
11653 propagate_some_info_from_allocno.
11654 (remove_low_level_allocnos): New.
11655 (remove_unnecessary_regions): Add parameter. Call
11656 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
11657 parameter to remove_unnecessary_regions.
11658 (ira_build): Remove all regions but root if the conflict table was
11659 not built. Update conflict hard regs for allocnos crossing calls.
11660
11661 * ira.c (ira_conflicts_p): New global.
11662 (ira): Define and use ira_conflicts_p.
11663
11664 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11665 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
11666 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
11667
11668 2009-01-06 Ben Elliston <bje@au.ibm.com>
11669
11670 * gengtype-lex.l (YY_NO_INPUT): Define.
11671
11672 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11673
11674 PR c/34911
11675 * c-common.c (handle_vector_size_attribute): Also reject
11676 BOOLEAN_TYPE types.
11677
11678 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
11679
11680 PR tree-optimization/38492
11681 * graphite.c (rename_map_elt, debug_rename_elt,
11682 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11683 rename_map_elt_info, eq_rename_map_elts,
11684 get_new_name_from_old_name, bb_in_sese_p): Moved around.
11685 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11686 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11687 (sese_build_livein_liveouts): New.
11688 (new_sese, free_sese): New.
11689 (new_scop): Call new_sese.
11690 (free_scop): Call free_sese.
11691 (rename_variables_from_edge, rename_phis_end_scop): Removed.
11692 (register_old_new_names): Renamed register_old_and_new_names.
11693 (register_scop_liveout_renames, add_loop_exit_phis,
11694 insert_loop_close_phis, struct igp,
11695 default_liveout_before_guard, add_guard_exit_phis,
11696 insert_guard_phis, copy_renames): New.
11697 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11698 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11699 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11700 (scop_adjust_phis_for_liveouts): New.
11701 (gloog): Call scop_adjust_phis_for_liveouts.
11702
11703 * graphite.h (struct sese): Documented. Added fields liveout,
11704 num_ver and livein.
11705 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11706 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11707 (struct scop): Added field liveout_renames.
11708 (SCOP_LIVEOUT_RENAMES): New.
11709
11710 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
11711
11712 PR tree-optimization/38510
11713 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11714 (translate_clast): Call recompute_all_dominators before
11715 graphite_verify.
11716 (gloog): Call recompute_all_dominators before graphite_verify.
11717
11718 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
11719 Jan Sjodin <jan.sjodin@amd.com>
11720
11721 PR tree-optimization/38500
11722 * graphite.c (create_sese_edges): Call fix_loop_structure after
11723 splitting blocks.
11724
11725 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
11726
11727 * config.gcc: Add m32r*-*-rtems*.
11728 * config/m32r/rtems.h: New file.
11729
11730 2009-01-05 Ben Elliston <bje@au.ibm.com>
11731
11732 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11733 (.po.pox): Likewise.
11734 (po/gcc.pot): Likewise.
11735
11736 2009-01-04 David S. Miller <davem@davemloft.net>
11737
11738 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11739 (STARTING_FRAME_OFFSET): Always set to zero.
11740
11741 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11742
11743 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11744 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11745 fixed-point types, and vectors of the same.
11746
11747 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11748
11749 * config/mips/sync.md (*mb_barrier): Rename to...
11750 (*memory_barrier): ...this.
11751
11752 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
11753
11754 * doc/extend.texi (Function Attributes): Move @cindex after @item
11755 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
11756 and put in alphabetical order. Fix 'target' name and put in order.
11757 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11758 typos.
11759
11760 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
11761
11762 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11763 (memory_barrier): Expand as unspec instead of unspec_volatile.
11764 Remove mem:BLK from insn operands. Use Pmode scratch register.
11765 (*memory_barrier): Define as unspec instead of unspec_volatile.
11766 Use (match_dup 0) as input operand.
11767
11768 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11769 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11770 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
11771 scratch register. Remove operand 1.
11772 (*stbar): Define as unspec instead of unspec_volatile.
11773 Use (match_dup 0) as input operand, remove (const_int 8).
11774 (*membar): Define as unspec instead of unspec_volatile.
11775 Use (match_dup 0) as input operand, remove input operand 2.
11776
11777 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11778 (memory_barrier): Expand as unspec instead of unspec_volatile.
11779 Remove mem:BLK from insn operands. Use Pmode scratch register.
11780 (*memory_barrier): Define as unspec instead of unspec_volatile.
11781 Use (match_dup 0) as input operand.
11782
11783 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
11784 Remove mem:BLK from insn operands. Use Pmode scratch register.
11785 Set volatile flag on operand 0.
11786 (*memory_barrier): New insn pattern.
11787
11788 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
11789 insn operands.
11790 (*memory_barrier): Use (match_dup 0) as input operand.
11791
11792 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
11793 Remove mem:BLK from insn operands. Use Pmode scratch register.
11794 Set volatile flag on operand 0.
11795 (*mb_internal): New insn pattern.
11796
11797 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
11798
11799 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11800
11801 PR middle-end/38586
11802 * function.c (struct temp_slot): Move to the section of the file
11803 that deals with temp slots. Remove field 'address'.
11804 (temp_slot_address_table): New hash table of address -> temp slot.
11805 (struct temp_slot_address_entry): New struct, items for the table.
11806 (temp_slot_address_compute_hash, temp_slot_address_hash,
11807 temp_slot_address_eq, insert_temp_slot_address): Support functions
11808 for the new table.
11809 (find_temp_slot_from_address): Rewrite to use the new hash table.
11810 (remove_unused_temp_slot_addresses): Remove addresses of temp
11811 slots that have been made available.
11812 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
11813 worker function for remove_unused_temp_slot_addresses.
11814 (assign_stack_temp_for_type): Don't clear the temp slot address list.
11815 Add the temp slot address to the address -> temp slot map.
11816 (update_temp_slot_address): Update via insert_temp_slot_address.
11817 (free_temp_slots): Call remove_unused_temp_slot_addresses.
11818 (pop_temp_slots): Likewise.
11819 (init_temp_slots): Allocate the address -> temp slot map, or empty
11820 the map if it is already allocated.
11821 (prepare_function_start): Initialize temp slot processing.
11822
11823 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
11824
11825 PR middle-end/38584
11826 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
11827 Calculate the size of all stack vars assuming no packing of stack
11828 vars will happen, replacing a quadratic algorithm with a linear one.
11829
11830 2009-01-03 Jakub Jelinek <jakub@redhat.com>
11831
11832 PR target/38707
11833 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
11834 can't be used.
11835
11836 2009-01-03 Diego Novillo <dnovillo@google.com>
11837
11838 * doc/contrib.texi: Update contributions.
11839
11840 2009-01-03 Jakub Jelinek <jakub@redhat.com>
11841
11842 PR c++/38705
11843 * builtins.c (fold_builtin_memory_op): Give up if either operand
11844 is volatile. Set srctype or desttype to non-qualified version
11845 of the other type.
11846
11847 PR c/38700
11848 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
11849 and FUNCTION_DECLs.
11850
11851 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
11852
11853 PR rtl-optimization/35805
11854 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
11855 problem if fast dce is able to remove any instructions.
11856 * dce.c (dce_process_block): Fix dump message.
11857
11858 2009-01-02 Mark Mitchell <mark@codesourcery.com>
11859
11860 PR 33649
11861 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
11862
11863 2009-01-02 Jakub Jelinek <jakub@redhat.com>
11864
11865 PR middle-end/38690
11866 * tree-flow.h (op_code_prio, op_prio): New prototypes.
11867 * tree-pretty-print.c (op_code_prio): New function.
11868 (op_prio): No longer static. Use op_code_prio.
11869 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
11870 Use op_prio and op_code_prio to determine if () should be
11871 printed around operand(s) or not.
11872
11873 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
11874 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
11875 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
11876 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
11877 pp_character instead of pp_string for single letter printing.
11878
11879 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
11880
11881 * doc/extend.texi: Fix '#pragma GCC option' typo.
11882
11883 2009-01-02 Richard Guenther <rguenther@suse.de>
11884
11885 * doc/install.texi (--enable-checking): Mention different
11886 default for stage1.
11887 (--enable-stage1-checking): Document.
11888
11889 2009-01-01 Andrew Pinski <pinskia@gmail.com>
11890
11891 PR middle-end/30142
11892 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
11893 case to be an error.
11894
11895 2009-01-02 Ben Elliston <bje@au.ibm.com>
11896
11897 * config/fp-bit.h (pack_d): Constify argument.
11898 * config/fp-bit.c (makenan): Constify return type. Remove casts.
11899 (isnan): Constify argument.
11900 (isinf): Likewise.
11901 (iszero): Likewise.
11902 (pack_d): Likewise.
11903 (_fpadd_parts): Constify return type.
11904 (_fpmul_parts): Likewise.
11905 (_fpdiv_parts): Likewise.
11906
11907 2009-01-01 Jakub Jelinek <jakub@redhat.com>
11908
11909 PR c/36489
11910 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
11911 warn about overwriting initializer with side-effects or
11912 -Woverride-init if !IMPLICIT.
11913 (output_init_element): Likewise. Pass IMPLICIT down to
11914 add_pending_init.
11915 (process_init_element): Add IMPLICIT argument. Pass it down
11916 to output_init_element.
11917 (push_init_element, pop_init_level, set_designator): Adjust
11918 process_init_element callers.
11919 (set_nonincremental_init, set_nonincremental_init_from_string):
11920 Adjust add_pending_init callers.
11921 (output_pending_init_elements): Adjust output_init_element callers.
11922 * c-tree.h (process_init_element): Adjust prototype.
11923 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
11924 process_init_element callers.
11925
11926 \f
11927 Copyright (C) 2009 Free Software Foundation, Inc.
11928
11929 Copying and distribution of this file, with or without modification,
11930 are permitted in any medium without royalty provided the copyright
11931 notice and this notice are preserved.