]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR target/39942 (Nonoptimal code - leaveq; xchg %ax,%ax; retq)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
a99c6711
JJ
12009-05-16 Jakub Jelinek <jakub@redhat.com>
2
3 PR target/39942
4 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
5 .p2align 3 if MAX_SKIP is smaller than 7.
6 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
7
7e5487a2
ILT
82009-05-15 Ian Lance Taylor <iant@google.com>
9
10 * alias.c (struct alias_set_entry_d): Rename from struct
11 alias_set_entry. Change all uses.
12 * except.c (struct call_site_record_d): Rename from struct
13 call_site_record. Change all uses.
14 * except.h (struct eh_region_d): Rename from struct eh_region.
15 Change all uses.
16 * gcse.c (struct hash_table_d): Rename from struct hash_table.
17 Change all uses.
18 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
19 ivtype_map_elt. Change all uses.
20 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
21 Change all uses.
22 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
23 * graphite.h (struct name_tree_d): Rename from struct name_tree.
24 Change all uses.
25 (struct sese_d): Rename from struct sese. Change all uses.
26 * omega.h (struct eqn_d): Rename from struct eqn. Change all
27 uses.
28 (struct omega_pb_d): Rename from struct omega_pb. Change all
29 uses.
30 * optabs.h (struct optab_d): Rename from struct optab. Change all
31 uses.
32 (struct convert_optab_d): Rename from struct convert_optab.
33 Change all uses.
34 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
35 ipa_opt_pass. Change all uses.
36 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
37 all uses.
38
39 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
40 defined as a typedef.
41 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
42 defined as a tag.
43
a243fb4a
MLI
442009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
45
46 PR 16302
47 * fold-const.c (make_range,build_range_check,merge_ranges): Move
48 declaration to...
49 (merge_ranges): Returns bool.
50 * tree.h (make_range): .. to here.
51 (build_range_check): Likewise.
52 (merge_ranges): Likewise. Renamed from merge_ranges.
53 * c-typeck.c (parser_build_binary_op): Update calls to
54 warn_logical_operator.
55 * c-common.c (warn_logical_operator): Add new warning.
56 * c-common.h (warn_logical_operator): Update declaration.
57
1b53c5f3
MLI
582009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
59
60 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong
61 conditional.
62
c128599a
KG
632009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
64
f9bab007
KG
65 * doc/install.texi: Document MPC requirements, flags etc.
66
c128599a
KG
67 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
68 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
69 Evaluate constant arguments.
70 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
71 (fold_builtin_1): Likewise, also evaluate constant arguments.
72 Remove superfluous break.
73 (do_mpc_ckconv): New.
74 * real.h: Include mpc.h.
75 * toplev.c (print_version): Output MPC version info if available.
76
d33e4b70
SL
772009-05-15 Sandra Loosemore <sandra@codesourcery.com>
78
79 * fold-const.c (fold_convert_const_real_from_real): Check for
80 overflow.
81
a02ab464
L
822009-05-15 H.J. Lu <hongjiu.lu@intel.com>
83
84 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
85 only once.
86
796bda22
JH
872009-05-15 Jan Hubicka <jh@suse.cz>
88
89 * doc/invoke.texi (max-early-inliner-iterations): New flag.
90 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
91 (try_inline): Fix return value.
92 (cgraph_decide_inlining_incrementally): Honor new value.
93 (cgraph_early_inlining): Handle indirect inlining.
94 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
95
d88e5c37
JH
962009-05-15 Jan Hubicka <jh@suse.cz>
97
98 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
99 * cgraphunit.c (cgraph_finalize_function): Set it.
100 (cgraph_expand_function): Use it.
101
ae63687c
SL
1022009-05-15 Sandra Loosemore <sandra@codesourcery.com>
103
104 * real.c (encode_ieee_half): Define.
105 (decode_ieee_half): Define.
106 (ieee_half_format): Define.
107 (arm_half_format): Define.
108 * real.h (ieee_half_format): Declare.
109 (arm_half_format): Declare.
110
1bd74ad9
SL
1112009-05-15 Sandra Loosemore <sandra@codesourcery.com>
112
113 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
114 swapped, and reversed optabs exist before trying to use them.
115
dc34db56
PB
1162009-05-15 Paul Brook <paul@codesourcery.com>
117 Sandra Loosemore <sandra@codesourcery.com>
118
dc34db56
PB
119 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
120 loads. Allow PRE_DEC.
121 (output_move_neon): Handle PRE_DEC.
122 (arm_print_operand): Add 'A' for neon structure loads.
123 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
124 * config/arm/neon.md (neon_mov): Update comment.
125 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
126 calls.
127 (Um): New constraint.
128
1d405d7b
JH
1292009-05-15 Jan Hubicka <jh@suse.cz>
130
131 Revert the following patch until testsuite fallout is fixed:
132 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
133 * cgraph.h (struct inline_summary): New filed self_wize,
134 size_inlining_benefit, self_time and time_inlining_benefit.
135 (struct cgraph_global_info): Replace insns by time ans size fields.
136 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
137 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
138 (ipcp_update_callgraph): Do not touch function bodies.
139 * ipa-inline.c: Include except.h
140 MAX_TIME: New constant.
141 (overall_insns): Remove
142 (overall_size, max_benefit): New static variables.
143 (cgraph_estimate_time_after_inlining): New function.
144 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
145 (cgraph_clone_inlined_nodes): Update size.
146 (cgraph_mark_inline_edge): Update size.
147 (cgraph_estimate_growth): Use size info.
148 (cgraph_check_inline_limits): Check size.
149 (cgraph_default_inline_p): Likewise.
150 (cgraph_edge_badness): Compute badness based on benefit and size cost.
151 (cgraph_decide_recursive_inlining): Check size.
152 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
153 (cgraph_decide_inlining): Likewise.
154 (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
155 (likely_eliminated_by_inlining_p): New predicate.
156 (estimate_function_body_sizes): New function.
157 (compute_inline_parameters): Use it.
158 * except.c (must_not_throw_labels): New function.
159 * except.h (must_not_throw_labels): Declare.
160 * tree-inline.c (init_inline_once): Kill inlining_weigths
161 * tree-ssa-structalias.c: Avoid uninitialized warning.
162 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
163 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
164 (PARAM_INLINE_CALL_COST): Remove.
165 (PARAM_EARLY_INLINING_INSNS): New.
166
7ffa47ca
RG
1672009-05-15 Richard Guenther <rguenther@suse.de>
168
169 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
170 not TODO_update_ssa.
171
828552ed
RG
1722009-05-15 Richard Guenther <rguenther@suse.de>
173
174 PR tree-optimization/39999
175 * gimple.h (gimple_expr_type): Use the expression type looking
176 through useless conversions.
177 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
178 (vn_nary_op_insert_stmt): Likewise.
179 (simplify_binary_expression): Likewise.
180
248fc9f3
RG
1812009-05-15 Richard Guenther <rguenther@suse.de>
182
183 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
184 New options, enabled by default.
185 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
186 Document.
187 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
188 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
189 * tree-ssa-structalias.c (gate_tree_pta): New function.
190 (pass_build_alias): Use it.
191
16b29cc4
JM
1922009-05-15 Joseph Myers <joseph@codesourcery.com>
193
194 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
195 recurse on an invariant address if a conversion from a pointer
196 type to a wider integer type is involved.
197
125cae84
JH
1982009-05-15 Jan Hubicka <jh@suse.cz>
199
200 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
201 * cgraph.h (struct inline_summary): New filed self_wize,
202 size_inlining_benefit, self_time and time_inlining_benefit.
203 (struct cgraph_global_info): Replace insns by time ans size fields.
204 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
205 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
206 (ipcp_update_callgraph): Do not touch function bodies.
207 * ipa-inline.c: Include except.h
208 MAX_TIME: New constant.
209 (overall_insns): Remove
210 (overall_size, max_benefit): New static variables.
211 (cgraph_estimate_time_after_inlining): New function.
212 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
213 (cgraph_clone_inlined_nodes): Update size.
214 (cgraph_mark_inline_edge): Update size.
215 (cgraph_estimate_growth): Use size info.
216 (cgraph_check_inline_limits): Check size.
217 (cgraph_default_inline_p): Likewise.
218 (cgraph_edge_badness): Compute badness based on benefit and size cost.
219 (cgraph_decide_recursive_inlining): Check size.
220 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
221 (cgraph_decide_inlining): Likewise.
222 (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
223 (likely_eliminated_by_inlining_p): New predicate.
224 (estimate_function_body_sizes): New function.
225 (compute_inline_parameters): Use it.
226 * except.c (must_not_throw_labels): New function.
227 * except.h (must_not_throw_labels): Declare.
228 * tree-inline.c (init_inline_once): Kill inlining_weigths
229 * tree-ssa-structalias.c: Avoid uninitialized warning.
230 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
231 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
232 (PARAM_INLINE_CALL_COST): Remove.
233 (PARAM_EARLY_INLINING_INSNS): New.
234 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
235 (inline-call-cost): Remove.
236 (early-inlining-insns): New.
237
84fb43a1
EB
2382009-05-15 Eric Botcazou <ebotcazou@adacore.com>
239
240 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
241 for bounds.
242 (print_int_cst_bounds_in_octal_p): Likewise.
243 (dbxout_type): Adjust calls to above functions. Be prepared to deal
244 with subtypes.
245 * dwarf2out.c (base_type_die): Likewise.
246 (is_subrange_type): Delete.
247 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
248 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
249 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
250 the destination type is boolean.
251 (build_range_check): Do not special-case subtypes.
252 (fold_sign_changed_comparison): Likewise.
253 (fold_unary): Likewise.
254 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
255 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
256 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
257 * tree.c (subrange_type_for_debug_p): New predicate based on the former
258 is_subrange_type.
259 * tree.h (subrange_type_for_debug_p): Declare.
260 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
261 (convert_affine_scev): Remove call to above function.
262 (chrec_convert_aggressive): Likewise.
263 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
264 false for conversions involving subtypes.
265 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
266 (vrp_val_min): Likewise.
267 (needs_overflow_infinity): Likewise.
268 (extract_range_from_unary_expr): Likewise.
269
331d9186
PB
2702009-05-15 Paolo Bonzini <bonzini@gnu.org>
271
272 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
273 * config/frv/frv.c: Likewise.
274 * config/s390/s390.c: Likewise.
275 * config/sparc/sparc.h: Likewise.
276 * config/i386/i386.h: Likewise.
277 * config/i386/i386.c: Likewise.
278 * config/crx/crx.c: Likewise.
279 * config/m68hc11/m68hc11.h: Likewise.
280 * config/iq2000/iq2000.c: Likewise.
281 * config/mn10300/mn10300.h: Likewise.
282 * config/mn10300/mn10300.c: Likewise.
283 * config/m68k/m68k.c: Likewise.
284 * config/rs6000/rs6000.c: Likewise.
285 * config/rs6000/xcoff.h: Likewise.
286 * config/rs6000/linux64.h: Likewise.
287 * config/rs6000/sysv4.h: Likewise.
288 * config/score/score3.c: Likewise.
289 * config/score/score7.c: Likewise.
290 * config/score/score.c: Likewise.
291 * config/arm/arm.md: Likewise.
292 * config/mips/mips.c: Likewise.
293 * config/mips/mips.md: Likewise.
294 * config/bfin/bfin.h: Likewise.
295 * config/pa/pa.c: Likewise.
296 * config/pa/constraints.md: Likewise.
297
298 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
299 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
300 * config/pdp11/pdp11.h: Use memory_address_p instead.
301
09639a83
ILT
3022009-05-14 Ian Lance Taylor <iant@google.com>
303
304 * passes.c (finish_optimization_passes): Change i to int.
305 * plugin.c (plugins_active_p): Change event to int.
306 (dump_active_plugins): Likewise.
307 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
308 Add cast.
309 * tree.c (tree_range_check_failed): Change c to unsigned int.
310 (omp_clause_range_check_failed): Likewise.
311 (build_common_builtin_nodes): Change mode to int. Add cast.
312 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
313 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
314
315 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
316 ++ or -- with a variable of enum type.
317
c04a56bf
SB
3182009-05-14 Steven Bosscher <steven@gcc.gnu.org>
319
320 PR driver/40144
321 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
322
237ee620
SB
3232009-05-14 Steven Bosscher <steven@gcc.gnu.org>
324
325 * store-motion.c: Do not include params.h
326 * Makefile.in: Fix dependencies for various files.
327
1154c4fa
SB
3282009-05-14 Steven Bosscher <steven@gcc.gnu.org>
329
330 * auto-inc-dec.c: Fix pass description, remove apparent
331 accidental duplication.
332
61c27353
L
3332009-05-14 H.J. Lu <hongjiu.lu@intel.com>
334
335 PR middle-end/40147
336 * ipa-utils.h (memory_identifier_string): Moved to ...
337 * tree.h (memory_identifier_string): Here. Add GTY(()).
338
c6c3dba9
PB
3392009-05-14 Paolo Bonzini <bonzini@gnu.org>
340
341 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
342 in the former documentation of...
343 (GO_IF_LEGITIMATE_ADDRESS): ... this.
344 * ira-conflicts.c (get_dup_num): Use address_operand.
345 * targhooks.c (default_legitimate_address_p): New.
346 * targhooks.h (default_legitimate_address_p): New.
347 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
348 Call hook.
349 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
350 * target.h (struct target): Add legitimate_address_p.
351 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
352 (TARGET_INITIALIZER): Include it.
353
354 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
355 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
356 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
357 (TARGET_LEGITIMATE_ADDRESS_P): New.
358
359 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
360 (REG_OK_STRICT_P): Delete.
361 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
362 (frv_legitimate_address_p_1): ... this.
363 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
364 (frv_legitimate_address_p_1): ... the renamed old
365 frv_legitimate_address_p.
366 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
367 (TARGET_LEGITIMATE_ADDRESS_P): New.
368
369 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
370 * config/s390/s390-protos.h (legitimate_address_p): Remove.
371 * config/s390/s390.c (legitimate_address_p): Rename to...
372 (s390_legitimate_address_p): ... this, make static.
373 (legitimize_address): Adjust call.
374 (TARGET_LEGITIMATE_ADDRESS_P): New.
375 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
376
377 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
378 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
379 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
380 (TARGET_LEGITIMATE_ADDRESS_P): New.
381
382 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
383 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
384 * config/spu/spu.c (spu_legitimate_address): Rename to...
385 (spu_legitimate_address_p): ... this, make static.
386 (TARGET_LEGITIMATE_ADDRESS_P): New.
387
388 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
389 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
390 * config/sparc/sparc.c (legitimate_address_p): Rename to...
391 (sparc_legitimate_address_p): ... this, make static and return bool.
392 (legitimize_address): Adjust call.
393 (TARGET_LEGITIMATE_ADDRESS_P): New.
394
395 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
396 * config/i386/i386-protos.h (legitimate_address_p): Remove.
397 * config/i386/i386.c (legitimate_address_p): Rename to...
398 (ix86_legitimate_address_p): ... this, make static.
399 (constant_address_p): Move after it, adjust call.
400 (TARGET_LEGITIMATE_ADDRESS_P): New.
401
402 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
403 * config/avr/avr-protos.h (legitimate_address_p): Remove.
404 * config/avr/avr.c (legitimate_address_p): Rename to...
405 (avr_legitimate_address_p): ... this, make static.
406 (legitimize_address): Adjust call.
407 (TARGET_LEGITIMATE_ADDRESS_P): New.
408
409 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
410 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
411 * config/crx/crx.c (crx_legitimate_address_p): Make static.
412 (TARGET_LEGITIMATE_ADDRESS_P): New.
413
414 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
415 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
416 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
417 (TARGET_LEGITIMATE_ADDRESS_P): New.
418
419 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
420 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
421 Remove.
422 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
423 Make static.
424 (TARGET_LEGITIMATE_ADDRESS_P): New.
425
426 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
427 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
428 Remove.
429 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
430 Rename to...
431 (m68hc11_legitimate_address_p): ... this, make static.
432 (go_if_legitimate_address_internal): Rename to...
433 (m68hc11_legitimate_address_p_1): ... this.
434 (legitimize_address): Adjust call.
435 (TARGET_LEGITIMATE_ADDRESS_P): New.
436
437 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
438 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
439 Remove.
440 * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
441 Make static.
442 (TARGET_LEGITIMATE_ADDRESS_P): New.
443
444 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
445 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
446 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
447 (mn10300_legitimate_address_p): ... this, make static.
448 (TARGET_LEGITIMATE_ADDRESS_P): New.
449
450 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
451 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
452 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
453 (TARGET_LEGITIMATE_ADDRESS_P): New.
454
455 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
456 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
457 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
458 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
459 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
460 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
461 (rs6000_legitimate_address_p): ... this, make static.
462 (TARGET_LEGITIMATE_ADDRESS_P): New.
463 (REG_MODE_OK_FOR_BASE_P): Delete.
464 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
465
466 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
467 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
468 Delete.
469 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
470 static, adjust types.
471 (TARGET_LEGITIMATE_ADDRESS_P): New.
472
473 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
474 * config/score/score.c (score_address_p): Rename to...
475 (score_legitimate_address_p): ... this.
476 (TARGET_LEGITIMATE_ADDRESS_P): New.
477 * config/score/score3.c (score3_address_p): Rename to...
478 (score3_legitimate_address_p): ... this.
479 * config/score/score7.c (score7_address_p): Rename to...
480 (score7_legitimate_address_p): ... this.
481
482 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
483 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
484 GO_IF_LEGITIMATE_ADDRESS): Delete.
485 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
486 thumb2_legitimate_address_p): Delete.
487 (arm_legitimate_address_p): Rename to...
488 (arm_legitimate_address_outer_p): ... this.
489 * config/arm/constraints.md ("Uq"): Adjust call.
490 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
491 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
492 (arm_legitimate_address_outer_p): ... this.
493 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
494 (TARGET_LEGITIMATE_ADDRESS_P): New.
495
496 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
497 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
498 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
499 (TARGET_LEGITIMATE_ADDRESS_P): New.
500
501 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
502 * config/vax/vax-protos.h (legitimate_address_p): Remove.
503 * config/vax/vax.c (legitimate_address_p): Rename to...
504 (vax_legitimate_address_p): ... this, make static.
505 (TARGET_LEGITIMATE_ADDRESS_P): New.
506
507 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
508 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
509 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
510 (TARGET_LEGITIMATE_ADDRESS_P): New.
511
512 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
513 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
514 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
515 (mmix_legitimate_address_p): ... this, make static.
516 (TARGET_LEGITIMATE_ADDRESS_P): New.
517
518 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
519 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
520 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
521 (TARGET_LEGITIMATE_ADDRESS_P): New.
522
3bd0d9c8
PB
5232009-05-14 Paolo Bonzini <bonzini@gnu.org>
524
525 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
526 of MODE_COMPLEX_INT.
527
fe049033
RO
5282009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
529
530 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
531 LCT_NORMAL in function call.
532 * mips-tdump.c (print_file_desc): Add cast to enum type.
533 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
534 (mark_stabs): Add casts to enum types.
535 (parse_stabs_common): Add casts to enum types.
16f7ad42 536
b0907a6c
AN
5372009-05-13 Adam Nemet <anemet@caviumnetworks.com>
538
539 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
540 Check for invalid values of LETTER.
541
d1c8e08a
TG
5422009-05-13 Taras Glek <tglek@mozilla.com>
543
16f7ad42
TG
544 * attribs.c (register_attribute): moved out attribute registration into
545 register_attribute.
546 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
547 * gcc-plugin.h: Added forward decl for register_attribute.
548 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
549 * plugin.c (register_callback, invoke_plugin_callbacks): Added
550 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 551
4ed7f970
DK
5522009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
553
554 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
555 values even in sentinel and empty entries.
556 (ms_printf_flag_specs): Likewise.
557 (ms_scanf_flag_specs): Likewise.
558 (ms_strftime_flag_specs): Likewise.
559 (ms_print_char_table): Likewise.
560 (ms_scan_char_table): Likewise.
561 (ms_time_char_table): Likewise.
562
3d8fa148
DK
5632009-05-13 Doug Kwan <dougkwan@google.com>
564
565 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
566
f06257d3
AN
5672009-05-13 Adam Nemet <anemet@caviumnetworks.com>
568
569 * config/mips/mips.md (store): Add attributes for QI and HI.
570 Update comment.
571 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
572 (truncdi<mode>2): ... this new pattern.
573
fb201767
BH
5742009-05-13 Brad Hards <bradh@kde.org>
575
576 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
577
c7bda60e 5782009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
579 Ben Elliston <bje@au.ibm.com>
580
581 PR middle-end/40035
582 * dse.c (check_mem_read_rtx): Guard against width == -1.
583
ce985b43
MM
5842009-05-13 Michael Matz <matz@suse.de>
585
586 PR middle-end/39976
587 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
588 (trivially_conflicts_p): New function.
589 (insert_backedge_copies): Use it.
590
7de1d221
JJ
5912009-05-13 Janis Johnson <janis187@us.ibm.com>
592
593 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
594 (handle_stdc_pragma): Use new enum constant names.
595 (handle_pragma_float_const_decimal64): Ditto.
596
bfefafc6
ILT
5972009-05-13 Ian Lance Taylor <iant@google.com>
598
599 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
600 tree.def.
601
286c4fcb
NS
6022009-05-13 Nathan Sidwell <nathan@codesourcery.com>
603
604 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
605 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
606 multilibs.
607 * config/m68k/m68k.h (FL_UCLINUX): Define.
608
ebaa6ea7
JH
6092009-05-13 Jan Hubicka <jh@suse.cz>
610
611 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
612
2b703e1a
KK
6132009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
614
615 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
616 unless -fschedule-insns is specified.
617
c3537723
KK
6182009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
619
620 PR target/39561
621 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
622 TARGET_EXPAND_CBRANCHDI4.
623 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
624 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
625 (cmpeqdi): Fix comment.
626
cdeed45a
KK
6272009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
628
629 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
630 (sh_legitimate_address_p): Likewise.
631 * config/sh/sh.c (sh_legitimate_index_p): New.
632 (sh_legitimate_address_p): Likewise.
633 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
634 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
635 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
636 (MAYBE_BASE_REGISTER_RTX_P): New macro.
637 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
638 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
639 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
640 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
641 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
642
02f0b13a
JH
6432009-05-12 Jan Hubicka <jh@suse.cz>
644
645 * tree-inline.c (estimate_operator_cost): Add operands;
646 when division happens by constant, it is cheap.
647 (estimate_num_insns): Loads and stores are not having cost of 0;
648 EH magic stuff is cheap; when computing runtime cost of switch,
649 use log2 base of amount of its cases; builtin_expect has cost of 0;
650 compute cost for moving return value of call.
651 (init_inline_once): Initialize time_based flags.
652 * tree-inline.h (eni_weights_d): Add time_based flag.
653
ecb7f6de
PB
6542009-05-12 Paolo Bonzini <bonzini@gnu.org>
655
656 * df-core.c: Update head documentation.
657
c24151ce
MM
6582009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
659
660 PR bootstrap/40118
661 * rs6000.c (rs6000_generate_compare): Use op1b instead of
662 shadowing exisiting variable op1.
663
fbdf817d
UB
6642009-05-12 Uros Bizjak <ubizjak@gmail.com>
665
704bf7c8 666 PR target/37179
fbdf817d
UB
667 * config/i386/driver-i386.c (processor_signatures): New enum.
668 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
669 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
670 processor signature to detect geode processor.
671
5e8d1826
PB
6722009-05-12 Paolo Bonzini <bonzini@gnu.org>
673
674 Revert:
675
676 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
677
678 * optabs.c (prepare_cmp_insn): Temporarily disable test that
679 causes spurious differences between trunk and cond-optab branch.
680
f90b7a5a
PB
6812009-05-12 Paolo Bonzini <bonzini@gnu.org>
682
fbdf817d
UB
683 * dojump.c (compare_from_rtx): Delete.
684 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
685 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
686 if the comparison does not satisfy the predicate; test predicates for
687 operands 2 and 3 of a cstore pattern. Don't try cstore optab
688 further if one existing pattern fails.
fbdf817d 689 * expr.h (compare_from_rtx): Delete.
f90b7a5a 690 (prepare_operand): Declare it.
fbdf817d 691 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 692 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
693 HAVE_conditional_trap, emit_cmp_insn): Delete.
694 (can_compare_p): Delete cmp_optab case.
f90b7a5a 695 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
696 Accept other parameters by value.
697 (prepare_operand): Make non-static.
698 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
699 other parameters by value. Try to widen operands here based on
700 an optab_methods argument and looking at cbranch_optab.
701 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
702 loop. Use cbranch_optab directly.
703 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
704 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
705 assertion.
706 (emit_conditional_move, emit_conditional_add): Inline what's needed
707 of compare_from_rtx, using new prepare_cmp_insn for the rest.
708 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
709 with COMPARE. Move cmov_optab and cstore_optab above
710 with cbranch_optab, move cmp_optab down with ucmp_optab,
711 remove tst_otpab. Do not initialize trap_rtx.
712 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
713 for trap code. Do not check HAVE_conditional_trap. Use
714 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
715 * optabs.h (OTI_cmp): Mark as used only for libcalls.
716 (OTI_ctrap, ctrap_optab): New.
717 (tst_optab): Delete.
718 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
719 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
720 with lookup of ctrap_optab.
721 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
722 setcc_gen_code): Delete.
723 (ctrap_optab): New.
724
725 * combine.c (combine_simplify_rtx, simplify_set): Do not
726 special case comparing against zero for cc0 machines.
f90b7a5a
PB
727 * simplify-rtx.c (simplify_binary_operation_1): Never remove
728 COMPARE on cc0 machines.
729 (simplify_relational_operation): Return a new expression when
730 a COMPARE could be removed.
fbdf817d
UB
731 * final.c (final_scan_insn): Compare cc_status values
732 against LHS of a (compare FOO (const_int 0)) cc0 source.
733 Also check if cc_status.value is the full compare.
f90b7a5a 734
fbdf817d
UB
735 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
736 (cstoreMM4): Document.
f90b7a5a 737 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 738 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
739 (Dependent Patterns): Eliminate obsolete information referring to
740 the old jump optimization phase.
fbdf817d 741 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
742 of compares with 0 on cc0 machines.
743 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
744 avoiding references to cc0. Remove text about storing operands
745 in cmpMM.
746 * doc/tm.texi (Condition Codes): Include blurb on different
747 condition code representations, separate into subsections for
748 CC0, MODE_CC and conditional execution.
749
fbdf817d
UB
750 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
751 alpha_emit_setcc): Accept operands and a machine mode.
752 * config/alpha/alpha.c (alpha_emit_conditional_branch):
753 Get code/op0/op1 from operands, use machine mode argument
754 instead of alpha_compare.fp_p. Emit the branch here.
755 (alpha_emit_setcc): Likewise, and return boolean.
756 (alpha_emit_conditional_move): Likewise. Assert that
757 cmp_op_mode == cmp_mode, and simplify accordingly.
758 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
759 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
760 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
761 Delete.
762 (stack probe test): Use cbranchdi4.
763 * config/alpha/predicates.md (alpha_cbranch_operator): New.
764
765 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
766 * config/arc/arc.h (movsicc, movsfcc): Use it.
767 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
768 (cbranchsi4, cstoresi4): New.
769 (cmpsi, bCC and sCC expanders): Remove.
770
771 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
772 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
773 * config/arm/predicates.md (arm_comparison_operator): Only include
774 floating-point operators if there is a hardware floating-point unit.
775 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
776 deferring to cbranch_cc and cstore_cc respectively.
777 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
778 cbranch_cc, cstore_cc): New.
779 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 780 arm_compare_op1.
fbdf817d
UB
781 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
782
783 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
784 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
785 as an argument.
786 (adjust_insn_length): Adjust calls.
787 (avr_reorg): Handle (compare (foo) (const_int 0)).
788 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
789 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
790 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
791 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
792 (bCC): Remove.
793 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
794 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
795
fbdf817d
UB
796 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
797 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 798 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
799 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
800 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
801 (bfin_optimize_loop): Use cbranch expander.
802 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
803 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
804 (bfin_bimode_comparison_operator): ... this.
805 (bfin_direct_comparison_operator): New.
f90b7a5a 806
fbdf817d
UB
807 * config/cris/cris.c (cris_normal_notice_update_cc): Look
808 inside (compare FOO (const_int 0)).
809 (cris_rtx_costs): Handle ZERO_EXTRACT.
810 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
811 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
812 (*tstdi_v32): Delete.
813 (*cmpdi_non_v32): Add M alternative for operand 1.
814 (cmpsi, cmp<mode>): Make private.
815 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
816 with COMPARE.
817 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
818
819 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
820 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
821 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
822 (cc_reg_operand): New.
823 (any_cond): Delete.
fbdf817d
UB
824 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
825 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
826 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
827 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
828 crx_expand_scond): Delete.
829
830 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
831 (cbranchsi4): New.
832 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
833 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
834
835 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
836 cstoresi4, cstoresf4, cstoredf4): New.
837 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
838 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
839 Receive the entire operands array.
840 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
841 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
842 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
843 Get test/op0/op1 from the operands array.
844 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
845
846 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
847 (h8300_expand_store): New.
848 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
849 (const_int 0)).
850 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
851 (h8300_expand_store): New.
852 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
853 or do not try to produce (set (cc0) REG).
854 (peepholes): Wrap arguments with COMPARE. Add a peephole to
855 change a compare into a move to a scratch register. Disable some
856 peepholes when comparing with zero.
857 (tstsi, tsthi, tstsi, cmpqi): Make private.
858 (cmphi): Delete.
859 (bCC, sCC): Delete.
860 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
861 cstoresi4): New.
f90b7a5a
PB
862
863 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
864 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
865 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
866 (ix86_emit_i387_log1p): Use cbranchxf2.
867 (ix86_expand_setcc): Return void.
868 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
869 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
870 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
871 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
872 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
873 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
874 (sCC and bCC expanders): Remove.
875 (stack_protect_test): Use cbranchcc4.
876
fbdf817d
UB
877 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
878 Delete.
879 (ia64_expand_compare): Accept three rtx by reference and return void.
880 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
881 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
882 from *expr. Update *expr with the BImode comparison to do.
883 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
884 cmptf, bCC, sCC, conditional_trap): Delete.
885 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
886 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
887 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
888 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
889 * config/ia64/predicates.md (ia64_cbranch_operator): New.
890
891 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
892 type of last argument.
893 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
894 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
895 use machine mode argument instead of branch_type. Remove dead
896 code for floating-point comparisons.
897 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
898 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
899 Remove.
900 (cbranchsi4, cstoresi4): New.
901 * config/iq2000/predicates.md (reg_or_const_operand): New.
902
903 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
904 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
905 (b<code>_op): Rewrite to...
906 (bcc_op): ... this, using match_operator.
907 (s<code>_op): Rewrite to...
908 (scc_op): ... this, using match_operator.
909 (s<code>_24_op): Rewrite to...
910 (scc_op_24): ... this, using match_operator.
911 (s<code>_<mode>): Rewrite to...
912 (cstore<mode>4): ... this, using match_operator.
913 (s<code>_<mode>_24): Rewrite to...
914 (cstore<mode>4_24): ... this, using match_operator.
915 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
916 m32c_unpend_compare, m32c_expand_scc): Delete.
917 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
918 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
919 (m32c_expand_movcc): Change NE to EQ if necessary.
920 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
921
922 * config/m32r/m32r-protos.h (gen_cond_store): New.
923 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
924 (gen_cond_store): New, from sCC patterns.
925 (m32r_expand_block_move): Use cbranchsi4.
926 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
927 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
928 (cbranchsi4, cstoresi4): New.
929
930 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
931 Delete.
932 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 933 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
934 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
935 Delete.
936 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
937 cmphi, cmpqi, bCC): Delete.
938 (cbranchsi4, cbranchhi4, cbranchqi4): New.
939 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
940 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
941 sets with COMPARE.
942
943 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
944 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
945 * config/m68k/constraints.md (H): New.
946 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
947 the define_insn below.
948 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
949 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
950 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
951 patterns): Wrap RHS with COMPARE.
952 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
953 (*cmpdi_internal): Name this pattern.
954 (cmpdi): Change to define_insn.
955 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
956 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
957 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
958 predicate.
959 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
960 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
961 (conditional_trap): Change to...
962 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
963 (*conditional_trap): Use the ordered_comparison_operator and
964 const1_operand predicates.
965 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
966 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
967 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
968 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
969
970 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
971 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
972 (mcore_gen_compare): New.
973 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
974 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
975 (mcore_gen_compare): ... this.
976 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
977 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
978 (stack probe pattern): Use cbranchsi4.
979
980 * config/mips/predicates.md (mips_cstore_operator): New.
981 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
982 * config/mips/mips.md (any_cond): Delete.
983 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
984 always succeed.
985 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
986 fixuns_truncsfdi2): Use cbranch patterns.
987 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
988 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
989 Adjust call to mips_expand_conditional_branch.
990 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
991 cstore<GPR:mode>4.
992 * config/mips/mips-protos.h (mips_expand_conditional_branch,
993 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
994 * config/mips/mips.c (cmp_operands): Delete.
995 (mips_emit_compare): Get comparison operands from *op0/*op1.
996 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
997 that it succeeds. Use op0/op1 instead of cmp_operands.
998 (mips_expand_conditional_branch, mips_expand_conditional_move,
999 mips_expand_conditional_trap): Likewise.
1000 (mips_block_move_loop): Use cbranch patterns.
1001 * config/mips/mips.h (cmp_operands): Delete.
1002
1003 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
1004 (mmix_gen_compare_reg): Just return a register in the right CC mode.
1005 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
1006 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
1007 (*cmpcc_folded): Rename to...
1008 (*cmpdi_folded): this.
1009 (*cmpcc): Rename to...
1010 (*cmps): ... this.
1011 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
1012 (bCC): Remove.
1013 (cbranchdi4): New.
1014 (cbranchdf4): New. Handle invalid comparisons here.
1015 * config/mmix/predicates.md (float_comparison_operator): New.
1016
1017 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
1018 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
1019 * config/mn10300/mn10300.md (tst): Delete.
1020 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
1021 Name these patterns and wrap RHS in a compare.
1022 (*cmpsi): Make this pattern private. Include tst.
1023 (*cmpsf): Make this pattern private.
1024 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
1025 (compare with zero peepholes): Likewise.
1026 (bCC): Remove.
1027 (cbranchsi4, cbranchsf4): New.
1028 (casesi): Use cbranchsi4.
1029
1030 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
1031 hppa_branch_type): Delete.
1032 (return_addr_rtx): Use cbranchsi4.
1033 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
1034 Emit CCFPmode comparison here.
1035 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
1036 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
1037 hppa_branch_type): Delete.
1038 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
1039 (movsicc, movdicc): Remove references to hppa_compare_op0,
1040 hppa_compare_op1 and compare_from_rtx.
1041 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
1042 (casesi): Use cbranchsi4.
1043
1044 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
1045 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
1046 * config/pdp11/pdp11.md (register_or_const0_operand): New.
1047 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
1048 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
1049 (bCC): Delete.
1050 (cbranchdf4, cbranchhi4, cbranchqi4): New.
1051 (*branch, *branch_inverted): New.
1052
1053 * config/picochip/picochip.md (cbranchhi4): Use
1054 ordered_comparison_operator.
1055 (cmphi, bCC): Remove.
1056
1057 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
1058 (trap_comparison_operator): Delete.
1059 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
1060 rs6000_emit_cbranch): Accept mode and operands.
1061 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
1062 rs6000_compare_fp_p): Delete.
1063 (rs6000_generate_compare): Accept mode and comparison. Extract code
1064 and op0/op1 from there. Replace references to rs6000_compare_op0
1065 and rs6000_compare_op1.
1066 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
1067 extract result from passed operands.
1068 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
1069 extract loc from passed operands.
1070 (rs6000_emit_cmove): Likewise.
1071 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
1072 rs6000_compare_fp_p): Delete.
1073 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
1074 (cbranch<GPR>4, cbranch<FP>4): New.
1075 (cstore<mode>4): New. Consolidate here all choices about when to use
1076 portable or specialized sCC sequences.
1077 (stack_protect_test): Use cbranchsi4.
1078 (conditional_trap): Replace with ctrap<GPR>4.
1079 (conditional trap insn): Replace trap_comparison_operator with
1080 ordered_comparison_operator.
1081
1082 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
1083 (s390_emit_prologue): Use ctrap.
1084 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
1085 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
1086 New predicates replacing...
1087 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
1088 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
1089 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
1090 (add<mode>cc): Do not use s390_compare_op0/op1.
1091 (s<code>): Change to...
1092 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
1093 (seq): Change to...
1094 (cstorecc4): ... this. Handle EQ or NE equally.
1095 (*sne): Un-privatize for use in cstorecc4.
1096 (b<code>): Change to...
1097 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
1098 (conditional_trap): Replace with...
1099 (ctrap<GPR>4, ctrap<FP>4): ... these.
1100 (stack_protect): Use cbranchcc4.
1101
1102 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
1103 * config/score/score-protos.h (score_gen_cmp): Delete.
1104 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
1105 (score_block_move-loop): Use cbranchsi4.
1106 * config/score/score.md (cbranchsi4): New.
1107 (cmpsi, bCC): Delete.
1108 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
1109 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1110 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
1111 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1112 * config/score/score3.h (score3_gen_cmp): Delete.
1113 * config/score/score7.h (score7_gen_cmp): Delete.
1114
1115 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
1116 (sh_emit_scc_to_t): ... this. Return void.
1117 (from_compare): Rename to...
1118 (sh_emit_compare_and_branch): ... this.
1119 (sh_emit_compare_and_set): New.
1120 (sh_expand_t_scc): Accept operands.
1121 * config/sh/predicates.md (sh_float_comparison_operator): New.
1122 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
1123 (prepare_scc_operands): Rename to...
1124 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
1125 arguments.
1126 (sh_emit_cheap_store_flag): New.
f90b7a5a 1127 (sh_emit_set_t_insn): New.
fbdf817d
UB
1128 (from_compare): Rename to...
1129 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
1130 handling of TARGET_SH2E floating point to avoid recursive call.
1131 Generate branch here.
1132 (sh_emit_compare_and_set): New.
1133 (sh_expand_t_scc): Get op0/op1 from arguments.
1134 (sh_emit_cheap_store_flag): New.
1135 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
1136 cases.
f90b7a5a 1137 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
1138 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
1139 (movsicc, movdicc): Do nothing when it recreated operands from
1140 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
1141 prepare_scc_operands (now sh_emit_scc_to_t).
1142 (udivdi3): Use cstoresi4.
1143 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
1144 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
1145 (cbranchint4_media, cbranchfp4_media): New.
1146 (casesi): Use cbranchdi4.
1147 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
1148 Delete.
1149 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
1150 (movnegt): Remove second operand.
1151 (cbranchsf4, cbranchdf4): New.
1152 (stack_protect): Use cbranchdi4/cbranchsi4.
1153
1154 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
1155 (gen_compare_reg): Accept comparison, extract part of it to...
1156 (gen_compare_reg_1): ... this.
1157 (gen_compare_operator): Delete.
1158 (gen_v9_scc): Accept separate destination, comparison code and arms.
1159 Do not use sparc_compare_op0/sparc_compare_op1.
1160 (emit_scc_insn, emit_conditional_branch_insn): New.
1161 (emit_v9_brxx): Make static. Remove useless assertion.
1162 (sparc_emit_float_lib_cmp): Return RTL instead of calling
1163 emit_cmp_insn.
1164 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
1165 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
1166 sparc_emit_float_lib_cmp): Adjust prototype.
1167 (emit_scc_insn, emit_conditional_branch_insn): New.
1168 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
1169 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
1170 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
1171 iterators to the top.
1172 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
1173 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 1174 snedi_special_trunc): Delete.
fbdf817d 1175 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 1176 and snedi_special_trunc.
fbdf817d
UB
1177 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
1178 cbranchdi4, cbranch<F:mode>4): New.
1179 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
1180 here. Use gen_compare_reg instead of gen_compare_operator.
1181 (conditional_trap): Replace with...
1182 (ctrapsi4, ctrapdi4): ... this.
1183 (stack_protect_test): Use cbranchcc4.
1184
1185 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
1186 argument to rtx.
1187 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
1188 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
1189 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
1190 from operands[0] or operands[3] depending on is_set.
1191 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
1192 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
1193 cmpdf, bCC), sCC: Remove.
1194 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
1195 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
1196 cstoredf4): New.
1197 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
1198 spu_emit_branch_or_set.
1199
1200 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
1201 Add two arguments.
1202 * config/stormy16/stormy16.h (xstormy16_compare_op0,
1203 xstormy16_compare_op1): Delete.
1204 * config/stormy16/stormy16.c (xstormy16_compare_op0,
1205 xstormy16_compare_op1): Delete.
1206 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
1207 Adjust calls.
1208 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
1209 (cmphi, cmpsi, bCC): Remove.
1210
1211 * config/v850/v850.md (tstsi, cmpsi): Fold into...
1212 (*cmpsi): ... this one.
1213 (cbranchsi4, cstoresi4): New.
1214 (bCC expanders): Delete.
1215 (sCC insns): Fold into...
1216 (*setcc): ... this one.
1217 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
1218 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
1219 (movsicc): Simplify.
1220 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
1221
fbdf817d
UB
1222 * config/vax/vax-protos.h (cond_name): New.
1223 (vax_output_conditional_branch): Remove.
1224 * config/vax/vax.c (cond_name): New.
1225 (vax_output_conditional_branch): Remove.
1226 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
1227 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
1228 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
1229 (bit<VAXint>): Wrap source with (compare).
1230 (b<code> and following unnamed pattern): Rename to *branch and
1231 *branch_reversed. Change macroization to match_operator.
1232 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
1233
1234 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
1235 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
1236 Change last argument to machine_mode.
1237 (xtensa_expand_scc): Add machine_mode argument.
1238 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
1239 (gen_conditional_move, xtensa_expand_conditional_branch,
1240 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
1241 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
1242 Adjust operand numbers.
1243 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
1244 Delete.
1245 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
1246 (cmpsi, cmpsf, b<code>, s<code>): Delete.
1247 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 1248
16670495
PB
12492009-05-12 Paolo Bonzini <bonzini@gnu.org>
1250
1251 * optabs.c (prepare_cmp_insn): Temporarily disable test that
1252 causes spurious differences between trunk and cond-optab branch.
1253
4a4a4e99
AO
12542009-05-12 Alexandre Oliva <aoliva@redhat.com>
1255
1256 PR target/37137
1257 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
1258
72b9acff
AO
12592009-05-12 Alexandre Oliva <aoliva@redhat.com>
1260
1261 * tree.c (iterative_hash_pointer): Delete.
1262 (iterative_hash_expr): Short-circuit handling of NULL pointer.
1263 Hash UIDs and versions of SSA names. Don't special-case built-in
1264 function declarations.
1265
b7dd69ac
ILT
12662009-05-11 Ian Lance Taylor <iant@google.com>
1267
1268 PR bootstrap/40103
1269 * graphite.c: Force -Wc++-compat to only be a warning before
1270 #including "cloog/cloog.h".
1271
ed102b70
MJ
12722009-05-11 Martin Jambor <mjambor@suse.cz>
1273
1274 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
1275
08f1af2e
JH
12762009-05-11 Jan Hubicka <jh@suse.cz>
1277
1278 * tree-ssa-loop-ivcanon.c: Include target.h
1279 (struct loop_size): new structure.
1280 (constant_after_peeling): New predicate.
1281 (tree_estimate_loop_size): New function.
1282 (estimated_unrolled_size): Rewrite for new estimates.
1283 (try_unroll_loop_completely): Use new estimates.
1284 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
1285
a7d39bd3
AP
12862009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
1287
1288 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
1289 libcpp interface change.
1290 (spu_macro_to_expand): Likewise.
1291
f5a1f0d0
PB
12922009-05-11 Paolo Bonzini <bonzini@gnu.org>
1293
1294 PR tree-optimization/40026
1295 * gimplify.c (gimplify_init_constructor): Change initial conditional
1296 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
1297 optimize_compound_literals_in_ctor.
1298
c260f01f
NS
12992009-05-11 Nathan Sidwell <nathan@codesourcery.com>
1300
1301 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
1302 New devices.
1303 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
1304
df398a37
L
13052009-05-11 H.J. Lu <hongjiu.lu@intel.com>
1306
1307 * tree-vect-data-refs.c (vect_analyze_group_access): Use
1308 HOST_WIDE_INT for gap.
1309
4da39468
IR
13102009-05-11 Ira Rosen <irar@il.ibm.com>
1311
1312 PR tree-optimization/40074
1313 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
1314 account in group size and step comparison.
1315
4effdf02
RG
13162009-05-11 Richard Guenther <rguenther@suse.de>
1317
1318 * passes.c (init_optimization_passes): Strip now incorrect comment.
1319 (execute_function_todo): Do not set PROP_alias.
1320 * tree-pass.h (PROP_alias): Remove.
1321 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
1322 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
1323 * tree-nrv.c (pass_return_slot): Likewise.
1324 * tree-object-size.c (pass_object_sizes): Likewise.
1325 * tree-ssa-dom.c (pass_dominator): Likewise.
1326 (pass_phi_only_cprop): Likewise.
1327 * tree-ssa-dse.c (pass_dse): Likewise.
1328 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1329 (pass_cselim): Likewise.
1330 * tree-ssa-pre.c (pass_pre): Likewise.
1331 (pass_fre): Likewise.
1332 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
1333 * tree-ssa-sink.c (pass_sink_code): Likewise.
1334 * tree-stdarg.c (pass_stdarg): Likewise.
1335 * tree-tailcall.c (pass_tail_calls): Likewise.
1336 * tree-vrp.c (pass_vrp): Likewise.
1337
24b97832
ILT
13382009-05-10 Ian Lance Taylor <iant@google.com>
1339
1340 * basic-block.h (enum profile_status): Break out of struct
1341 control_flow_graph.
1342 * cgraph.h (struct inline_summary): Break out of struct
1343 cgraph_local_info.
1344 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1345 of struct cgraph_order_sort.
fbdf817d 1346 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
1347 * cse.c (struct branch_path): Break out of struct
1348 cse_basic_block_data.
1349 * except.h (enum eh_region_type): Break out of struct eh_region.
1350 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 1351 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
1352 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1353 ggc_pch_data.
fbdf817d
UB
1354 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1355 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
1356 * sched-int.h (enum post_call_group): New enum, broken out of
1357 struct deps.
1358 (struct deps_reg): Break out of struct deps.
1359 * target.h (struct asm_int_op): Break out of struct gcc_target.
1360 * tree-eh.c (struct goto_queue_node): Break out of struct
1361 leh_tf_state.
1362 * tree-inline.h (enum copy_body_cge_which): Break out of
1363 copy_body_data.
1364 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1365
1366 * c-decl.c (in_struct, struct_types): New static variables.
1367 (pushtag): Add loc parameter. Change all callers.
1368 (lookup_tag): Add ploc parameter. Change all callers.
1369 (check_compound_literal_type): New function.
1370 (parser_xref_tag): Add loc parameter. Change all callers. If
1371 -Wc++-compat, warn about struct/union/enum types defined within a
1372 struct or union.
1373 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1374 and loc parameters. Change all callers. Change error calls to
1375 error_at, using loc. For a redefinition, if the location of the
1376 original definition is known, report it. Set in_struct and
fbdf817d 1377 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
1378 (finish_struct): Add new parameters enclosing_in_struct and
1379 enclosing_struct_types. Change all callers. Set
1380 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1381 in the struct. If in a struct, add this struct to struct_types.
1382 (start_enum): Add loc parameter. Change all callers. Use
1383 error_at for errors, using loc. For a redefinition, if the
1384 location of the original definition is known, report it. If in a
1385 struct, add this enum type to struct_types. If -Wc++-compat warn
1386 if in sizeof, typeof, or alignof.
fbdf817d
UB
1387 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1388 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
1389 (c_parser_enum_specifier): Get enum location for start_enum.
1390 (c_parser_struct_or_union_specifier): Get struct location for
1391 start_struct. Save in_struct and struct_types status between
1392 start_struct and finish_struct.
1393 (c_parser_cast_expression): Get location of cast.
1394 (c_parser_alignof_expression): Get location of type.
1395 (c_parser_postfix_expression): Likewise.
1396 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
1397 parameter. Change all callers. Call check_compound_literal_type.
1398 Use type_loc for error about variable size type.
1399 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1400 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
1401 (c_cast_expr): Add loc parameter. Change all callers. If
1402 -Wc++-compat, warn about defining a type in a cast.
1403 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1404 (start_enum, start_struct, finish_struct): Update declarations.
1405 (parser_xref_tag, c_cast_expr): Update declarations.
1406 (check_compound_literal_type): Declare.
1407
7a2738fa
BE
14082009-05-11 Ben Elliston <bje@au.ibm.com>
1409
1410 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1411 for recent libcpp interface change.
1412 (rs6000_macro_to_expand): Likewise.
1413
af618949
MM
14142009-05-10 Michael Matz <matz@suse.de>
1415
1416 PR target/40031
1417 * config/arm/arm.c (require_pic_register): Emit on entry edge,
1418 not at entry of function.
1419
b7d7a473
RG
14202009-05-10 Richard Guenther <rguenther@suse.de>
1421
1422 PR tree-optimization/40081
1423 Revert
1424 * tree-sra.c (instantiate_element): Instantiate scalar replacements
1425 using the main variant of the element type. Do not fiddle with
1426 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1427
1428 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1429 structs with volatile fields.
1430
078c3644
JH
14312009-05-10 Jan Hubicka <jh@suse.cz>
1432
1433 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
1434 (estimate_move_cost): Assert that it does not get called for
1435 VOID_TYPE_P.
078c3644
JH
1436 (estimate_num_insns): Skip VOID types in argument handling.
1437 (optimize_inline_calls): Delete unreachable blocks and verify that
1438 callgraph is valid.
1439
39ff5a96
JH
14402009-05-10 Jan Hubicka <jh@suse.cz>
1441
1442 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1443 * cgraph.c (cgraph_mark_address_taken_node): New function.
1444 (dump_cgraph_node): Dump new flag.
1445 * cgraph.h (struct cgraph_node): Add address_taken.
1446 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
1447 * ipa.c (cgraph_postorder): Prioritize functions with address taken
1448 since new direct calls can be born.
1449
9a0c6187
JM
14502009-05-10 Joseph Myers <joseph@codesourcery.com>
1451
1452 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1453 tok->val.node.node.
1454
4b685e14
JH
14552009-05-10 Jan Hubicka <jh@suse.cz>
1456
1457 PR middle-end/40084
fb0be169
EB
1458 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1459 argument; rewrite.
4b685e14
JH
1460 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1461 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1462 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
1463 (fold_marked_statements): Update call to
1464 cgraph_update_edges_for_call_stmt.
4b685e14 1465
29d08eba
JM
14662009-05-10 Joseph Myers <joseph@codesourcery.com>
1467
1468 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1469 identifiers in diagnostics.
1470 * config/arm/arm.c (arm_handle_fndecl_attribute,
1471 arm_handle_isr_attribute): Likewise.
1472 * config/avr/avr.c (avr_handle_progmem_attribute,
1473 avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1474 Likewise.
1475 * config/bfin/bfin.c (handle_int_attribute,
1476 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1477 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1478 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1479 Likewise.
1480 * config/darwin.c (darwin_handle_kext_attribute,
1481 darwin_handle_weak_import_attribute): Likewise.
1482 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1483 h8300_handle_eightbit_data_attribute,
1484 h8300_handle_tiny_data_attribute): Likewise.
1485 * config/i386/i386.c (ix86_handle_cconv_attribute,
1486 ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1487 Likewise.
1488 * config/i386/winnt.c (ix86_handle_shared_attribute,
1489 ix86_handle_selectany_attribute): Likewise.
1490 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1491 * config/m32c/m32c.c (function_vector_handler): Likewise.
1492 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1493 m68hc11_handle_fntype_attribute): Likewise.
1494 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1495 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1496 * config/mips/mips.c (mips_insert_attributes,
1497 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1498 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1499 rs6000_handle_struct_attribute): Likewise.
1500 * config/sh/sh.c (sh_insert_attributes,
1501 sh_handle_resbank_handler_attribute,
1502 sh_handle_interrupt_handler_attribute,
1503 sh2a_handle_function_vector_handler_attribute,
1504 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1505 Likewise.
1506 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1507 * config/spu/spu.c (spu_handle_fndecl_attribute,
1508 spu_handle_vector_attribute): Likewise.
1509 * config/stormy16/stormy16.c
1510 (xstormy16_handle_interrupt_attribute): Likewise.
1511 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1512 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1513
f41c4af3
JM
15142009-05-10 Joseph Myers <joseph@codesourcery.com>
1515
1516 * pretty-print.h (struct pretty_print_info): Add
1517 translate_identifiers.
1518 (pp_translate_identifiers): New.
1519 (pp_identifier): Only conditionally translate identifier to locale
1520 character set.
1521 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1522 (pp_base_tree_identifier): Only conditionally translate identifier
1523 to locale character set.
1524 * c-pretty-print.c (M_): Define.
1525 (pp_c_type_specifier, pp_c_primary_expression): Mark English
1526 fragments for conditional translation with M_.
1527 * tree-pretty-print.c (maybe_init_pretty_print): Disable
1528 identifier translation.
1529
896d7dbd
RG
15302009-05-10 Richard Guenther <rguenther@suse.de>
1531
1532 PR tree-optimization/40081
1533 * tree-sra.c (instantiate_element): Instantiate scalar replacements
1534 using the main variant of the element type. Do not fiddle with
1535 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1536
9a23acef
JH
15372009-05-09 Jan Hubicka <jh@suse.cz>
1538
1539 PR middle-end/40080
1540 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1541 indirect calls; verify cgraph afterwards.
1542
d563610d
JH
15432009-05-09 Jan Hubicka <jh@suse.cz>
1544
1545 PR bootstrap/40082
1546 * ipa.c (update_inlined_to_pointer): New function.
1547 (cgraph_remove_unreachable_nodes): Use it.
1548
f08a18d0
JH
15492009-05-09 Jan Hubicka <jh@suse.cz>
1550
1551 * tree-eh.c (struct leh_state): Remove prev_try.
1552 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1553 not track prev_try.
1554 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
1555 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1556 remove_eh_handler_and_replace, foreach_reachable_handler,
1557 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1558 * except.h (struct eh_region): Remove eh_region_u_cleanup.
1559 (gen_eh_region_cleanup): Update prototype.
1560
0afd7219
JH
15612009-05-09 Jan Hubicka <jh@suse.cz>
1562
1563 PR middle-end/40043
1564 * except.c (copy_eh_region): Always set prev_try.
1565 (redirect_eh_edge_to_label): Find outer try.
1566 (foreach_reachable_handler): When looking for prev try
1567 handle case where previous try is not going to be taken.
1568
ad6c0864
MM
15692009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
1570
1571 PR tree-optimization/40049
1572 * tree-vect-stmts.c (vectorizable_operation): If the machine has
1573 only vector/vector shifts, convert the type of the constant to the
1574 appropriate type to avoid building incorrect trees, which
1575 eventually have problems with garbage collection.
1576
c94f9067
JM
15772009-05-08 Joseph Myers <joseph@codesourcery.com>
1578
1579 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1580 -1 for complex floating-point types if honoring signed zeros.
1581
9187e02d
JH
15822009-05-08 Jan Hubicka <jh@suse.cz>
1583
20acb8a2
EB
1584 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1585 argument; handle correctly when profile is absent.
9187e02d
JH
1586 (build_cgraph_edges): Update.
1587 (rebuild_cgraph_edges): Update.
20acb8a2
EB
1588 * cgraph.c: Do not include varray.h.
1589 (cgraph_set_call_stmt_including_clones): New function.
1590 (cgraph_create_edge_including_clones): Likewise
1591 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
1592 (cgraph_update_edges_for_call_stmt): Handle clones.
1593 (cgraph_remove_node): Handle clone tree.
1594 (cgraph_remove_node_and_inline_clones): New function.
1595 (dump_cgraph_node): Dump clone tree.
1596 (cgraph_clone_node): Handle clone tree.
20acb8a2 1597 (clone_function_name): Bring here from tree-inline.c.
9187e02d 1598 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
1599 * cgraph.h (ipa_replace_map): Move here from ipa.h.
1600 (cgraph_clone_info): New function.
9187e02d 1601 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
1602 (cgraph_remove_node_and_inline_clones,
1603 cgraph_set_call_stmt_including_clones,
1604 cgraph_create_edge_including_clones,
1605 cgraph_create_virtual_clone): Declare.
9187e02d
JH
1606 (cgraph_function_versioning): Use VEC argument.
1607 (compute_call_stmt_bb_frequency): Update prototype.
1608 (cgraph_materialize_all_clones): New function.
1609 * ipa-cp.c (ipcp_update_cloned_node): Remove.
1610 (ipcp_create_replace_map): Update to VECtors.
1611 (ipcp_update_callgraph): Use virtual clones.
1612 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1613 (ipcp_update_profiling): Do not update local profiling.
1614 (ipcp_insert_stage): Use VECtors and virtual clones.
1615 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1616 (clone_of_p): New function.
1617 (cgraph_preserve_function_body_p): Use clone tree.
1618 (cgraph_optimize): Materialize clones.
1619 (cgraph_function_versioning): Update for VECtors.
1620 (save_inline_function_body): Use clone tree.
20acb8a2
EB
1621 (cgraph_materialize_clone): New function.
1622 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
1623 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1624 * ipa.c: Include gimple.h.
1625 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
1626 * ipa-prop.c (ipa_note_param_call): Update call to
1627 compute_call_stmt_bb_frequencycall.
9187e02d 1628 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 1629 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
1630 (copy_bb): Handle updating of clone tree; add new edge when new call
1631 appears.
1632 (expand_call_inline): Be strict about every call having edge.
1633 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1634 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
1635 (tree_function_versioning): Use VECtors; always remove unreachable
1636 blocks and fold conditionals.
1637 * tree-inline.h: Do not include varray.h.
9187e02d
JH
1638 (tree_function_versioning): Remove.
1639 * Makefile.in (GTFILES): Remove tree-inline.c
1640 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
1641 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1642 tree.
9187e02d 1643
9b86d6bb
L
16442009-05-08 H.J. Lu <hongjiu.lu@intel.com>
1645 Andrew Morrow <acm@google.com>
1646
1647 PR c/36892
1648 * c-common.c (c_common_attribute_table): Permit deprecated
1649 attribute to take an optional argument.
1650 (handle_deprecated_attribute): If the optional argument to
1651 __attribute__((deprecated)) is not a string ignore the attribute
1652 and emit a warning.
1653
1654 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1655 * c-typeck.c (build_component_ref): Likewise.
1656 (build_external_ref): Likewise.
1657
1658 * toplev.c (warn_deprecated_use): Add an attribute argument.
1659 Emit the message associated with __attribute__((deprecated)).
1660
1661 * toplev.h (warn_deprecated_use): Updated.
1662
1663 * doc/extend.texi: Document new optional parameter to
1664 __attribute__((deprecated))
1665
82ad047f
ME
16662009-05-08 Michael Eager <eager@eagercon.com>
1667
1668 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1669 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1670
788d3075
RG
16712009-05-08 Richard Guenther <rguenther@suse.de>
1672
1673 PR tree-optimization/40062
1674 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1675 Avoid exponential behavior.
1676
00952e97
PB
16772009-05-08 Paolo Bonzini <bonzini@gnu.org>
1678
1679 PR rtl-optimization/33928
1680 PR 26854
1681 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1682 process_uses, build_single_def_use_links): New.
1683 (update_df): Update use_def_ref.
1684 (forward_propagate_into): Use get_def_for_use instead of use-def
1685 chains.
1686 (fwprop_init): Call build_single_def_use_links and let it initialize
1687 dataflow.
1688 (fwprop_done): Free use_def_ref.
1689 (fwprop_addr): Eliminate duplicate call to df_set_flags.
1690 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
1691 df_rd_simulate_one_insn): New.
1692 (df_rd_bb_local_compute_process_def): Update head comment.
1693 (df_chain_create_bb): Use the new RD simulation functions.
1694 * df.h (df_rd_simulate_artificial_defs_at_top,
1695 df_rd_simulate_one_insn): New.
1696 * opts.c (decode_options): Enable fwprop at -O1.
1697 * doc/invoke.texi (-fforward-propagate): Document this.
1698
2ca862e9
JM
16992009-05-08 Joseph Myers <joseph@codesourcery.com>
1700
1701 PR c/24581
1702 * c-typeck.c (build_binary_op): Handle arithmetic between one real
1703 and one complex operand specially.
1704 * tree-complex.c (some_nonzerop): Do not identify a real value as
1705 zero if flag_signed_zeros.
1706
3e807ffc
PB
17072009-05-08 Paolo Bonzini <bonzini@gnu.org>
1708
1709 PR rtl-optimization/33928
7925c06c 1710 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 1711
1bfdbb29
PB
17122009-05-08 Paolo Bonzini <bonzini@gnu.org>
1713
1714 PR rtl-optimization/33928
e913423f
EB
1715 * loop-invariant.c (struct use): Add addr_use_p.
1716 (struct def): Add n_addr_uses.
1717 (struct invariant): Add cheap_address.
1718 (create_new_invariant): Set cheap_address.
1719 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
1720 (record_uses): Pass df_ref to record_use.
1721 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1722 used only as such.
1bfdbb29 1723
702cb2a0
KK
17242009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
1725
1726 * config/sh/sh.c: Do not include c-pragma.h.
1727
5e8df753
AP
17282009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1729
1730 * config/spu/spu.c: Remove include of c-common.h.
1731
6ec637a4
JJ
17322009-05-07 Janis Johnson <janis187@us.ibm.com>
1733
1734 PR c/39037
1735 * c-common.h (mark_valid_location_for_stdc_pragma,
1736 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1737 clear_float_const_decimal64, float_const_decimal64_p): New.
1738 * c.opt (Wunsuffixed-float-constants): New.
1739 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1740 unsuffixed float constant, handle new warning.
1741 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1742 * c-decl.c (c_scope): New flag float_const_decimal64.
1743 (set_float_const_decimal64, clear_float_const_decimal64,
1744 float_const_decimal64_p): New.
1745 (push_scope): Set new flag.
1746 * c-parser.c (c_parser_translation_unit): Mark when it's valid
1747 to use STDC pragmas.
1748 (c_parser_external_declaration): Ditto.
1749 (c_parser_compound_statement_nostart): Ditto.
1750 * c-pragma.c (valid_location_for_stdc_pragma,
1751 mark_valid_location_for_stdc_pragma,
1752 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1753 handle_pragma_float_const_decimal64): New.
1754 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1755 * cp/semantics.c (valid_location_for_stdc_pragma_p,
1756 set_float_const_decimal64, clear_float_const_decimal64,
1757 float_const_decimal64_p): New dummy functions.
1758 * doc/extend.texi (Decimal Float): Remove statement that the
1759 pragma, and suffix for double constants, are not supported.
1760 * doc/invoke.texi (Warning Options): List new option.
1761 (-Wunsuffixed-float-constants): New.
1762
45b9b2e9
SB
17632009-05-08 Steven Bosscher <steven@gcc.gnu.org>
1764
1765 * config/i386/i386.c: Do not include c-common.h.
1766
e71da632
MH
17672009-05-07 Mark Heffernan <meheff@google.com>
1768
1769 * doc/invoke.texi (Debugging Options): Document change of debugging
1770 dump location.
e913423f 1771 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
1772 aux_base_name directory.
1773
fe4c7bc6
HS
17742009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1775
1776 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1777 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1778
3b3e44eb
RAE
17792009-05-07 Rafael Avila de Espindola <espindola@google.com>
1780
1781 * Makefile.in (install-plugin): Simplify a bit.
1782
fac41238
PB
17832009-05-07 Paolo Bonzini <bonzini@gnu.org>
1784
1785 * Makefile.in (OBJS-common): Add regcprop.o.
1786 (regcprop.o): New.
1787 * timevar.def (TV_CPROP_REGISTERS): New.
1788 * regrename.c (regrename_optimize): Return 0.
1789 (rest_of_handle_regrename): Delete.
1790 (pass_rename_registers): Point to regrename_optimize.
1791 (struct value_data_entry, struct value_data,
1792 kill_value_one_regno, kill_value_regno, kill_value,
1793 set_value_regno, init_value_data, kill_clobbered_value,
1794 kill_set_value, kill_autoinc_value, copy_value,
1795 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1796 replace_oldest_value_reg, replace_oldest_value_addr,
1797 replace_oldest_value_mem, copyprop_hardreg_forward_1,
1798 debug_value_data, validate_value_data): Move...
1799 * regcprop.c: ... here.
1800 (rest_of_handle_cprop): Delete.
1801 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1802
472e0df9
JJ
18032009-05-07 Jakub Jelinek <jakub@redhat.com>
1804
1805 PR middle-end/40057
1806 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1807 GEN_INT for 1 << bitnum.
1808 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1809 build_int_cst_type.
1810
0d50d55a
UB
18112009-05-07 Uros Bizjak <ubizjak@gmail.com>
1812
1813 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 1814 Remove wrong description of "nand" operation.
0d50d55a 1815
22f597f1
RG
18162009-05-06 Richard Guenther <rguenther@suse.de>
1817 Adam Nemet <anemet@caviumnetworks.com>
1818
1819 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1820 comment. Add that if LHS is not a gimple register, then RHS1 has
1821 to be a single object (GIMPLE_SINGLE_RHS).
1822
641cac0b
AN
18232009-05-06 Adam Nemet <anemet@caviumnetworks.com>
1824
1825 * expr.c (get_def_for_expr): Move it up in the file.
1826 (store_field): When expanding a bit-field store, look at the
1827 defining gimple stmt for the masking conversion.
1828
5a5c6435
JJ
18292009-05-06 Janis Johnson <janis187@us.ibm.com>
1830
1831 PR middle-end/39986
1832 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1833 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1834 32-bit memcpy into long.
1835
96474f36
JJ
18362009-05-06 Jakub Jelinek <jakub@redhat.com>
1837
1838 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1839 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1840 new_reg_loc_descr.
1841 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1842 instead of appending DW_OP_deref*.
1843
529ff441
MM
18442009-05-06 Michael Matz <matz@suse.de>
1845
1846 PR middle-end/40021
1847 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1848 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1849
9419a9fd
RAE
18502009-05-06 Rafael Avila de Espindola <espindola@google.com>
1851
1852 * Makefile.in (install-plugin): Fix srcdir handling.
1853
fff1894c
AB
18542009-05-06 Andrey Belevantsev <abel@ispras.ru>
1855
1856 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1857 when processing for not_regs_needed bitmap.
1858 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1859 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
1860 handling it for rhs.
1861
700ae70c
L
18622009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1863
ab3426a7 1864 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 1865 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
1866 * config/i386/predicates.md (incdec_operand): Likewise.
1867 (aligned_operand): Likewise.
1868 * config/i386/sse.md (divv8sf3): Likewise.
1869 (sqrtv8sf2): Likewise.
1870
67341fb5
L
18712009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1872
1873 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1874
1875 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1876
87946f42
L
18772009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1878
1879 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1880 ssemodesuffixf2c with avxmodesuffixf2c.
1881
1202aec1
JM
18822009-05-06 Joseph Myers <joseph@codesourcery.com>
1883
1884 PR c/40032
aa016ff7 1885 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 1886
6e57a01d
JJ
18872009-05-05 Jakub Jelinek <jakub@redhat.com>
1888
1889 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1890 (struct tree_base): Adjust spacing for 8 bit boundaries.
1891 (struct tree_decl_common): Add decl_by_reference_flag bit.
1892 (DECL_BY_REFERENCE): Adjust.
1893 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1894 print DECL_BY_REFERENCE bit.
1895 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1896 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1897 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1898 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
1899 unconditionally.
1900
32f579f6
JJ
1901 PR middle-end/39666
1902 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1903 range of the type, but default label is missing, add it with one
1904 of the existing labels instead of adding a new label for it.
1905
617ab743
JM
19062009-05-05 Joseph Myers <joseph@codesourcery.com>
1907
1908 * dwarf.h: Remove.
1909
bf016de8
RAE
19102009-05-05 Rafael Avila de Espindola <espindola@google.com>
1911
1912 * Makefile.in (enable_plugin, plugin_includedir): New.
1913 (install): Depend on install-plugin.
1914 (PLUGIN_HEADERS): New.
1915 (install-plugin): New.
1916 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1917
7f8fdb9f
RG
19182009-05-05 Richard Guenther <rguenther@suse.de>
1919
1920 PR tree-optimization/40022
1921 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1922 the only vuse.
1923 (phivn_valid_p): Fix tuplification error, simplify.
1924 (phiprop_insert_phi): Add dumps.
1925 (propagate_with_phi): Simplify.
1926
8d972839
RG
19272009-05-05 Richard Guenther <rguenther@suse.de>
1928
1929 PR middle-end/40023
aa016ff7 1930 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 1931
66ba9b0b
SZ
19322009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
1933
1934 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
1935 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1936 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1937 block_ultimate_origin): Rearrange the declarations line to match the
1938 comment that indicates the .c file which the functions are defined.
1939 (dwarf2out_*, set_decl_rtl): Add comment.
1940 (get_base_address): Adjust comment.
1941 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1942 declarations line and add comment.
1943 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 1944
4f1e4960
JM
19452009-05-04 Joseph Myers <joseph@codesourcery.com>
1946
1947 * attribs.c (decl_attributes): Use %qE for identifiers in
1948 diagnostics.
1949 * cgraphunit.c (verify_cgraph_node): Translate function names to
1950 locale character set in diagnostics.
1951 * coverage.c (get_coverage_counts): Use %qE for identifiers in
1952 diagnostics.
1953 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1954 Document that functions are named in UTF-8.
1955 * expr.c (expand_expr_real_1): Translate function names to locale
1956 character set in diagnostics.
1957 * gimplify.c (omp_notice_variable, omp_is_private,
1958 gimplify_scan_omp_clauses): Use %qE for identifiers in
1959 diagnostics.
1960 * langhooks.c (lhd_print_error_function): Translate function names
1961 to locale character set.
1962 * langhooks.h (decl_printable_name): Document that return value is
1963 in internal character set.
1964 * stmt.c: Include pretty-print.h
1965 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1966 diagnostics.
1967 (resolve_operand_name_1): Translate named operand name to locale
1968 character set.
1969 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1970 diagnostics.
1971 * toplev.c (announce_function): Translate function names to locale
1972 character set.
1973 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1974 (default_tree_printer): Use pp_identifier or translate identifiers
1975 to locale character set. Mark "<anonymous>" for translation.
1976 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1977 for identifiers in diagnostics.
1978 * tree.c (handle_dll_attribute): Use %qE for identifiers in
1979 diagnostics.
1980 * varasm.c (output_constructor): Use %qE for identifiers in
1981 diagnostics.
1982
40540e68
RAE
19832009-05-04 Rafael Avila de Espindola <espindola@google.com>
1984
1985 * configure.ac: use ` ` instead of $()
1986 * configure: Regenerate.
1987
33fc884c
BE
19882009-05-05 Ben Elliston <bje@au.ibm.com>
1989
1990 * config/pa/linux-atomic.c: Eliminate conditional include of
1991 errno.h on non-LP64 systems to simplify build requirements.
1992
88388a52
JM
19932009-05-04 Joseph Myers <joseph@codesourcery.com>
1994
1995 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1996 diagnostics.
1997 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1998 and pass value to identifier_to_locale.
1999 (warn_variable_length_array): Make name a tree.
2000 (grokdeclarator): Separate diagnostic texts for named and unnamed
2001 declarators. Use %qE for named declarators.
2002 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
2003 diagnostics.
2004 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
2005 identifiers in diagnostics.
2006 * c-typeck.c (push_member_name, start_init): Pass identifiers to
2007 identifier_to_locale. Mark "anonymous" strings for translation.
2008
960c5c79
ME
20092009-05-04 Michael Eager <eager@eagercon.com>
2010
2011 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 2012 address for DImode/DFmode only if double-precision FP regs.
960c5c79 2013
d083fbba
ME
20142009-05-04 Michael Eager <eager@eagercon.com>
2015
2016 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
2017 TARGET_SINGLE_FLOAT check.
2018
c3ba8d32
ME
20192009-05-04 Michael Eager <eager@eagercon.com>
2020
2021 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
2022
edce9f18
ME
20232009-05-04 Michael Eager <eager@eagercon.com>
2024
2025 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
2026 * config/rs6000/t-xilinx: New
2027
506d7b68
PB
20282009-05-04 Paolo Bonzini <bonzini@gnu.org>
2029
e913423f 2030 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
2031 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
2032 * gcc/explow.c (memory_address): Use target hook.
2033 * gcc/targhooks.c (default_legitimize_address): New.
2034 * gcc/targhooks.h (default_legitimize_address): New.
2035 * gcc/target.h (legitimize_address): New.
2036 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
2037 (TARGET_INITIALIZER): Include it.
2038 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
2039
2040 * config/bfin/bfin-protos.h (legitimize_address): Remove.
2041 * config/bfin/bfin.c (legitimize_address): Remove.
2042 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
2043 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
2044 Remove.
506d7b68
PB
2045 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
2046 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
2047
2048 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
2049 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
2050 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
2051 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
2052 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
2053 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
2054 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
2055 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
2056 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
2057 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
2058 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
2059 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
2060 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
2061 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
2062 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
2063 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
2064 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
2065 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
2066 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
2067 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
2068 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
2069 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
2070 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
2071
2072 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
2073 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
2074 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
2075 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
2076 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
2077 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
2078 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
2079 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
2080 (thumb_legitimize_address): Delete.
2081 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
2082 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
2083 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
2084 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
2085 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
2086 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
2087 Delete.
2088 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
2089 Delete.
506d7b68
PB
2090
2091 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
2092 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
2093 * config/m32r/m32r.c (m32r_legitimize_address): New.
2094 * config/m68k/m68k.c (m68k_legitimize_address): New.
2095 * config/score/score.c (score_legitimize_address): Standardize.
2096 * config/score/score3.c (score3_legitimize_address): Standardize.
2097 * config/score/score3.h (score3_legitimize_address): Adjust.
2098 * config/score/score7.c (score7_legitimize_address): Standardize.
2099 * config/score/score7.h (score7_legitimize_address): Adjust.
2100 * config/sh/sh.c (sh_legitimize_address): New.
2101 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
2102
2103 * gcc/config/s390/s390.c (legitimize_address): Rename to...
2104 (s390_legitimize_address): ... this.
2105 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
2106 (sparc_legitimize_address): ... this.
2107 * gcc/config/i386/i386.c (legitimize_address): Rename to...
2108 (ix86_legitimize_address): ... this.
2109 * gcc/config/avr/avr.c (legitimize_address): Rename to...
2110 (avr_legitimize_address): ... this.
2111 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
2112 (mn10300_legitimize_address): ... this.
2113 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
2114 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
2115 (alpha_expand_mov): Adjust call.
2116
2117 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
2118 * config/spu/spu.c (spu_legitimize_address): Likewise.
2119 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
2120 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
2121
a3af5087
JM
21222009-05-04 Joseph Myers <joseph@codesourcery.com>
2123
2124 * intl.c (locale_encoding, locale_utf8): New.
2125 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
2126 * intl.h (locale_encoding, locale_utf8): Declare.
2127 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
2128 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
2129 New.
2130 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
2131 argument.
2132 (pp_tree_identifier): Define to call pp_base_tree_identifier.
2133 (pp_base_tree_identifier): Declare as function.
2134 (identifier_to_locale): Declare.
2135 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 2136 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 2137
ea5cd5f1
RG
21382009-05-04 Richard Guenther <rguenther@suse.de>
2139
2140 PR middle-end/40015
2141 * builtins.c (fold_builtin_memory_op): Do not decay to element
2142 type if the size matches the whole array.
2143
ddc2690a
KH
21442009-05-04 Kazu Hirata <kazu@codesourcery.com>
2145
2146 * expmed.c (synth_mult): When trying out a shift, pass the result
2147 of a signed shift.
2148
ef268d34
KH
21492009-05-04 Kazu Hirata <kazu@codesourcery.com>
2150
2151 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
2152 (shiftsub1_cost): New.
2153 (init_expmed): Compute shiftsub1_cost.
2154 (synth_mult): Optimize multiplications by constants of the form
2155 -(2^^m-1) for some constant positive integer m.
2156
255d3827
RG
21572009-05-03 Richard Guenther <rguenther@suse.de>
2158
2159 PR c/39983
2160 * c-typeck.c (array_to_pointer_conversion): Do not built
2161 ADDR_EXPRs of arrays of pointer-to-element type.
2162 * c-gimplify.c (c_gimplify_expr): Revert change fixing
2163 up wrong ADDR_EXPRs after-the-fact.
2164 * c-common.c (strict_aliasing_warning): Strip pointer
2165 conversions for obtaining the original type.
2166 * builtins.c (fold_builtin_memset): Handle array types.
2167 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
2168 and array types
2169
16c33770
RG
21702009-05-03 Richard Guenther <rguenther@suse.de>
2171
2172 PR middle-end/23329
2173 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
2174 Do not lose casts from array types with unknown extent to array
2175 types with known extent.
2176 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
2177 alias set compatibility.
2178
62a67c94
MLI
21792009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
2180
2181 * flags.h (extra_warnings): Delete.
2182 * toplev.c (process_options): Handle Wuninitialized here.
2183 * opts.c (extra_warnings): Delete.
2184 (set_Wextra): Delete.
2185 (common_handle_option): -Wextra can be handled automatically.
2186 * c-opts.c (c_common_handle_option): Delete obsolete code.
2187 (c_common_post_options): Simplify comment.
2188 * common.opt (W): Add Var.
2189 (Wextra): Add Var.
2190 (Wuninitialized): Initialize to -1.
2191
8c7926c4
AN
21922009-05-03 Adam Nemet <anemet@caviumnetworks.com>
2193 Richard Guenther <rguenther@suse.de>
2194
2195 * expr.c (get_def_for_expr): New function.
2196 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
2197 SSA rather than trees.
2198 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
2199 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
2200
fa5da7de
JM
22012009-05-03 Joseph Myers <joseph@codesourcery.com>
2202
2203 * c-common.c (reswords): Add _Imaginary.
2204 * c-common.c (enum rid): Add RID_IMAGINARY.
2205
2ddd5020
PB
22062009-05-03 Paolo Bonzini <bonzini@gnu.org>
2207
2208 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
2209 Patch by Richard Guenther.
2210
aea88c05
AS
22112009-05-03 Anatoly Sokolov <aesok@post.ru>
2212
2213 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
2214 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
2215 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
2216 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
2217 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
2218 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
2219 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
2220 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
2221 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
2222 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
2223 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
2224 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
2225 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
2226 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
2227 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
2228 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
2229 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
2230 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
2231
85e59f3a
RG
22322009-05-02 Richard Guenther <rguenther@suse.de>
2233
2234 PR tree-optimization/39940
2235 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
2236 doing so.
2237
4636b850
RG
22382009-05-02 Richard Guenther <rguenther@suse.de>
2239
2240 PR middle-end/40001
2241 * tree-ssa.c (execute_update_addresses_taken): Properly check
2242 if we can mark a variable DECL_GIMPLE_REG_P.
2243 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
2244 back to the end of the function.
2245 (is_gimple_reg_type): Remove complex type special casing.
2246 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
2247 if not optimizing.
2248
5e10cb5a
BE
22492009-05-02 Ben Elliston <bje@au.ibm.com>
2250
2251 * doc/collect2.texi (Collect2): Document search path behaviour
2252 when configured with --with-ld.
2253
048bf48b
JH
22542009-05-02 Jan Hubicka <jh@suse.cz>
2255
2256 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
2257 parameter; update callers.
aa016ff7
UB
2258 (coalesce_cost_edge): EH edges are costier because they needs
2259 splitting even if not critical and even more costier when there are
2260 multiple EH predecestors.
048bf48b 2261
d5c5f9ab
JH
22622009-05-02 Jan Hubicka <jh@suse.cz>
2263
2264 * except.c (remove_eh_handler_and_replace): Handle updating after
2265 removing TRY blocks.
2266
2ed1959a
EB
22672009-05-02 Eric Botcazou <ebotcazou@adacore.com>
2268
2269 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
2270
d363a7e7
SB
22712009-05-02 Steven Bosscher <steven@gcc.gnu.org>
2272
2273 * varasm.c: Do not include c-pragma.h.
2274 * attribs.c: Do not incude c-common.h.
2275
9c3d55b4
MM
22762009-05-01 Michael Matz <matz@suse.de>
2277
2278 * calls.c (initialize_argument_information): Handle SSA names like
2279 decls with a non MEM_P DECL_RTL.
2280
ea264ca5
SB
22812009-05-01 Steven Bosscher <steven@gcc.gnu.org>
2282
2283 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
2284 * ipa-utils.c: Likewise.
2285 * ipa-type-escape.c: Likewise.
2286 * cgraphunit.c Do not include c-common.h.
2287 * ipa-pure-const.c: Likewise.
2288 * tree-if-conv.c: Likewise.
2289 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
2290 * ipa-struct-reorg.c: Likewise.
2291 * tree-nomudflap.c: Likewise.
2292 * tree-ssa-structalias.c: Likewise.
2293
6c5d4d1a
SB
22942009-05-01 Steven Bosscher <steven@gcc.gnu.org>
2295
2296 * store-motion.c: Many cleanups to make this pass a first-class
2297 citizen instead of an appendix to gcse load motion. Add TODO list
2298 to make this pass faster/cleaner/better.
2299
2300 (struct ls_expr): Post gcse.c-split cleanups.
2301 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
2302 "stores" field to "avail_stores".
2303 (pre_ldst_mems): Rename to store_motion_mems.
2304 (pre_ldst_table): Rename to store_motion_mems_table.
2305 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
2306 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
2307 (ldst_entry): Rename to st_expr_entry, update users.
2308 (free_ldst_entry): Rename to free_st_expr_entry, update users.
2309 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
2310 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
2311 update caller.
6c5d4d1a
SB
2312 (first_ls_expr): Rename to first_st_expr, update users.
2313 (next_ls_expr): Rename to next_st_expr, update users.
2314 (print_ldst_list): Rename to print_store_motion_mems. Print names of
2315 fields properly for store motion instead of names inherited from load
2316 motion in gcse.c.
2317 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
2318 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
2319 are done with it.
2320
2321 (ae_kill): Rename to st_kill, update users.
2322 (ae_gen): Rename to st_avloc, update users.
2323 (transp): Rename to st_transp, update users.
2324 (pre_insert_map): Rename to st_insert_map, update users.
2325 (pre_delete_map): Rename to st_delete_map, update users.
2326 (insert_store, build_store_vectors, free_store_memory,
2327 one_store_motion_pass): Update for abovementioned changes.
2328
2329 (gcse_subst_count, gcse_create_count): Remove.
2330 (one_store_motion_pass): New statistics counters "n_stores_deleted"
2331 and "n_stores_created", local variables.
2332
2333 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
2334 use for_each_rtx.
2335
2336 (regvec, compute_store_table_current_insn): Remove.
2337 (reg_set_info, reg_clear_last_set): Remove.
2338 (compute_store_table): Use DF caches instead of local dataflow
2339 solvers.
2340
b02cec6e
JM
23412009-05-01 Joseph Myers <joseph@codesourcery.com>
2342
2343 * c-objc-common.c (c_tree_printer): Print identifiers with
2344 pp_identifier, not pp_string. Mark "({anonymous})" for
2345 translation.
2346 * c-pretty-print.c (pp_c_ws_string): New.
2347 (pp_c_cv_qualifier, pp_c_type_specifier,
2348 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2349 pp_c_storage_class_specifier, pp_c_function_specifier,
2350 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2351 pp_c_primary_expression, pp_c_postfix_expression,
2352 pp_c_unary_expression, pp_c_shift_expression,
2353 pp_c_relational_expression, pp_c_equality_expression,
2354 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2355 use pp_string and pp_c_ws_string in place of pp_identifier and
2356 pp_c_identifier for non-identifiers. Mark English strings for
2357 translation.
2358 * c-pretty-print.h (pp_c_ws_string): Declare.
2359
cd533689
PP
23602009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
2361 Roland McGrath <roland@redhat.com>
2362
aa016ff7 2363 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
2364 (ENABLE_LD_BUILDID): New configuration option.
2365 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2366 (LINK_BUILDID_SPEC): New macro.
2367 (init_spec): If defined, prepend it between LINK_EH_SPEC and
2368 link_spec.
2369 * doc/install.texi: Document --enable-linker-build-id option.
2370 * configure: Rebuild.
2371 * config.in: Rebuild.
2372
ba6adec4
AN
23732009-04-30 Adam Nemet <anemet@caviumnetworks.com>
2374
2375 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2376 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2377 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
2378 MIPS_GP_SAVE_AREA_SIZE.
2379 * config/mips/mips.c (struct mips_frame_info): Update comment
2380 before arg_pointer_offset and hard_frame_pointer_offset.
2381 (mips_compute_frame_info): Update diagram before function: to
2382 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2383 indicate the position of frame_pointer_rtx with -fstack-protector and
2384 to show args_size. Don't allocate cprestore area for leaf functions
2385 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
2386 cprestore_size.
2387 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2388
48f5b722
MM
23892009-04-30 Michael Matz <matz@suse.de>
2390
ba6adec4
AN
2391 PR tree-optimization/39955
2392 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 2393
b65d6744
DK
23942009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
2395
2396 * ira.c (setup_cover_and_important_classes): Use safe macro
2397 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2398 directly.
2399 * genpreds.c (write_tm_preds_h): Output suitable definition of
2400 REG_CLASS_FOR_CONSTRAINT.
2401
f136c8ae
RAE
24022009-04-30 Rafael Avila de Espindola <espindola@google.com>
2403
2404 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2405 instead of an int.
2406 * bitmap.c (bitmap_descriptor): Likewise.
2407 * ggc-common.c (loc_descriptor): Likewise.
2408 * varray.c (varray_descriptor): Likewise.
2409 * vec.c (vec_descriptor): Likewise.
2410
43fcece8 24112009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
2412
2413 * Makefile.in (dce.o): Add $(EXCEPT_H).
2414 * dce.c: Include except.h and delete redundant vector definitions.
2415 (deletable_insn_p): Return false for non-call insns that can throw
2416 if DF is running.
2417
df35c271
SB
24182009-04-30 Steven Bosscher <steven@gcc.gnu.org>
2419
2420 * gcse.c (ae_gen): Remove.
2421 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2422 and make non-static function to make it available in store-motion.c.
2423 Update call sites with search-and-replace.
2424 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2425 extract_mentioned_regs, extract_mentioned_regs_helper,
2426 find_moveable_store, compute_store_table, load_kills_store, find_loads,
2427 store_killed_in_insn, store_killed_after, store_killed_before,
2428 build_store_vectors, insert_insn_start_basic_block, insert-store,
2429 remove_reachable_equiv_notes, replace_store_insn, delete_store,
2430 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2431 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2432 * store-motion.c: ...new file. Also copy data structures from gcse.c
2433 and clean up to remove parts not used by store motion.
2434 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2435 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2436
f711a87a
RR
24372009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2438
2439 PR target/38571
2440 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2441 when optimizing for size.
2442
fa5ed76e
HPN
24432009-04-30 Hans-Peter Nilsson <hp@axis.com>
2444
2445 * gcse.c (gcse_constant_p): Fix typo in last change.
2446
0acbbdb0
RAE
24472009-04-30 Rafael Avila de Espindola <espindola@google.com>
2448
2449 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2450
82f5c05d
AK
24512009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
2452
2453 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2454
6d8f135b
JW
24552009-04-29 James E. Wilson <wilson@codesourcery.com>
2456
2457 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2458 CONST_HIGH_PART result.
2459
c21ca196
AS
24602009-04-29 Anatoly Sokolov <aesok@post.ru>
2461
2462 * config/avr/avr.c (initial_elimination_offset): Rename to
2463 avr_initial_elimination_offset.
2464 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2465 change return type to bool.
2466 (avr_can_eliminate): New function.
2467 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2468 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2469 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 2470 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
2471 avr_initial_elimination_offset.
2472 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2473 (avr_initial_elimination_offset): Define.
2474
2a34bece 24752009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 2476 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
2477
2478 PR rtl-optimization/39938
2479 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2480 * cfgrtl.c: Include insn-attr.h.
2481 (rest_of_pass_free_cfg): New function.
2482 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2483 * resource.c (init_resource_info): Remove call to df_analyze.
2484
5dc7911e
RG
24852009-04-29 Richard Guenther <rguenther@suse.de>
2486
2487 PR target/39943
2488 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2489 allow conversion to signed integers.
2490
1fe479fd
RG
24912009-04-29 Richard Guenther <rguenther@suse.de>
2492
2493 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2494 shifts of floating point vectors if the shift amount is
2495 a constant multiple of the element size.
2496
8e001680
AK
24972009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
2498 Michael Matz <matz@suse.de>
2499
2500 PR middle-end/39927
2501 PR bootstrap/39929
2502 * tree-outof-ssa.c (emit_partition_copy): New function.
2503 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2504 insert_part_to_rtx_on_edge): Perform the partition base var
2505 copy using emit_partition_copy.
2506 (insert_value_copy_on_edge): Convert constants to the right mode.
2507 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2508 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2509
e50e3081
BS
25102009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2511
2512 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2513 scan backwards to try to find a constant to initialize it.
2514
4e5d521b
BS
2515 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2516 insn before the loop_end instruction, don't look past labels.
2517
7c90021d
RG
25182009-04-29 Richard Guenther <rguenther@suse.de>
2519
2520 PR middle-end/39937
2521 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2522 loose type conversions.
2523 (forward_propagate_addr_expr): Fix tuplification bug. Remove
2524 stmts only if there are no uses of its definition.
2525
97a988bc
BS
25262009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2527
2528 * config/bfin/bfin.h (splitting_loops): Declare.
2529 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2530 Reorder bit definitions to be ascending.
2531 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2532 * config/bfin/bfin.c (splitting_loops): New variable.
2533 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2534 (struct loop_info): Remove members INIT and LOOP_INIT.
2535 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
2536 the LSETUP sequence. Allow LC to be loaded from any register, but
2537 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
2538 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2539 set to 1.
2540 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2541 of reload_completed.
aa016ff7 2542
97a988bc
BS
2543 From Jie Zhang:
2544 * config/bfin/bfin.md (movsi_insn): Refine constraints.
2545
0c463e16
RAE
25462009-04-29 Rafael Avila de Espindola <espindola@google.com>
2547
2548 * Makefile.in (PLUGIN_VERSION_H): New.
2549 (OBJS-common): Remove plugin-version.o.
2550 (plugin.o): Depend on (PLUGIN_VERSION_H).
2551 (plugin-version.o): Remove.
2552 * configure: Regenerate
2553 * configure.ac: Create plugin-version.h.
2554 * gcc-plugin.h (plugin_gcc_version): Remove.
2555 (plugin_default_version_check): Change signature.
2556 * plugin-version.c: Remove.
2557 * plugin.c: Include plugin-version.h.
2558 (str_plugin_gcc_version_name): Remove.
2559 (try_init_one_plugin): Pass gcc version to plugin_init.
2560 (plugin_default_version_check): Both gcc and plugin versions are now
2561 arguments.
2562
307e7eab
BS
25632009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2564
2565 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2566 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
2567 Remove special case testing for last insn of inner loops. Don't fail
2568 if the loop ends with a jump, emit an extra nop instead.
307e7eab 2569
c5d96723
BS
2570 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2571 DREGS rather than comparing directly. Remove code that tries to
2572 account for latencies.
2573
de0b4ad5
RG
25742009-04-29 Richard Guenther <rguenther@suse.de>
2575
2576 PR tree-optimization/39941
2577 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2578 eliminating an indirect call.
2579
3a19701a
RG
25802009-04-29 Richard Guenther <rguenther@suse.de>
2581
2582 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2583 parameter. Allow invariants as base if !require_lvalue.
2584 (verify_gimple_assign_single): Adjust.
2585
a0a31d1e
BS
25862009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2587
2588 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2589 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
2590 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2591 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
2592 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2593 a VEC_SELECT.
aa016ff7
UB
2594 * config/bfin/bfin.c (bfin_expand_builtin,
2595 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 2596
795bd26a
RG
25972009-04-28 Richard Guenther <rguenther@suse.de>
2598
2599 * tree-vect-loop.c (get_initial_def_for_induction): Use
2600 correct types for pointer increment.
2601
04be270f
KG
26022009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2603
2604 * toplev.c (print_version): Update GMP version string calculation.
2605
e1a3b85c
EB
26062009-04-28 Eric Botcazou <ebotcazou@adacore.com>
2607
2608 PR rtl-optimization/39938
2609 * resource.c (init_resource_info): Add call to df_analyze.
2610
8224166e
UB
26112009-04-28 Uros Bizjak <ubizjak@gmail.com>
2612
2613 * config/alpha/alpha.md (usegp): Cast the result of
2614 alpha_find_lo_sum_using_gp to enum attr_usegp.
2615 * config/alpha/alpha.c (override_options): Remove end-of-structure
2616 marker element from cpu_table. Use array size of cpu_table to handle
2617 -mcpu and -mtune options.
2618 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2619
c5f0fe67
JM
26202009-04-28 Joseph Myers <joseph@codesourcery.com>
2621
2622 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2623 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
2624 tune_32 and tune_64.
2625 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2626 support on PowerPC.
2627 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2628 * config/rs6000/option-defaults.h: ... here. New file.
2629 (OPT_64, OPT_32): Define.
2630 (MASK_64BIT): Define to 0 if not already defined.
2631 (OPT_ARCH64, OPT_ARCH32): Define.
2632 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2633 and tune_64.
2634
0c48a567
RR
26352009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2636
2637 * config/arm/arm.c (arm_override_options): Emit error on using
2638 fpa with AAPCS.
2639
f1028b9d
UB
26402009-04-28 Uros Bizjak <ubizjak@gmail.com>
2641
2642 PR rtl-optimization/39914
2643 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2644 registers for allocnos created from user-defined variables only
2645 when not optimizing.
2646
e0dd989a
RG
26472009-04-28 Richard Guenther <rguenther@suse.de>
2648
2649 PR middle-end/39937
2650 * fold-const.c (fold_binary): Use distribute_real_division only
2651 on float types.
2652
9a17c91d
SE
26532009-04-28 Steve Ellcey <sje@cup.hp.com>
2654
2655 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2656 add hpux-stdint.h to tm_file.
2657 (hppa[12]*-*-hpux11*): Ditto.
2658 (ia64*-*-hpux*): Ditto.
2659 * config/hpux-stdint.h: New.
60839f5d 2660 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 2661 __STDC_EXT__ for all compiles.
60839f5d
EB
2662 * config/pa/pa-hpux.h: Ditto.
2663 * config/pa/pa-hpux10.h: Ditto.
2664 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 2665
af04e659
CM
26662009-04-28 Catherine Moore <clm@codesourcery.com>
2667
2668 * debug.h (set_name): Add comment.
2669
04ef80ce
AP
26702009-04-28 Andrew Pinski <pinskia@gmail.com>
2671
2672 PR target/39929
2673 * config/darwin.c (machopic_gen_offset): Check
2674 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2675 * config/arm/arm.c (require_pic_register): Likewise.
2676
65ad77af
PB
26772009-04-28 Paolo Bonzini <bonzini@gnu.org>
2678
8224166e
UB
2679 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2680 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2681 m32c_promote_prototypes): Delete.
65ad77af 2682
1b15a008
MM
26832009-04-28 Michael Matz <matz@suse.de>
2684
2685 PR middle-end/39922
2686 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2687 constants.
2688
7569a6cc
RG
26892009-04-28 Richard Guenther <rguenther@suse.de>
2690
f1028b9d 2691 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 2692
ead204d9
RR
26932009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2694
2695 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2696 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2697 * config/arm/arm-tune.md: Regenerate.
2698
f2c45f08 26992009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 2700
f2c45f08
AM
2701 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2702 block if there are complex incoming edges.
2703 (sel_merge_blocks): Remove useless assert.
2704 (sel_redirect_edge_and_branch): Check that edge was redirected.
2705 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2706 (sel_find_rgns): Delete declaration.
2707 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2708 the region when it is not a preheader.
2709
7a00d767
UB
27102009-04-28 Uros Bizjak <ubizjak@gmail.com>
2711
2712 PR c/39323
2713 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2714
448ee662
RG
27152009-04-28 Richard Guenther <rguenther@suse.de>
2716
2717 * tree.h (SSA_NAME_VALUE): Remove.
2718 (struct tree_ssa_name): Remove value_handle member.
2719 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2720 array for jump threading.
2721 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2722 SSA_NAME_VALUEs.
2723 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2724 * tree-flow.h (threadedge_initialize_values): Declare.
2725 (threadedge_finalize_values): Likewise.
2726 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2727 (SSA_NAME_VALUE): Define.
2728 (threadedge_initialize_values): New function.
2729 (threadedge_finalize_values): Likewise.
2730 * tree-ssa-dom.c (ssa_name_values): New global variable.
2731 (SSA_NAME_VALUE): Define.
f1028b9d 2732 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 2733
8644a673
IR
27342009-04-28 Ira Rosen <irar@il.ibm.com>
2735
2736 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2737 Use REPORT_VECTORIZED_LOCATIONS instead
2738 REPORT_VECTORIZED_LOOPS.
2739 * tree-vectorizer.c (vect_verbosity_level): Make static.
2740 (vect_loop_location): Rename to vect_location.
2741 (vect_set_verbosity_level): Update comment.
2742 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2743 and vect_location.
2744 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2745 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2746 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
2747 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2748 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 2749 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 2750 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
2751 REPORT_UNVECTORIZED_LOCATIONS.
2752 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2753 and vect_used_in_loop and to vect_unused_in_scope and
2754 vect_used_in_scope.
2755 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2756 (vect_verbosity_level): Remove declaration.
2757 (vect_analyze_operations): Likewise.
2758 (vect_analyze_stmt): Declare.
2759 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2760 REPORT_UNVECTORIZED_LOCATIONS.
2761 (vect_get_loop_niters): Fix indentation.
2762 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2763 (vect_analyze_loop_operations): New function.
2764 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2765 vect_analyze_operations.
2766 (vect_is_simple_reduction): Use new names.
2767 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
2768 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2769 to specify whether the data references can be a part of interleaving
2770 chain.
8644a673
IR
2771 (vect_analyze_data_ref_dependence): Use new names.
2772 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2773 (vect_create_addr_base_for_vector_ref): Remove redundant code.
2774 * tree-vect-patterns.c (widened_name_p): Use new names.
2775 (vect_recog_dot_prod_pattern): Likewise.
2776 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2777 (process_use, vect_mark_stmts_to_be_vectorized,
2778 vect_model_simple_cost, vect_model_store_cost,
2779 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2780 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2781 vectorizable_operation, vectorizable_type_demotion,
2782 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2783 vectorizable_condition): Likewise.
2784 (vect_analyze_operations): Split into vect_analyze_loop_operations
2785 and ...
2786 (vect_analyze_stmt): ... new function.
2787 (new_stmt_vec_info): Use new names.
2788 (vect_is_simple_use): Use new names and fix comment.
2789 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2790 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2791
b91322f2
UB
27922009-04-28 Uros Bizjak <ubizjak@gmail.com>
2793
2794 PR target/39911
2795 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2796 and integer modes for x87 operands. Do not ICE for unsupported size,
2797 generate error instead. Generate error for unsupported operand types.
2798 ['z']: Do not handle HImode memory operands specially. Warning
2799 for floating-point operands. Fallthru to 'Z' for unsupported operand
2800 types. Do not ICE for unsupported size, generate error instead.
2801 (output_387_binary_op): Use %Z to output operands.
2802 (output_fp_compare): Ditto.
2803 (output_387_reg_move): Ditto.
2804
b2ed71b6
BE
28052009-04-28 Ben Elliston <bje@au.ibm.com>
2806
2807 PR c++/35652
2808 Revert:
2809
2810 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2811
2812 * builtins.c (c_strlen): Do not warn here.
2813 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2814 * c-common.c (pointer_int_sum): Take an explicit location.
2815 Warn about offsets out of bounds.
2816 * c-common.h (pointer_int_sum): Adjust declaration.
2817
81f40b79
ILT
28182009-04-27 Ian Lance Taylor <iant@google.com>
2819
2820 * collect2.c (is_ctor_dtor): Change type of ret field in struct
2821 names to symkind.
2822 * dce.c (run_fast_df_dce): Change type of old_flags to int.
2823 * df-core.c (df_set_flags): Change return type to int. Change
2824 type of old_flags to int.
2825 (df_clear_flags): Likewise.
2826 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2827 (df_get_conditional_uses): Likewise.
2828 * df.h (df_set_flags, df_clear_flags): Update declarations.
2829 * dwarf2out.c (struct indirect_string_node): Change type of form
2830 field to enum dwarf_form.
2831 (AT_string_form): Change return type to enum dwarf_form.
2832 * fixed-value.c (fixed_compare): Add cast to enum type.
2833 * fwprop.c (update_df): Change 0 to VOIDmode.
2834 * gensupport.c: Change 0 to UNKNOWN.
2835 * gimple.h (gimple_cond_code): Add cast to enum type.
2836 * haifa-sched.c (reemit_notes): Add cast to enum type.
2837 * hooks.c (hook_int_void_no_regs): Remove function.
2838 * hooks.h (hook_int_void_no_regs): Remove declaration.
2839 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 2840 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
2841 * real.c (real_arithmetic): Add cast to enum type.
2842 (real_compare): Likewise.
2843 * target.h (struct gcc_target): Change return type of
2844 branch_target_register_class to enum reg_class.
2845 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2846 default_branch_target_register_class.
7a00d767 2847 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 2848 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 2849 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
2850 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2851 cast to int.
2852 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2853 ERROR_MARK.
2854 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2855 vect_uninitialized_def. Change 0 to ERROR_MARK.
2856 * tree-vect-stmts.c (supportable_widening_operation): Don't
2857 initialize icode1 and icode2.
7a00d767 2858 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
2859 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2860 and to STD_C89.
2861 (cmn_err_flag_specs): Change 0 to STD_C89.
2862 (cmn_err_char_table): Likewise.
2863 * config/arm/arm.c (get_arm_condition_code): Change type of code
2864 to enum arm_cond_code.
2865 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2866 (IWMMXT_BUILTIN2): Likewise.
2867 (neon_builtin_type_bits): Don't define typedef.
2868 (neon_builtin_datum): Change type of bits field to int.
2869 (arm_expand_neon_args): Add cast to enum type.
2870 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2871 TLS_MODEL_NONE.
2872 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
2873 casts to enum type.
2874 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2875 MIPS_FP_COND_f.
2876 * config/mips/mips.md (jal_macro): Return enum constant.
2877 (single_insn): Likewise.
2878 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2879 CODE_FOR_nothing.
2880 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2881 casts to enum type.
2882 * config/s390/s390.c (s390_tune_flags): Change type to int.
2883 (s390_arch_flags): Likewise.
7a00d767 2884 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
2885 * config/s390/s390.h (s390_tune_flags): Update declaration.
2886 (s390_arch_flags): Likewise.
2887 * config/sh/sh.c (prepare_move_operands): Compare
2888 tls_symbolic_operand result with enum constant.
2889 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2890 (sh_expand_prologue): Add cast to enum type.
2891 (sh_expand_epilogue): Likewise.
2892 (tls_symbolic_operand): Change return type to enum tls_model.
2893 (fpscr_set_from_mem): Add cast to enum type.
2894 (legitimize_pic_address): Compare tls_symbolic_operand result with
2895 enum constant.
2896 (sh_target_reg_class): Change return type to enum reg_class.
2897 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2898 PROCESSOR_xxx.
7a00d767
UB
2899 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2900 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
2901 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2902 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2903 (delayed_branch, tls_call_delay): Likewise.
2904 (eligible_for_sibcall_delay): Likewise.
2905 (eligible_for_return_delay): Likewise.
2906 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2907 (spu_expand_builtin_1): Likewise.
2908
2909 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2910 for all types of conversions.
2911 (output_init_element): Issue -Wc++-compat warning if needed when
2912 initializing a bitfield with enum type.
2913 * c-parser.c (c_parser_expression): Set original_type to
2914 original_type of right hand operand of comman operator.
2915
e4ae5e77
RW
29162009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2917
2918 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2919 grammar nits.
7a00d767 2920 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
2921 * doc/cpp.texi (Standard Predefined Macros)
2922 (Implementation-defined behavior): Likewise.
7a00d767 2923 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
2924 * doc/gimple.texi (GIMPLE Exception Handling)
2925 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 2926 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
2927 * doc/invoke.texi (Warning Options, Optimize Options)
2928 (AVR Options, Darwin Options): Likewise.
2929 (Optimize Options): Reformulate -fwhole-program description.
2930 * doc/loop.texi (Lambda): Likewise.
2931 * doc/md.texi (Output Template, Define Constraints)
2932 (Standard Names, Insn Splitting): Likewise.
2933 * doc/options.texi (Option properties): Likewise.
2934 * doc/passes.texi (Tree-SSA passes): Likewise.
2935 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2936 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2937 (File Names and DBX): Likewise.
2938 * doc/trouble.texi (Incompatibilities): Likewise.
2939
1883802f 29402009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
2941
2942 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2943 instruction is correct.
2944
1883802f 29452009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
2946
2947 Allow non-constant arguments to conversion intrinsics.
2948 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2949 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2950 * spu.c (print_operand): Handle 'v' and 'w'.
2951 (exp2_immediate_p, spu_gen_exp2): Define.
2952 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2953 spu_convtf_1): Update parameter descriptions.
7a00d767 2954 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
2955 * constraints.md ('v', 'w'): New.
2956 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2957 Remove.
2958 (i2f, I2F): New define_mode_attr.
2959 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2960 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2961 fixuns_truncv4sfv4si2): Update to use mode attribute.
2962 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2963 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2964 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2965 patterns for combine.
2966
5f39ad47
SB
29672009-04-27 Steven Bosscher <steven@gcc.gnu.org>
2968
2969 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2970 (cprop, hoist, pre, store_motion): New debug counters.
2971 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2972 is not an RTL pass anymore.
2973 (pass_profiling): Remove extern decl for pass removed in 2005.
2974 (pass_gcse, pass_jump_bypass): Remove.
2975 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2976 to 0 for clean state.
2977 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2978 * cse.c (gate_handle_cse_after_global_opts,
2979 rest_of_handle_cse_after_global_opts): New functions.
2980 (pass_cse_after_global_opts): New pass, does local CSE.
2981 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2982 (TV_CPROP): New timevar.
2983 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2984 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2985 (gcse_main, recompute_all_luids): Remove.
2986 (compute_hash_table_work): Call max_reg_num instead of reading
2987 max_gcse_regno.
2988 (cprop_jump): Don't set run_jump_opt_after_gcse.
2989 (constprop_register): Always allow to alter jumps.
2990 (cprop_insn): Likewise.
2991 (do_local_cprop): Likewise.
2992 (local_cprop_pass): Likewise. Return non-zero if something changed.
2993 (cprop): Remove function, fold interesting bits into one_cprop_pass.
2994 (find_implicit_sets): Add note about missed optimization opportunity.
2995 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2996 pass_rtl_cprop execute function.
2997 Don't bother tracking the pass number, each pass gets its own dumpfile
2998 now anyway.
2999 Always allow to alter jumpsand bypass jumps.
3000 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
3001 will just find no suitable set.
3002 (pre_edge_insert): Fix dumping, this function is for PRE only.
3003 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
3004 pass_rtl_pre execute function.
3005 (hoist_code): Return non-zero if something changed. Keep track of
3006 substitutions and insertions for statistics gathering similar to PRE.
3007 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
3008 called from the pass_rtl_hoist execute function. Show pass statistics.
3009 (compute_store_table): Use max_reg_num directly instead of using the
3010 formerly global max_gcse_regno.
3011 (build_store_vectors): Likewise.
3012 (replace_store_insn): Fix dumping.
3013 (store_motion): Rename to ...
3014 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
3015 pass, called from the pass_rtl_store_motion execute function. Keep
3016 track of substitutions and insertions for statistics gathering similar
3017 to PRE.
3018 (bypass_jumps): Remove, fold interesting bits into ...
3019 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
3020 from the pass_rtl_cprop execute function.
3021 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
3022 pass_jump_bypass): Remove.
3023 (gate_handle_gcse, rest_of_handle_gcse): Remove.
3024 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
3025 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
3026 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
3027 (gate_rtl_store_motion, execute_rtl_store_motion,
3028 pass_rtl_store_motion): New.
3029 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
3030 make it clear that -fcse-skip-blocks is a no-op for backward compat.
3031 * passes.c (init_optimization_passes): Remove pass_gcse and
3032 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
3033 and cse_after_global_opts in place of pass_gcse. Schedule cprop
3034 instead of pass_jump_bypass.
3035
c685de4a
RG
30362009-04-27 Richard Guenther <rguenther@suse.de>
3037
3038 PR middle-end/39928
3039 * gimplify.c (gimplify_expr): If we are required to create
3040 a temporary make sure it ends up as register.
3041
72d41f29
L
30422009-04-27 H.J. Lu <hongjiu.lu@intel.com>
3043
3044 PR target/39903
3045 * config/i386/i386.c (construct_container): Don't call
3046 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
3047 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
3048
e97809c6
MM
30492009-04-27 Michael Matz <matz@suse.de>
3050
3051 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
3052 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
3053 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
3054 (dump_replaceable_exprs): Take a bitmap.
3055 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
3056 array.
3057 (expand_gimple_basic_block): Likewise.
3058 * tree-ssa-ter.c (struct temp_expr_table_d): Make
3059 replaceable_expressions member a bitmap.
3060 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
3061 (mark_replaceable): Likewise.
3062 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
3063 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
3064
211ca15c
RG
30652009-04-27 Richard Guenther <rguenther@suse.de>
3066
3067 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
3068 (verify_stmts): Dispatch to gimple/type verification code.
3069 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
3070 issue with call argument types.
3071
fca5f3d1
MM
30722009-04-27 Michael Matz <matz@suse.de>
3073
3074 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
3075 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
3076 to above.
3077
a1fa3e79 30782009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 3079 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
3080
3081 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
3082 a label's basic block.
3083 (mark_target_live_regs): Tidy and rework obsolete comments.
3084 Change back DF problem to LIVE. If a label starts a basic block,
3085 assume that all registers that used to be live then still are.
3086 (init_resource_info): If a label starts a basic block, set its
3087 BLOCK_FOR_INSN accordingly.
3088 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
3089
33b223c0
RG
30902009-04-27 Richard Guenther <rguenther@suse.de>
3091
3092 * tree-flow-inline.h (function_ann): Remove.
3093 (get_function_ann): Likewise.
3094 * tree-dfa.c (create_function_ann): Remove.
3095 * tree-flow.h (struct static_var_ann_d): Remove.
3096 (struct function_ann_d): Likewise.
3097 (union tree_ann_d): Remove fdecl member.
3098 (function_ann_t): Remove.
3099 (function_ann, get_function_ann, create_function_ann): Remove
3100 declarations.
3101
e3136fa2
UB
31022009-04-27 Uros Bizjak <ubizjak@gmail.com>
3103
3104 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
3105
f87c9042
JH
31062009-04-27 Jan Hubicka <jh@suse.cz>
3107
3108 * ipa-pure-const.c (struct funct_state_d): New fields
3109 state_previously_known, looping_previously_known; remove
3110 state_set_in_source.
3111 (analyze_function): Use new fields.
3112 (propagate): Avoid assumption that state_set_in_source imply
3113 nonlooping.
3114
3115 * tree-ssa-loop-niter.c (finite_loop_p): New function.
3116 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
3117 * cfgloop.h (finite_loop_p): Declare.
3118
33abd718
MM
31192009-04-26 Michael Matz <matz@suse.de>
3120
e3136fa2 3121 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 3122
ddc34084
MM
31232009-04-26 Michael Matz <matz@suse.de>
3124
3125 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
3126 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
3127 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
3128 pass_mark_used_blocks): Remove.
3129 * tree-optimize.c (pass_free_datastructures,
3130 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
3131 * passes.c (init_optimization_passes): Don't call
3132 pass_mark_used_blocks, remove dead code.
3133
1fec7ed4
L
31342009-04-26 H.J. Lu <hongjiu.lu@intel.com>
3135
3136 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
3137 * tree-ssa-live.h (register_ssa_partition): Likewise.
3138
4e3825db
MM
31392009-04-26 Michael Matz <matz@suse.de>
3140
3141 Expand from SSA.
3142 * builtins.c (fold_builtin_next_arg): Handle SSA names.
3143 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
3144 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
3145 SSA names.
3146 (compare_pairs): Swap cost comparison.
3147 (coalesce_ssa_name): Don't use change_partition_var.
3148 * tree-nrv.c (struct nrv_data): Add modified member.
3149 (finalize_nrv_r): Set it.
3150 (tree_nrv): Use it to update statements.
3151 (pass_nrv): Require PROP_ssa.
3152 * tree-mudflap.c (mf_decl_cache_locals,
3153 mf_build_check_statement_for): Use make_rename_temp.
3154 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
3155 * alias.c (find_base_decl): Handle SSA names.
3156 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
3157 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
3158 * rtl.h (set_reg_attrs_for_parm): Declare.
3159 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
3160 to "optimized", remove unused locals at finish.
3161 (execute_free_datastructures): Make global, call
3162 delete_tree_cfg_annotations.
3163 (execute_free_cfg_annotations): Don't call
3164 delete_tree_cfg_annotations.
3165
3166 * ssaexpand.h: New file.
3167 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 3168 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
3169 (expand_expr_real_1): Expand SSA names.
3170 * cfgexpand.c (toplevel): Include ssaexpand.h.
3171 (SA): New global variable.
3172 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
3173 (SSAVAR): New macro.
3174 (set_rtl): New helper function.
3175 (add_stack_var): Deal with SSA names, use set_rtl.
3176 (expand_one_stack_var_at): Likewise.
3177 (expand_one_stack_var): Deal with SSA names.
3178 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
3179 before unique numbers.
3180 (expand_stack_vars): Use set_rtl.
3181 (expand_one_var): Accept SSA names, add asserts for them, feed them
3182 to above subroutines.
3183 (expand_used_vars): Expand all partitions (without default defs),
3184 then only the local decls (ignoring those expanded already).
3185 (expand_gimple_cond): Remove edges when jumpif() expands an
3186 unconditional jump.
3187 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
3188 or remove abnormal edges. Ignore insns setting the LHS of a TERed
3189 SSA name.
3190 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
3191 members of SA; deal with PARM_DECL partitions here; expand
3192 all PHI nodes, free tree datastructures and SA. Commit instructions
3193 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
3194 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
3195 info and statements at start, collect garbage at finish.
3196 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
3197 (VAR_ANN_PARTITION) Remove.
3198 (change_partition_var): Don't declare.
3199 (partition_to_var): Always return SSA names.
3200 (var_to_partition): Only accept SSA names.
3201 (register_ssa_partition): Only check argument.
3202 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
3203 member.
3204 (delete_var_map): Don't free it.
3205 (var_union): Only accept SSA names, simplify.
3206 (partition_view_init): Mark only useful SSA names as used.
3207 (partition_view_fini): Only deal with SSA names.
3208 (change_partition_var): Remove.
3209 (dump_var_map): Use ssa_name instead of partition_to_var member.
3210 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
3211 basic blocks.
3212 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
3213 (struct _elim_graph): New member const_dests; nodes member vector of
3214 ints.
3215 (set_location_for_edge): New static helper.
3216 (create_temp): Remove.
3217 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 3218 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
3219 (new_elim_graph): Allocate const_dests member.
3220 (clean_elim_graph): Truncate const_dests member.
3221 (delete_elim_graph): Free const_dests member.
3222 (elim_graph_size): Adapt to new type of nodes member.
3223 (elim_graph_add_node): Likewise.
3224 (eliminate_name): Likewise.
3225 (eliminate_build): Don't take basic block argument, deal only with
3226 partition numbers, not variables.
3227 (get_temp_reg): New static helper.
3228 (elim_create): Use it, deal with RTL temporaries instead of trees.
3229 (eliminate_phi): Adjust all calls to new signature.
3230 (assign_vars, replace_use_variable, replace_def_variable): Remove.
3231 (rewrite_trees): Only do checking.
3232 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
3233 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
3234 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
3235 contains_tree_r, MAX_STMTS_IN_LATCH,
3236 process_single_block_loop_latch, analyze_edges_for_bb,
3237 perform_edge_inserts): Remove.
3238 (expand_phi_nodes): New global function.
3239 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
3240 functions, initialize new parameter, remember partitions having a
3241 default def.
3242 (finish_out_of_ssa): New global function.
3243 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
3244 don't reset in_ssa_p here, don't disable TER when mudflap.
3245 (pass_del_ssa): Remove.
3246 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
3247 partition members.
3248 (execute_free_datastructures): Declare.
3249 * Makefile.in (SSAEXPAND_H): New variable.
3250 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
3251 * basic-block.h (commit_one_edge_insertion): Declare.
3252 * passes.c (init_optimization_passes): Move pass_nrv and
3253 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
3254 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
3255 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
3256 (redirect_branch_edge): Deal with super block when expanding, split
3257 out jump patching itself into ...
3258 (patch_jump_insn): ... here, new static helper.
3259
17c665a9
MM
32602009-04-26 Michael Matz <matz@suse.de>
3261
3262 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
3263 beyond num_ssa_names.
3264 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
3265 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
3266
92061771
JJ
32672009-04-26 Jakub Jelinek <jakub@redhat.com>
3268
ce372372
JJ
3269 PR inline-asm/39543
3270 * fwprop.c (forward_propagate_asm): New function.
3271 (forward_propagate_and_simplify): Propagate also into __asm, if it
3272 doesn't increase the number of referenced registers.
3273
92061771
JJ
3274 PR c/39889
3275 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
3276
32772009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
3278
3279 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
3280 note_nonlocal_vla_type for nonlocal VLAs.
3281 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
3282 contains_remapped_vars, remap_vla_decls): New functions.
3283 (convert_nonlocal_reference_stmt): If not optimizing, call
3284 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
3285 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
3286 if it wasn't found in var_map.
3287 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
3288 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
3289 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
3290 declare_vars.
3291 * gimplify.c (nonlocal_vlas): New variable.
3292 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
3293 referenced VLAs.
3294 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 3295
4561e242
JJ
3296 * dwarf2out.c (loc_descr_plus_const): New function.
3297 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
3298 mem_loc_descriptor, loc_descriptor_from_tree_1,
3299 descr_info_loc, gen_variable_die): Use it.
3300
a9548ddf
JJ
3301 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
3302 !TREE_STATIC VAR_DECLs.
3303 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
3304 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
3305 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
3306 DECL_BY_REFERENCE is valid.
3307 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
3308 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
3309 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
3310 Copy DECL_BY_REFERENCE.
3311 (struct nesting_copy_body_data): New type.
3312 (nesting_copy_decl): New function.
3313 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
3314 if they have variable length.
3315
10555d08
MM
33162009-04-26 Michael Matz <matz@suse.de>
3317
3318 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
3319 mark new temporaries for renaming.
3320
e11187cc
JM
33212009-04-26 Joseph Myers <joseph@codesourcery.com>
3322
3323 PR c/39581
3324 * c-decl.c (global_bindings_p): Return negative value.
3325 (c_variable_size): New. Based on variable_size from
3326 stor-layout.c.
3327 (grokdeclarator): Call c_variable_size not variable_size.
3328
f6a51d31
UB
33292009-04-26 Uros Bizjak <ubizjak@gmail.com>
3330
3331 * config/i386/i386.c (print_operand) ['z']: Fix typo.
3332
4b97723d
KT
33332009-04-26 Kai Tietz <kai.tietz@onevision.com>
3334
3335 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
3336 Redefine it to just use mingw/include.
3337 (ASM_SPEC): Rules for -m32 and -m64.
3338 (LINK_SPEC): Use Likewise.
3339 (SPEC_32): New define.
3340 (SPEC_64): Likewise.
3341 (SUB_LINK_SPEC): Likewise.
3342 (MULTILIB_DEFAULTS): New define.
3343 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3344 Add multilib options.
3345 (MULTILIB_DIRNAMES): Likewise.
3346 (MULTILIB_OSDIRNAMES): Likewise.
3347 (LIBGCC): Likewise.
3348 (INSTALL_LIBGCC): Likewise.
3349
991d6621
JM
33502009-04-26 Joseph Myers <joseph@codesourcery.com>
3351
3352 PR c/39556
3353 * c-tree.h (enum c_inline_static_type): New.
3354 (record_inline_static): Declare.
3355 * c-decl.c (struct c_inline_static, c_inline_statics,
3356 record_inline_static, check_inline_statics): New.
3357 (pop_file_scope): Call check_inline_statics.
3358 (start_decl): Call record_inline_static instead of pedwarning
3359 directly for static in inline function.
3360 * c-typeck.c (build_external_ref): Call record_inline_static
3361 instead of pedwarning directly for static referenced in inline
3362 function.
3363
4a81774c
SB
33642009-04-26 Steven Bosscher <steven@gcc.gnu.org>
3365
3366 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3367 not new but only being rescanned.
3368 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3369 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3370 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3371 record_set_info, compute_set, grealloc): Remove.
3372 (recompute_all_luids): New function.
3373 (gcse_main): Don't compute sets, and don't do related memory
3374 allocations/free-ing. If something changed before the end of the
3375 pass, update LUIDs using recompute_all_luids.
3376 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
3377 (free_gcse_mem): Don't free it either.
3378 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3379 Use the df insn LUIDs.
3380 (load_killed_in_block): Likewise.
3381 (compute_hash_table_work): Don't compute reg_set_in_block.
3382 (compute_transp): Use DF_REG_DEF_CHAINs.
3383 (local_cprop_pass): Don't use compute_sets and related functions.
3384 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3385 Use get_max_uid() instead of max_cuid.
3386 (insert_insn_end_basic_block, pre_insert_copy_insn,
3387 update_ld_motion_stores): Don't try to
3388 keep reg_set tables up to date.
3389 (pre_insert_copies): Use df insn LUIDs.
3390 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3391 (reg_set_info): Don't use extra bitmap argument.
3392 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
3393 information to compute regs_set_in_block.
3394 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3395 (bypass_jumps): Don't use compute_sets and friends.
3396
e8f99a9d
RW
33972009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3398
3399 PR testsuite/39710
3400 * opts.c (undocumented_msg): Do not leave blank even with
3401 ENABLE_CHECKING.
3402
6895bac8
JM
34032009-04-25 Joseph Myers <joseph@codesourcery.com>
3404
3405 * c-decl.c (build_enumerator): Allow values folding to integer
3406 constants but not integer constant expressions with a pedwarn if
3407 pedantic.
3408
24070fcb
JM
34092009-04-25 Joseph Myers <joseph@codesourcery.com>
3410
3411 PR c/39582
3412 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3413 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3414 type is an integer constant.
3415
d6d89aa1
UB
34162009-04-25 Uros Bizjak <ubizjak@gmail.com>
3417
3418 PR target/39897
3419 * config/i386/i386.c (print_operand) ['z']: Revert handling of
3420 HImode operands.
3421
92f6fd0b
JM
34222009-04-25 Joseph Myers <joseph@codesourcery.com>
3423
3424 PR c/39564
3425 * c-decl.c (grokdeclarator): Diagnose declarations of functions
3426 with variably modified return type and no storage class
3427 specifiers, except for the case of nested functions. Distinguish
3428 extern declarations of functions with variably modified return
3429 types from those of objects with variably modified types.
3430
a3710436
JH
34312009-04-25 Jan Hubicka <jh@suse.cz>
3432
3433 * tree.c (list_equal_p): New function.
3434 * tree.h (list_equal_p): Declare.
3435 * coretypes.h (edge_def, edge, const_edge, basic_block_def
3436 basic_block_def, basic_block, const_basic_block): New.
3437 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3438 (redirect_eh_edge): New function.
3439 (make_eh_edge_update_phi): EH edges are not abnormal.
3440 * except.c: Include tree-flow.h.
3441 (list_match): New function.
3442 (eh_region_replaceable_by_p): New function.
3443 (replace_region): New function.
3444 (hash_type_list): New function.
3445 (hash_eh_region): New function.
3446 (eh_regions_equal_p): New function.
3447 (merge_peers): New function.
3448 (remove_unreachable_regions): Verify EH tree when checking;
3449 merge peers.
3450 (copy_eh_region_1): New function.
3451 (copy_eh_region): New function.
3452 (push_reachable_handler): New function.
3453 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3454 regions without label but with live RESX.
3455 * except.h (redirect_eh_edge_to_label): New.
3456 * tree-flow.h (redirect_eh_edge): New.
3457 * coretypes.h (edge_def, edge, const_edge, basic_block_def
3458 basic_block_def, basic_block, const_basic_block): Remove.
3459 * Makefile.in (except.o): Add dependency on tree-flow.h
3460 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3461 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3462 Remove.
3463
3764d512
EB
34642009-04-25 Eric Botcazou <ebotcazou@adacore.com>
3465
3466 PR bootstrap/39645
3467 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3468 on the destination of memcpy.
3469
1c62e8f2
PB
34702009-04-25 Paolo Bonzini <bonzini@gnu.org>
3471
3472 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3473 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3474 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3475
496a4ef5
JH
34762009-04-25 Jan Hubicka <jh@suse.cz>
3477
3478 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3479 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3480 to be reached by different label than left.
3481 (update_eh_edges): Update comment; remove edge_to_remove if possible
3482 and return true if suceeded.
3483 (cleanup_empty_eh): Accept sharing map; handle shared regions.
3484 (cleanup_eh): Compute sharing map.
3485 * except.c (remove_eh_handler_and_replace): Add argument if we should
3486 update regions.
3487 (remove_unreachable_regions): Update for label sharing.
3488 (label_to_region_map): Likewise.
3489 (get_next_region_sharing_label): New function.
3490 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3491 prev_try pointers.
3492 (remove_eh_handler): Update.
3493 (remove_eh_region_and_replace_by_outer_of): New function.
3494 * except.h (struct eh_region): Add next_region_sharing_label.
3495 (remove_eh_region_and_replace_by_outer_of,
3496 get_next_region_sharing_label): Declare.
3497 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3498
34992009-04-25 Jan Hubicka <jh@suse.cz>
3500
3501 * tree-cfg.c (split_critical_edges): Split also edges where we can't
3502 insert code even if they are not critical.
3503
35042009-04-25 Jan Hubicka <jh@suse.cz>
3505
3506 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3507 (gimple_can_remove_branch_p): EH edges won't remove branch by
3508 redirection.
3509 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3510 updating of non-abnormal EH edges.
3511 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3512 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3513 (split_critical_edges): Split also edges where emitting code on them
3514 will lead to splitting later.
3515
a3a5e3d1
UB
35162009-04-25 Uros Bizjak <ubizjak@gmail.com>
3517 H.J. Lu <hongjiu.lu@intel.com>
3518
3519 PR target/39590
3520 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3521 the configured assembler supports fildq and fistpq mnemonics.
3522 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3523 * configure: Regenerated.
3524 * config.in: Ditto.
3525
3526 * config/i386/i386.c (print_operand): Handle 'Z'.
3527 ['z']: Remove handling of special fild/fist suffixes.
3528 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3529 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3530 suffix of fild insn.
3531 (*floatsi<mode>2_vector_mixed): Ditto.
3532 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3533 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3534 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3535 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3536 * config/i386/gas.h (GAS_MNEMONICS): Remove.
3537
23750d7f
BE
35382009-04-25 Ben Elliston <bje@au.ibm.com>
3539
3540 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3541 the source of a set operation.
3542
e6ff3083
AS
35432009-04-25 Anatoly Sokolov <aesok@post.ru>
3544
3545 * target.h (struct gcc_target): Add case_values_threshold field.
3546 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3547 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3548 * targhooks.c (default_case_values_threshold): New function.
3549 * targhooks.h (default_case_values_threshold): Declare function.
3550 * stmt.c (expand_case): Use case_values_threshold target hook.
3551 * expr.h (case_values_threshold): Remove declartation.
3552 * expr.c (case_values_threshold): Remove function.
3553 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3554
3555 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3556 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3557 (avr_case_values_threshold): Declare as static.
3558 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3559
3560 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3561 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3562 (mn10300_case_values_threshold): New function.
3563
569c72fc
L
35642009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3565
3566 * ira.c (setup_cover_and_important_classes): Add enum cast.
3567
ff3cb468
VM
35682009-04-24 Vladimir Makarov <vmakarov@redhat.com>
3569
3570 * genpreds.c (write_enum_constraint_num): Output definition of
3571 CONSTRAINT_NUM_DEFINED_P macro.
3572 * ira.c (setup_cover_and_important_classes): Use
3573 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3574
4f7be849
DD
35752009-04-24 DJ Delorie <dj@redhat.com>
3576
3577 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3578 __SH2A_SINGLE_ONLY__ also.
3579
735b94a7
SE
35802009-04-24 Steve Ellcey <sje@cup.hp.com>
3581
3582 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3583 (movdf_internal): Ditto.
3584 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3585 SFmode and DFmode constants.
3586 (ia64_print_operand): Add 'G' format for printing
3587 floating point constants.
3588
77a30264
RG
35892009-04-24 Richard Guenther <rguenther@suse.de>
3590
3591 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3592 from unsigned additions.
3593
2b6da65c
JM
35942009-04-24 Joseph Myers <joseph@codesourcery.com>
3595
3596 * c-typeck.c (set_init_index): Allow array designators that are
3597 not integer constant expressions with a pedwarn if pedantic.
3598
f5a17c43
BS
35992009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3600
3601 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3602 zero if no overlap in nonzero bits between the operands.
3603
32e8bb8e
ILT
36042009-04-24 Ian Lance Taylor <iant@google.com>
3605
3606 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3607 (record_dead_and_set_regs): Likewise.
3608 * df.h (struct df_mw_hardreg): Change flags field to int.
3609 (struct df_base_ref): Likewise.
3610 (struct df): Change changeable_flags field to int.
3611 * df-scan.c (df_defs_record): Change clobber_flags to int.
3612 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3613 constants rather than #define macros.
3614 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3615 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3616 (enum dwarf_calling_convention): Likewise.
3617 (enum dwarf_line_number_x_ops): Likewise.
3618 (enum dwarf_call_frame_info): Likewise.
3619 (enum dwarf_source_language): Likewise.
3620 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3621 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
3622 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3623 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
3624 * genrecog.c (maybe_both_true_2): Change c to int.
3625 (write_switch): Likewise. Add cast to enum type.
3626 * gimplify.c (gimplify_omp_for): Handle return values from
3627 gimplify_expr using MIN rather than bitwise or.
3628 (gimplify_expr): Add cast to enum type.
3629 * ipa-prop.c (update_jump_functions_after_inlining): Change
3630 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
3631 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3632 Add casts to enum type.
32e8bb8e
ILT
3633 (setup_cover_and_important_classes): Change cl to int. Add casts
3634 to enum type.
3635 (setup_class_translate): Change cl and mode to int.
3636 (ira_init_once): Change mode to int.
3637 (free_register_move_costs): Likewise.
3638 (setup_prohibited_mode_move_regs): Add casts to enum type.
3639 * langhooks.c (add_builtin_function_common): Rework assertion that
3640 value fits bitfield.
3641 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3642 * omega.c (omega_do_elimination): Avoid math on enum types.
3643 * optabs.c (expand_vec_shift_expr): Remove casts to int.
3644 * opts.c (set_debug_level): Change 2 to enum constant. Use new
3645 int local to handle integral_argment value.
3646 * regmove.c (try_auto_increment): Change PUT_MODE to
3647 PUT_REG_NOTE_KIND.
3648 * reload.c (push_secondary_reload): Add casts to enum type.
3649 (secondary_reload_class, find_valid_class): Likewise.
3650 * reload1.c (emit_input_reload_insns): Likewise.
3651 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3652 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3653 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3654 constant.
3655 * tree.c (build_common_builtin_nodes): Add casts to enum type.
3656 * tree-complex.c (complex_lattice_t): Typedef to int rather than
3657 enum type.
3658 (expand_complex_libcall): Add casts to enum type.
3659 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3660 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3661 with ERROR_MARK, not NUM_TREE_CODES.
3662 (vect_create_epilog_for_reduction): Likewise.
3663 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 3664 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
3665 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3666 enum machine_mode.
3667 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3668 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 3669 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
3670 * var-tracking.c (get_init_value): Change return type to enum
3671 var_init_status.
3672 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3673 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3674 arm_fp_model.
3675 (arm_override_options): Add casts to enum type.
3676 (arm_emit_tls_decoration): Likewise.
3677 * config/i386/i386.c (ix86_function_specific_restore): Add casts
3678 to enum type.
3679 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3680 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3681 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3682 enum type.
3683 * config/s390/s390.c (code_for_builtin_64): Change to array of
3684 enum insn_code.
3685 (code_for_builtin_31): Likewise.
3686 (s390_expand_builtin): Change code_for_builtin to enum insn_code
3687 const *.
3688 * config/sparc/sparc.c (sparc_override_options): Change value
3689 field in struct code_model to enum cmodel. In initializer change
3690 0 to NULL and add cast to enum type.
3691
3692 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3693 Change all callers. Issue a -Wc++-compat warning using
3694 lhs_origtype if necessary.
3695 (convert_for_assignment): Issue -Wc++-compat warnings about
3696 invalid conversions to enum type on assignment.
3697 * c-common.h (build_modify_expr): Update declaration.
3698
ac4fc08a
NC
36992009-04-24 Nick Clifton <nickc@redhat.com>
3700
3701 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3702 (function_arg_advance): Likewise.
3703 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3704 5th alternative.
3705
f22e891a
AK
37062009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
3707
3708 * config/s390/constraints.md ('I', 'J'): Fix condition.
3709
ad58aabe
DN
37102009-04-24 Diego Novillo <dnovillo@google.com>
3711
3712 * gengtype-parse.c (parse_error): Add newline after message.
3713
879a4a01
L
37142009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3715
3716 * config/i386/sse.md (avxmodesuffixs): Removed.
3717 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3718 (*avx_pinsr<ssevecsize>): This.
3719
f63426af
BS
37202009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3721
3722 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3723 follow chains of regs with a single definition, and allow expressions
3724 that are function_invariant_p.
ce72fe6c 3725 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 3726
30349c74
PB
37272009-04-24 Paolo Bonzini <bonzini@gnu.org>
3728
3729 PR middle-end/39867
3730 * fold-const.c (fold_cond_expr_with_comparison): When folding
3731 > and >= to MAX, make sure the MAX uses the same type as the
3732 comparison's operands.
3733
8d8256c1
NC
37342009-04-24 Nick Clifton <nickc@redhat.com>
3735
3736 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3737 addressing for DImode accesses.
3738 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 3739 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 3740
6216f94e
JJ
37412009-04-24 Jakub Jelinek <jakub@redhat.com>
3742
3743 PR rtl-optimization/39794
3744 * alias.c (canon_true_dependence): Add x_addr argument.
3745 * rtl.h (canon_true_dependence): Adjust prototype.
3746 * cse.c (check_dependence): Adjust canon_true_dependence callers.
3747 * cselib.c (cselib_invalidate_mem): Likewise.
3748 * gcse.c (compute_transp): Likewise.
3749 * dse.c (scan_reads_nospill): Likewise.
3750 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
3751 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3752 canon_base_addr of the group, plus optional offset.
3753 (struct group_info): Rename canon_base_mem to
3754 canon_base_addr.
3755 (get_group_info): Set canon_base_addr to canon_rtx of base, not
3756 canon_rtx of base_mem.
3757
6de7a512
PB
37582009-04-23 Paolo Bonzini <bonzini@gnu.org>
3759
3760 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3761 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3762
4a3a2376
UW
37632009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3764
3765 * config/spu/spu-builtins.h: Delete file.
3766
3767 * config/spu/spu.h (enum spu_builtin_type): Move here from
3768 spu-builtins.h.
3769 (struct spu_builtin_description): Likewise. Add GTY marker.
3770 Do not use enum spu_function_code or enum insn_code.
3771 (spu_builtins): Add extern declaration.
3772
3773 * config/spu/spu.c: Do not include "spu-builtins.h".
3774 (enum spu_function_code, enum spu_builtin_type_index,
3775 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3776 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3777 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3778 unsigned_V2DI_type_node): Move here from spu-builtins.h.
3779 (spu_builtin_types): Make static. Add GTY marker.
3780 (spu_builtins): Add extern declaration with GTY marker.
3781 Include "gt-spu.h".
3782
3783 * config/spu/spu-c.c: Do not include "spu-builtins.h".
3784 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3785 Check programmatically whether all parameters are scalar.
3786
3787 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3788
bbaba73f
EB
37892009-04-23 Eric Botcazou <ebotcazou@adacore.com>
3790
3791 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3792 assignment from the constructor either if the target is volatile.
3793
ee93c1c6
DJ
37942009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
3795
3796 * config/arm/arm.md (insv): Do not share operands[0].
3797
b2f21330
NS
37982009-04-23 Nathan Sidwell <nathan@codesourcery.com>
3799
3800 * config/vxlib-tls.c (active_tls_threads): Delete.
3801 (delete_hook_installed): New.
3802 (tls_delete_hook): Don't delete the delete hook.
3803 (tls_destructor): Delete it here.
3804 (__gthread_set_specific): Adjust installing the delete hook.
3805 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3806 __gthread_leave_tsd_dtor_context.
3807
4782dfa7
RAE
38082009-04-23 Rafael Avila de Espindola <espindola@google.com>
3809
3810 * c-format.c (gcc_tdiag_char_table): Add support for %E.
3811
bf758008
UB
38122009-04-23 Uros Bizjak <ubizjak@gmail.com>
3813
3814 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3815 enum type.
3816 (alpha_rtx_costs): Ditto.
3817 (emit_unlikely_jump): Use add_reg_note.
3818 (emit_frame_store_1): Ditto.
3819 (alpha_expand_prologue): Ditto.
3820 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3821 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3822
7323a100
NC
38232009-04-23 Nick Clifton <nickc@redhat.com>
3824
3825 * config/v850/v850.md (epilogue): Remove suppressed code.
3826 (return): Rename to return_simple and remove test of frame size.
3827 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3828 to gen_return_simple.
3829
360032ba
JY
38302009-04-22 Jing Yu <jingyu@google.com>
3831
3832 PR testsuite/39781
3833 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3834
53650abe
AP
38352009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
3836
3837 PR C/31499
3838 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3839 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
3840 value is a VECTOR_CST, the element type is the element type of the
3841 vector.
3842
89043e8a
DD
38432009-04-22 DJ Delorie <dj@redhat.com>
3844
3845 * config/m32c/m32c.h: Update GTY annotations to new syntax.
3846
023f059b
JJ
38472009-04-22 Jakub Jelinek <jakub@redhat.com>
3848
3849 * alias.c (find_base_term): Move around LO_SUM case, so that
3850 CONST falls through into PLUS/MINUS handling.
3851
2c0eba5a
JJ
3852 PR c/39855
3853 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3854 into 0, use omit_one_operand.
3855
9a461028
BE
38562009-04-23 Ben Elliston <bje@au.ibm.com>
3857
3858 * config/rs6000/linux-unwind.h (get_regs): Remove type
3859 puns. Change the type of `pc' to an array of unsigned ints and
3860 update all users. Constify frame24.
3861
653e2568
DD
38622009-04-22 DJ Delorie <dj@redhat.com>
3863
3864 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3865 declarations before code.
3866 (current_function_special_page_vector): Likewise.
3867 (m32c_expand_insv): Silence a warning.
3868
60839f5d 38692009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
3870
3871 * alias.c: Update GTY annotations to new syntax.
3872 * basic-block.h: Likewise.
3873 * bitmap.h: Likewise.
3874 * c-common.h: Likewise.
3875 * c-decl.c: Likewise.
3876 * c-parser.c: Likewise.
3877 * c-pragma.c: Likewise.
3878 * c-tree.h: Likewise.
3879 * cfgloop.h: Likewise.
3880 * cgraph.h: Likewise.
3881 * config/alpha/alpha.c: Likewise.
3882 * config/arm/arm.h: Likewise.
3883 * config/avr/avr.h: Likewise.
3884 * config/bfin/bfin.c: Likewise.
3885 * config/cris/cris.c: Likewise.
3886 * config/darwin.c: Likewise.
3887 * config/frv/frv.c: Likewise.
3888 * config/i386/i386.c: Likewise.
3889 * config/i386/i386.h: Likewise.
3890 * config/i386/winnt.c: Likewise.
3891 * config/ia64/ia64.h: Likewise.
3892 * config/iq2000/iq2000.c: Likewise.
3893 * config/mips/mips.c: Likewise.
3894 * config/mmix/mmix.h: Likewise.
3895 * config/pa/pa.c: Likewise.
3896 * config/pa/pa.h: Likewise.
3897 * config/rs6000/rs6000.c: Likewise.
3898 * config/s390/s390.c: Likewise.
3899 * config/sparc/sparc.c: Likewise.
3900 * config/xtensa/xtensa.c: Likewise.
3901 * cselib.h: Likewise.
3902 * dbxout.c: Likewise.
3903 * dwarf2out.c: Likewise.
3904 * except.c: Likewise.
3905 * except.h: Likewise.
3906 * fixed-value.h: Likewise.
3907 * function.c: Likewise.
3908 * function.h: Likewise.
3909 * gimple.h: Likewise.
3910 * integrate.c: Likewise.
3911 * optabs.c: Likewise.
3912 * output.h: Likewise.
3913 * real.h: Likewise.
3914 * rtl.h: Likewise.
3915 * stringpool.c: Likewise.
3916 * tree-data-ref.c: Likewise.
3917 * tree-flow.h: Likewise.
3918 * tree-scalar-evolution.c: Likewise.
3919 * tree-ssa-address.c: Likewise.
3920 * tree-ssa-alias.h: Likewise.
3921 * tree-ssa-operands.h: Likewise.
3922 * tree.c: Likewise.
3923 * tree.h: Likewise.
3924 * varasm.c: Likewise.
3925 * varray.h: Likewise.
3926 * vec.h: Likewise.
bf758008 3927 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
3928 * doc/gty.texi: Update GTY documentation to new syntax.
3929 * gengtype-lex.l: Enforce attribute-like syntax for GTY
3930 annotations on structs.
3931 * gengtype-parse.c: Likewise.
3932
a123d175
MH
39332009-04-22 Mark Heffernan <meheff@google.com>
3934
bf758008 3935 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 3936
4c7c486a
KH
39372009-04-22 Kazu Hirata <kazu@codesourcery.com>
3938
3939 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3940 where appropriate.
3941
6e782a29
KH
39422009-04-22 Kazu Hirata <kazu@codesourcery.com>
3943
3944 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3945 the same as a PLUS without a shift. Increase the cost of a
3946 CONST_INT in MULT.
3947
38d2336a
MLI
39482009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3949
3950 * Makefile.in: Update dependencies.
bf758008 3951 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
3952 * errors.h: Remove bogus comment about compatibility.
3953 (warning): Update declaration.
3954 * genautomata.c: Update all calls to warning.
3955 * gimple.c: Do not include errors.h. Include toplev.h.
3956 * tree-ssa-structalias.c: Do not include errors.h.
3957 * omega.c: Likewise.
3958 * tree-ssa-reassoc.c: Likewise.
3959 * config/spu/spu-c.c: Likewise.
3960 * config/spu/t-spu-elf: Update dependencies.
3961
aea4deba
RG
39622009-04-22 Richard Guenther <rguenther@suse.de>
3963
3964 PR tree-optimization/39824
3965 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3966 make sure the types are compatible.
3967
cfc93532
MLI
39682009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3969
3970 PR c++/14875
3971 * c-common.c (c_parse_error): Take a token_flags parameter.
3972 Use token_type for the token type instead.
3973 Pass token_flags to cpp_type2name.
3974 * c-common.h (c_parse_error): Update declaration.
3975 * c-parser.c (c_parser_error): Pass 0 as token flags.
3976
8632d02a
AB
39772009-04-22 Andrey Belevantsev <abel@ispras.ru>
3978
3979 PR rtl-optimization/39580
3980 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
3981
4c33221c
UW
39822009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3983
3984 * function.c (expand_function_end): Do not emit a jump to the "naked"
3985 return label for fall-through returns.
3986 * except.c (sjlj_emit_function_exit): Always place the call to the
3987 unregister function at the location installed by expand_function_end.
3988
9925bce0
RG
39892009-04-22 Richard Guenther <rguenther@suse.de>
3990
3991 PR tree-optimization/39845
3992 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3993 (gen_inbound_check): Likewise.
3994
24a40b35
NS
39952009-04-22 Nathan Sidwell <nathan@codesourcery.com>
3996
3997 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3998 padding for PPC.
3999 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
4000 * config/vxlib.c (__gthread_once): Add race guard for PPC.
4001
6c34a092
PB
40022009-04-22 Paolo Bonzini <bonzini@gnu.org>
4003
4004 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
4005 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
4006 shift counts to avoid out-of-bounds array accesses.
4007
baa48dfa
PB
40082009-04-22 Paolo Bonzini <bonzini@gnu.org>
4009
4010 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
4011 (Pmode): Move above.
4012
7d83f4f5
UB
40132009-04-22 Uros Bizjak <ubizjak@gmail.com>
4014
4015 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
4016 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
4017 GET_CODE macro. Use IN_RANGE macro where appropriate.
4018 * config/alpha/alpha.h: Ditto.
4019 * config/alpha/alpha.md: Ditto.
4020 * config/alpha/constraints.md: Ditto.
4021 * config/alpha/predicates.md: Ditto.
4022
3ad606bc
PB
40232009-04-22 Paolo Bonzini <bonzini@gnu.org>
4024
4025 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
4026 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4027 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4028 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4029 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4030 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4031 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4032 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4033 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4034 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4035 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4036 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4037 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4038 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4039 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4040 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4041 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4042 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4043 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4044 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4045 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4046 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4047 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4048 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4049 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4050 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4051 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4052
3cabd6d1
LB
40532009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4054
4055 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
4056 references from comments.
4057 * cfgbuild.c: (count_basic_blocks): Delete.
4058 (find_basic_blocks_1): Delete.
4059 (find_basic_blocks): Delete.
4060 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 4061 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
4062 * except.h (finish_eh_generation): Delete.
4063 * basic-block.h (find_basic_blocks): Delete.
4064 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
4065
270d1bcd
DK
40662009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
4067
4068 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
4069 (sdbout_parms): Likewise.
4070
b757d36f
KK
40712009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
4072
4073 * config/sh/sh.c (prepare_cbranch_operands): Use
4074 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
4075 (expand_cbranchdi4): Likewise.
4076 (from_compare): Add cast to enum type.
4077 (expand_cbranchsi4): Use add_reg_note.
4078 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
4079 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
4080 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
4081 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4082 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
4083 instead of CODE_FOR_nothing.
4084 (cbranchdi4): Likewise. Fix the order of arguments for
4085 gen_rtx_fmt_ee.
4086 (push_fpscr): Use add_reg_note.
4087 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
4088 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
4089
ad41bd84
JM
40902009-04-21 Joseph Myers <joseph@codesourcery.com>
4091
4092 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
4093 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4094 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4095 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
4096 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
4097 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
4098 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
4099 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
4100 config/alpha/x-vms, config/arc/t-arc,
4101 config/arm/README-interworking, config/arm/arm-c.c,
4102 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
4103 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
4104 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
4105 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
4106 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
4107 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
4108 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
4109 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
4110 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
4111 config/cris/t-elfmulti, config/crx/t-crx,
4112 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
4113 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
4114 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
4115 config/h8300/t-h8300, config/i386/athlon.md,
4116 config/i386/darwin-libgcc.10.4.ver,
4117 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
4118 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
4119 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
4120 config/i386/t-linux64, config/i386/t-nwld,
4121 config/i386/t-rtems-i386, config/i386/t-sol2-10,
4122 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
4123 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
4124 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
4125 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
4126 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
4127 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
4128 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
4129 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
4130 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
4131 config/m68k/t-uclinux, config/mcore/t-mcore,
4132 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
4133 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
4134 config/mips/crtn.asm, config/mips/irix-crti.asm,
4135 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
4136 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
4137 config/mips/mips-fixed.md, config/mips/sb1.md,
4138 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
4139 config/mips/t-iris6, config/mips/t-isa3264,
4140 config/mips/t-libgcc-mips16, config/mips/t-linux64,
4141 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
4142 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
4143 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
4144 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
4145 config/mn10300/t-linux, config/mn10300/t-mn10300,
4146 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
4147 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
4148 config/picochip/libgccExtras/clzsi2.asm,
4149 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
4150 config/rs6000/darwin-libgcc.10.4.ver,
4151 config/rs6000/darwin-libgcc.10.5.ver,
4152 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
4153 config/rs6000/t-aix43, config/rs6000/t-aix52,
4154 config/rs6000/t-darwin, config/rs6000/t-fprules,
4155 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
4156 config/rs6000/t-lynx, config/rs6000/t-netbsd,
4157 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
4158 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
4159 config/rs6000/t-rtems, config/rs6000/t-spe,
4160 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
4161 config/score/t-score-elf, config/sh/divcost-analysis,
4162 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
4163 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
4164 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
4165 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
4166 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
4167 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
4168 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
4169 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
4170 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
4171 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
4172 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
4173 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
4174 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
4175 limitx.h, version.c, xcoff.h: Add copyright and license notices.
4176 * config/h8300/genmova.sh: Include copyright and license notices
4177 in generated output.
4178 * config/h8300/mova.md: Regenerate.
4179 * doc/install.texi2html: Include word "Copyright" in copyright
4180 notice and use name "Free Software Foundation, Inc.".
4181 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4182 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4183 ChangeLog-2007, ChangeLog-2008: Correct dates.
4184
ca80e52b
EB
41852009-04-21 Eric Botcazou <ebotcazou@adacore.com>
4186
4187 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
4188 NE_EXPR operations as well.
4189 * c-parser.c (c_parser_condition): Do not set location information on
4190 the condition.
4191 (c_parser_conditional_expression): Likewise.
4192 (c_parser_binary_expression): Set location information on operators.
4193 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
4194 TRUTH_NOT_EXPR has been folded.
4195 * fold-const.c (fold_truth_not_expr): Copy location information from
4196 the incoming expression to the outgoing one.
4197 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
4198 recursive calls on the LHS of the operator but pass that of the
4199 operator to recursive calls on the RHS of the operator. Set it
4200 on the COND_EXPR.
4201 (shortcut_cond_expr): Set the locus of the operator on the second
4202 COND_EXPR and that of the expression on the first in degenerate cases.
4203 Pass the locus of the expression to calls to shortcut_cond_r.
4204 Set the locus of the 'then' block on the associated jump, if any.
4205 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
4206 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
4207 expression to call to gimplify_boolean_expr.
4208
35091630
KT
42092009-04-21 Kai Tietz <kai.tietz@onevision.com>
4210
4211 * config.gcc: Add additional configuration for
4212 i686-w64-mingw* and x86_64-w64-mingw* triplet.
4213 * config/i386/mingw-w64.h: New mingw-w64 specific header.
4214 (CPP_SPEC): Redefine for allowing -municode option.
4215 (STARTFILE_SPEC): Likewise.
4216 * config/i386/t-mingw-w64: New.
4217 * config/i386/mingw-w64.opt: New.
4218 (municode): Add new target option.
4219 * doc/invoke.texi (municode): Add documentation for new option.
4220
0267afc4
ILT
42212009-04-21 Ian Lance Taylor <iant@google.com>
4222
4223 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4224 Correct test for number of arguments.
4225 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
4226
2ba9daa7
AS
42272009-04-21 Andreas Schwab <schwab@linux-m68k.org>
4228
4229 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
4230 argument of emit_library_call.
4231
ad8a1ac0
RG
42322009-04-21 Richard Guenther <rguenther@suse.de>
4233
4234 PR middle-end/39829
4235 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
4236 inside VIEW_CONVERT_EXPRs.
4237
7156c8ab
MJ
42382009-04-21 Martin Jambor <mjambor@suse.cz>
4239
4240 * tree-switch-conversion.c (build_constructors): Split a long line.
4241 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
4242 (build_one_array): Create assigns of constants if possible, do not
4243 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
4244 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
4245 make_rename_temp. Do not call mark_symbols_for_renaming, call
4246 update_stmt.
4247 (gen_def_assigns): Do not call mark_symbols_for_renaming or
4248 find_new_referenced_vars, call update_stmt.
4249 (gen_inbound_check): Use create_tmp_var and create ssa names manually
4250 instead of calling make_rename_temp. Do not call
4251 find_new_referenced_vars or mark_symbols_for_renaming, call
4252 update_stmt.
4253
2970ccb3
RG
42542009-04-21 Richard Guenther <rguenther@suse.de>
4255
4256 PR tree-optimization/39827
7d83f4f5 4257 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
4258 (tree_ssa_phiprop): Pass the correct array size.
4259
47f402d1
UB
42602009-04-21 Uros Bizjak <ubizjak@gmail.com>
4261
4262 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
4263
1e4ae551
MLI
42642009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
4265
4266 PR 16202
4267 * c-typeck.c (lvalue_p): Move declaration ...
4268 * c-common.h (lvalue_p): ... to here.
4269 * c-common.c (candidate_equal_p): New.
4270 (add_tlist): Use it.
4271 (merge_tlist): Use it.
4272 (warn_for_collisions_1): Likewise.
4273 (warning_candidate_p): Accept more candidates.
4274 (verify_tree): A warning candidate can be an expression. Use
4275 candidate_equal_p.
4276
244609a6
BE
42772009-04-21 Ben Elliston <bje@au.ibm.com>
4278
4279 PR target/5267
4280 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
4281 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
4282 options. Remove -mcall-solaris documentation.
4283
9c650d90
MLI
42842009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4285
4286 PR c++/13358
4287 * doc/invoke.texi (-Wlong-long): Update description.
4288 * c-lex (interpret_integer): Only warn if there was no previous
4289 overflow and -Wlong-long is enabled.
4290 * c-decl.c (declspecs_add_type): Drop redundant flags.
4291 * c.opt (Wlong-long): Init to -1.
4292 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
4293 and front-end warn_long_long. Wlong-long only depends on other
4294 flags if it is uninitialized.
4295 * c-parser.c (disable_extension_diagnostics): warn_long_long is
4296 the same for CPP and FE.
4297 (restore_extension_diagnostics): Likewise.
4298
bbbbb16a
ILT
42992009-04-20 Ian Lance Taylor <iant@google.com>
4300
4301 Fix enum conversions which are invalid in C++:
47f402d1
UB
4302 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
4303 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
4304 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
4305 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 4306 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 4307 (dbxout_parms): Likewise.
47f402d1 4308 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
4309 (df_clear_flags): Likewise.
4310 * df-problems.c (df_rd_bb_local_compute_process_def): Change
4311 top_flag parameter to int.
4312 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
4313 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
4314 Remove cast.
bbbbb16a
ILT
4315 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
4316 (df_ref_create_structure, df_def_record_1): Likewise.
4317 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
4318 (df_notes_rescan): Change 0 to VOIDmode in function call.
4319 (df_get_call_refs, df_insn_refs_collect): Likewise.
4320 (df_bb_regs_collect): Likewise.
4321 (df_entry_block_defs_collect): Likewise.
4322 (df_exit_block_uses_collect): Likewise.
4323 * df.h: Update declarations.
4324 * double-int.c (double_int_divmod): Add cast to enum type.
4325 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
4326 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
4327 (based_loc_descr): Likewise.
4328 (loc_descriptor_from_tree_1): Change first_op and second_op to
4329 enum dwarf_location_atom. Add cast to enum type.
4330 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 4331 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
4332 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
4333 (do_store_flag): Likewise.
4334 * fixed-value.h (struct fixed_value): Change mode to enum
4335 machine_mode.
47f402d1 4336 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
4337 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
4338 function call.
4339 (insert_insn_decl, insert_decl, insert_state): Likewise.
4340 (automata_list_finish): Likewise.
4341 * genrecog.c (process_define_predicate): Add cast to enum type.
4342 * gensupport.c (init_predicate_table): Add cast to enum type.
4343 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4344 function call.
4345 (gimple_build_call_1, gimple_build_label): Likewise.
4346 (gimple_build_goto, gimple_build_asm_1): Likewise.
4347 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 4348 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
4349 (enum fallback): Rename from enum fallback_t.
4350 (fallback_t): Typedef as int.
4351 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4352 GSI_SAME_STMT in function call.
4353 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4354 enum type.
4355 (setup_reg_class_relations): Likewise.
47f402d1 4356 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
4357 (setup_prohibited_class_mode_regs): Add cast to enum type.
4358 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 4359 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
4360 (record_address_regs): Change i to enum reg_class.
4361 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4362 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4363 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4364 (GET_MODE_2XWIDER_MODE): Likewise.
4365 (GET_CLASS_NARROWEST_MODE): Likewise.
4366 * omp-low.c (expand_omp_for): Add cast to enum type.
4367 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4368 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4369 * postreload.c (reload_cse_simplify_operands): Change rclass local
4370 to enum reg_class.
4371 * predict.c (combine_predictions_for_insn): Change best_predictor
4372 and predictor to enum br_predictor.
4373 (combine_predictions_for_bb): Likewise.
4374 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4375 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 4376 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
4377 * reginfo.c (init_move_cost): Add casts to enum type.
4378 (init_reg_sets_1, init_fake_stack_mems): Likewise.
4379 * regmove.c (regclass_compatible_p): Change class0 and class1 to
4380 enum reg_class.
4381 * reload.c (find_valid_class): Add casts to enum type.
4382 (push_reload): Change 0 to NO_REGS in function call.
4383 (find_reloads): Change this_alternative to array of enum
4384 reg_class. Remove some now-unnecessary casts.
4385 (make_memloc): Change 0 to VOIDmode in function call.
4386 * reload1.c (reload): Change 0 to VOIDmode in function call.
4387 (eliminate_regs_1, elimination_effects): Likewise.
4388 (eliminate_regs_in_insn): Likewise.
4389 (emit_input_reload_insns): Add cast to enum type.
4390 (delete_output_reload): Change 0 to VOIDmode in function call.
4391 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4392 to enum type in function call.
4393 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4394 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 4395 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
4396 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4397 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4398 (dump_function): Likewise.
4399 * tree-dump.h: Update declarations.
4400 * tree-pass.h: Update declarations.
4401 * varasm.c (assemble_integer): Change mclass to enum mode_class.
4402 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4403 enum type.
4404 (arm_rtx_costs_1): Correct parenthesization.
4405 (arm_rtx_costs): Add casts to enum type.
4406 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4407 (vfp_emit_fstmd): Use add_rg_note.
4408 (emit_multi_reg_push, emit_sfm): Likewise.
4409 (thumb_set_frame_pointer): Likewise.
4410 (arm_expand_prologue): Likewise.
4411 (arm_regno_class): Change return type to enum reg_class.
4412 (thumb1_expand_prologue): Use add_reg_note.
4413 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4414 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4415 in function call.
4416 * config/arm/gentune.sh: Add cast to enum type.
4417 * config/arm/arm-tune.md: Rebuild.
4418 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4419 (ix86_split_fp_branch, predict_jump): Likewise.
4420 (ix86_expand_multi_arg_builtin): Change sub_code from enum
4421 insn_code to enum rtx_code.
4422 (ix86_builtin_vectorized_function): Add cast to enum type.
4423 * config/i386/i386.md (truncdfsf2): Change slot to enum
4424 ix86_stack_slot.
4425 (truncxf<mode>2, isinf<mode>2): Likewise.
4426 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4427 enum type.
4428 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4429 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4430 (insert_bundle_state): Change 1 to INSERT in function call.
4431 (ia64_add_bundle_selector_before): Likewise.
4432 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4433 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4434 (restore_stack_nonlocal): Likewise.
4435 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4436 function call.
4437 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4438 function call.
4439 (mips_rtx_costs): Likewise.
4440 (mips_override_options): Add casts to enum type.
4441 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4442 in function call.
4443 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4444 (store_reg, set_reg_plus_d): Likewise.
4445 (hppa_expand_prologue, hppa_profile_hook): Likewise.
4446 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4447 cast to enum type.
4448 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4449 function call.
4450 (emit_unlikely_jump): Use add_reg_note.
4451 (rs6000_emit_allocate_stack): Likewise.
4452 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4453 (output_toc): Change 1 to INSERT in function call.
4454 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4455 (rs6000_initialize_trampoline): Likewise.
4456 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4457 function call.
4458 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4459 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4460 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4461 (save_gprs): Use add_reg_note.
4462 (s390_emit_prologue): Likewise.
47f402d1 4463 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
4464 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4465 (sparc_fold_builtin): Add cast to enum type.
4466 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4467 enum insn_code.
4468 (spu_expand_prologue): Use add_reg_note.
47f402d1 4469 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
4470
44712009-04-20 Ian Lance Taylor <iant@google.com>
4472
4473 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4474 (c_parser_postfix_expression_after_primary): Get VEC for list of
4475 arguments. Get original types of arguments. Call
4476 build_function_call_vec.
4477 (cached_expr_list_1, cached_expr_list_2): New static variables.
4478 (c_parser_expr_list): Change return type to VEC *. Add
4479 p_orig_types parameter. Change all callers.
4480 (c_parser_release_expr): New static function.
4481 (c_parser_vec_to_tree_list): New static function.
4482 * c-typeck.c (build_function_call): Rewrite to build a VEC and
4483 call build_function_call_vec.
4484 (build_function_call_vec): New function, based on old
4485 build_function_call.
4486 (convert_arguments): Remove nargs and argarray parameters. Change
4487 values to a VEC. Add origtypes parameter.
47f402d1 4488 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
4489 (convert_for_assignment): Add origtype parameter. Change all
4490 callers. If warn_cxx_compat, check for conversion to an enum
4491 type when calling a function.
4492 (store_init_value): Add origtype parameter. Change all callers.
4493 (digest_init): Likewise.
4494 (struct init_node): Add origtype field.
4495 (add_pending_init): Add origtype parameter. Change all callers.
4496 (output_init_element): Likewise.
4497 (output_pending_init_elements): Pass origtype from init_node to
4498 output_init_element.
f28a61ab 4499 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
4500 output_init_element.
4501 (c_finish_return): Add origtype parameter. Change all callers.
4502 * c-common.c (sync_resolve_size): Change params to VEC *. Change
4503 caller.
4504 (sync_resolve_params): Likewise.
47f402d1 4505 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 4506 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 4507 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
4508 * c-decl.c (finish_decl): Add origtype parameter. Change all
4509 callers. Call build_function_call_vec rather than
4510 build_function_call for cleanup.
4511 * c-tree.h: Update declarations.
4512 * c-common.h: Update declarations.
4513 * stub-objc.c (objc_rewrite_function_call): Change parameter from
4514 params to first_param.
4515 * target.h (struct gcc_target): Change resolve_overloaded_builtin
4516 params parameter from tree to void *.
4517 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4518 Change arglist parameter to have type void *, and to be a pointer
4519 to a VEC.
4520 * config/rs6000/rs6000-protos.h
4521 (altivec_resolve_overloaded_builtin): Update declaration.
4522 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4523 fnargs parameter to have type void *, and to be a pointer to a
4524 VEC. Call build_function_call_vec instead of
4525 build_function_call.
47f402d1 4526 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 4527
6ff078d4 45282009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 4529 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
4530 H.J. Lu <hongjiu.lu@intel.com>
4531
4532 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4533
4534 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4535 (IX86_LEA_PRIORITY): Likewise.
4536 (distance_non_agu_define): New function.
4537 (distance_agu_use): Likewise.
4538 (ix86_lea_for_add_ok): Likewise.
4539 (ix86_dep_by_shift_count): Likewise.
4540
4541 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4542 should split for LEA.
4543
4544 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4545 function.
4546 (ix86_dep_by_shift_count): Likewise.
4547
87a5b4cc
RG
45482009-04-20 Richard Guenther <rguenther@suse.de>
4549
4550 * expr.c (handled_component_p): Move ...
4551 * tree.h (handled_component_p): ... here.
4552 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4553 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4554 and REALPART_EXPR to be in one group.
4555
438c239d
RG
45562009-04-20 Richard Guenther <rguenther@suse.de>
4557
4558 * basic-block.h (get_all_dominated_blocks): Declare.
4559 * dominance.c (get_all_dominated_blocks): New function.
4560 * tree-cfg.c (get_all_dominated_blocks): Remove.
4561 (remove_edge_and_dominated_blocks): Adjust.
4562 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4563 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
4564 instead of recursing.
4565
fed5ae11
DK
45662009-04-20 Doug Kwan <dougkwan@google.com>
4567
4568 * cgraph.h (cgraph_node_ptr): New type for vector functions.
4569 (struct cgraph_node_set_def): New type.
4570 (cgraph_node_set) New type. Also declare vector functions.
4571 (struct cgraph_node_set_element_def): New type.
4572 (cgraph_node_set_element): Ditto.
4573 (cgraph_node_set_iterator): New iterator type.
4574 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4575 cgraph_node_set_remove, dump_cgraph_node_set,
4576 debug_cgraph_node_set): New prototypes.
4577 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4578 cgraph_node_set_size): New inlines.
4579 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4580 including cgraph.h.
4581 (struct ipa_opt_pass): Add struct cgraph_node_set_def
4582 argument to function 'write_summary'.
4583 * ipa.c: Include ggc.h.
4584 (hash_cgraph_node_set_element,
4585 eq_cgraph_node_set_element, cgraph_node_set_new,
4586 cgraph_node_set_add, cgraph_node_set_remove,
4587 cgraph_node_set_find, dump_cgraph_node_set,
4588 debug_cgraph_node_set): New functions.
4589 * Makefile.in (ipa.o): Add dependency on GGC_H.
4590
c4551b28
IR
45912009-04-20 Ira Rosen <irar@il.ibm.com>
4592
4593 PR tree-optimization/39675
2ba9daa7 4594 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
4595 check of the return code of vect_schedule_slp. Check that
4596 stmt_vec_info still exists for the statement, before checking its
4597 vectorization type.
c4551b28 4598
21a495fb
MM
45992009-04-20 Michael Matz <matz@suse.de>
4600
4601 * Makefile.in (generated_files): Take out $(simple_generated_c).
4602
8e208874
DK
46032009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
4604
4605 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
4606 (UINTPTR_TYPE): Likewise.
4607
a45e580b
JM
46082009-04-19 Joseph Myers <joseph@codesourcery.com>
4609
4610 PR c/37481
4611 * c-typeck.c (digest_init): Check for initializing an array with a
4612 string literal.
4613
20845d35
JM
46142009-04-19 Joseph Myers <joseph@codesourcery.com>
4615
4616 PR c/19771
4617 * c-semantics.c (pop_stmt_list): Propagate
4618 STATEMENT_LIST_HAS_LABEL to parent statement list.
4619
28143fdd
AN
46202009-04-19 Adam Nemet <anemet@caviumnetworks.com>
4621
4622 * config/mips/mips.h (mips_tune_attr): New macro.
4623 * config/mips/mips.md (cpu): Use it.
4624
da377db9
JM
46252009-04-19 Joseph Myers <joseph@codesourcery.com>
4626
4627 PR c/38243
4628 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4629 declaring a tag.
4630
3baf459d
DN
46312009-04-19 Diego Novillo <dnovillo@google.com>
4632
4633 * toplev.c (compile_file): Move call to coverage_finish ...
4634 * cgraphunit.c (ipa_passes): ... here.
4635 Call cgraph_process_new_functions.
4636 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4637 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4638
b6fa5b01
JH
46392009-04-19 Jan Hubicka <jh@suse.cz>
4640
47f402d1
UB
4641 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4642 cfun.
b6fa5b01
JH
4643 (dump_cgraph_node): Dump can throw external flag.
4644 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4645
ca409efd
MLI
46462009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4647
4648 PR c/32061
4649 PR c++/36954
4650 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4651 * common.opt (Wlogical-op): Move from here...
4652 * c.opt (Wlogical-op): ... to here.
4653 * c-typeck.c (parser_build_binary_op): Update call to
4654 warn_logical_operator.
4655 * c-opts.c (c_common_post_options): Enable warn_logical_op with
4656 extra_warnings.
4657 * c-common.c (warn_logical_op): Update.
4658 * c-common.h (warn_logical_op): Update declaration.
4659
9db4cdd3
EB
46602009-04-19 Eric Botcazou <ebotcazou@adacore.com>
4661
4662 * tree.c (protected_set_expr_location): Fix formatting.
4663
f37acdf9
JM
46642009-04-18 Joseph Myers <joseph@codesourcery.com>
4665
4666 PR c/27676
4667 * c-typeck.c (readonly_warning): new.
4668 (build_unary_op, build_modify_expr): Use readonly_warning for
4669 storing into something readonly but not const-qualified.
4670
2b4b7036
JM
46712009-04-18 Joseph Myers <joseph@codesourcery.com>
4672
4673 PR c/22367
4674 * c-typeck.c (build_unary_op): Check for taking address of
4675 expression of type void.
4676
3ce62965
JM
46772009-04-18 Joseph Myers <joseph@codesourcery.com>
4678
4679 PR c/35210
4680 * c-typeck.c (build_function_call): Check for calling a function
4681 with qualified void return types. Call require_complete_type when
4682 generating a trap.
4683
2505c5ed
JH
46842009-04-18 Jan Hubicka <jh@suse.cz>
4685
4686 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4687 Set nothrow flag.
4688 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4689 can_throw_external flag.
4690 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4691 * ipa-pure-const.c (ignore_edge): New function.
4692 (propagate): Compute order for NOTHROW computation; set NOTHROWs
4693 only over can_throw_external edges.
4694 (local_pure_const): Add nothrow flag.
4695 * ipa-utils.c (searchc): Add ignore_edge callback.
4696 (ipa_utils_reduced_inorder): Add ignore_edge callback.
4697 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4698 (set_nothrow_function_flags): Update cgraph.
4699 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4700
2586ba4b
RG
47012009-04-18 Richard Guenther <rguenther@suse.de>
4702
4703 PR middle-end/39804
4704 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4705 (fold_stmt): ... this and ...
4706 (fold_stmt_inplace): ... this.
4707 (fold_stmt_1): Fold references in calls and asms.
4708 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4709
1eefab17
KH
47102009-04-18 Kazu Hirata <kazu@codesourcery.com>
4711
4712 * tree-vrp.c (ssa_name_nonzero_p): Remove.
4713 * tree.h: Remove the prototype for ssa_name_nonzero_p.
4714
aa424b01
KH
47152009-04-18 Kazu Hirata <kazu@codesourcery.com>
4716
4717 * tree.c (function_args_count): Remove.
4718 * tree.h: Remove the prototype for function_args_count.
4719
613a896b
KH
47202009-04-18 Kazu Hirata <kazu@codesourcery.com>
4721
4722 * tree-iterator.c (expr_only): Remove.
4723 * tree.h: Remove the prototype for expr_only.
4724
579e694c
KH
47252009-04-18 Kazu Hirata <kazu@codesourcery.com>
4726
4727 * reginfo.c (cannot_change_mode_set_regs): Remove.
4728 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4729
ee7e3ad3
AS
47302009-04-08 Anatoly Sokolov <aesok@post.ru>
4731
4732 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4733 whether operands 0 and 1 overlaps.
4734
92ef7fb1
MLI
47352009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4736
4737 PR middle-end/36902
4738 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4739 pointer. Use warning_at instead of warning.
4740 (search_for_addr_array): Likewise.
4741 (check_array_bounds): Likewise.
4742 (check_all_array_refs): Check that the incoming edge is not in the
4743 list of edges to be removed.
4744 (check_all_array_refs): Avoid the temporal pointer.
4745 (vrp_visit_cond_stmt): Fix typo.
4746 (simplify_switch_using_ranges): Handle the case where the switch
4747 index is an integer constant.
4748
0e097268
AN
47492009-04-18 Adam Nemet <anemet@caviumnetworks.com>
4750
4751 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4752
c782f1dd
KH
47532009-04-18 Kazu Hirata <kazu@codesourcery.com>
4754
4755 * doc/extend.texi, doc/invoke.texi: Fix typos.
4756
668fb0e8
CC
47572009-04-17 Cary Coutant <ccoutant@google.com>
4758
4759 * tree-flow-inline.h (get_lineno): Fix inverted test.
4760
4d4014c1
DN
47612009-04-17 Diego Novillo <dnovillo@google.com>
4762
4763 * tree-ssa-pre.c (create_expression_by_pieces): Remove
4764 assertion for AVAIL_OUT.
4765
2984e1b6
MF
47662009-04-17 Mike Frysinger <vapier@gentoo.org>
4767
4768 PR target/38627
4769 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4770 * config/sh/linux-atomic.asm: Likewise.
4771
9994a182
DN
47722009-04-17 Diego Novillo <dnovillo@google.com>
4773
4774 * except.c (debug_eh_tree): New.
4775 (struct eh_region, struct eh_status): Move ...
4776 * except.h: ... here.
4777 (add_type_for_runtime): Declare extern.
4778 (lookup_type_for_runtime): Likewise.
4779 (debug_eh_tree): Declare.
4780 * Makefile.in (GTFILES): List except.h before except.c
4781
07485407
DN
47822009-04-17 Diego Novillo <dnovillo@google.com>
4783
47f402d1 4784 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
4785 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4786 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4787 (find_vars_r): ... here.
4788 * tree-flow.h (find_referenced_vars_in): Declare.
4789 * tree-ssa-pre.c (create_expression_by_pieces): Assert
4790 that AVAIL_OUT exists for BLOCK.
4791 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4792 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4793 (tree-parloops.o): Likewise.
4794
4e53d196
SB
47952009-04-17 Simon Baldwin <simonb@google.com>
4796
4797 * toplev.c (default_tree_printer): Add handling for %E format.
4798
413d3aa8
DN
47992009-04-17 Diego Novillo <dnovillo@google.com>
4800
47f402d1
UB
4801 * tree-pretty-print.c (dump_generic_node): Add break after
4802 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
4803 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
4804 FUNCTION_TYPE together. Call print_struct_decl when printing
4805 structures and TDF_SLIM is not given.
413d3aa8
DN
4806 (print_struct_decl): Fix logic for detecting recursion.
4807
5a691e98
RAE
48082009-04-17 Rafael Avila de Espindola <espindola@google.com>
4809
4810 PR 31567
4811 * gcc.c (create_at_file): New.
4812 (compile_input_file_p): New.
4813 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4814 * main.c (main): Update call to toplev_main.
4815 * toplev.c (toplev_main): Change signature. Call expandargv.
4816 * toplev.h (toplev_main): Change signature.
4817
9eacf7a6
EB
48182009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4819
4820 * dwarf2out.c (field_byte_offset): Use the type size as the field size
4821 if the latter is not constant.
4822
58298177
DE
48232009-04-17 David Edelsohn <edelsohn@gnu.org>
4824
4825 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4826
5b4c43d7
EB
48272009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4828
4829 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4830 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4831
b51605c4
RG
48322009-04-17 Richard Guenther <rguenther@suse.de>
4833
4834 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4835 Handle component references view-converting an invariant address.
4836
9e3be889
AN
48372009-04-17 Adam Nemet <anemet@caviumnetworks.com>
4838
4839 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4840 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4841 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4842 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4843 Use @deftypevr rather than @deftypevar.
4844
7c3e9dc3
RG
48452009-04-17 Richard Guenther <rguenther@suse.de>
4846
47f402d1 4847 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
4848 (get_prop_source_stmt): Likewise.
4849 (can_propagate_from): Likewise.
4850
aca600aa
AS
48512009-04-17 Andrew Stubbs <ams@codesourcery.com>
4852
4853 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4854 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4855 (--with-multilib-list): Add default value.
4856 * configure: Regenerate.
4857 * Makefile.in (TM_ENDIAN_CONFIG): Define.
4858 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4859 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4860 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4861 Don't add default cpu to multilib list unnecessarily, but do enable
4862 the relevant compiler option..
4863 Add support for --with-multilib-list=<blank> and
4864 --with-multilib-list=!<somelib> to supress unwanted multilibs.
4865 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4866 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4867 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4868 TM_MULTILIB_CONFIG.
4869 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4870 (MULTILIB_OSDIRNAMES): New variable.
4871 * config/sh/t-1e: Delete file.
4872 * config/sh/t-mlib-sh1: Delete file.
4873 * config/sh/t-mlib-sh2: Delete file.
4874 * config/sh/t-mlib-sh2a: Delete file.
4875 * config/sh/t-mlib-sh2a-nofpu: Delete file.
4876 * config/sh/t-mlib-sh2a-single: Delete file.
4877 * config/sh/t-mlib-sh2a-single-only: Delete file.
4878 * config/sh/t-mlib-sh2e: Delete file.
4879 * config/sh/t-mlib-sh3e: Delete file.
4880 * config/sh/t-mlib-sh4: Delete file.
4881 * config/sh/t-mlib-sh4-nofpu: Delete file.
4882 * config/sh/t-mlib-sh4-single: Delete file.
4883 * config/sh/t-mlib-sh4-single-only: Delete file.
4884 * config/sh/t-mlib-sh4a: Delete file.
4885 * config/sh/t-mlib-sh4a-nofpu: Delete file.
4886 * config/sh/t-mlib-sh4a-single: Delete file.
4887 * config/sh/t-mlib-sh4a-single-only: Delete file.
4888 * config/sh/t-mlib-sh4al: Delete file.
4889 * config/sh/t-mlib-sh5-32media: Delete file.
4890 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4891 * config/sh/t-mlib-sh5-64media: Delete file.
4892 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4893 * config/sh/t-mlib-sh5-compact: Delete file.
4894 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4895 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4896 * doc/install.texi (Options specification): Add
4897 --with-multilib-list and --with-endian.
4898
cf8aba7f
RAE
48992009-04-17 Rafael Avila de Espindola <espindola@google.com>
4900
4901 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4902 REVISION_c.
4903 (OBJS-common): Add plugin-version.o.
4904 (plugin-version.o): New.
4905 * gcc-plugin.h (plugin_gcc_version): New.
4906 (plugin_default_version_check): New.
4907 (plugin_init_func, plugin_init): Add version argument.
4908 * plugin-version.c: New.
4909 * plugin.c (str_plugin_gcc_version_name): New.
4910 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4911 pass it to the init function.
4912 (plugin_default_version_check): New.
4913
61e20b90
RG
49142009-04-17 Richard Guenther <rguenther@suse.de>
4915
4916 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4917 for decl-vs-decl disambiguation.
4918
90c6fd8a
AK
49192009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
4920
4921 * config/s390/s390.h (s390_tune_attr): New macro definition.
4922 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4923
9fe9fe04
RG
49242009-04-17 Richard Guenther <rguenther@suse.de>
4925
4926 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4927 (fold_stmt_r): Likewise.
4928 (maybe_fold_reference): New function.
4929 (fold_gimple_assign): Handle cases fold_stmt_r did.
4930 (fold_stmt): Do not use fold_stmt_r.
4931 (fold_stmt_inplace): Likewise.
4932
7e673273
RG
49332009-04-17 Richard Guenther <rguenther@suse.de>
4934
4935 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4936 (record_equivalences_from_stmt): Remove useless checks and
4937 simplifications.
4938 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4939 the type is already suitable.
4940
fabf2749
PB
49412009-04-17 Paolo Bonzini <bonzini@gnu.org>
4942
4943 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4944
68f7b061
UB
49452009-04-17 Uros Bizjak <ubizjak@gmail.com>
4946
4947 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4948 (CMPtype): Define as __gcc_CMPtype.
4949
532bfb0a
AJ
49502009-04-17 Aurelien Jarno <aurelien@aurel32.net>
4951
4952 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4953 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4954
e3ac77ff
RG
49552009-04-17 Richard Guenther <rguenther@suse.de>
4956
4957 PR tree-optimization/39746
4958 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4959 special-casing for builtins and static variable use/def.
4960 (call_may_clobber_ref_p_1): Likewise.
4961
7072a650
ILT
49622009-04-16 Ian Lance Taylor <iant@google.com>
4963
4964 * df.h: Include "timevar.h".
4965 (struct df_problem): Change tv_id field to timevar_id_t.
4966 * tree-pass.h: Include "timevar.h".
4967 (struct opt_pass): Change tv_id field to timevar_id_t.
4968 * timevar.h (timevar_id_t): Define TV_NONE.
4969 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4970 TV_NONE rather than tv_id != 0.
4971 (execute_one_pass): Likewise.
4972 * Makefile.in (DF_H): Add $(TIMEVAR_H).
4973 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
4974 dependencies to $(TREE_PASS_H).
4975 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4976 to TV_NONE.
4977 (pass_branch_target_load_optimize2): Likewise.
4978 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4979 (pass_outof_cfg_layout_mode): Likewise.
4980 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4981 (pass_rebuild_cgraph_edges): Likewise.
4982 (pass_remove_cgraph_callee_edges): Likewise.
4983 * df-core.c (pass_df_initialize_opt): Likewise.
4984 (pass_df_initialize_no_opt): Likewise.
4985 (pass_df_finish): Likewise.
4986 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4987 * except.c (pass_set_nothrow_function_flags): Likewise.
4988 (pass_convert_to_eh_region_ranges): Likewise.
4989 * final.c (pass_compute_alignments): Likewise.
4990 * function.c (pass_instantiate_virtual_regs): Likewise.
4991 (pass_init_function): Likewise.
4992 (pass_leaf_regs): Likewise.
4993 (pass_match_asm_constraints): Likewise.
4994 * gimple-low.c (pass_lower_cf): Likewise.
4995 (pass_mark_used_blocks): Likewise.
4996 * init-regs.c (pass_initialize_regs): Likewise.
4997 * integrate.c (pass_initial_value_sets): Likewise.
4998 * ira.c (pass_ira): Likewise.
4999 * jump.c (pass_cleanup_barriers): Likewise.
5000 * omp-low.c (pass_expand_omp): Likewise.
5001 (pass_lower_omp): Likewise.
5002 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
5003 * recog.c (pass_split_all_insns): Likewise.
5004 (pass_split_after_reload): Likewise.
5005 (pass_split_before_regstack): Likewise.
5006 (pass_split_before_sched2): Likewise.
5007 (pass_split_for_shorten_branches): Likewise.
5008 * reginfo.c (pass_reginfo_init): Likewise.
5009 (pass_subregs_of_mode_init): Likewise.
5010 (pass_subregs_of_mode_finish): Likewise.
5011 * passes.c (pass_postreload): Likewise.
5012 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
5013 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
5014 (pass_warn_function_return): Likewise.
5015 (pass_warn_function_noreturn): Likewise.
5016 * tree-complex.c (pass_lower_complex): Likewise.
5017 (pass_lower_complex_O0): Likewise.
5018 * tree-if-conv.c (pass_if_conversion): Likewise.
5019 * tree-into-ssa.c (pass_build_ssa): Likewise.
5020 * tree-mudflap.c (pass_mudflap_1): Likewise.
5021 (pass_mudflap_2): Likewise.
5022 * tree-nomudflap.c (pass_mudflap_1): Likewise.
5023 (pass_mudflap_2): Likewise.
5024 * tree-nrv.c (pass_return_slot): Likewise.
5025 * tree-object-size.c (pass_object_sizes): Likewise.
5026 * tree-optimize.c (pass_all_optimizations): Likewise.
5027 (pass_early_local_passes): Likewise.
5028 (pass_all_early_optimizations): Likewise.
5029 (pass_cleanup_cfg): Likewise.
5030 (pass_cleanup_cfg_post_optimizing): Likewise.
5031 (pass_free_datastructures): Likewise.
5032 (pass_free_cfg_annotations): Likewise.
5033 (pass_fixup_cfg): Likewise.
5034 (pass_init_datastructures): Likewise.
5035 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
5036 (pass_late_warn_uninitialized): Likewise.
5037 (pass_update_address_taken): Likewise.
5038 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
5039 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
5040 (pass_cse_sincos): Likewise.
5041 (pass_convert_to_rsqrt): Likewise.
5042 * tree-ssa-structalias.c (pass_build_alias): Likewise.
5043 * tree-stdarg.c (pass_stdarg): Likewise.
5044 * tree-tailcall.c (pass_tail_recursion): Likewise.
5045 (pass_tail_calls): Likewise.
5046 * tree-vect-generic.c (pass_lower_vector): Likewise.
5047 (pass_lower_vector_ssa): Likewise.
5048 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
5049
0051ef59
JM
50502009-04-16 Joseph Myers <joseph@codesourcery.com>
5051
5052 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
5053 XLR entry.
5054 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
5055 Handle -march=xlr.
5056 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
5057 logical and signext.
5058
b3f8558a
KK
50592009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
5060
5061 PR target/39767
5062 * config/sh/predicates.md (arith_operand): Check if the operand
5063 of TRUNCATE is a REG.
5064
f57597d9
KH
50652009-04-16 Kazu Hirata <kazu@codesourcery.com>
5066
5067 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
5068 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
5069
b172d063
KH
50702009-04-16 Kazu Hirata <kazu@codesourcery.com>
5071
5072 * tree-iterator.c (tsi_split_statement_list_after,
5073 tsi_split_statement_list_before): Remove.
5074 * tree-iterator.h: Remove the prototypes for
532bfb0a 5075 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 5076
78fe4f1f
KH
50772009-04-16 Kazu Hirata <kazu@codesourcery.com>
5078
5079 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
5080 * tree-ssa-propagate.h: Remove the prototype for
5081 stmt_makes_single_load.
5082
43dd3201
KH
50832009-04-16 Kazu Hirata <kazu@codesourcery.com>
5084
5085 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
5086 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
5087
4252a4aa
KH
50882009-04-16 Kazu Hirata <kazu@codesourcery.com>
5089
5090 * tree-iterator.c (EXPR_LAST_BODY): Remove.
5091
bfb69968
KH
50922009-04-16 Kazu Hirata <kazu@codesourcery.com>
5093
5094 * except.c (eh_region_outer_p): Remove.
5095 * except.h: Remove the prototype for eh_region_outer_p.
5096
c7db7fa5
KH
50972009-04-16 Kazu Hirata <kazu@codesourcery.com>
5098
5099 * function.c (current_function_assembler_name): Remove.
5100 * function.h: Remove the prototype for
5101 current_function_assembler_name.
5102
efc0b2bd
ILT
51032009-04-16 Ian Lance Taylor <iant@google.com>
5104
532bfb0a 5105 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
5106 (add_reg_note): Call alloc_reg_note.
5107 * rtl.h (alloc_reg_note): Declare.
5108 * combine.c (try_combine): Use alloc_reg_note.
5109 (recog_for_combine, move_deaths): Likewise.
5110 (distribute_notes): Use alloc_reg_note and add_reg_note.
5111 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
5112 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
5113 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
5114
6080348f
VM
51152009-04-16 Vladimir Makarov <vmakarov@redhat.com>
5116
5117 PR rtl-optimization/39762
5118 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
5119 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 5120 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 5121
6080348f
VM
5122 * ira-conflicts.c (process_regs_for_copy): Use function
5123 ira_get_register_move_cost instead of global
5124 ira_register_move_cost.
5125
5126 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
5127 color_pass, move_spill_restore, update_curr_costs): Ditto.
5128
5129 * ira-lives.c (process_single_reg_class_operands): Ditto.
5130
5131 * ira-emit.c (emit_move_list): Ditto.
5132
5133 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
5134 (record_reg_classes): Ditto. Use functions
5135 ira_get_register_move_cost and ira_get_may_move_cost instead of
5136 global vars ira_register_move_cost, ira_may_move_out_cost and
5137 ira_may_move_in_cost.
5138 (record_address_regs): Don't call ira_init_register_move_cost.
5139 Use function ira_get_may_move_cost instead of global
5140 ira_may_move_in_cost.
5141 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 5142 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 5143 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 5144
646bea10
RG
51452009-04-16 Richard Guenther <rguenther@suse.de>
5146
5147 * tree-cfg.c (verify_gimple_assign_binary):
5148 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
5149 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
5150 (create_general_new_stmt): Note that this function is broken.
5151
02e819ff
RAE
51522009-04-16 Rafael Avila de Espindola <espindola@google.com>
5153
5154 * common.opt (fhelp): Add Var(help_flag).
5155 * gcc-plugin.h (plugin_info): Add help.
5156 * plugin.c (plugin_name_args): Add help.
5157 (register_plugin_info): Set plugin->help.
5158 (print_help_one_plugin): New.
5159 (print_plugins_help): New.
5160 * plugin.h (print_plugins_help): New.
5161 * toplev.c (toplev_main): Call print_plugins_help if needed.
5162
ccacdf06
RG
51632009-04-16 Richard Guenther <rguenther@suse.de>
5164
5165 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
5166 (gimple_ior_addresses_taken_1): New function.
5167 (gimple_ior_addresses_taken): Likewise.
5168 * gimple.h (struct gimple_statement_with_ops_base): Remove
5169 addresses_taken member.
5170 (gimple_ior_addresses_taken): Declare.
5171 (gimple_addresses_taken, gimple_addresses_taken_ptr,
5172 gimple_set_addresses_taken): Remove.
5173 * ipa-reference.c (mark_address): New function.
5174 (scan_stmt_for_static_refs): Use it for marking addresses taken.
5175 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
5176 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
5177 (gimple_add_to_addresses_taken): Remove.
5178 (get_tmr_operands): Call mark_address_taken.
5179 (get_asm_expr_operands): Likewise.
5180 (get_expr_operands): Likewise.
5181 (build_ssa_operands): Do not clear the addresses_taken bitmap.
5182 (free_stmt_operands): Do not free it.
5183 * tree-ssa.c (delete_tree_ssa): Likewise.
5184 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
5185
346ef3fa
RG
51862009-04-16 Richard Guenther <rguenther@suse.de>
5187
5188 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
5189 (walk_stmt_load_store_ops): Likewise.
5190 * gimple.c (get_base_loadstore): New function.
5191 (walk_stmt_load_store_addr_ops): Likewise.
5192 (walk_stmt_load_store_ops): Likewise.
5193 * ipa-pure-const.c (check_op): Simplify.
5194 (check_load, check_store): New functions.
5195 (check_stmt): Use walk_stmt_load_store_ops.
5196 * ipa-reference.c (mark_load): Adjust signature.
5197 (mark_store): Likewise.
5198 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
5199
44e9f006
RAE
52002009-04-16 Rafael Avila de Espindola <espindola@google.com>
5201
5202 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
5203 (plugin_info): New.
5204 * opts.c (common_handle_option): Don't call print_version.
5205 * plugin.c (plugin_name_args): Add version.
5206 (register_plugin_info): New.
5207 (register_callback): Handle PLUGIN_INFO.
5208 (try_init_one_plugin): New.
5209 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
5210 if failed to init.
5211 (finalize_one_plugin): New.
5212 (finalize_plugins): New.
5213 (print_one_plugin): New.
5214 (print_plugins_versions): New.
5215 * plugin.h (print_plugins_versions): New.
5216 (finalize_plugins): New.
5217 * toplev.c (compile_file): Don't call initialize_plugins.
5218 (print_version): Call print_plugins_versions.
5219 (toplev_main): Call initialize_plugins. Print version if needed.
5220 Call finalize_plugins.
5221
41fd0f9b
RAE
52222009-04-16 Rafael Avila de Espindola <espindola@google.com>
5223
5224 * common.opt (fversion): New.
5225 * gcc.c (print_version): New.
5226 (process_command): Don't print the version. Just set print_version.
5227 (main): Print version. Call subprocesses if print_version and
5228 verbose_flag are set.
5229 * opts.c (common_handle_option): Handle OPT_fversion.
5230
550918ca 52312009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 5232 Ira Rosen <irar@il.ibm.com>
550918ca
RG
5233
5234 PR tree-optimization/39698
5235 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
5236 type of the reduction variable. Only generate the def if
5237 it is needed.
5238
5239 * omp-low.c (expand_omp_for_generic): When converting to a pointer
5240 make sure to first convert to an integer of the same precision.
5241 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
5242 the type of the evolution correctly in computing the new
5243 induction variable base.
5244
54634841
RG
52452009-04-16 Richard Guenther <rguenther@suse.de>
5246
5247 PR middle-end/39625
5248 * tree-cfg.c (make_blocks): Split statements with to-be
5249 abnormal SSA names on the lhs.
5250
b6fc2cdb
PB
52512009-04-16 Paolo Bonzini <bonzini@gnu.org>
5252
5253 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
5254 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
5255 * c-typeck.c (really_start_incremental_init): Likewise.
5256 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
5257 (TARGET_INITIALIZER): Remove it.
5258 * target.h (struct target): Remove vector_opaque_p.
5259 * tree.c (build_opaque_vector_type): New.
5260 * tree.h (TYPE_VECTOR_OPAQUE): New.
5261 (build_opaque_vector_type): Declare.
5262 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
5263 * config/rs6000/rs6000.c (build_opaque_vector_type,
5264 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
5265 (rs6000_init_builtins): Use build_opaque_vector_type for
5266 opaque_V4SI_type_node.
5267
a417cdd9
CM
52682009-04-15 Catherine Moore <clm@codesourcery.com>
5269
532bfb0a
AJ
5270 * debug.h (set_name): Declare.
5271 * dwarf2out.c (dwarf2out_set_name): Declare.
5272 (dwarf2_debug_hooks): Add set_name.
5273 (find_AT_string): New.
5274 (add_AT_string): Call find_AT_string.
5275 (dwarf2out_set_name): New.
5276 * cp/decl.c (grokdeclarator): Call set_name.
5277 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
5278 * debug.c (do_nothing_debug_hooks): Likewise.
5279 * dbxout.c (dbx_debug_hooks): Likewise.
5280 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 5281
60839f5d 52822009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 5283
532bfb0a
AJ
5284 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
5285 reg for single-precision FPU.
5286 * config/rs6000/rs6000.md (movsi_internal1): Only for
5287 !TARGET_SINGLE_FPU.
5288 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
5289 single-precision FP regs.
5290
ada39f0b
RG
52912009-04-15 Richard Guenther <rguenther@suse.de>
5292
5293 * omp-low.c (lower_rec_input_clauses): Build correct address
5294 expressions.
5295 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 5296 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
5297 (generate_memset_zero): Fix types.
5298 * tree-profile.c (prepare_instrumented_value): Correctly
5299 widen a pointer.
5300
6866c6e8
ILT
53012009-04-15 Ian Lance Taylor <iant@google.com>
5302
5303 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
5304 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
5305 for -Wall and for -Wc++-compat.
5306 (c_common_post_options): For C++, set warn_enum_compare if not
5307 already set.
5308 * c-tree.h (struct c_expr): Add field original_type.
5309 (build_external_ref): Update declaration.
5310 * c-parser.c (c_parser_braced_init): Set original_type.
5311 (c_parser_initelt): Likewise.
5312 (c_parser_expr_no_commas): Likewise.
5313 (c_parser_conditional_expression): Likewise.
5314 (c_parser_cast_expression): Likewise.
5315 (c_parser_unary_expression): Likewise. Pull setting of
5316 original_code to top of function.
5317 (c_parser_sizeof_expression): Set original_type.
5318 (c_parser_alignof_expression): Likewise.
5319 (c_parser_postfix_expression): Likewise. Pull setting of
5320 original_code to top of function.
532bfb0a 5321 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
5322 (c_parser_postfix_expression_after_primary): Likewise.
5323 (c_parser_expression): Likewise.
5324 * c-typeck.c (build_external_ref): Add type parameter. Change all
5325 callers.
5326 (c_expr_sizeof_expr): Set original_type field.
5327 (parser_build_unary_op): Likewise.
5328 (parser_build_binary_op): Likewise. Optionally warn about
5329 comparisons of enums of different types.
5330 (digest_init): Set original_type field.
5331 (really_start_incremental_init): Likewise.
5332 (push_init_level, pop_init_level): Likewise.
5333 * doc/invoke.texi (Warning Options): -Wenum-compare now
5334 supported in C.
5335
f116fecf
RG
53362009-04-15 Richard Guenther <rguenther@suse.de>
5337
5338 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
5339 out a necessary conversion.
5340 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5341 names we didn't value number.
5342 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5343
25e20805
RG
53442009-04-15 Richard Guenther <rguenther@suse.de>
5345
5346 PR tree-optimization/39764
5347 * tree-ssa-ccp.c (get_value): Canonicalize value with
5348 canonicalize_float_value.
5349
90cc3676
JH
53502009-04-15 Jan Hubicka <jh@suse.cz>
5351
5352 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5353 Wrong version of patch.
5354
6d14c006
JH
53552009-04-15 Jan Hubicka <jh@suse.cz>
5356
5357 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5358
5afaa917
NS
53592009-04-15 Nathan Sidwell <nathan@codesourcery.com>
5360
5361 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5362 our distinct integral and vector types.
5363
3b482fca
RAE
53642009-04-15 Rafael Avila de Espindola <espindola@google.com>
5365
5366 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5367 * init.c (build_vtbl_address): Remove call to assemble_external.
5368
6cd1d2e2
DJ
53692009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
5370
5371 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5372 output for other floating point modes.
5373
dab71827
DN
53742009-04-14 Diego Novillo <dnovillo@google.com>
5375
5376 * diagnostic.c (diagnostic_report_diagnostic): Do not
5377 warn about loaded plugins for DK_ERROR and DK_WARNING.
5378 * c-decl.c (declspecs_add_type): Move call to
5379 invoke_plugin_callbacks ...
5380 * c-parser.c (c_parser_declspecs): ... here.
5381 * plugin.c (dump_active_plugins): Tidy output.
5382
68a607d8
DN
53832009-04-14 Diego Novillo <dnovillo@google.com>
5384 Le-Chun Wu <lcwu@google.com>
5385
5386 * configure.ac: Add --enable-plugin support.
5387 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5388 * Makefile.in (PLUGIN_H): Define.
5389 Export ENABLE_PLUGIN and GMPINC to site.exp.
5390 Add PLUGINLIBS to link command.
5391 Add/modify dependencies for plugin.o and files including plugin.h.
5392 (plugin.o): New.
5393 * config.in: Regenerate.
2ba9daa7 5394
68a607d8
DN
5395 * opts.c (common_handle_option): Handle OPT_fplugin_ and
5396 OPT_fplugin_arg_.
5397
53982009-04-14 Le-Chun Wu <lcwu@google.com>
5399
5400 * tree-pass.h (register_one_dump_file): Add a prototype for
5401 register_one_dump_file.
5402 * toplev.c (compile_file): Call initialize_plugins.
5403 (do_compile): Call invoke_plugin_callbacks.
5404 (toplev_main): Call invoke_plugin_callbacks.
5405 * common.opt: Add -fplugin= and -fplugin-arg-.
5406 * gcc-plugin.h: New public header file for plugins to include.
5407 * plugin.c: New source file.
5408 * plugin.h: New internal header file.
5409 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 5410
68a607d8
DN
5411 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5412
54132009-04-14 Diego Novillo <dnovillo@google.com>
5414
5415 * doc/plugins.texi: New.
5416 * doc/gccint.texi: Add reference to Plugins chapter.
5417 * doc/invoke.texi: Document -fplugin and -fplugin-arg
5418 * diagnostic.c (diagnostic_report_diagnostic): Warn about
5419 loaded plugins, if any.
5420 * timevar.def (TV_PLUGIN_INIT): Define.
5421 (TV_PLUGIN_RUN): Define.
5422 * plugin.c: Include timevar.h
5423 (plugins_active_p): New.
5424 (dump_active_plugins): New.
5425 (debug_active_plugins): New.
5426
50617257
JM
54272009-04-14 Joseph Myers <joseph@codesourcery.com>
5428
5429 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5430 library paths.
5431 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5432
b32f6fff
KH
54332009-04-14 Kazu Hirata <kazu@codesourcery.com>
5434
5435 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5436 the same as a minus without a shift.
5437
85d04fa2
NC
54382009-04-14 Nick Clifton <nickc@redhat.com>
5439
5440 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5441 comparisons with small integers will always produce a short
5442 branch.
5443
e495a0c8
RAE
54442009-04-14 Rafael Avila de Espindola <espindola@google.com>
5445
5446 Merge:
e495a0c8
RAE
5447 2008-12-19 Diego Novillo <dnovillo@google.com>
5448
532bfb0a 5449 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 5450
ad41bd84 54512009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
5452
5453 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5454 verification.
5455 (verify_gimple_assign_binary): Likewise. Handle shifts and
5456 rotates correctly.
5457 (verify_gimple_phi): Print the mismatched argument position.
5458 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5459 Fix types.
5460 (vect_update_init_of_dr): Likewise.
5461 * matrix-reorg.c (transform_access_sites): Do what the
5462 comment suggests.
5463 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5464
60839f5d 54652009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
5466
5467 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5468 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5469 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 5470 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
5471 remove duplicate config
5472
b0e2d008
DR
54732009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
5474
5475 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5476 file_name:line_number type locator of the call site.
2ba9daa7 5477
1244a8b7
VM
54782009-04-13 Vladimir Makarov <vmakarov@redhat.com>
5479
5480 * genautomata.c: Put blank after comma.
5481 (automaton_decls): New.
5482 (struct unit_usage): Add comments to member next.
5483 (store_alt_unit_usage): Keep the list ordered.
5484 (unit_present_on_list_p, equal_alternatives_p): New.
5485 (check_regexp_units_distribution): Check units distribution
5486 correctness correctly.
5487 (main): Don't write automata if error is found. Return correct
5488 exit code.
2ba9daa7 5489
1244a8b7
VM
5490 * config/m68k/cf.md (cfv4_ds): Remove.
5491 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5492 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5493
5494 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5495 power4-load-ext, power4-store, power4-store-update,
5496 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5497 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5498 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5499 power4-sqrt, power4-isync): Modify reservation to make correct
5500 unit distribution to automata.
5501
5502 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5503 power5-store-update, power5-two, power5-three, power5-lmul,
5504 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 5505
f7dd1864
AN
55062009-04-13 Adam Nemet <anemet@caviumnetworks.com>
5507
5508 * except.c (pass_set_nothrow_function_flags): Set name and add
5509 TODO_dump_func.
5510 (set_nothrow_function_flags): Mention in the dump file when
5511 changing a function to nothrow.
5512
59a1171f
OS
55132009-04-13 Ozkan Sezer <sezeroz@gmail.com>
5514
5515 PR/39066
5516 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5517 instead of unsigned long.
5518
934c2060
RR
55192009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5520
f7dd1864
AN
5521 * config/arm/arm.c (return_used_this_function): Remove.
5522 (arm_output_function_prologue): Remove use of
934c2060 5523 return_used_this_function.
f7dd1864 5524 (output_return_instruction): Replace use of
934c2060
RR
5525 return_used_this_function
5526 by cfun->machine->return_used_this_function.
f7dd1864
AN
5527 (arm_output_epilogue): Likewise.
5528 (arm_output_function_epilogue): Likewise.
5529 (thumb_unexpanded_epilogue): Likewise.
5530 * config/arm/arm.h (struct machine_function):
934c2060 5531 New member return_used_this_function.
f7dd1864 5532
ae5cc016
MM
55332009-04-12 Mark Mitchell <mark@codesourcery.com>
5534
5535 * doc/install.texi: Correct description of default directory for
5536 --with-gxx-include-dir.
5537
a0ce68df 55382009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
5539
5540 * fold-const.c (build_range_check): Properly deal with enumeral and
5541 boolean base types.
5542
3906a4a1
SB
55432009-04-12 Steven Bosscher <steven@gcc.gnu.org>
5544
5545 * doc/invoke.texi (max_gcse_passes): Remove documentation.
5546 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5547 * params.h (MAX_GCSE_PASSES): Remove.
5548 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5549 in sequence. Remove ability to run multiple passes.
5550 (bypass_jumps): Report run as third CPROP pass.
5551
efaadb93
AN
55522009-04-12 Adam Nemet <anemet@caviumnetworks.com>
5553
5554 PR middle-end/39651
5555 * except.c (can_throw_external): Look at each insn in a SEQUENCE
5556 when deciding whether the whole SEQUENCE can throw.
5557
4c48007b
UB
55582009-04-12 Uros Bizjak <ubizjak@gmail.com>
5559
5560 PR target/39740
5561 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5562 offseted label references.
5563
b4104018
JH
55642009-04-11 Jan Hubicka <jh@suse.cz>
5565
5566 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5567
32848948
RG
55682009-04-11 Richard Guenther <rguenther@suse.de>
5569
5570 PR middle-end/39732
5571 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5572 return variables as TREE_ADDRESSABLE.
5573
8810712e
RG
55742009-04-11 Richard Guenther <rguenther@suse.de>
5575
5576 PR tree-optimization/39713
5577 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5578 reference trees have SSA_NAME operands.
5579
fa78c0c1
RG
55802009-04-11 Richard Guenther <rguenther@suse.de>
5581
5582 PR c/39712
5583 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5584 address expressions.
5585
4d722130
DK
55862009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
5587
5588 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
5589 match changes in Cygwin 1.7
5590 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5591 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
5592
567a90f5
PB
55932009-04-10 Paolo Bonzini <bonzini@gnu.org>
5594
5595 PR tree-optimization/39701
5596 * doc/invoke.texi (Optimization Options): Document change in
5597 meaning and initialization of -fdelete-null-pointer-checks.
5598
1ad2f450
L
55992009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5600
5601 PR middle-end/39701
5602 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5603
5604 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5605 here.
5606
5607 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5608
1afc5373
CF
56092009-04-10 Chao-ying Fu <fu@mips.com>
5610
5611 * doc/tm.texi (Instruction Output): Document
5612 TARGET_ASM_FINAL_POSTSCAN_INSN.
5613 * target.h (final_postscan_insn): New field in asm_out.
5614 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5615 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5616 * final.c (final_scan_insn): Call
5617 targetm.asm_out.final_postscan_insn after outputting
5618 an asm macro and a normal instruction.
5619
5620 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5621 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5622 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5623 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5624 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5625
4d35e75c
PB
56262009-04-10 Paolo Bonzini <bonzini@gnu.org>
5627
5628 PR middle-end/39701
1ad2f450
L
5629 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5630 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 5631
62c49b83
L
56322009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5633
5634 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5635
80558628
L
56362009-04-09 H.J. Lu <hongjiu.lu@intel.com>
5637
5638 PR target/39678
5639 * config/i386/i386.c (classify_argument): Handle SCmode with
5640 (bit_offset % 64) != 0.
5641
8c70d28b
SL
56422009-04-09 Sandra Loosemore <sandra@codesourcery.com>
5643
5644 * doc/invoke.texi (Optimize Options): Add cross-reference to
5645 -Q --help=optimizers examples.
5646
e1ff19bf
BE
56472009-04-10 Ben Elliston <bje@au.ibm.com>
5648
5649 PR target/36800
5650 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5651 regalign for the reg == fpr and TDmode case.
5652
52daca75
DA
56532009-04-09 David Ayers <ayers@fsfe.org>
5654
5655 PR objc/29200
5656 * objc/objc-act.c (warn_with_method): Remove helper function.
5657 (check_duplicates): Call warning and inform directly.
5658 (really_start_method): Likewise.
5659
b45f0e58
PB
56602009-04-09 Paolo Bonzini <bonzini@gnu.org>
5661
5662 * expmed.c (expand_divmod): Always use a comparison for a division
5663 by a large unsigned integer.
5664
1ad2f450
L
5665 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5666 for things others than variables or functions as nonzero.
b45f0e58 5667
748086b7
JJ
56682009-04-09 Nick Clifton <nickc@redhat.com>
5669
5670 * unwind-compat.c: Change copyright header to refer to version
5671 3 of the GNU General Public License with version 3.1 of the
5672 GCC Runtime Library Exception and to point readers at the
7a715bba 5673 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
5674 * config/alpha/crtfastmath.c: Likewise.
5675 * config/alpha/linux-unwind.h: Likewise.
5676 * config/alpha/qrnnd.asm: Likewise.
5677 * config/alpha/vms-crt0-64.c: Likewise.
5678 * config/alpha/vms-crt0.c: Likewise.
5679 * config/alpha/vms-dwarf2.asm: Likewise.
5680 * config/alpha/vms-dwarf2eh.asm: Likewise.
5681 * config/alpha/vms-psxcrt0-64.c: Likewise.
5682 * config/alpha/vms-psxcrt0.c: Likewise.
5683 * config/alpha/vms_tramp.asm: Likewise.
5684 * config/arc/initfini.c: Likewise.
5685 * config/arc/lib1funcs.asm: Likewise.
5686 * config/arm/bpabi-v6m.S: Likewise.
5687 * config/arm/bpabi.S: Likewise.
5688 * config/arm/bpabi.c: Likewise.
5689 * config/arm/crti.asm: Likewise.
5690 * config/arm/crtn.asm: Likewise.
5691 * config/arm/ieee754-df.S: Likewise.
5692 * config/arm/ieee754-sf.S: Likewise.
5693 * config/arm/lib1funcs.asm: Likewise.
5694 * config/arm/libunwind.S: Likewise.
5695 * config/arm/linux-atomic.c: Likewise.
5696 * config/arm/mmintrin.h: Likewise.
5697 * config/arm/pr-support.c: Likewise.
5698 * config/arm/unaligned-funcs.c: Likewise.
5699 * config/arm/unwind-arm.c: Likewise.
5700 * config/arm/unwind-arm.h: Likewise.
5701 * config/avr/libgcc.S: Likewise.
5702 * config/bfin/crti.s: Likewise.
5703 * config/bfin/crtlibid.s: Likewise.
5704 * config/bfin/crtn.s: Likewise.
5705 * config/bfin/lib1funcs.asm: Likewise.
5706 * config/bfin/linux-unwind.h: Likewise.
5707 * config/cris/arit.c: Likewise.
5708 * config/cris/cris_abi_symbol.c: Likewise.
5709 * config/darwin-64.c: Likewise.
5710 * config/darwin-crt2.c: Likewise.
5711 * config/darwin-crt3.c: Likewise.
5712 * config/darwin.h: Likewise.
5713 * config/dbxelf.h: Likewise.
5714 * config/dfp-bit.c: Likewise.
5715 * config/dfp-bit.h: Likewise.
5716 * config/elfos.h: Likewise.
5717 * config/fixed-bit.c: Likewise.
5718 * config/fixed-bit.h: Likewise.
5719 * config/fp-bit.c: Likewise.
5720 * config/fp-bit.h: Likewise.
5721 * config/fr30/crti.asm: Likewise.
5722 * config/fr30/crtn.asm: Likewise.
5723 * config/fr30/lib1funcs.asm: Likewise.
5724 * config/freebsd-spec.h: Likewise.
5725 * config/frv/cmovd.c: Likewise.
5726 * config/frv/cmovh.c: Likewise.
5727 * config/frv/cmovw.c: Likewise.
5728 * config/frv/frvbegin.c: Likewise.
5729 * config/frv/frvend.c: Likewise.
5730 * config/frv/lib1funcs.asm: Likewise.
5731 * config/glibc-stdint.h: Likewise.
5732 * config/h8300/clzhi2.c: Likewise.
5733 * config/h8300/crti.asm: Likewise.
5734 * config/h8300/crtn.asm: Likewise.
5735 * config/h8300/ctzhi2.c: Likewise.
5736 * config/h8300/fixunssfsi.c: Likewise.
5737 * config/h8300/lib1funcs.asm: Likewise.
5738 * config/h8300/parityhi2.c: Likewise.
5739 * config/h8300/popcounthi2.c: Likewise.
5740 * config/i386/ammintrin.h: Likewise.
5741 * config/i386/att.h: Likewise.
5742 * config/i386/avxintrin.h: Likewise.
5743 * config/i386/biarch64.h: Likewise.
5744 * config/i386/bmmintrin.h: Likewise.
5745 * config/i386/cpuid.h: Likewise.
5746 * config/i386/cross-stdarg.h: Likewise.
5747 * config/i386/crtfastmath.c: Likewise.
5748 * config/i386/crtprec.c: Likewise.
5749 * config/i386/cygming-crtbegin.c: Likewise.
5750 * config/i386/cygming-crtend.c: Likewise.
5751 * config/i386/cygwin.asm: Likewise.
5752 * config/i386/emmintrin.h: Likewise.
5753 * config/i386/gmm_malloc.h: Likewise.
5754 * config/i386/gthr-win32.c: Likewise.
5755 * config/i386/i386.h: Likewise.
5756 * config/i386/immintrin.h: Likewise.
5757 * config/i386/linux-unwind.h: Likewise.
5758 * config/i386/linux64.h: Likewise.
5759 * config/i386/mm3dnow.h: Likewise.
5760 * config/i386/mmintrin-common.h: Likewise.
5761 * config/i386/mmintrin.h: Likewise.
5762 * config/i386/nmmintrin.h: Likewise.
5763 * config/i386/pmm_malloc.h: Likewise.
5764 * config/i386/pmmintrin.h: Likewise.
5765 * config/i386/smmintrin.h: Likewise.
5766 * config/i386/sol2-c1.asm: Likewise.
5767 * config/i386/sol2-ci.asm: Likewise.
5768 * config/i386/sol2-cn.asm: Likewise.
5769 * config/i386/sol2-gc1.asm: Likewise.
5770 * config/i386/tmmintrin.h: Likewise.
5771 * config/i386/unix.h: Likewise.
5772 * config/i386/w32-unwind.h: Likewise.
5773 * config/i386/wmmintrin.h: Likewise.
5774 * config/i386/x86-64.h: Likewise.
5775 * config/i386/x86intrin.h: Likewise.
5776 * config/i386/xmmintrin.h: Likewise.
5777 * config/ia64/crtbegin.asm: Likewise.
5778 * config/ia64/crtend.asm: Likewise.
5779 * config/ia64/crtfastmath.c: Likewise.
5780 * config/ia64/crti.asm: Likewise.
5781 * config/ia64/crtn.asm: Likewise.
5782 * config/ia64/fde-glibc.c: Likewise.
5783 * config/ia64/lib1funcs.asm: Likewise.
5784 * config/ia64/linux-unwind.h: Likewise.
5785 * config/ia64/quadlib.c: Likewise.
5786 * config/ia64/unwind-ia64.c: Likewise.
5787 * config/linux.h: Likewise.
5788 * config/m32c/m32c-lib1.S: Likewise.
5789 * config/m32c/m32c-lib2-trapv.c: Likewise.
5790 * config/m32c/m32c-lib2.c: Likewise.
5791 * config/m32r/initfini.c: Likewise.
5792 * config/m68hc11/larith.asm: Likewise.
5793 * config/m68hc11/m68hc11-crt0.S: Likewise.
5794 * config/m68k/cf.md: Likewise.
5795 * config/m68k/crti.s: Likewise.
5796 * config/m68k/crtn.s: Likewise.
5797 * config/m68k/lb1sf68.asm: Likewise.
5798 * config/m68k/linux-unwind.h: Likewise.
5799 * config/mcore/crti.asm: Likewise.
5800 * config/mcore/crtn.asm: Likewise.
5801 * config/mcore/lib1.asm: Likewise.
5802 * config/mips/linux-unwind.h: Likewise.
5803 * config/mips/loongson.h: Likewise.
5804 * config/mips/mips16.S: Likewise.
5805 * config/mmix/crti.asm: Likewise.
5806 * config/mmix/crtn.asm: Likewise.
5807 * config/pa/fptr.c: Likewise.
5808 * config/pa/hpux-unwind.h: Likewise.
5809 * config/pa/lib2funcs.asm: Likewise.
5810 * config/pa/linux-atomic.c: Likewise.
5811 * config/pa/linux-unwind.h: Likewise.
5812 * config/pa/milli64.S: Likewise.
5813 * config/pa/quadlib.c: Likewise.
5814 * config/pa/stublib.c: Likewise.
5815 * config/picochip/libgccExtras/adddi3.asm: Likewise.
5816 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5817 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5818 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5819 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5820 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5821 * config/picochip/libgccExtras/divmod15.asm: Likewise.
5822 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5823 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5824 * config/picochip/libgccExtras/longjmp.asm: Likewise.
5825 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5826 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5827 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5828 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5829 * config/picochip/libgccExtras/setjmp.asm: Likewise.
5830 * config/picochip/libgccExtras/subdi3.asm: Likewise.
5831 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5832 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5833 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5834 * config/rs6000/750cl.h: Likewise.
5835 * config/rs6000/altivec.h: Likewise.
5836 * config/rs6000/biarch64.h: Likewise.
5837 * config/rs6000/crtresfpr.asm: Likewise.
5838 * config/rs6000/crtresgpr.asm: Likewise.
5839 * config/rs6000/crtresxfpr.asm: Likewise.
5840 * config/rs6000/crtresxgpr.asm: Likewise.
5841 * config/rs6000/crtsavfpr.asm: Likewise.
5842 * config/rs6000/crtsavgpr.asm: Likewise.
5843 * config/rs6000/darwin-asm.h: Likewise.
5844 * config/rs6000/darwin-fallback.c: Likewise.
5845 * config/rs6000/darwin-fpsave.asm: Likewise.
5846 * config/rs6000/darwin-ldouble.c: Likewise.
5847 * config/rs6000/darwin-tramp.asm: Likewise.
5848 * config/rs6000/darwin-unwind.h: Likewise.
5849 * config/rs6000/darwin-vecsave.asm: Likewise.
5850 * config/rs6000/darwin-world.asm: Likewise.
5851 * config/rs6000/e500crtres32gpr.asm: Likewise.
5852 * config/rs6000/e500crtres64gpr.asm: Likewise.
5853 * config/rs6000/e500crtres64gprctr.asm: Likewise.
5854 * config/rs6000/e500crtrest32gpr.asm: Likewise.
5855 * config/rs6000/e500crtrest64gpr.asm: Likewise.
5856 * config/rs6000/e500crtresx32gpr.asm: Likewise.
5857 * config/rs6000/e500crtresx64gpr.asm: Likewise.
5858 * config/rs6000/e500crtsav32gpr.asm: Likewise.
5859 * config/rs6000/e500crtsav64gpr.asm: Likewise.
5860 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5861 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5862 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5863 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5864 * config/rs6000/eabi-ci.asm: Likewise.
5865 * config/rs6000/eabi-cn.asm: Likewise.
5866 * config/rs6000/eabi.asm: Likewise.
5867 * config/rs6000/linux-unwind.h: Likewise.
5868 * config/rs6000/linux64.h: Likewise.
5869 * config/rs6000/paired.h: Likewise.
5870 * config/rs6000/paired.md: Likewise.
5871 * config/rs6000/ppc64-fp.c: Likewise.
5872 * config/rs6000/ppu_intrinsics.h: Likewise.
5873 * config/rs6000/rs6000.h: Likewise.
5874 * config/rs6000/si2vmx.h: Likewise.
5875 * config/rs6000/sol-ci.asm: Likewise.
5876 * config/rs6000/sol-cn.asm: Likewise.
5877 * config/rs6000/spe.h: Likewise.
5878 * config/rs6000/spu2vmx.h: Likewise.
5879 * config/rs6000/sysv4.h: Likewise.
5880 * config/rs6000/tramp.asm: Likewise.
5881 * config/rs6000/vec_types.h: Likewise.
5882 * config/s390/linux-unwind.h: Likewise.
5883 * config/s390/tpf-unwind.h: Likewise.
5884 * config/score/crti.asm: Likewise.
5885 * config/score/crtn.asm: Likewise.
5886 * config/sh/crt1.asm: Likewise.
5887 * config/sh/crti.asm: Likewise.
5888 * config/sh/crtn.asm: Likewise.
5889 * config/sh/divtab-sh4-300.c: Likewise.
5890 * config/sh/divtab-sh4.c: Likewise.
5891 * config/sh/divtab.c: Likewise.
5892 * config/sh/lib1funcs-4-300.asm: Likewise.
5893 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5894 * config/sh/lib1funcs.asm: Likewise.
5895 * config/sh/lib1funcs.h: Likewise.
5896 * config/sh/linux-atomic.asm: Likewise.
5897 * config/sh/linux-unwind.h: Likewise.
5898 * config/sh/shmedia.h: Likewise.
5899 * config/sh/sshmedia.h: Likewise.
5900 * config/sh/ushmedia.h: Likewise.
5901 * config/sparc/crtfastmath.c: Likewise.
5902 * config/sparc/linux-unwind.h: Likewise.
5903 * config/sparc/sol2-c1.asm: Likewise.
5904 * config/sparc/sol2-ci.asm: Likewise.
5905 * config/sparc/sol2-cn.asm: Likewise.
5906 * config/spu/divmodti4.c: Likewise.
5907 * config/spu/divv2df3.c: Likewise.
5908 * config/spu/float_disf.c: Likewise.
5909 * config/spu/float_unsdidf.c: Likewise.
5910 * config/spu/float_unsdisf.c: Likewise.
5911 * config/spu/float_unssidf.c: Likewise.
5912 * config/spu/mfc_multi_tag_release.c: Likewise.
5913 * config/spu/mfc_multi_tag_reserve.c: Likewise.
5914 * config/spu/mfc_tag_release.c: Likewise.
5915 * config/spu/mfc_tag_reserve.c: Likewise.
5916 * config/spu/mfc_tag_table.c: Likewise.
5917 * config/spu/multi3.c: Likewise.
5918 * config/spu/spu_internals.h: Likewise.
5919 * config/spu/spu_intrinsics.h: Likewise.
5920 * config/spu/spu_mfcio.h: Likewise.
5921 * config/spu/vec_types.h: Likewise.
5922 * config/spu/vmx2spu.h: Likewise.
5923 * config/stormy16/stormy16-lib2.c: Likewise.
5924 * config/svr4.h: Likewise.
5925 * config/sync.c: Likewise.
5926 * config/v850/lib1funcs.asm: Likewise.
5927 * config/vxlib-tls.c: Likewise.
5928 * config/vxlib.c: Likewise.
5929 * config/vxworks-dummy.h: Likewise.
5930 * config/xtensa/crti.asm: Likewise.
5931 * config/xtensa/crtn.asm: Likewise.
5932 * config/xtensa/ieee754-df.S: Likewise.
5933 * config/xtensa/ieee754-sf.S: Likewise.
5934 * config/xtensa/lib1funcs.asm: Likewise.
5935 * config/xtensa/lib2funcs.S: Likewise.
5936 * config/xtensa/linux-unwind.h: Likewise.
5937 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5938 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5939 * coretypes.h: Likewise.
5940 * crtstuff.c: Likewise.
5941 * defaults.h: Likewise.
5942 * dwarf2.h: Likewise.
5943 * emutls.c: Likewise.
5944 * gbl-ctors.h: Likewise.
5945 * gcov-io.h: Likewise.
5946 * ginclude/float.h: Likewise.
5947 * ginclude/iso646.h: Likewise.
5948 * ginclude/stdarg.h: Likewise.
5949 * ginclude/stdbool.h: Likewise.
5950 * ginclude/stddef.h: Likewise.
5951 * ginclude/stdfix.h: Likewise.
5952 * ginclude/stdint-gcc.h: Likewise.
5953 * ginclude/tgmath.h: Likewise.
5954 * gthr-aix.h: Likewise.
5955 * gthr-dce.h: Likewise.
5956 * gthr-gnat.c: Likewise.
5957 * gthr-gnat.h: Likewise.
5958 * gthr-lynx.h: Likewise.
5959 * gthr-mipssde.h: Likewise.
5960 * gthr-nks.h: Likewise.
5961 * gthr-posix.c: Likewise.
5962 * gthr-posix.h: Likewise.
5963 * gthr-posix95.h: Likewise.
5964 * gthr-rtems.h: Likewise.
5965 * gthr-single.h: Likewise.
5966 * gthr-solaris.h: Likewise.
5967 * gthr-tpf.h: Likewise.
5968 * gthr-vxworks.h: Likewise.
5969 * gthr-win32.h: Likewise.
5970 * gthr.h: Likewise.
5971 * libgcc2.c: Likewise.
5972 * libgcc2.h: Likewise.
5973 * libgcov.c: Likewise.
5974 * tsystem.h: Likewise.
5975 * typeclass.h: Likewise.
5976 * unwind-c.c: Likewise.
5977 * unwind-compat.h: Likewise.
5978 * unwind-dw2-fde-compat.c: Likewise.
5979 * unwind-dw2-fde-darwin.c: Likewise.
5980 * unwind-dw2-fde-glibc.c: Likewise.
5981 * unwind-dw2-fde.c: Likewise.
5982 * unwind-dw2-fde.h: Likewise.
5983 * unwind-dw2.c: Likewise.
5984 * unwind-dw2.h: Likewise.
5985 * unwind-generic.h: Likewise.
5986 * unwind-pe.h: Likewise.
5987 * unwind-sjlj.c: Likewise.
5988 * unwind.inc: Likewise.
5989 * config/arm/neon-gen.ml: Change generated copyright header to
5990 refer to version 3 of the GNU General Public License with
5991 version 3.1 of the GCC Runtime Library Exception and to point
5992 readers at the COPYING3 and COPYING3.RUNTIME files and the
5993 FSF's license web page.
5994 * config/arm/arm_neon.h: Regenerate.
5995
59962009-04-09 Jakub Jelinek <jakub@redhat.com>
5997
5998 * config/cris/cris.md: Change copyright header to refer to version
5999 3 of the GNU General Public License.
6000 * doc/install.texi2html: Change copyright header to refer to version
6001 3 of the GNU General Public License and to point readers at the
6002 COPYING3 file and the FSF's license web page.
6003 * config/vax/linux.h: Likewise.
6004
4a77c72b
PB
60052009-04-09 Paolo Bonzini <bonzini@gnu.org>
6006
1ad2f450
L
6007 * config/i386/i386.md (cmpcc): New.
6008 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
6009 (sync_compare_and_swap_cc*): Delete.
6010
6011 * config/s390/s390.c (s390_compare_emitted): Remove.
6012 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
6013 s390_compare_emitted used to be handled. Assert that modes match.
6014 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
6015 refer to sync_compare_and_swap_ccsi.
6016 * config/s390/s390.h (s390_compare_emitted): Remove.
6017 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
6018 instead of s390_compare_emitted.
6019 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
6020 instead of s390_compare_emitted.
6021 * config/s390/s390.md (cmpcc): New.
6022 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
6023 CC_REGNUM, do not pretend it's set.
6024 (sync_compare_and_swap_cc*): Delete.
6025 * config/s390/predicates.md (cc_reg_operand): New.
6026
6027 * expr.c (sync_compare_and_swap_cc): Delete.
6028 * optabs.h (sync_compare_and_swap_cc): Delete.
6029 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
6030 is being used with can_compare_p.
6031 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
6032 (find_cc_set): New.
6033 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
6034 look for a MODE_CC set instead. Use emit_store_flag.
6035 (expand_compare_and_swap_loop): Likewise, with some additional
6036 complication to avoid a force_reg when useless. Use
6037 emit_cmp_and_jump_insns.
6038 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
6039 * doc/md.texi (sync_compare_and_swap_cc): Merge with
6040 sync_compare_and_swap documentation.
4a77c72b 6041
0c0efb33
JH
60422009-04-09 Jan Hubicka <jh@suse.cz>
6043
6044 * except.c (find_prev_try): Break out from ....
6045 (duplicate_eh_regions): ... here; properly update prev_try pointers
6046 when duplication part of tree.
6047 (dump_eh_tree): Improve dumping.
6048 (verify_eh_region): New.
6049 (verify_eh_tree): Use it.
6050
22a65a54
RG
60512009-04-06 Richard Guenther <rguenther@suse.de>
6052
6053 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
6054 &ARRAY addresses by adjusting their types and prepending
6055 a conversion.
6056 * tree-cfg.c (verify_gimple_assign_single): Verify that
6057 addresses are correct.
6058
f76968e6
RG
60592009-04-09 Richard Guenther <rguenther@suse.de>
6060
6061 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
6062 indices into an array reference if possible.
6063 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6064 Fold POINTER_PLUS_EXPR statements with invariant address.
6065
c90c5fb5
AM
60662009-04-09 Alan Modra <amodra@bigpond.net.au>
6067
6068 PR target/39634
6069 * config.gcc (powerpc64-*-linux*): Always build biarch.
6070
17cede2e
JM
60712009-04-09 Joseph Myers <joseph@codesourcery.com>
6072
6073 PR c/39613
6074 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
6075 it and pedwarn if this results in an INTEGER_CST.
6076
a3337ea2
KG
60772009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6078
6079 * doc/install.texi: Update minimum GMP version. Remove obsolete
6080 text in MPFR section.
6081
ce9ba79b
JJ
60822009-04-08 Jakub Jelinek <jakub@redhat.com>
6083
6084 * dwarf2out.c (class_scope_p): New static inline.
6085 (class_or_namespace_scope_p): Use it.
6086 (gen_variable_die): Use DW_TAG_member tag for static data member
6087 declarations instead of DW_TAG_variable.
6088
4f0ae266
JJ
6089 PR middle-end/39573
6090 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
6091 variables.
6092
d27f0ddc
RG
60932009-04-08 Richard Guenther <rguenther@suse.de>
6094
6095 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
6096 valueize random data.
6097
557cc596
DE
60982009-04-08 David Edelsohn <edelsohn@gnu.org>
6099
6100 * config.gcc (aix tm_file): Add aix-stdint.h.
6101 (aix tm clause use_gcc_stdint): Set to wrap.
6102 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 6103
75ccc1e7
RG
61042009-04-08 Richard Guenther <rguenther@suse.de>
6105
6106 PR middle-end/36291
6107 * tree-dfa.c (add_referenced_var): Do not recurse into
6108 global initializers.
6109 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
6110 exposed variables.
6111 (fold_const_aggregate_ref): Likewise.
6112
c6963675
PB
61132009-04-08 Paolo Bonzini <bonzini@gnu.org>
6114
6c44cf79
L
6115 * recog.c (ordered_comparison_operator): New.
6116 * gensupport.c (std_preds): Add it.
c6963675
PB
6117 * doc/md.texi (Machine-Independent Predicates): Document it.
6118
6d07ad98
JH
61192009-04-08 Jan Hubicka <jh@suse.cz>
6120
6121 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
6122 * function.h (rtl_eh): Remove exception_handler_label_map.
6123 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
6124 remove_exception_handler_label, for_each_eh_label_1): Remove.
6125 (rtl_remove_unreachable_regions): Remove.
6126 (convert_from_eh_region_ranges): Do not remove unreachable regions.
6127 (find_exception_handler_labels): Don't build the hashtable.
6128 (maybe_remove_eh_handler): Remove.
6129 (for_each_eh_label): Rewrite to walk the tree.
6130 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
6131 * except.h (maybe_remove_eh_handler): Remove.
6132 * passes.c (init_optimization_passes): Schedule second EH cleanup
6133 before out-of-ssa.
6134 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
6135 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
6136
7ddf71e3
PB
61372009-04-08 Paolo Bonzini <bonzini@gnu.org>
6138
6139 * genoutput.c (validate_optab_operands): New.
6140 (gen_insn, gen_expand): Call it.
6141
6142 * genflags.c (gen_insn): Detect misused iterators.
6143 (main): Pass line_no to gen_insn, exit with status 1 on error.
6144
6145 * genextract.c (line_no): Make global.
6146 (VEC_safe_set_locstr): Change assertion to error message.
6147 (main): Exit with status 1 on error.
6148
4d84fe7c
JM
61492009-04-08 Joseph Myers <joseph@codesourcery.com>
6150
6151 PR c/39614
6152 PR c/39673
6153 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6154 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6155 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
6156 * c-convert.c (convert): Do not call fold on results of conversion
6157 functions when the result is a C_MAYBE_CONST_EXPR.
6158 * c-parser.c (c_parser_postfix_expression): Do not fold condition
6159 of __builtin_choose_expr.
6160 * c-typeck.c (remove_c_maybe_const_expr): New.
6161 (build_unary_op, build_conditional_expr, build_compound_expr,
6162 build_binary_op, c_objc_common_truthvalue_conversion): Call
6163 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
6164 integer operands.
6165
60839f5d 61662009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 6167
2ba9daa7 6168 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 6169 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 6170
8e481a2c
DS
61712009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
6172
6173 PR bootstrap/39660
6174 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
6175 mix declarations and code.
6176
ee618c17
BE
61772009-04-08 Ben Elliston <bje@au.ibm.com>
6178
6179 * gcc.c: Replace `CC' with `GCC' throughout.
6180
f2a758a2
L
61812009-04-07 H.J. Lu <hongjiu.lu@intel.com>
6182
6183 * doc/invoke.texi: Document Atom support.
6184
6ea2bd47
JM
61852009-04-07 Jason Merrill <jason@redhat.com>
6186
6187 PR c++/25185
6188 * c-common.h, c-common.c: Add flag_pretty_templates.
6189 * c-opts.c (c_common_handle_option): Set it.
6190 * c.opt: Add -fno-pretty-templates.
6191 * doc/invoke.texi (C++ Dialect Options): Likewise.
6192
fcb82ab0
UB
61932009-04-07 Uros Bizjak <ubizjak@gmail.com>
6194
6195 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
6196 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
6197 (ia64_expand_builtin): Likewise.
6198
dc5e7298
MJ
61992009-04-07 Martin Jambor <mjambor@suse.cz>
6200
6201 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
6202 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
6203 ADDR_EXPRS are include too.
6204
0609b355
RG
62052009-04-07 Richard Guenther <rguenther@suse.de>
6206
6207 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
6208 decls are only used if passes as parameters or if they are
6209 local statics and the call is not to a builtin.
6210 (call_may_clobber_ref_p_1): Likewise.
6211
d8e535fa
PB
62122009-04-07 Paolo Bonzini <bonzini@gnu.org>
6213
6214 * expr.c (do_store_flag): Remove last argument. Simplify code
6215 to avoid duplication of tests already done by can_compare_p.
6216 (expand_expr_real_1): Adjust caller.
6217
c3c64f50
PB
62182009-04-07 Paolo Bonzini <bonzini@gnu.org>
6219
fcb82ab0
UB
6220 * optabs.c (can_compare_p): Test the predicate of a
6221 cbranch and cstore pattern.
c3c64f50 6222
9a53bc17
PB
62232009-04-07 Paolo Bonzini <bonzini@gnu.org>
6224
fcb82ab0
UB
6225 * expr.c (convert_move): Use emit_store_flag instead of
6226 "emulating" it.
9a53bc17 6227
67b8f1c1
PB
62282009-04-07 Paolo Bonzini <bonzini@gnu.org>
6229
fcb82ab0
UB
6230 * config/i386/i386.c (ix86_compare_emitted): Remove.
6231 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
6232 ix86_compare_op0 like ix86_compare_emitted used to be handled.
6233 * config/i386/i386.h (ix86_compare_emitted): Remove.
6234 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
6235 instead of ix86_compare_emitted.
6236 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 6237
44509946
AS
62382009-04-07 Andrew Stubbs <ams@codesourcery.com>
6239
6240 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
6241 Add t-sysroot-suffix to tmake_file.
6242 * config/print-sysroot-suffix.sh: New file.
6243 * config/t-sysroot-suffix: New file.
6244
ca22d882
BE
62452009-04-07 Ben Elliston <bje@au.ibm.com>
6246
6247 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
6248 as the latter produces a warning when the target does not support
6249 infinity.
6250
95aac11b
BE
62512009-04-07 Ben Elliston <bje@au.ibm.com>
6252
6253 * dfp.c: Replace type punning assignments with memcpy throughout.
6254 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 6255
633dd061
AM
62562009-04-07 Alan Modra <amodra@bigpond.net.au>
6257
6258 PR target/39634
6259 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
6260 Include soft-fp/t-softfp after rs6000/t-linux64.
6261
fe0a25ec
EB
62622009-04-06 Eric Botcazou <ebotcazou@adacore.com>
6263
6264 * stor-layout.c (set_sizetype): Use the full precision of their
6265 machine mode for bitsize types.
6266
0c011bc3
L
62672009-04-06 H.J. Lu <hongjiu.lu@intel.com>
6268
6269 * config/i386/i386.md: Revert 2 accidental checkins.
6270
b6837b94 62712009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 6272 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
6273 H.J. Lu <hongjiu.lu@intel.com>
6274
6275 Atom pipeline model, tuning and insn selection.
6276 * config.gcc (atom): Add atom config options and target.
6277
6278 * config/i386/atom.md: New.
6279
6280 * config/i386/i386.c (atom_cost): New cost.
6281 (m_ATOM): New macro flag.
6282 (initial_ix86_tune_features): Set m_ATOM.
6283 (x86_accumulate_outgoing_args): Likewise.
6284 (x86_arch_always_fancy_math_387): Likewise.
6285 (processor_target): Add Atom cost.
6286 (cpu_names): Add Atom cpu name.
6287 (override_options): Set Atom ISA.
6288 (ix86_issue_rate): New case PROCESSOR_ATOM.
6289 (ix86_adjust_cost): Likewise.
6290
6291 * config/i386/i386.h (TARGET_ATOM): New target macro.
6292 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
6293 (TARGET_OPT_AGU): New target option.
6294 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
6295 (processor_type): Add PROCESSOR_ATOM.
6296
6297 * config/i386/i386.md (cpu): Add new value "atom".
6298 (use_carry, movu): New attr.
6299 (atom.md): Include atom.md.
6300 (adddi3_carry_rex64): Set attr "use_carry".
6301 (addqi3_carry): Likewise.
6302 (addhi3_carry): Likewise.
6303 (addsi3_carry): Likewise.
6304 (*addsi3_carry_zext): Likewise.
6305 (subdi3_carry_rex64): Likewise.
6306 (subqi3_carry): Likewise.
6307 (subhi3_carry): Likewise.
6308 (subsi3_carry): Likewise.
6309 (x86_movdicc_0_m1_rex64): Likewise.
6310 (*x86_movdicc_0_m1_se): Likewise.
6311 (x86_movsicc_0_m1): Likewise.
6312 (*x86_movsicc_0_m1_se): Likewise.
6313 (*adddi_1_rex64): Emit add insn as much as possible.
6314 (*addsi_1): Likewise.
6315 (return_internal): Set atom_unit.
6316 (return_internal_long): Likewise.
6317 (return_pop_internal): Likewise.
6318 (*rcpsf2_sse): Set atom_sse_attr attr.
6319 (*qrt<mode>2_sse): Likewise.
6320 (*prefetch_sse): Likewise.
6321
6322 * config/i386/i386-c.c (ix86_target_macros_internal): New case
6323 PROCESSOR_ATOM.
6324 (ix86_target_macros_internal): Likewise.
6325
6326 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
6327 (*prefetch_sse_rex): Likewise.
6328 (sse_rcpv4sf2): Likewise.
6329 (sse_vmrcpv4sf2): Likewise.
6330 (sse_sqrtv4sf2): Likewise.
6331 (<sse>_vmsqrt<mode>2): Likewise.
6332 (sse_ldmxcsr): Likewise.
6333 (sse_stmxcsr): Likewise.
6334 (*sse_sfence): Likewise.
6335 (sse2_clflush): Likewise.
6336 (*sse2_mfence): Likewise.
6337 (*sse2_lfence): Likewise.
6338 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
6339 (<sse>_movup<ssemodesuffixf2c>): Likewise.
6340 (avx_movdqu<avxmodesuffix>): Likewise.
6341 (avx_lddqu<avxmodesuffix>): Likewise.
6342 (sse2_movntv2di): Change attr "type" to "ssemov".
6343 (sse2_movntsi): Likewise.
6344 (rsqrtv8sf2): Change attr "type" to "sseadd".
6345 (sse3_addsubv2df3): Set attr "atom_unit".
6346 (sse3_h<plusminus_insn>v4sf3): Likewise.
6347 (*sse2_pmaddwd): Likewise.
6348 (*vec_extractv2di_1_rex64): Likewise.
6349 (*vec_extractv2di_1_avx): Likewise.
6350 (sse2_psadbw): Likewise.
6351 (ssse3_phaddwv8hi3): Likewise.
6352 (ssse3_phaddwv4hi3): Likewise.
6353 (ssse3_phadddv4si3): Likewise.
6354 (ssse3_phadddv2si3): Likewise.
6355 (ssse3_phaddswv8hi3): Likewise.
6356 (ssse3_phaddswv4hi3): Likewise.
6357 (ssse3_phsubwv8hi3): Likewise.
6358 (ssse3_phsubwv4hi3): Likewise.
6359 (ssse3_phsubdv4si3): Likewise.
6360 (ssse3_phsubdv2si3): Likewise.
6361 (ssse3_phsubswv8hi3): Likewise.
6362 (ssse3_phsubswv4hi3): Likewise.
6363 (ssse3_pmaddubsw128): Likewise.
6364 (sse3_pmaddubsw: Likewise.
6365 (ssse3_palignrti): Likewise.
6366 (ssse3_palignrdi): Likewise.
6367
53e350d3
GP
63682009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
6369
6370 * doc/install.texi (Specific): Fix two cross-references to MinGW.
6371
439ef907
RG
63722009-04-06 Richard Guenther <rguenther@suse.de>
6373
6374 PR tree-optimization/28868
6375 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6376 of which PHI results we inserted.
6377 (insert_into_preds_of_block): Record inserted PHIs.
6378 (eliminate): Eliminate redundant PHI nodes.
6379 (init_pre): Init inserted_phi_names.
6380
4bad83f5
RG
63812009-04-06 Richard Guenther <rguenther@suse.de>
6382
6383 PR tree-optimization/39643
6384 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6385 IMAGPART_EXPRs of complex constants.
6386 (execute_fold_all_builtins): If we folded a call queue
6387 TODO_update_address_taken.
6388
570c4247
JH
63892009-04-06 Jan Hubicka <jh@suse.cz>
6390
6391 PR middle-end/39659
6392 * except.c (remove_unreachable_regions): Propagate may_contain_throw
6393 flag.
6394
a460d7a1
AS
63952009-04-06 Andrew Stubbs <ams@codesourcery.com>
6396
6397 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6398 delay slot.
6399 (ic_invalidate_array): Likewise.
6400
60839f5d 64012009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
6402
6403 * calls.c (emit_library_call_value_1): Fix a problem with parameter
6404 alignment for library calls.
6405
7d253f6e
DS
64062009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
6407
6408 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
6409 (mingw32 tm clause use_gcc_stdint): Set to wrap.
6410 * config/i386/mingw-stdint.h: New file.
6411
941c3614
RB
64122009-04-05 Richard Guenther <rguenther@suse.de>
6413
6414 PR tree-optimization/39648
6415 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6416 our &A vs. &A[0] IL deficiencies.
6417
12633413
JH
64182009-04-04 Jan Hubicka <jh@suse.cz>
6419
941c3614
RB
6420 * except.c (sjlj_find_directly_reachable_regions): Be ready for
6421 removed toplevel regions.
12633413
JH
6422 (sjlj_mark_call_sites): Likewise.
6423
bb2aaded
DK
64242009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
6425
6426 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
6427 (cygwin tm clause use_gcc_stdint): Set to wrap.
6428 * config/i386/cygwin-stdint.h: New file.
6429
86290011
RG
64302009-04-04 Richard Guenther <rguenther@suse.de>
6431
6432 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6433 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6434 single-argument PHIs if we are in loop-closed SSA form.
6435 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6436 for the pre-condition.
6437 (slpeel_tree_peel_loop_to_edge): Likewise.
6438 (vect_build_loop_niters): Take an optional sequence to append stmts.
6439 (vect_generate_tmps_on_preheader): Likewise.
6440 (vect_do_peeling_for_loop_bound): Take extra guards for the
6441 pre-condition.
6442 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
6443 the cost model check.
6444 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 6445 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
6446 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6447 (vect_do_peeling_for_loop_bound): Likewise.
6448 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6449 loop bound only record extra pre-conditions, do not apply loop
6450 versioning.
6451
5eeeac64
RG
64522009-04-04 Richard Guenther <rguenther@suse.de>
6453
6454 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6455 renaming code.
6456
1ff7d06b
JH
64572009-04-04 Jan Hubicka <jh@suse.cz>
6458
6459 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6460 last_basic_block for size of bb->index indexed array.
6461 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6462 compute_out, link_btr_uses, build_btr_def_use_webs,
6463 build_btr_def_use_webs, migrate_btr_defs): Likewise.
6464
14925fcd
JH
64652009-04-04 Jan Hubicka <jh@suse.cz>
6466
6467 * except.c (remove_eh_handler_and_replace): Break out from ...
6468 (remove_eh_handler): ... here.
6469 (bring_to_root): New function.
6470 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6471 handled ones, bring others to root of tree.
6472
4e6d1743
JH
64732009-04-04 Jan Hubicka <jh@suse.cz>
6474
4cb735f7
JH
6475 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6476 (all_phis_safe_to_merge): New function.
6477 (update_info): New structure.
6478 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6479 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 6480
c6803d43
RG
64812009-04-04 Richard Guenther <rguenther@suse.de>
6482
6483 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6484 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6485 (append_vuse): Likewise.
6486
54f5943c
JJ
64872009-04-04 Jakub Jelinek <jakub@redhat.com>
6488
6489 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6490 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6491 instead of REG_UNSAVED for DW_CFA_undefined.
6492 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6493 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6494 outermost frame.
6495
aad2bccb
RE
64962009-04-04 Richard Earnshaw <rearnsha@arm.com>
6497
6498 PR target/39501
6499 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6500 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6501 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6502
aa7069aa
RG
65032009-04-04 Richard Guenther <rguenther@suse.de>
6504
6505 PR tree-optimization/8781
6506 PR tree-optimization/37892
6507 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6508 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6509 (valueize_refs): Call it for *& valueizations.
6510 (shared_reference_ops_from_ref): Rename to ...
6511 (valueize_shared_reference_ops_from_ref): ... this and valueize.
6512 (shared_reference_ops_from_call): Rename to ...
6513 (valueize_shared_reference_ops_from_call): ... this and valueize.
6514 (vn_reference_lookup): Update.
6515 (visit_reference_op_call): Likewise.
6516 * tree-ssa-pre.c (phi_translate_1): Fold *&.
6517 (eliminate): Value-replace the call address in call statements.
6518
cd15ad3e
RG
65192009-04-04 Richard Guenther <rguenther@suse.de>
6520
6521 PR tree-optimization/39636
6522 * tree-ssa-forwprop.c
6523 (forward_propagate_addr_into_variable_array_index): Check for
6524 GIMPLE_ASSIGN before accessing the rhs code.
6525
462f3262
JM
65262009-04-03 Jason Merrill <jason@redhat.com>
6527
6528 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6529
6adb807e
SE
65302009-04-03 Steve Ellcey <sje@cup.hp.com>
6531
6532 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6533 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6534 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6535 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6536 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6537 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6538 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6539 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6540 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6541 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6542 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6543 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6544 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6545 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6546 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6547 Use fr_reg_or_fp01_operand instead of fr_register_operand
6548
6549 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6550 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6551 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6552
174b3107
VM
65532009-04-03 Vladimir Makarov <vmakarov@redhat.com>
6554
b844e5d8
L
6555 PR rtl-optimization/39607
6556 PR rtl-optimization/39631
7a715bba
UB
6557
6558 Revert:
2ba9daa7 6559
174b3107
VM
6560 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
6561 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6562 instead of DF_LR_OUT.
6563 * ira-lives.c (process_bb_node_lives): Ditto.
6564 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6565 instead of DF_LR_{OUT,IN}.
6566 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6567 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6568
535b544a
SB
65692009-04-03 Steven Bosscher <steven@gcc.gnu.org>
6570
6571 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6572 (execute_lower_omp): Always run but take the short way out if -fopenmp
6573 is not given.
6574 (gate_lower_omp): Remove, forcing the pass manager to always run the
6575 pass and always set PROP_gimple_lomp.
6576 (pass_lower_omp): Remove gate function.
6577 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6578 PROP_trees. Instead, require it.
6579 * ipa-cp.c (pass_ipa_cp): Likewise.
6580 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6581 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6582 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6583 and PROP_gimple_leh.
6584
5006671f
RG
65852009-04-03 Richard Guenther <rguenther@suse.de>
6586
6587 PR middle-end/13146
6588 PR tree-optimization/23940
6589 PR tree-optimization/33237
6590 PR middle-end/33974
6591 PR middle-end/34093
6592 PR tree-optimization/36201
6593 PR tree-optimization/36230
6594 PR tree-optimization/38049
6595 PR tree-optimization/38207
6596 PR tree-optimization/38230
6597 PR tree-optimization/38301
6598 PR tree-optimization/38585
6599 PR middle-end/38895
6600 PR tree-optimization/38985
6601 PR tree-optimization/39299
6602 * tree-ssa-structalias.h: Remove.
6603 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6604 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6605 (struct vuse_element_d): Remove.
6606 (struct vuse_vec_d): Likewise.
6607 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6608 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6609 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6610 VUSE_ELEMENT_VAR): Likewise.
6611 (struct voptype_d): Likewise.
6612 (NUM_VOP_FREE_BUCKETS): Likewise.
6613 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6614 (struct stmt_operands_d): Remove.
6615 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6616 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6617 VDEF_NUM, VDEF_VECT): Likewise.
6618 (copy_virtual_operands): Remove.
6619 (operand_build_cmp): Likewise.
6620 (create_ssa_artificial_load_stmt): Likewise.
6621 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6622 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6623 vuse_index and mayuse_index members. Pack and move done and iter_type
6624 members to the front.
6625 (SSA_OP_VMAYUSE): Remove.
6626 (SSA_OP_VIRTUAL_USES): Adjust.
6627 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6628 (unlink_stmt_vdef): Declare.
6629 (add_to_addressable_set): Remove.
6630 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6631 (vrp_visit_stmt): Likewise.
6632 * doc/tree-ssa.texi (Alias analysis): Update.
6633 * doc/invoke.texi (max-aliased-vops): Remove docs.
6634 (avg-aliased-vops): Likewise.
6635 * tree-into-ssa.c (syms_to_rename): Remove.
6636 (need_to_update_vops_p): Likewise.
6637 (need_to_initialize_update_ssa_p): Rename to ...
6638 (update_ssa_initialized_fn): ... this. Track function we are
6639 initialized for.
6640 (symbol_marked_for_renaming): Simplify.
6641 (add_new_name_mapping): Do not set need_to_update_vops_p.
6642 (dump_currdefs): Use SYMS_TO_RENAME.
6643 (rewrite_update_stmt): Always walk all uses/defs.
6644 (dump_update_ssa): Adjust.
6645 (init_update_ssa): Take function argument. Track what we are
6646 initialized for.
6647 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6648 (create_new_def_for): Initialize for cfun, assert we are initialized
6649 for cfun.
6650 (mark_sym_for_renaming): Simplify.
6651 (mark_set_for_renaming): Do not initialize update-ssa.
6652 (need_ssa_update_p): Simplify. Take function argument.
6653 (name_mappings_registered_p): Assert we ask for the correct function.
6654 (name_registered_for_update_p): Likewise.
6655 (ssa_names_to_replace): Likewise.
6656 (release_ssa_name_after_update_ssa): Likewise.
6657 (update_ssa): Likewise. Use SYMS_TO_RENAME.
6658 (dump_decl_set): Do not print a newline.
6659 (debug_decl_set): Do it here.
6660 (dump_update_ssa): And here.
6661 * tree-ssa-loop-im.c (move_computations): Adjust.
6662 (movement_possibility): Likewise.
6663 (determine_max_movement): Likewise.
6664 (gather_mem_refs_stmt): Likewise.
6665 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6666 or NAME_MEMORY_TAG.
6667 * tree-complex.c (update_all_vops): Remove.
6668 (expand_complex_move): Adjust.
6669 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6670 Simplify test for memory referencing statement. Exclude
6671 non-invariant ADDR_EXPRs.
6672 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6673 * tree-loop-distribution.c (generate_memset_zero): Adjust.
6674 (rdg_flag_uses): Likewise.
6675 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6676 related code.
6677 (tree_optimize_tail_calls_1): Also split the
6678 edge from the entry block if we have degenerate PHI nodes in
6679 the first basic block.
6680 * tree.c (init_ttree): Remove memory-tag related code.
6681 (tree_code_size): Likewise.
6682 (tree_node_structure): Likewise.
6683 (build7_stat): Re-write to be build6_stat.
6684 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6685 (SSA_VAR_P): Adjust.
6686 (struct tree_memory_tag): Remove.
6687 (struct tree_memory_partition_tag): Likewise.
6688 (union tree_node): Adjust.
6689 (build7): Re-write to be build6.
6690 * tree-pass.h (pass_reset_cc_flags): Remove.
6691 (TODO_update_address_taken): New flag.
6692 (pass_simple_dse): Remove.
6693 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6694 * params.h (MAX_ALIASED_VOPS): Remove.
6695 (AVG_ALIASED_VOPS): Likewise.
6696 * omp-low.c (expand_omp_taskreg): Update SSA form.
6697 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6698 aliases the lhs in a copy stmt.
6699 * tree-ssa-dse.c (struct address_walk_data): Remove.
6700 (memory_ssa_name_same): Likewise.
6701 (memory_address_same): Likewise.
6702 (get_kill_of_stmt_lhs): Likewise.
6703 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
6704 unused stores. Look through PHI nodes into post-dominated regions.
6705 (dse_optimize_stmt): Simplify. Properly remove stores.
6706 (tree_ssa_dse): Compute dominators.
6707 (execute_simple_dse): Remove.
6708 (pass_simple_dse): Likewise.
6709 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6710 gimple_loaded_syms and gimple_stored_syms computation.
6711 * toplev.c (dump_memory_report): Dump alias and pta stats.
6712 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6713 (vn_reference_eq): Likewise.
6714 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6715 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6716 valueize_vuses): Remove.
6717 (get_def_ref_stmt_vuses): Simplify. Rename to ...
6718 (get_def_ref_stmt_vuse): ... this.
6719 (vn_reference_lookup_2): New function.
6720 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6721 walking equivalent vuses. Simplify.
6722 (vn_reference_lookup): Likewise.
6723 (vn_reference_insert): Likewise.
6724 (vn_reference_insert_pieces): Likewise.
6725 (visit_reference_op_call): Simplify.
6726 (visit_reference_op_load): Likewise.
6727 (visit_reference_op_store): Likewise.
6728 (init_scc_vn): Remove shared_lookup_vuses initialization.
6729 (free_scc_vn): Remove shared_lookup_vuses freeing.
6730 (sort_vuses, sort_vuses_heap): Remove.
6731 (get_ref_from_reference_ops): Export.
6732 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6733 vector with single vuse pointer.
6734 (vn_reference_lookup_pieces, vn_reference_lookup,
6735 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6736 (shared_vuses_from_stmt): Remove.
6737 (get_ref_from_reference_ops): Declare.
6738 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6739 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6740 memory-tag related code.
6741 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6742 (likely_value): Add comment, skip static-chain of call statements.
6743 (surely_varying_stmt_p): Adjust.
6744 (gimplify_and_update_call_from_tree): Likewise.
6745 (execute_fold_all_builtins): Do not rebuild alias info.
6746 (gimplify_and_update_call_from_tree): Properly update VOPs.
6747 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6748 (copy_ref_info): Remove memory-tag related code.
6749 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6750 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6751 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6752 computation.
6753 * tree-ssa-dom.c (gimple_p): Remove typedef.
6754 (eliminate_redundant_computations): Adjust.
6755 (record_equivalences_from_stmt): Likewise.
6756 (avail_expr_hash): Likewise.
6757 (avail_expr_eq): Likewise.
7a715bba 6758 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
6759 (stmt_makes_single_load): Likewise.
6760 (stmt_makes_single_store): Likewise.
6761 * tree-ssa-alias.c: Rewrite completely.
6762 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6763 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6764 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6765 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6766 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6767 Remove public functions.
6768 (pass_reset_cc_flags): Remove.
6769 (pass_build_alias): Move ...
6770 * tree-ssa-structalias.c (pass_build_alias): ... here.
6771 * tree-ssa-alias.c (may_be_aliased): Move ...
6772 * tree-flow-inline.h (may_be_aliased): ... here.
6773 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6774 count_uses_and_derefs): Move ...
6775 * gimple.c: ... here.
6776 * gimple.h (count_uses_and_derefs): Declare.
6777 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6778 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6779 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6780 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6781 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6782 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6783 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6784 New functions.
6785 * tree-dfa.c (refs_may_alias_p): Move ...
6786 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
6787 * tree-ssa-alias.h: New file.
6788 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6789 (statement_sink_location): Likewise.
6790 * opts.c (decode_options): Do not adjust max-aliased-vops or
6791 avg-aliased-vops values.
6792 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6793 (TV_CALL_CLOBBER): Likewise.
6794 (TV_FLOW_SENSITIVE): Likewise.
6795 (TV_FLOW_INSENSITIVE): Likewise.
6796 (TV_MEMORY_PARTITIONING): Likewise.
6797 (TV_ALIAS_STMT_WALK): New timevar.
6798 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6799 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6800 (get_address_description): Remove memory-tag related code.
6801 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6802 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6803 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6804 and immediate uses in statements. Document.
6805 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6806 (dump_symbols): Remove.
6807 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6808 * alias.c (get_deref_alias_set): New function split out from ...
6809 (get_alias_set): ... here.
6810 * alias.h (get_deref_alias_set): Declare.
6811 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6812 type parameter. Remove restrict pointer handling. Create a
6813 ref-all pointer in case type-based alias sets do not conflict.
6814 (vect_analyze_data_refs): Remove SMT related code.
6815 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6816 (vectorizable_load): Likewise.
6817 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6818 (DR_SYMBOL_TAG, DR_VOPS): Remove.
6819 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6820 Ignore vops and SMTs.
6821 (dr_analyze_alias): Likewise..
6822 (free_data_ref): Likewise.
6823 (create_data_ref): Likewise.
6824 (analyze_all_data_dependences): Likewise.
6825 (get_references_in_stmt): Adjust.
6826 * tree-flow-inline.h (gimple_aliases_computed_p,
6827 gimple_addressable_vars, gimple_call_clobbered_vars,
6828 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6829 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6830 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6831 gimple_mem_ref_stats): Remove.
6832 (gimple_vop): New function.
6833 (op_iter_next_use): Remove vuses and mayuses cases.
6834 (op_iter_next_def): Remove vdefs case.
6835 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6836 (clear_and_done_ssa_iter): Do not set removed fields.
6837 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
6838 Assert we are not iterating over vuses or vdefs if not also
6839 iterating over uses or defs.
6840 (op_iter_init_use): Likewise.
6841 (op_iter_init_def): Likewise.
6842 (op_iter_next_vdef): Remove.
6843 (op_iter_next_mustdef): Likewise.
6844 (op_iter_init_vdef): Likewise.
6845 (compare_ssa_operands_equal): Likewise.
6846 (link_use_stmts_after): Handle vuse operand.
6847 (is_call_used): Use is_call_clobbered.
6848 (is_call_clobbered): Global variables are always call clobbered,
6849 query the call-clobbers bitmap.
6850 (mark_call_clobbered): Ignore global variables.
6851 (clear_call_clobbered): Likewise.
6852 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6853 virtual operands sanity check.
6854 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6855 Remove.
6856 (TARGET_MEM_REF): Remove TMR_TAG operand.
6857 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6858 Remove call-clobber related code.
6859 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
6860 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6861 partitions or escape reason.
6862 (get_single_def_stmt, get_single_def_stmt_from_phi,
6863 get_single_def_stmt_with_phi): Remove.
6864 (dump_referenced_vars): Tidy.
6865 (get_ref_base_and_extent): Allow bare decls.
6866 (collect_dfa_stats): Adjust.
6867 * graphite.c (rename_variables_in_stmt): Adjust.
6868 (graphite_copy_stmts_from_block): Likewise.
6869 (translate_clast): Likewise.
6870 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6871 (EXPR_DIES): New.
6872 (translate_vuse_through_block): Use the oracle.
6873 (phi_translate_1): Adjust.
6874 (value_dies_in_block_x): Use the oracle. Cache the outcome
6875 in EXPR_DIES.
6876 (valid_in_sets): Check if the VUSE for
6877 a REFERENCE is available.
6878 (eliminate): Do not remove stmts during elimination,
6879 instead queue and remove them afterwards.
6880 (do_pre): Do not rebuild alias info.
6881 (pass_pre): Run TODO_rebuild_alias before PRE.
6882 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6883 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6884 (mark_all_v_defs_stmt): Remove.
6885 (mark_all_v_defs_seq): Adjust.
6886 (sra_replace): Likewise.
6887 (scalarize_use): Likewise.
6888 (scalarize_copy): Likewise.
6889 (scalarize_init): Likewise.
6890 (scalarize_ldst): Likewise.
6891 (todoflags): Remove.
6892 (tree_sra): Do not rebuild alias info.
6893 (tree_sra_early): Adjust.
6894 (pass_sra): Run TODO_update_address_taken before SRA.
6895 * tree-predcom.c (set_alias_info): Remove.
6896 (prepare_initializers_chain): Do not call it.
6897 (mark_virtual_ops_for_renaming): Adjust.
6898 (mark_virtual_ops_for_renaming_list): Remove.
6899 (initialize_root_vars): Adjust.
6900 (initialize_root_vars_lm): Likewise.
6901 (prepare_initializers_chain): Likewise.
6902 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6903 (may_propagate_copy_into_stmt): Likewise.
6904 (merge_alias_info): Do nothing for now.
6905 (propagate_tree_value_into_stmt): Adjust.
6906 (stmt_may_generate_copy): Likewise.
6907 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6908 not mark symbols for renaming.
6909 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6910 with the same statement, make sure to update the new pointed-to one.
6911 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6912 call statements, do not mark symbols for renaming.
6913 (mark_operand_necessary): Dump something.
6914 (ref_may_be_aliased): New function.
6915 (mark_aliased_reaching_defs_necessary_1): New helper function.
6916 (mark_aliased_reaching_defs_necessary): Likewise.
6917 (mark_all_reaching_defs_necessary_1): Likewise.
6918 (mark_all_reaching_defs_necessary): Likewise.
6919 (propagate_necessity): Do not process virtual PHIs. For
6920 non-aliased loads mark all reaching definitions as necessary.
6921 For aliased loads and stores mark the immediate dominating
6922 aliased clobbers as necessary.
6923 (visited): New global static.
6924 (perform_tree_ssa_dce): Free visited bitmap after propagating
6925 necessity.
6926 (remove_dead_phis): Perform simple dead virtual PHI removal.
6927 (remove_dead_stmt): Properly unlink virtual operands when
6928 removing stores.
6929 (eliminate_unnecessary_stmts): Schedule PHI removal after
6930 stmt removal.
6931 * tree-ssa-ter.c (is_replaceable_p): Adjust.
6932 (process_replaceable): Likewise.
6933 (find_replaceable_in_bb): Likewise.
6934 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6935 based on the single gimple vop.
6936 (verify_flow_insensitive_alias_info): Remove.
6937 (verify_flow_sensitive_alias_info): Likewise.
6938 (verify_call_clobbering): Likewise.
6939 (verify_memory_partitions): Likewise.
6940 (verify_alias_info): Likewise.
6941 (verify_ssa): Adjust..
6942 (execute_update_addresses_taken): Export. Update SSA
6943 manually. Optimize only when optimizing. Use a local bitmap.
6944 (pass_update_address_taken): Remove TODO_update_ssa, add
6945 TODO_dump_func.
6946 (pass_update_address_taken): Just use TODO_update_address_taken.
6947 (init_tree_ssa): Do not initialize addressable_vars.
6948 (verify_ssa): Verify new VUSE / VDEF properties.
6949 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6950 Do not call verify_alias_info.
6951 (delete_tree_ssa): Clear the VUSE, VDEF operands.
6952 Do not free the loaded and stored syms bitmaps. Reset the escaped
6953 and callused solutions. Do not free addressable_vars.
6954 Remove memory-tag related code.
6955 (warn_uninitialized_var): Aliases are always available.
6956 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6957 * lambda-code.c (can_put_in_inner_loop): Adjust.
6958 (can_put_after_inner_loop): Likewise.
6959 (perfect_nestify): Likewise.
6960 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6961 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6962 (vectorizable_conversion): Do not mark symbols for renaming.
6963 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6964 (expand_call_inline): Unlink the calls virtual operands before
6965 replacing it.
6966 (tree_function_versioning): Do not call update_ssa if we are not
6967 updating clones. Simplify.
6968 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6969 (propagate_with_phi): Likewise..
6970 * tree-outof-ssa.c (create_temp): Remove memory tag and call
6971 clobber code. Assert we are not aliased or global.
6972 * tree-flow.h: Include tree-ssa-alias.h
6973 (enum escape_type): Remove.
6974 (struct mem_sym_stats_d): Likewise.
6975 (struct mem_ref_stats_d): Likewise.
6976 (struct gimple_df): Add vop member. Remove global_var,
6977 call_clobbered_vars, call_used_vars, addressable_vars,
6978 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
6979 escaped and callused members.
6980 (struct ptr_info_def): Remove all members, add points-to solution
6981 member pt.
6982 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6983 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6984 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6985 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6986 (tree-ssa-alias.o): Likewise.
6987 (toplev.o): Add tree-ssa-alias.h
6988 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6989 * gimple.c (gimple_set_bb): Fix off-by-one error.
6990 (is_gimple_reg): Do not handle memory tags.
6991 (gimple_copy): Also copy virtual operands.
6992 Delay updating the statement. Do not reset loaded and stored syms.
6993 (gimple_set_stored_syms): Remove.
6994 (gimple_set_loaded_syms): Likewise.
6995 (gimple_call_copy_skip_args): Copy the virtual operands
6996 and mark the new statement modified.
6997 * tree-ssa-structalias.c (may_alias_p): Remove.
6998 (set_uids_in_ptset): Take the alias set to prune with as
6999 parameter. Fold in the alias test of may_alias_p.
7000 (compute_points_to_sets): Compute whether a ptr is dereferenced
7001 in a local sbitmap.
7002 (process_constraint): Deal with &ANYTHING on the lhs, reject all
7003 other ADDRESSOF constraints on the lhs.
7004 (get_constraint_for_component_ref): Assert that we don't get
7005 ADDRESSOF constraints from the base of the reference.
7006 Properly generate UNKNOWN_OFFSET for DEREF if needed.
7007 (struct variable_info): Remove collapsed_to member.
7008 (get_varinfo_fc): Remove.
7009 (new_var_info): Do not set collapsed_to.
7010 (dump_constraint): Do not follow cycles.
7011 (dump_constraint_graph): Likewise.
7012 (build_pred_graph): Likewise.
7013 (build_succ_graph): Likewise.
7014 (rewrite_constraints): Likewise.
7015 (do_simple_structure_copy): Remove.
7016 (do_rhs_deref_structure_copy): Remove.
7017 (do_lhs_deref_structure_copy): Remove.
7018 (collapse_rest_of_var): Remove.
7019 (do_structure_copy): Re-implement.
7020 (pta_stats): New global variable.
7021 (dump_pta_stats): New function.
7022 (struct constraint_expr): Make offset signed.
7023 (UNKNOWN_OFFSET): Define special value.
7024 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
7025 (solution_set_expand): New helper function split out from ...
7026 (do_sd_constraint): ... here.
7027 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
7028 (do_ds_constraint): Likewise.
7029 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
7030 and CALLUSED = *CALLUSED.
7031 (set_union_with_increment): Make inc argument signed.
7032 (type_safe): Remove.
7033 (get_constraint_for_ptr_offset): Handle unknown and negative
7034 constant offsets.
7035 (first_vi_for_offset): Handle offsets before start. Bail
7036 out early for offsets beyond the variable extent.
7037 (first_or_preceding_vi_for_offset): New function.
7038 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
7039 Together with ESCAPED = *ESCAPED this properly computes reachability.
7040 (find_what_var_points_to): New function.
7041 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
7042 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
7043 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
7044 pt_solutions_intersect): New functions.
7045 (compute_call_used_vars): Remove.
7046 (compute_may_aliases): New main entry into PTA computation.
7047 * gimple.h (gimple_p): New typedef.
7048 (struct gimple_statement_base): Remove references_memory_p.
7049 (struct gimple_statement_with_memory_ops_base): Remove
7050 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
7051 members.
7052 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
7053 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
7054 gimple_set_references_memory): Remove.
7055 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
7056 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
7057 New functions.
7058 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
7059 (verify_expr): Allow RESULT_DECL.
7060 (gimple_duplicate_bb): Do not copy virtual operands.
7061 (gimple_duplicate_sese_region): Adjust.
7062 (gimple_duplicate_sese_tail): Likewise.
7063 (mark_virtual_ops_in_region): Remove.
7064 (move_sese_region_to_fn): Do not call it.
7065 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
7066 and pass_simple_dse.
7067 (execute_function_todo): Handle TODO_update_address_taken,
7068 call execute_update_addresses_taken for TODO_rebuild_alias.
7069 (execute_todo): Adjust.
7070 (execute_one_pass): Init dump files early.
7071 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
7072 call-clobbered.
7073 (create_general_new_stmt): Clear vops.
7074 * tree-ssa-reassoc.c (get_rank): Adjust.
7075 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
7076 symbols for renaming.
7077 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
7078 (PARAM_AVG_ALIASED_VOPS): Likewise.
7079 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
7080 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 7081 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
7082 (operand_build_cmp, copy_virtual_operands,
7083 create_ssa_artificial_load_stmt, add_to_addressable_set,
7084 gimple_add_to_addresses_taken): Remove public functions.
7085 (unlink_stmt_vdef): New function.
7086
457d1d00
AM
70872009-04-03 Alan Modra <amodra@bigpond.net.au>
7088
7089 * config.gcc (powerpc-*-linux*): Merge variants.
7090
e19da24c 70912009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 7092 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
7093
7094 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
7095 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
7096 cop0_sp_offset.
7097 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
7098 keep_interrupts_masked_p, use_debug_exception_return_p.
7099 (mips_attribute_table): Add interrupt, use_shadow_register_set,
7100 keep_interrupts_masked, use_debug_exception_return.
7101 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
7102 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
7103 New functions.
7104 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
7105 (mips_print_operand): Process COP0 registers to print $0 .. $31
7106 correctly for GAS to process.
7107 (mips_interrupt_extra_call_saved_reg_p): New function.
7108 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
7109 extra registers.
7110 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
7111 (mips_compute_frame_info): Add supports for interrupt context that
7112 includes doubleword accumulators and COP0 registers.
7113 (mips_for_each_saved_acc): New function.
7114 (mips_for_each_saved_gpr_and_fpr): Change the function name from
7115 mips_for_each_saved_reg.
7116 (mips_save_reg): Save accumulators.
7117 (mips_kernel_reg_p): A new for_each_rtx callback.
7118 (mips_expand_prologue): Support interrupt handlers.
7119 (mips_restore_reg): Restore accumulators.
7120 (mips_expand_epilogue): Support interrupt handlers.
7121 (mips_can_use_return_insn): Return false for interrupt handlers.
7122 (mips_epilogue_uses): New function.
7123 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
7124 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
7125 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
7126 cop0_move): New instructions.
7127 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
7128 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
7129 defines.
7130 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
7131 New defines.
7132 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
7133 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
7134 interrupt handlers, we use K0 as the temporary register.
7135 (EPILOGUE_USES): Change to a function call.
7136 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
7137 handlers, we use K0 as the temporary register.
2ba9daa7 7138
e19da24c
CF
7139 * doc/extend.texi (Function Attributes): Document interrupt,
7140 use_shadow_register_set, keep_interrupts_masked,
7141 use_debug_exception_return for MIPS attributes.
7142
aa1ca044
AM
71432009-04-03 Alan Modra <amodra@bigpond.net.au>
7144
7145 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
7146 Remove a number of t-files from tmake_file.
7147 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
7148 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
7149 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7150 target_prototype, not TARGET_PROTOTYPE.
7151 (LINK_OS_GNU_SPEC): Define.
7152 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
7153 and darwin-ldoubdle.c.
7154
14fdc613
MM
71552009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
7156
7157 PR driver/39293
7158 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
7159 (cpp_options): Ditto.
7160 (default_compilers): Ditto.
7161 (display_help): Ditto.
7162 (process_command): Ditto.
7163 (do_spec_1): Ditto.
7164 (set_input): Use lbasename instead of duplicate code.
7165 (save_temps_prefix): New static for -save-temps=obj.
7166 (save_temps_length): Ditto.
2ba9daa7 7167
14fdc613
MM
7168 * doc/invoke.texi (-save-temps=obj): Document new variant to
7169 -save-temps switch.
7170
d3aa398e
JL
71712009-04-02 Jeff Law <law@redhat.com>
7172
7173 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
7174 variable.
7175
83f0ccb8
L
71762009-04-02 H.J. Lu <hongjiu.lu@intel.com>
7177
7178 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
7179 * configure: Regenerated.
7180
dcb6e951
RAE
71812009-04-02 Rafael Avila de Espindola <espindola@google.com>
7182
7183 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
7184 share the argument list.
7185
d85478c2
RAE
71862009-04-02 Rafael Avila de Espindola <espindola@google.com>
7187
7188 Merge
7189
7190 2009-02-12 Diego Novillo <dnovillo@google.com>
7191
83f0ccb8
L
7192 * varpool.c (debug_varpool): New.
7193 * cgraph.h (debug_varpool): Declare.
d85478c2 7194
34f42a49
JH
71952009-04-02 Jan Hubicka <jh@suse.cz>
7196
7197 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
7198 pass.
7199
a4747b4a
L
72002009-04-02 H.J. Lu <hongjiu.lu@intel.com>
7201
7202 * config/i386/i386.c (ix86_abi): Move initialization to ...
7203 (override_options): Here.
7204
63a9de54
CB
72052009-04-02 Christian Bruel <christian.bruel@st.com>
7206
7207 * config/sh/sh.c (sh_dwarf_register_span): New function.
7208 (TARGET_DWARF_REGISTER_SPAN): Define.
7209 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 7210
2f0fa28e
IR
72112009-04-02 Ira Rosen <irar@il.ibm.com>
7212
7213 PR tree-optimization/39595
2ba9daa7 7214 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
7215 interleaved loads group is not greater than the SLP group size.
7216
bbf7ce11
RAE
72172009-04-02 Rafael Avila de Espindola <espindola@google.com>
7218
7219 * builtins.c (is_builtin_name): New.
7220 (called_as_built_in): Use is_builtin_name.
7221 * tree.h (is_builtin_name): New.
7222 * varasm.c (incorporeal_function_p): Use is_builtin_name
7223
47e4dfcf
AS
72242009-04-02 Andrew Stubbs <ams@codesourcery.com>
7225
7226 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
7227
d0940d56
DS
72282009-04-02 Dodji Seketeli <dodji@redhat.com>
7229
7230 PR c++/26693
532bfb0a 7231 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
7232 * c-common.c (set_underlying_type): ... here.
7233 Also, make sure the function properly sets TYPE_STUB_DECL() on
7234 the newly created typedef variant type.
7235 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
7236 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
7237 points.
d0940d56 7238
bf1cbdc6
RG
72392009-04-02 Richard Guenther <rguenther@suse.de>
7240
7241 PR tree-optimization/37221
7242 * tree-flow.h (degenerate_phi_result): Declare.
7243 * tree-ssa-dom.c (degenerate_phi_result): Export.
7244 * tree-scalar-evolution.c (analyze_initial_condition): If
7245 the initial condition is defined by a degenerate PHI node
7246 use the degenerate value.
7247
87cfb32c
EB
72482009-04-01 Eric Botcazou <ebotcazou@adacore.com>
7249
7250 PR rtl-optimization/39588
7251 * combine.c (merge_outer_ops): Do not set the constant when this
7252 is not necessary.
7253 (simplify_shift_const_1): Do not modify it either in this case.
7254
bbb6eae8
SB
72552009-04-01 Steven Bosscher <steven@gcc.gnu.org>
7256
7257 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
7258 tuning is deprecated if -mtune value is set to an Itanium1 variant.
7259
839a3b8a
JJ
72602009-04-01 Janis Johnson <janis187@us.ibm.com>
7261
7262 PR c/29027
7263 * c-lex.c (interpret_float): Default (no suffix) is double.
7264
667e8acb
XDL
72652009-04-1 Xinliang David Li <davidxl@google.com>
7266
7267 * config/i386/i386.c (legitimate_constant_p): Recognize
7268 all one vector constant.
7269
60839f5d 72702009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7271
60839f5d 7272 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
7273 Change #include order to silence two warnings.
7274
60839f5d 72752009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7276
60839f5d 7277 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
7278 (ASM_SPEC): Pass -k to the assembler for PIC code.
7279
60839f5d 72802009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7281
60839f5d
EB
7282 * config.gcc: Add vax-*-linux* to the switch.
7283 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
7284 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
7285
60839f5d 72862009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7287
60839f5d 7288 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 7289 Use predicate macros instead of GET_CODE() == foo.
60839f5d 7290 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
7291 ashlsi3, rotrsi3, <unnamed>): Likewise.
7292
60839f5d 72932009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7294
60839f5d 7295 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 7296 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
7297 * config/vax/constraints.md: Likewise.
7298 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7299 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
7300 * config/vax/predicates.md: Likewise.
7301 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 7302 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
7303 * config/vax/vax.h: Likewise.
7304 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 7305
60839f5d 73062009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7307
60839f5d 7308 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
7309 (indirectable_address_p, adjacent_operands_p): Add spaces around
7310 braces.
60839f5d 7311 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 7312
60839f5d 73132009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7314
60839f5d 7315 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
7316 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
7317 index_term_p, reg_plus_index_p, legitimate_address_p,
7318 vax_mode_dependent_address_p): Update comments to match functions
7319 modified by the recent int->bool conversion.
7320
60839f5d 73212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7322
60839f5d
EB
7323 * config/vax/builtins.md: Update copyright message.
7324 * config/vax/constraints.md: Likewise.
7325 * config/vax/netbsd-elf.h: Likewise.
7326 * config/vax/predicates.md: Likewise.
7327 * config/vax/vax-protos.h: Likewise.
7328 * config/vax/vax.c: Likewise.
7329 * config/vax/vax.h: Likewise.
7330 * config/vax/vax.md: Likewise.
7331 * config/vax/vax.opt: Likewise.
c4e75102 7332
60839f5d 73332009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7334
60839f5d 7335 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 7336 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
7337 * config/vax/constraints.md (B, R): Likewise.
7338 * config/vax/predicates.md (external_memory_operand,
c4e75102 7339 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
7340 * config/vax/vax.c (vax_output_int_add): Likewise.
7341 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
7342 untyped_call): Likewise.
7343
60839f5d 73442009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 7345
7a715bba
UB
7346 * config/vax/predicates.md: New file.
7347 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
7348 external_const_operand, nonsymbolic_operand, external_memory_operand,
7349 indirect_memory_operand, indexed_memory_operand,
7350 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7351 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7352 predicate.
7a715bba
UB
7353 * config/vax/constraints.md: New file.
7354 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7355 New constraint.
7356 * config/vax/builtins.md: New file.
7357 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7358 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7359 jbbccisi): Define.
c4e75102
MT
7360 * config/vax/vax.opt (mqmath): Add option.
7361 * config/vax/vax.md (isfx): Extend with DI.
7362 (VAXintQH, VAXintQHSD): Define.
7363 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7364 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7365 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7366 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7367 (movdi): Update constraints and use vax_output_int_move().
7368 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7369 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7370 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7371 nonlocal_goto): New.
7372 (mov<mode>): Extend accepted operand types.
7373 (subdi3_old): Rename from subdi3, change update constraints and use
7374 a new implementation.
60839f5d 7375 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
7376 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7377 MOVE_RATIO, CLEAR_RATIO): Define.
7378 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7379 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7380 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 7381 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
7382 (split_quadword_operands): Make static and really allow variable
7383 splitting.
7384 (print_operand_address): Update for PIC generation.
7385 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7386 indexable_address_p, fixup_mathdi_operand,
7387 vax_expand_addsub_di_operands, adjacent_operands_p): New.
7388 (vax_float_literal, legitimate_constant_p,
7389 indirectable_constant_address_p, index_term_p,
7390 reg_plus_index_p): Return bool instead of int.
7391 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7392 where needed.
7393 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7394 generation.
7395 (vax_output_conditional_branch): Indent.
7396 (legitimate_constant_address_p, indirectable_constant_address_p,
7397 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7398 vax_mode_dependent_address_p): Return bool instead of int, update for
7399 PIC generation.
7400 * config/vax/vax-protos.h (legitimate_constant_address_p,
7401 legitimate_constant_p, legitimate_address_p,
7402 vax_mode_dependent_address_p): Change declaration to bool.
7403 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7404 vax_expand_addsub_di_operands, vax_output_int_subtract,
7405 vax_output_movmemsi): Declare.
7406 (split_quadword_operands, vax_float_literal): Delete declaration.
7407 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7408 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7409 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7410 ASM_OUTPUT_DWARF_PCREL): Define.
7411 (ASM_SPEC): Change definition to allow PIC generation.
7412
9332c6eb
L
74132009-04-01 Steve Ellcey <sje@cup.hp.com>
7414
7415 * doc/sourcebuild.texi: Update front-end requirements.
7416
d93e052c
JJ
74172009-04-01 Jakub Jelinek <jakub@redhat.com>
7418
7419 PR target/39226
7420 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7421 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7422 (booldi3_internal3): Use boolean_or_operator instead of
7423 boolean_operator.
7424
6ccb2a4a
JM
74252009-04-01 Joseph Myers <joseph@codesourcery.com>
7426
7427 PR c/39605
7428 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7429 declarator whose size is not an integer constant expression but
7430 folds to an integer constant, then treat it as a constant
7431 subsequently.
7432
299b87f8
RG
74332009-04-01 Richard Guenther <rguenther@suse.de>
7434
7435 * fold-const.c (fold_plusminus_mult_expr): Do not fold
7436 i * 4 + 2 to (i * 2 + 1) * 2.
7437
b85eb797
JJ
74382009-04-01 Jakub Jelinek <jakub@redhat.com>
7439
7440 PR c/37772
7441 * c-parser.c (c_parser_asm_statement): Skip until close paren and
7442 return if c_parser_asm_string_literal returned NULL.
7443
235e1fe8
NC
74442009-04-01 Nick Clifton <nickc@redhat.com>
7445
7446 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7447 already defined.
7448 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7449 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
7450 other typedefs to avoid conflicts with libgcc2.c. Define labels
7451 to gain 16-bit bit-manipulation functions from libgcc2.c and then
7452 include it.
7453 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
7454 to gain 16-bit trapping arithmetic functions from libgcc2.c and
7455 then include it.
7456
d6868399
RAE
74572009-04-01 Rafael Avila de Espindola <espindola@google.com>
7458
7a715bba
UB
7459 * varasm.c (default_function_rodata_section): Declare DOT as
7460 const char*.
d6868399 7461
73d21f56 74622009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 7463 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
7464
7465 PR/39492
7466 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7467 Make object_name unique for each process.
7468
03742a9b
JJ
74692009-04-01 Jakub Jelinek <jakub@redhat.com>
7470
7471 PR other/39591
7472 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7473 addressable variables in the parallel that could go out of scope while
7474 running queued tasks.
7475
4223ff5f
AS
74762009-04-01 Anatoly Sokolov <aesok@post.ru>
7477
7478 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7479 (CASE_VALUES_THRESHOLD): Redefine.
7480 * config/avr/avr.c (avr_override_options): Remove initialization of
7481 avr_case_values_threshold variable.
7482 (avr_case_values_threshold): Remove variable. Add new function.
7483 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7484 * config/avr/avr.opt (mno-tablejump): Remove option.
7485 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7486
e893f6f3
DD
74872009-04-01 DJ Delorie <dj@redhat.com>
7488
7489 * varasm.c (default_function_rodata_section): Don't assume
7490 anything about where the first '.' in the section name is.
7491
b246d100
AM
74922009-04-01 Alan Modra <amodra@bigpond.net.au>
7493
7494 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7495 rs6000_emit_stack_tie.
7496
d3e37a9e
ILT
74972009-03-31 Ian Lance Taylor <iant@google.com>
7498
7499 * tree-eh.c (tree_remove_unreachable_handlers): Compare
7500 gimple_code with GIMPLE_RESX, not RESX.
7501
c1b61fca
JM
75022009-03-31 Joseph Myers <joseph@codesourcery.com>
7503
7504 * c-common.c (c_get_ident): New.
7a715bba 7505 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 7506
c2d2ad48
BE
75072009-04-01 Ben Elliston <bje@au.ibm.com>
7508
7509 * config/rs6000/sysv4.opt (msdata): Improve option description.
7510
13d1a6e7
SE
75112009-03-31 Steve Ellcey <sje@cup.hp.com>
7512
7513 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7514 (divdf3_internal_lat): Remove.
7515 (divxf3_internal_lat): Remove.
7516 (divxf3_internal_thr): Remove.
7517 (divxf): Use divxf3_internal.
7518 * config/ia64/div.md (divsf3_internal_lat): New.
7519 (divdf3_internal_lat): New.
7520 (divxf3_internal): New.
7521
207bf79d
JM
75222009-03-31 Joseph Myers <joseph@codesourcery.com>
7523
7524 PR c/448
7525 * Makefile.in (USE_GCC_STDINT): Define.
7526 (stmp-int-hdrs): Install stdint.h if applicable.
7527 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7528 if known.
7529 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7530 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7531 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7532 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7533 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7534 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7535 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7536 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7537 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7538 (c_common_nodes_and_builtins): Initialize
7539 underlying_wchar_type_node. Do not initialize
7540 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
7541 nodes for new types.
7542 (c_stddef_cpp_builtins): Define macros for new types.
7543 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7544 Remove.
7545 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7546 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7547 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7548 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7549 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7550 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7551 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7552 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7553 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7554 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7555 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7556 int16_type_node, int32_type_node, int64_type_node,
7557 uint8_type_node, uint16_type_node, c_uint32_type_node,
7558 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7559 int_least32_type_node, int_least64_type_node,
7560 uint_least8_type_node, uint_least16_type_node,
7561 uint_least32_type_node, uint_least64_type_node,
7562 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7563 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7564 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7565 uintptr_type_node): Define.
7566 * c-cppbuiltin.c (builtin_define_constants,
7567 builtin_define_type_minmax): New.
7568 (builtin_define_stdint_macros): Define more macros.
7569 (c_cpp_builtins): Define more limit macros.
7570 (type_suffix): New.
7571 (builtin_define_type_max): Define in terms of
7572 builtin_define_type_minmax. Remove is_long parameter. All
7573 callers changed.
7574 * config.gcc (use_gcc_stdint): Define.
7575 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7576 Add newlib-stdint.h for generic targets.
7577 * config/glibc-stdint.h, config/newlib-stdint.h,
7578 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7579 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7580 * config/score/score.h (UINTPTR_TYPE): Define.
7581 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7582 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7583 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7584 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7585 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7586 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7587 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7588 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7589 * config/spu/spu.h (STDINT_LONG32): Define.
7590 * configure.ac (use_gcc_stdint): Substitute.
7591 * configure: Regenerate.
7592 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7593 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7594 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7595 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7596 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7597 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7598 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7599 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7600 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7601 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7602 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7603 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7604 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7605 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7606 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7607 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7608 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7609 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7610 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7611 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7612 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7613 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7614 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7615 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7616 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7617 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7618 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7619 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7620 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7621
ed853664
BS
76222009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
7623
7624 * loop-iv.c (suitable_set_for_replacement): Renamed from
7625 simplify_using_assignment; changed to return bool and to accept new
7626 args DEST and SRC. Return true iff we find a source/destination pair
7627 that can be used to make a replacement, and fill SRC and DEST if so.
7628 Remove arg ALTERED. Don't deal with altered regs here. All callers
7629 changed.
7630 (simplify_using_initial_values): Deal with altered regs here and track
7631 more precisely the effect they have on the validity of our expression.
7632
1569e190
BS
7633 * loop-iv.c (simplify_using_condition): A condition of the form
7634 (EQ REG CONST) can be used to simply make a substitution.
7635 (simplify_using_initial_values): Keep track of conditions we have seen
7636 and keep using them to simplify new expressions, while applying the
7637 same substitutions to them as to the expression.
7638
1d1eb80c
BS
7639 * simplify-rtx.c (simplify_relational_operation_1): Simplify
7640 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7641 GEU/LTU reversed.
7642
28af33b0
BS
7643 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
7644 changed. Use this when trying to improve the upper bound.
7645 Generate the comparison by using simplify_gen_relational.
7646
b30321cd
BS
7647 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7648
60081874
BS
7649 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7650 functions.
2ba9daa7 7651 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
7652 replace_in_expr to make replacements. Call replace_single_def_regs
7653 once on the initial version of the expression.
7654
bebc6e07
RR
76552009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7656
fcb82ab0 7657 PR target/27237
bebc6e07 7658 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 7659
6b12efe9
RG
76602009-03-31 Richard Guenther <rguenther@suse.de>
7661
7662 PR middle-end/31029
7663 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7664 equality comparisons. Fold C - X CMP X if C % 2 == 1.
7665
108f6c2f
RG
76662009-03-31 Richard Guenther <rguenther@suse.de>
7667
7668 * tree.h (div_if_zero_remainder): Declare.
7669 * fold-const.c (div_if_zero_remainder): Export.
7670 * tree-ssa-forwprop.c
7671 (forward_propagate_addr_into_variable_array_index): Handle
7672 constant array index addition outside of the variable index.
7673
8f612190
JM
76742009-03-31 Joseph Myers <joseph@codesourcery.com>
7675
7676 PR target/39592
7677 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7678 define_splits, floatunssi<mode>2): Require x87 conversions from
7679 DImode to be permitted.
7680
47580d22
JM
76812009-03-31 Joseph Myers <joseph@codesourcery.com>
7682
7683 PR preprocessor/15638
7684 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7685
ba4d8f9d
RG
76862009-03-31 Richard Guenther <rguenther@suse.de>
7687
7688 PR middle-end/23401
7689 PR middle-end/27810
7690 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7691 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7692 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7693 a separate statement.
7694 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7695 (lookup_tmp_var): Likewise.
7696 (is_gimple_formal_tmp_or_call_rhs): Remove.
7697 (is_gimple_reg_or_call_rhs): Rename to ...
7698 (is_gimple_reg_rhs_or_call): ... this.
7699 (is_gimple_mem_or_call_rhs): Rename to ...
7700 (is_gimple_mem_rhs_or_call): ... this.
7701 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
7702 DECL_GIMPLE_REG_P only if is_formal is true.
7703 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
7704 for non-proper post-modify expression gimplification.
7705 (gimplify_self_mod_expr): For post-modify expressions gimplify
7706 the lvalue to a minimal lvalue.
7707 (rhs_predicate_for): Remove formal temp case.
7708 (gimplify_modify_expr_rhs): Likewise.
7709 (gimplify_addr_expr): Use is_gimple_reg.
7710 (gimplify_expr): Remove formal temp cases.
7711 (gimple_regimplify_operands): Likewise.
7712 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7713 and FILTER_EXPR like constants.
7714 * gimple.c (walk_gimple_op): Fix val_only initialization, use
7715 is_gimple_reg.
7716 (is_gimple_formal_tmp_rhs): Remove.
7717 (is_gimple_reg_rhs): Remove special casing.
7718 (is_gimple_mem_rhs): Fix.
7719 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7720 (is_gimple_formal_tmp_var): Remove.
7721 (is_gimple_formal_tmp_reg): Likewise.
7722 (is_gimple_min_lval): Allow invariant component ref parts.
7723 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7724 is_gimple_formal_tmp_reg): Remove declarations.
7725 * tree-cfg.c (verify_expr): Verify that variables with address
7726 taken do not have DECL_GIMPLE_REG_P set.
7727 * tree-mudflap.c (mf_build_check_statement_for): Use
7728 force_gimple_operand instead of gimplify_expr.
7729
8de9b877
AZ
77302009-03-31 Ayal Zaks <zaks@il.ibm.com>
7731
7732 * modulo-sched.c (sms_schedule_by_order): Pass the actual
7733 schedulable rows to compute_split_row.
7734
b5e3caf2
BE
77352009-03-31 Ben Elliston <bje@au.ibm.com>
7736
7737 PR target/31635
7738 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7739 OPT_mvrsave.
7740
9752c4ad
AM
77412009-03-31 Alan Modra <amodra@bigpond.net.au>
7742
7743 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7744 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7745 * configure: Regenerate.
7746 * config.in: Regenerate.
7747 * config/rs6000/rs6000.opt (mtls-markers): Add.
7748 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7749 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7750 (tls_ld_aix, tls_ld_sysv): Likewise.
7751 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7752 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7753
b597d1b6
AM
77542009-03-31 Alan Modra <amodra@bigpond.net.au>
7755
7756 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7757
a203a221
JH
77582009-03-30 Jan Hubicka <jh@suse.cz>
7759
b597d1b6
AM
7760 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7761 out of RESX.
7762 (tree_remove_unreachable_handlers): Cleanup EH predecestor
7763 detection and label handling.
a203a221 7764
5b0c0b2c
VM
77652009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7766
7767 * ira-int.h (ira_allocno): Rename left_conflicts_num to
7768 left_conflicts_size.
7769 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7770 ALLOCNO_LEFT_CONFLICTS_SIZE.
7771
7772 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7773 remove_allocno_from_bucket_and_push,
7774 allocno_spill_priority_compare, push_allocnos_to_stack,
7775 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7776 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7777 (setup_allocno_left_conflicts_num): Ditto. Rename to
7778 setup_allocno_left_conflicts_size.
7779 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7780 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7781 setup_allocno_left_conflicts_size instead of
7782 setup_allocno_left_conflicts_num.
7783
7784 * ira-build.c (ira_create_allocno): Use
7785 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7786 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 7787
9a48a93f
VM
77882009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7789
7790 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7791 instead of DF_LR_OUT.
7792
7793 * ira-lives.c (process_bb_node_lives): Ditto.
7794
7795 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7796 instead of DF_LR_{OUT,IN}.
7797
7798 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7799
7800 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7801
4c936d4f
JH
78022009-03-30 Jan Hubicka <jh@suse.cz>
7803
7804 * except.c (label_to_region_map): Fix thinko.
7805
f4d9f129
SE
78062009-03-30 Steve Ellcey <sje@cup.hp.com>
7807
7808 PR middle-end/38237
7809 * tree.h (tree_find_value): New declaration.
7810 * tree.c (tree_find_value): New function.
7811 * varasm.c (assemble_external): Avoid duplicate entries on lists.
7812
b3f27c15
JJ
78132009-03-30 Jakub Jelinek <jakub@redhat.com>
7814
7815 PR debug/39563
7816 * c-decl.c (struct c_binding): Add locus field.
7817 (bind): Add locus argument, set locus field from it.
7818 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7819 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7820 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7821 implicitly_declare, undeclared_variable, lookup_label,
7822 declare_label, c_make_fname_decl, c_builtin_function,
7823 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7824 bind callers.
7825
ad41bd84 78262009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
7827
7828 PR target/38781
7829 * config/i386/i386.c (classify_argument): Check total size of
7830 structure.
7831
133f9369
MJ
78322009-03-30 Martin Jambor <mjambor@suse.cz>
7833
7834 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7835 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7836 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7837 respectively.
7838
7839 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7840 seen_variable_array_ref while also traversing a union.
7841
7842 * tree-inline.c (optimize_inline_calls): Do not call
7843 cgraph_node_remove_callees.
7844 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7845 (pass_remove_cgraph_callee_edges): New variable.
7846 * passes.c (init_optimization_passes): Add
7847 pass_remove_cgraph_callee_edges after early inlining and before all
7848 late intraprocedural passes.
7849
7850 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7851
1190f2eb
PB
78522009-03-30 Paolo Bonzini <bonzini@gnu.org>
7853
7854 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7855 Fix typos in names.
7856
fedc1775
PB
78572009-03-30 Paolo Bonzini <bonzini@gnu.org>
7858
fcb82ab0
UB
7859 * combine.c (simplify_comparison): Use have_insn_for.
7860 * dojump.c (do_jump): Likewise.
fedc1775 7861
65c5ae8b
PB
78622009-03-30 Paolo Bonzini <bonzini@gnu.org>
7863
7864 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7865 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7866 sparc_compare_op0 like sparc_compare_emitted used to be handled.
7867 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7868 instead of sparc_compare_emitted.
7869 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7870 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7871 instead of sparc_compare_emitted.
7872
d25aa7ab
PB
78732009-03-30 Paolo Bonzini <bonzini@gnu.org>
7874
7875 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7876 enter/exit cfglayout mode.
7877 (pass_partition_block): Require it.
7878 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7879 (combine_instructions): Track basic blocks instead of labels.
7880 (update_cfg_for_uncondjump): New.
7881 (try_combine): Use it. Update jumps after rescanning.
7882 (pass_combine): Require PROP_cfglayout.
7883 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7884
9c9e26f5
PB
78852009-03-30 Paolo Bonzini <bonzini@gnu.org>
7886
fcb82ab0
UB
7887 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7888 Provide/destroy PROP_cfglayout respectively.
7889 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7890 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 7891
28ddeea1
PB
78922009-03-30 Paolo Bonzini <bonzini@gnu.org>
7893
7894 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7895 fold_convert_const_fixed_from_fixed,
7896 fold_convert_const_fixed_from_int,
7897 fold_convert_const_fixed_from_real, fold_negate_const): Do not
7898 set TREE_CONSTANT_OVERFLOW.
7899 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7900 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7901
ebfd146a
IR
79022009-03-30 Ira Rosen <irar@il.ibm.com>
7903
7904 * tree-vect-loop-manip.c: New file.
7905 * tree-vectorizer.c: Update documentation and included files.
7906 (vect_loop_location): Make extern.
7907 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
7908 (rename_variables_in_bb, rename_variables_in_loop,
7909 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
7910 slpeel_update_phi_nodes_for_guard1,
7911 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7912 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7913 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 7914 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
7915 find_loop_location): Likewise.
7916 (new_stmt_vec_info): Move to tree-vect-stmts.c.
7917 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7918 get_vectype_for_scalar_type, vect_is_simple_use,
7919 supportable_widening_operation, supportable_narrowing_operation):
7920 Likewise.
7921 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
7922 (new_loop_vec_info, destroy_loop_vec_info,
7923 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
7924 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7925 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7926 (vect_supportable_dr_alignment): Likewise.
7927 * tree-vectorizer.h (tree-data-ref.h): Include.
7928 (vect_loop_location): Declare.
7929 Reorganize function declarations according to the new file structure.
7930 * tree-vect-loop.c: New file.
2ba9daa7 7931 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
7932 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7933 * tree-vect-data-refs.c: New file.
7934 * tree-vect-patterns.c (timevar.h): Don't include.
7935 * tree-vect-stmts.c: New file.
2ba9daa7 7936 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 7937 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
7938 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7939 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
7940 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7941 (tree-vect-analyze.o): Remove.
7942 (tree-vect-transform.o): Likewise.
7943 (tree-vect-data-refs.o): Add rule.
2ba9daa7 7944 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
7945 tree-vect-slp.o): Likewise.
7946 (tree-vect-patterns.o): Remove redundant dependencies.
7947 (tree-vectorizer.o): Likewise.
7948 * tree-vect-slp.c: New file.
7949
40a1cfba
RW
79502009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7951
7952 * optc-gen.awk: Warn if an option flag has multiple different
7953 help strings.
7954
a9a7a9a2
SP
79552009-03-30 Sebastian Pop <sebastian.pop@amd.com>
7956
7957 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7958 -floop-block): Document dependences on PPL, CLooG and Graphite.
7959
8ce94e44
JM
79602009-03-30 Joseph Myers <joseph@codesourcery.com>
7961
7962 PR rtl-optimization/323
7963 * c-common.c (c_fully_fold, convert_and_check,
7964 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7965 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7966 * c-common.def (EXCESS_PRECISION_EXPR): New.
7967 * c-cppbuiltin.c (builtin_define_float_constants): Define
7968 constants with enough digits for long double.
7969 * c-lex.c (interpret_float): Interpret constant with excess
7970 precision where appropriate.
7971 * c-opts.c (c_common_post_options): Set
7972 flag_excess_precision_cmdline. Give an error for
7973 -fexcess-precision=standard for C++ for processors where the
7974 option is significant.
7975 * c-parser.c (c_parser_conditional_expression): Handle excess
7976 precision in condition.
7977 * c-typeck.c (convert_arguments): Handle arguments with excess
7978 precision.
7979 (build_unary_op): Move excess precision outside operation.
7980 (build_conditional_expr): Likewise.
7981 (build_compound_expr): Likewise.
7982 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7983 (build_modify_expr): Handle excess precision in RHS.
7984 (convert_for_assignment): Handle excess precision in converted
7985 value.
7986 (digest_init, output_init_element, process_init_element): Handle
7987 excess precision in initializer.
7988 (c_finish_return): Handle excess precision in return value.
7989 (build_binary_op): Handle excess precision in operands and add
7990 excess precision as needed for operation.
7991 * common.opt (-fexcess-precision=): New option.
7992 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7993 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7994 For standard excess precision, output explicit conversion to and
7995 truncation from XFmode.
7996 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7997 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7998 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7999 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
8000 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
8001 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
8002 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
8003 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
8004 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
8005 define_splits, sqrt<mode>2): Disable where appropriate for
8006 standard excess precision.
8007 * convert.c (convert_to_real): Do not shorten arithmetic to type
8008 for which excess precision would be used.
8009 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
8010 * doc/invoke.texi (-fexcess-precision=): Document option.
8011 (-mfpmath=): Correct index entry.
8012 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
8013 flag_excess_precision): New.
8014 * langhooks.c (lhd_post_options): Set
8015 flag_excess_precision_cmdline.
8016 * opts.c (common_handle_option): Handle -fexcess-precision=.
8017 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
8018 init_excess_precision): New.
8019 (lang_dependent_init_target): Call init_excess_precision.
8020 * tree.c (excess_precision_type): New.
8021 * tree.h (excess_precision_type): Declare.
8022
1e57bf47
JM
80232009-03-30 Joseph Myers <joseph@codesourcery.com>
8024
8025 PR c/35235
8026 * c-typeck.c (build_component_ref): Do not copy qualifiers from
8027 non-lvalue to component.
8028
148e4216
JM
80292009-03-29 Joseph Myers <joseph@codesourcery.com>
8030
8031 PR preprocessor/34695
8032 * Makefile.in (c-opts.o): Depend on c-tree.h.
8033 * c-common.c: Move down include of diagnostic.h.
8034 (done_lexing, c_cpp_error): New.
8035 * c-common.h (done_lexing): Declare.
8036 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
8037 (parse_in).
8038 * c-opts.c: Include c-tree.h.
8039 (c_common_init_options): Set preprocessor error callback.
8040 (c_common_handle_option): Do not set preprocessor
8041 inhibit_warnings, warnings_are_errors, warn_system_headers,
8042 pedantic_errors or inhibit_warnings flags.
8043 (c_common_post_options): Do not check cpp_errors (parse_in).
8044 (c_common_finish): Do not output dependencies if there were
8045 errors. Do not check return value of cpp_finish.
8046 * c-ppoutput.c (pp_file_change): Set input_location.
8047 * c-tree.h (c_cpp_error): Declare.
8048 * diagnostic.c (diagnostic_set_info_translated): Also initialize
8049 override_column.
8050 (diagnostic_build_prefix): Check override_column.
8051 * diagnostic.h (diagnostic_info): Add override_column field.
8052 (diagnostic_override_column): Define.
8053
2ec5deb5
PB
80542009-03-28 Paolo Bonzini <bonzini@gnu.org>
8055
ba20e309
UB
8056 * c-common.c (c_expand_expr, c_staticp): Remove.
8057 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
8058 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
8059 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
8060 * c-gimplify.c (gimplify_compound_literal_expr,
8061 optimize_compound_literals_in_ctor): Remove.
8062 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
8063 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
8064 * c-semantics.c (emit_local_var): Remove.
8065
8066 * langhooks-def.h (lhd_expand_expr): Remove.
8067 * langhooks.c (lhd_expand_expr): Remove.
8068 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
8069
8070 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
8071 handling from c-semantics.c; don't call into langhook.
8072 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
8073 * gimplify.c (gimplify_compound_literal_expr,
8074 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
8075 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
8076 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
8077 as was done in c-gimplify.c.
8078 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
8079 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
8080 Move from c-common.h.
8081 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
8082
8083 * tree.c (staticp): Do not call langhook.
8084 * langhooks.c (lhd_staticp): Delete.
8085 * langhooks-def.h (lhd_staticp): Delete prototype.
8086 (LANG_HOOKS_STATICP): Delete.
8087 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
8088
ba20e309
UB
8089 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
8090 instead of DECL_STMTs.
2ec5deb5 8091
928c19bb
JM
80922009-03-29 Joseph Myers <joseph@codesourcery.com>
8093
8094 PR c/456
8095 PR c/5675
8096 PR c/19976
8097 PR c/29116
8098 PR c/31871
8099 PR c/35198
8100 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
8101 void_type_node.
8102 (fold_call_expr): Return a NOP_EXPR from folding rather than the
8103 contained expression.
ba20e309 8104 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
8105 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
8106 conditional expressions for C.
8107 (decl_constant_value_for_optimization): Move from
ba20e309 8108 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
8109 whether optimizing and that the expression is a VAR_DECL not of
8110 array type instead of doing such checks in the caller. Do not
8111 check pedantic. Call gcc_unreachable for C++.
8112 * c-common.def (C_MAYBE_CONST_EXPR): New.
8113 * c-common.h (c_fully_fold, c_save_expr,
8114 decl_constant_value_for_optimization): New prototypes.
8115 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8116 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8117 EXPR_INT_CONST_OPERANDS): Define.
8118 * c-convert.c (convert): Strip nops from expression.
8119 * c-decl.c (groktypename): Take extra parameters expr and
8120 expr_const_operands. Update call to grokdeclarator.
8121 (start_decl): Update call to grokdeclarator. Add statement for
8122 expressions used in type of decl.
8123 (grokparm): Update call to grokdeclarator.
8124 (push_parm_decl): Update call to grokdeclarator.
8125 (build_compound_literal): Add parameter non_const and build a
8126 C_MAYBE_COSNT_EXPR if applicable.
8127 (grokdeclarator): Take extra parameters expr and
8128 expr_const_operands. Track expressions used in declaration
8129 specifiers and declarators. Fold array sizes and track whether
8130 they are constant expressions and whether they are integer
8131 constant expressions.
8132 (parser_xref_tag): Set expr and expr_const_operands fields in
8133 return value.
8134 (grokfield): Update call to grokdeclarator.
8135 (start_function): Update call to grokdeclarator.
8136 (build_null_declspecs): Set expr and expr_const_operands fields in
8137 return value.
8138 (declspecs_add_type): Handle expressions in typeof specifiers.
8139 * c-parser.c (c_parser_declspecs): Set expr and
8140 expr_const_operands fields for declaration specifiers.
8141 (c_parser_enum_specifier): Likewise.
8142 (c_parser_struct_or_union_specifier): Likewise.
8143 (c_parser_typeof_specifier): Likewise. Update call to
8144 groktypename. Fold expression as needed. Return expressions with
8145 type instead of adding statements.
8146 (c_parser_attributes): Update calls to c_parser_expr_list.
8147 (c_parser_statement_after_labels): Fold expression before passing
8148 to objc_build_throw_stmt.
8149 (c_parser_condition): Fold expression.
8150 (c_parser_asm_operands): Fold expression.
8151 (c_parser_conditional_expression): Use c_save_expr. Update call
8152 to build_conditional_expr.
8153 (c_parser_alignof_expression): Update call to groktypename.
8154 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
8155 original_code. Fold expression argument of va_arg. Create
8156 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
8157 argument to va_arg. Update calls to groktypename. Fold array
8158 index for offsetof. Verify that first argument to
8159 __builtin_choose_expr has integer type.
8160 (c_parser_postfix_expression_after_paren_type): Update calls to
8161 groktypename and build_compound_literal. Handle expressions with
8162 side effects in type name.
8163 (c_parser_postfix_expression_after_primary): Update call to
8164 c_parser_expr_list. Set original_code for calls to
8165 __builtin_constant_p.
8166 (c_parser_expr_list): Take extra parameter fold_p. Fold
8167 expressions if requested.
8168 (c_parser_objc_type_name): Update call to groktypename.
8169 (c_parser_objc_synchronized_statement): Fold expression.
8170 (c_parser_objc_receiver): Fold expression.
8171 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
8172 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
8173 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
8174 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
8175 (struct c_typespec): Add elements expr and expr_const_operands.
8176 (struct c_declspecs): Add elements expr and expr_const_operands.
8177 (groktypename, build_conditional_expr, build_compound_literal):
8178 Update prototypes.
8179 (in_late_binary_op): Declare.
8180 * c-typeck.c (note_integer_operands): New function.
8181 (in_late_binary_op): New variable.
8182 (decl_constant_value_for_broken_optimization): Move to c-common.c
8183 and rename to decl_constant_value_for_optimization.
8184 (default_function_array_conversion): Do not strip nops.
8185 (default_conversion): Do not call
8186 decl_constant_value_for_broken_optimization.
8187 (build_array_ref): Do not fold result.
8188 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
8189 result when operand is a VLA.
8190 (c_expr_sizeof_type): Update call to groktypename. Handle
8191 expressions included in type name. Use C_MAYBE_CONST_EXPR for
8192 result when operand names a VLA type.
8193 (build_function_call): Update call to build_compound_literal.
8194 Only fold result for calls to __builtin_* functions. Strip
8195 NOP_EXPR from INTEGER_CST returned from such functions. Fold
8196 the function designator.
8197 (convert_arguments): Fold arguments. Update call to
8198 convert_for_assignment.
8199 (build_unary_op): Handle increment and decrement of
8200 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
8201 decrement earlier. Fold operand of increment and decrement.
8202 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
8203 built for integer operand. Wrap returns that are INTEGER_CSTs
8204 without being integer constant expressions or that have integer
8205 constant operands without being INTEGER_CSTs.
8206 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
8207 (build_conditional_expr): Add operand ifexp_bcp. Track whether
8208 result is an integer constant expression or can be used in
8209 unevaluated parts of one and avoid folding and wrap as
8210 appropriate. Fold operands before possibly doing -Wsign-compare
8211 warnings.
8212 (build_compound_expr): Wrap result for C99 if operands can be used
8213 in integer constant expressions.
8214 (build_c_cast): Update call to digest_init. Do not ignore
8215 overflow from casting floating-point constants to integers. Wrap
8216 results that could be confused with integer constant expressions,
8217 null pointer constants or floating-point constants.
8218 (c_cast_expr): Update call to groktypename. Handle expressions
8219 included in type name.
8220 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
8221 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
8222 Update calls to convert_for_assignment.
8223 (convert_for_assignment): Take new parameter
8224 null_pointer_constant. Do not strip nops or call
8225 decl_constant_value_for_broken_optimization. Set
8226 in_late_binary_op for conversions to boolean.
8227 (store_init_value): Update call to digest_init.
8228 (digest_init): Take new parameter null_pointer_constant. Do not
8229 call decl_constant_value_for_broken_optimization. pedwarn for
8230 initializers not constant expressions. Update calls to
8231 convert_for_assignment.
8232 (constructor_nonconst): New.
8233 (struct constructor_stack): Add nonconst element.
8234 (really_start_incremental_init, push_init_level, pop_init_level):
8235 Handle constructor_nonconst and nonconst element.
8236 (set_init_index): Call constant_expression_warning for array
8237 designators.
8238 (output_init_element): Fold value. Set constructor_nonconst as
8239 applicable. pedwarn for initializers not constant expressions.
8240 Update call to digest_init. Call constant_expression_warning
8241 where constant initializers are required.
8242 (process_init_element): Use c_save_expr.
8243 (c_finish_goto_ptr): Fold expression.
8244 (c_finish_return): Fold return value. Update call to
8245 convert_for_assignment.
8246 (c_start_case): Fold switch expression.
8247 (c_process_expr_stmt): Fold expression.
8248 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 8249 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
8250 (build_binary_op): Track whether results are integer constant
8251 expressions or may occur in such, disable folding and wrap results
8252 as applicable. Fold operands for -Wsign-compare warnings unless
8253 in_late_binary_op.
8254 (c_objc_common_truthvalue_conversion): Handle results folded to
8255 integer constants that are not integer constant expressions.
8256 * doc/extend.texi: Document when typeof operands are evaluated,
8257 that condition of __builtin_choose_expr is an integer constant
8258 expression, and more about use of __builtin_constant_p in
8259 initializers.
8260
5babbcc0
RG
82612009-03-29 Richard Guenther <rguenther@suse.de>
8262
8263 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8264 propagate addresses of array references.
8265
0340f2ba
SB
82662009-03-29 Steven Bosscher <steven@gcc.gnu.org>
8267
8268 * regmove.c (perhaps_ends_bb_p): Remove.
8269 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
8270 from INSN and check that the main loop stays within that basic block.
8271 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
8272 (regmove_forward_pass): Split out from regmove_optimize. Use
8273 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
8274 (regmove_backward_pass): Split out from regmove_optimize. Use
8275 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
8276 (regmove_optimize): Simplify.
8277
eeae74a1
L
82782009-03-29 H.J. Lu <hongjiu.lu@intel.com>
8279
8280 PR target/39545
8281 * config/i386/i386.c (classify_argument): Ignore flexible array
8282 member in struct and warn ABI change.
8283
a24078b2
L
82842009-03-29 H.J. Lu <hongjiu.lu@intel.com>
8285
8286 * config/i386/i386-protos.h (ix86_agi_dependent): New.
8287
8288 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
8289 (ix86_adjust_cost): Updated.
8290
a8da523f
JH
82912009-03-29 Jan Hubicka <jh@suse.cz>
8292
8293 PR middle-end/28850
8294 * tree-pass.h (pass_cleanup_eh): New function.
8295 (remove_unreachable_regions): Break code handling RTL
8296 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
8297 that can not be reached by runtime.
8298 (can_be_reached_by_runtime): New function.
8299 (label_to_region_map): New function.
8300 (num_eh_regions): New function.
8301 (rtl_remove_unreachable_regions): New function.
8302 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
8303 (remove_eh_region): New function.
8304 * except.h: Include sbitmap and vecprim.
8305 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
8306 num_eh_regions): Declare.
8307 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 8308 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
8309 * tree-eh.c (tree_remove_unreachable_handlers): New function.
8310 (tree_empty_eh_handler_p): New function.
8311 (cleanup_empty_eh): New function.
8312 (cleanup_eh): New function.
8313 (pass_cleanup_eh): New function.
8314
98f358e5
JH
83152009-03-29 Jan Hubicka <jh@suse.cz>
8316
8317 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
8318 for removed regions.
8319
13a9fa44
JH
83202009-03-29 Jan Hubicka <jh@suse.cz>
8321
8322 * except.c (dump_eh_tree): Dump all datastructures.
8323
e38cf733
JH
83242009-03-29 Jan Hubicka <jh@suse.cz>
8325
8326 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
8327 (duplicate_eh_regions_1): Likewise.
8328 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
8329 vector; call EH verification.
8330 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8331 Be ready for region being removed.
8332
12802c2b
JH
83332009-03-29 Jan Hubicka <jh@suse.cz>
8334
8335 * bitmap.c (bitmap_last_set_bit): New function.
8336 * bitmap.h (bitmap_last_set_bit): Declare.
8337
4ea80a41
DA
83382009-03-29 David Ayers <ayers@fsfe.org>
8339
8340 PR objc/27377
8341 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8342 by calling objc_compare_types and surpress warnings about
8343 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 8344
4ea80a41 83452009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
8346
8347 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8348 call initialize_inline_failed.
8349 (initialize_inline_failed): Move it from here ...
8350 * cgraph.c (initialize_inline_failed): ... to here.
8351 (cgraph_create_edge): Call initialize_inline_failed rather than
8352 setting inline_failed directly.
8353
7fb0ee07
BE
83542009-03-29 Ben Elliston <bje@au.ibm.com>
8355
8356 PR target/32542
8357 * sysv4.opt (msdata): Improve comment.
8358 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8359 * sysv4.h (SVR4_ASM_SPEC): Likewise.
8360
0be77bf2
BE
83612009-03-29 Ben Elliston <bje@au.ibm.com>
8362
8363 PR target/30451
8364 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8365 load and store attributes.
8366
593812b6
BE
83672009-03-29 Ben Elliston <bje@au.ibm.com>
8368
8369 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8370 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8371 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8372 * doc/extend.texi (X86 Built-in Functions): Add index entries for
8373 __builtin_infq and __builtin_huge_valq.
8374
8272d11d
AS
83752009-03-28 Anatoly Sokolov <aesok@post.ru>
8376
8377 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8378 atmega8m1 devices.
8379 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8380 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8381
74fe548b
XDL
83822009-03-28 Xinliang David Li <davidxl@google.com>
8383
2ba9daa7 8384 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
8385 (do_dbg_cnt): New function.
8386
33977f81
JH
83872009-03-28 Jan Hubicka <jh@suse.cz>
8388
8389 Merge from pretty-ipa:
8390
8391 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 8392
33977f81
JH
8393 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8394 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8395 * passes.c (function_called_by_processed_nodes_p): New.
8396 * ipa-pure-const.c (check_call): Fix handling of operands.
8397 (analyze_function): Dump debug output for skipped bodies.
8398 (local_pure_const): Use function_called_by_processed_nodes_p.
8399 * dwarf2out.c (reference_to_unused): Use output.
8400 * passes.c (do_per_function_toporder): Likewise.
8401
8402 2008-11-12 Jan Hubicka <jh@suse.cz>
8403
8404 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8405 * ipa-pure-const.c (funct_state_d): Add can throw field; make
8406 state_set_in_source enum
8407 (check_decl): Ignore memory tags; do not set fake looping flags;
8408 dump diagnostics.
8409 (check_operand, check_tree, check_rhs_var, check_lhs_var,
8410 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8411 (check_call, analyze_function): Rewrite.
8412 (check_stmt): New.
8413 (add_new_function): Update call of analyze_function.
8414 (generate_summary): Add call of analyze_function.
8415 (propagate): Propagate can_throw; handle state_set_in_source correctly.
8416 (local_pure_const): New function.
8417 (pass_local_pure_const): New pass.
8418 * ipa-inline.c (inline_transform): Set after_inlining.
8419 * tree-eh.c (stmt_can_throw_external): New.
8420 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8421 work with aliasing built.
8422 * tree-flow.h (stmt_can_throw_external): New.
8423 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8424 and local pure/const pass in early and late optimization queue.
ba20e309 8425
617f3897
MJ
84262009-03-28 Martin Jambor <mjambor@suse.cz>
8427
8428 * fold-const.c (get_pointer_modulus_and_residue): New parameter
8429 allow_func_align.
8430 (fold_binary): Allow function decl aligment consideration is the
8431 second argument is integer constant one.
8432 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8433 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8434 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8435
fe89fbc5
JH
84362009-03-28 Jan Hubicka <jh@suse.cz>
8437
8438 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8439 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8440 * function.h (rtl_data): Add nothrow flag.
8441 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8442 set DECL_NOTHROW for AVAILABLE functions.
8443
574872ff
JJ
84442009-03-28 Jakub Jelinek <jakub@redhat.com>
8445
b3bf8855
JJ
8446 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8447 following vector keyword has expansion starting with pixel or bool
8448 keyword, expand vector to __vector and pixel or bool to __pixel or
8449 __bool.
8450
574872ff
JJ
8451 PR c++/39554
8452 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8453 warn_if_disallowed_function_p): Removed.
8454 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8455 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8456 warning_if_disallowed_function_p.
8457 * flags.h (warn_if_disallowed_function_p,
8458 warn_disallowed_functions): Removed.
8459 * common.opt (Wdisallowed-function-list=): Removed.
8460 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8461
b005da11
RG
84622009-03-28 Richard Guenther <rguenther@suse.de>
8463
8464 PR tree-optimization/38723
8465 * tree-ssa-pre.c (compute_avail): Add all default definitions to
8466 the entry block.
8467
1de812a6
JH
84682009-03-28 Jan Hubicka <jh@suse.cz>
8469
8470 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8471 test introduced by my previous patch.
8472
fbb789d4
RG
84732009-03-28 Richard Guenther <rguenther@suse.de>
8474
8475 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8476 the PHIs value undefined.
8477
6f1873a1
JH
84782009-03-28 Jan Hubicka <jh@suse.cz>
8479
8480 * tree-pass.h (pass_fixup_cfg): New pass.
8481 * ipa-inline.c (inline_transform): Set
8482 always_inline_functions_inlined/after_inlining.
8483 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8484 (pass_fixup_cfg): New pass.
8485 * passes.c (init_optimization_passes): Add fixup_cfg.
8486
17021bc8
RG
84872009-03-28 Richard Guenther <rguenther@suse.de>
8488
8489 PR tree-optimization/38458
8490 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8491 argument use the arguments copy-of value.
8492
e8114fba
RG
84932009-03-28 Richard Guenther <rguenther@suse.de>
8494
8495 PR tree-optimization/38180
8496 * tree-ssa-ccp.c (get_default_value): Simplify.
8497 (likely_value): Likewise.
8498 (surely_varying_stmt_p): Properly handle VOP case.
8499 (ccp_initialize): Likewise.
8500 (ccp_fold): Handle propagating through *&.
8501 (fold_const_aggregate_ref): Also handle decls.
8502
257eb6e3
JH
85032009-03-28 Jan Hubicka <jh@suse.cz>
8504
8505 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8506 * cgraph.h (cgraph_node): Likewise.
8507 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8508 (cgraph_reset_node): Use process flag.
8509 (cgraph_mark_functions_to_output): Likewise.
8510 (cgraph_expand_function): Likewise.
8511 (cgraph_expand_all_functions): Likewise.
8512 (cgraph_output_in_order): Likewise.
8513 * dwarf2out.c (reference_to_unused): Likewise.
8514 * passes.c do_per_function_toporder): Likewise.
8515
61a05df1
JH
85162009-03-28 Jan Hubicka <jh@suse.cz>
8517
8518 Bring from lto-branch:
ba20e309 8519
61a05df1
JH
8520 2008-09-03 Doug Kwan <dougkwan@google.com>
8521
8522 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8523 enums instead of reason strings.
8524 * cgraph.c (cgraph_create_edge): Same.
8525 (cgraph_inline_failed_string): New function.
8526 * cgraph.h (cgraph_inline_failed_t): New enum type.
8527 (cgraph_inline_failed_string): New prototype.
8528 (struct cgraph_edge): Change type of INLINED_FAILED from constant
8529 char pointer to cgraph_inline_failed_t.
8530 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8531 (cgraph_default_inline_p): Ditto.
60839f5d 8532 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
8533 to cgraph_inline_failed_t pointer.
8534 * cif-code.def: New file.
8535 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8536 reason string.
8537 (cgraph_check_inline_limits): Change type of REASON to pointer to
8538 cgraph_inline_failed_t. Replace reason strings with enums.
8539 (cgraph_default_inline_p): Ditto.
8540 (cgraph_recursive_inlining_p): Ditto.
8541 (update_caller_keys): Change type of FAILED_REASON to
8542 cgraph_inline_failed_t.
8543 (cgraph_set_inline_failed): Change type of REASON to pointer to
8544 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
8545 convert enums to strings for text output.
8546 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8547 to be of type cgraph_inline_failed_t. Replace reason strings with
8548 enums. Call cgraph_inline_failed_string to covert enums
8549 to strings for text output.
8550 (cgraph_decide_inlining): Replace reason strings with enums.
8551 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8552 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
8553 for text output.
8554 * tree-inline.c (expand_call_inline): Change type of REASON
8555 to cgraph_inline_failed_t. Replace reason strings with enums.
8556 Call cgraph_inline_failed_string for text output.
8557 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8558 (cgraph.o): Ditto.
8559
144e8aac
JH
85602009-03-28 Jan Hubicka <jh@suse.cz>
8561
8562 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8563 cgraph_clone_node): Remove master clone handling.
8564 (cgraph_is_master_clone, cgraph_master_clone): Remove.
8565 * cgraph.h (master_clone): Remove.
8566 (cgraph_is_master_clone, cgraph_master_clone): Remove.
8567 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8568 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8569
4a371c8d
JH
85702009-03-28 Jan Hubicka <jh@suse.cz>
8571
8572 * cgraph.c (cgraph_function_body_availability): Functions declared
8573 inline are always safe to assume that it is not going to be replaced.
8574
6cdb0ee3
RG
85752009-03-28 Richard Guenther <rguenther@suse.de>
8576
8577 PR tree-optimization/38513
8578 * tree-ssa-pre.c (eliminate): Remove redundant stores.
8579 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8580 EXC_PTR_EXPR and FILTER_EXPR.
8581 (get_ref_from_reference_ops): Likewise.
8582
8ca1fd76
RG
85832009-03-28 Richard Guenther <rguenther@suse.de>
8584
8585 PR tree-optimization/38968
8586 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8587 Use FLOOR_MOD_EXPR to compute misalignment.
8588
a254e44d
RG
85892009-03-28 Richard Guenther <rguenther@suse.de>
8590
8591 PR tree-optimization/37795
8592 * tree.h (combine_comparisons): Declare.
8593 * fold-const.c (combine_comparisons): Export.
8594 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8595 comparisons.
8596 (ifcombine_iforif): Use combine_comparisons.
8597
a8ee227c
JH
85982009-03-28 Jan Hubicka <jh@suse.cz>
8599
8600 * tree-eh.c (inlinable_call_p): New function.
8601 (make_eh_edges): Use it.
8602 (verify_eh_edges): Use it.
8603 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8604 * except.c (reachable_next_level): Add inlinable_function argument
8605 (sjlj_find_directly_reachable_regions): Update.
8606 (add_reachable_handler): Do not set saw_any_handlers.
8607 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8608 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8609 Add new inlinable call parameter.
8610 (can_throw_internal, can_throw_external): Update.
8611 * except.h (can_throw_internal_1, can_throw_external_1,
8612 foreach_reachable_handler): Update declaration.
8613
52c0e446
JM
86142009-03-28 Joseph Myers <joseph@codesourcery.com>
8615
8616 * config/arm/t-arm-coff, config/h8300/coff.h,
8617 config/i386/i386-aout.h, config/i386/i386-coff.h,
8618 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8619 config/pdp11/2bsd.h, config/rs6000/aix41.h,
8620 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8621 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8622 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8623 sys-types.h: Remove.
8624 * Makefile.in: Remove protoize and fixproto support and references
8625 in comments.
8626 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8627 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8628 Remove.
8629 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8630 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8631 unprotoize$(exeext).
8632 (rest.encap): Don't depend on $(STMP_FIXPROTO)
8633 (.PHONY): Don't depend on proto.
8634 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8635 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8636 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8637 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8638 build/gen-protos.o, build/scan.o, xsys-protos.h,
8639 build/fix-header$(build_exeext), build/fix-header.o,
8640 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8641 stmp-install-fixproto): Remove.
8642 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8643 SYSCALLS.c or fixproto files.
8644 (install-common): Don't install protoize.
8645 (install-headers-tar, install-headers-cpio, install-headers-cp):
8646 Don't depend on $(STMP_FIXPROTO).
8647 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
8648 install fixproto files or write out fixproto settings.
8649 (uninstall): Don't uninstall protoize.
8650 * config.gcc (use_fixproto): Remove.
8651 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8652 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8653 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8654 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8655 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8656 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8657 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8658 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8659 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8660 * config/t-vxworks (STMP_FIXPROTO): Remove.
8661 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8662 STMP_FIXPROTO): Remove.
8663 * config.in, configure: Regenerate.
8664 * crtstuff.c (gid_t, uid_t): Don't undefine.
8665 * doc/install.texi: Change m68k-coff to m68k-elf in example.
8666 (arm-*-coff, arm-*-aout: Remove target entries.
8667 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8668 Remove mention of AIX 4.1.
8669 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8670 * doc/invoke.texi (Running Protoize): Remove.
8671 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8672 (Protoize Caveats): Remove.
8673 * tsystem.h: Update comments on headers assumed to exist.
8674
20a07f44
VM
86752009-03-27 Vladimir Makarov <vmakarov@redhat.com>
8676
8677 * genautomata.c: Add a new year to the copyright. Add a new
8678 reference.
8679 (struct insn_reserv_decl): Add comments for member bypass_list.
8680 (find_bypass): Remove.
8681 (insert_bypass): New.
8682 (process_decls): Use insert_bypass.
8683 (output_internal_insn_latency_func): Output all bypasses with the
8684 same input insn in one switch case.
8685
8686 * rtl.def (define_bypass): Describe bypass choice.
8687 * doc/md.texi (define_bypass): Ditto.
8688
3a0d06c1
RB
86892009-03-27 Richard Guenther <rguenther@suse.de>
8690
8691 * gimplify.c (mark_addressable): Export.
8692 * tree-flow.h (mark_addressable): Declare.
8693 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8694 * tree-ssa.c (verify_phi_args): Verify that address taken
8695 variables have TREE_ADDRESSABLE set.
8696
86972009-03-27 Richard Guenther <rguenther@suse.de>
8698
8699 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8700 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
8701 Do not mark decls TREE_ADDRESSABLE.
8702 (build_fold_addr_expr): Adjust.
8703 (fold_addr_expr): Remove.
8704 (fold_unary): Use build_fold_addr_expr.
8705 (fold_comparison): Likewise.
8706 (split_address_to_core_and_offset): Likewise.
8707 * coverage.c (tree_coverage_counter_addr): Mark the array decl
8708 TREE_ADDRESSABLE.
8709 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8710 (gimplify_modify_expr_to_memcpy): Mark source and destination
8711 addressable.
8712 * omp-low.c (create_omp_child_function): Mark the object decl
8713 TREE_ADDRESSABLE.
8714 (lower_rec_input_clauses): Mark the var we take the address of
8715 TREE_ADDRESSABLE.
8716 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8717
2ac26e15
L
87182009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8719
8720 PR middle-end/39315
8721 * cfgexpand.c (expand_one_stack_var_at): Change alignment
8722 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8723
472c7fbd
RG
87242009-03-27 Richard Guenther <rguenther@suse.de>
8725
8726 PR tree-optimization/39120
8727 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8728 constraints.
8729 (handle_lhs_call): Process return constraints. Add escape
8730 constraints if necessary.
8731 (handle_const_call): Fill out return constraints. Make nested
8732 case more precise. Avoid consttmp if possible.
8733 (handle_pure_call): Fill out return constraints. Avoid
8734 callused if possible.
8735 (find_func_aliases): Simplify call handling.
8736
87372009-03-27 Richard Guenther <rguenther@suse.de>
8738
8739 PR tree-optimization/39120
8740 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8741 as a representative.
8742 (solve_graph): Do propagate CALLUSED.
8743 (handle_pure_call): Use a scalar constraint from CALLUSED for
8744 the return value.
8745 (find_what_p_points_to): CALLUSED shall not appear in poins-to
8746 solutions.
8747
d9223014
L
87482009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8749
8750 PR c/39323
8751 * c-common.c (handle_aligned_attribute): Properly check alignment
8752 overflow. Use (1U << i) instead of (1 << i).
8753
ba20e309 8754 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
8755
8756 * expr.h (get_mem_align_offset): Updated.
8757
8758 * tree.h (tree_decl_common): Change align to "unsigned int" and
8759 move it before pointer_alias_set.
8760
689b689c
L
87612009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8762 Jakub Jelinek <jakub@redhat.com>
8763
8764 PR target/38034
8765 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8766 gr_register_operand with gr_reg_or_0_operand.
8767 (cmpxchg_rel_di): Likewise.
8768 (sync_lock_test_and_set<mode>): Likewise.
8769
c619e982
L
87702009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8771
8772 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8773 (true_regnum): Likewise.
8774
8775 * rtlanal.c (subreg_info): Moved to ...
8776 * rtl.h (subreg_info): Here. New.
8777 (subreg_get_info): New.
8778
8779 * rtlanal.c (subreg_get_info): Make it extern.
8780
51212b32
L
87812009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8782
8783 PR target/39472
8784 * config/i386/i386.c (ix86_abi): New.
8785 (override_options): Handle -mabi=.
ba20e309 8786 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
8787 (ix86_call_abi_override): Likewise.
8788 (init_cumulative_args): Likewise.
8789 (function_arg_advance): Likewise.
8790 (function_arg_64): Likewise.
8791 (function_arg): Likewise.
8792 (ix86_pass_by_reference): Likewise.
8793 (ix86_function_value_regno_p): Likewise.
8794 (ix86_build_builtin_va_list_abi): Likewise.
8795 (setup_incoming_varargs_64): Likewise.
8796 (is_va_list_char_pointer): Likewise.
8797 (ix86_init_machine_status): Likewise.
ba20e309 8798 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
8799 (ix86_function_type_abi): Return enum calling_abi. Rewrite
8800 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 8801 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
8802 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
8803 with ix86_abi.
8804 (ix86_fn_abi_va_list): Updated.
8805
8806 * config/i386/i386.h (ix86_abi): New.
8807 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8808 (CONDITIONAL_REGISTER_USAGE): Likewise.
8809 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8810 (machine_function): Likewise.
8811
8812 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8813 with ix86_abi.
8814 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8815 (STACK_BOUNDARY): Likewise.
8816 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8817
8818 * config/i386/i386.opt (mabi=): New.
8819
8820 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8821 return enum calling_abi.
8822 (ix86_function_type_abi): Likewise.
8823 (ix86_function_abi): Removed.
8824
8825 * doc/invoke.texi: Document -mabi= option for x86.
8826
7338ea63
KG
88272009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8828
8829 * builtins.c (real_dconstp): Delete.
8830 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8831
68599f33
DS
88322009-03-27 Dodji Seketeli <dodji@redhat.com>
8833 Jakub Jelinek <jakub@redhat.com>
8834
8835 PR debug/37959
8836 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8837 (gen_subprogram_die): When a function is explicit, generate the
8838 DW_AT_explicit attribute.
8839 * langhooks.h (struct lang_hooks_for_decls): Add
8840 function_decl_explicit_p langhook.
8841 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8842 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8843
9f5e9983
JJ
88442009-03-27 Jakub Jelinek <jakub@redhat.com>
8845
64d7685c
JJ
8846 * builtins.c (fold_builtin_memory_op): Optimize memmove
8847 into memcpy if we can prove source and destination don't overlap.
8848
9f5e9983
JJ
8849 * tree-inline.c: Include gt-tree-inline.h.
8850 (clone_fn_id_num): New variable.
8851 (clone_function_name): New function.
8852 (tree_function_versioning): Use it.
8853 * Makefile.in (GTFILES): Add tree-inline.c.
8854
e54d52a8
MM
88552009-03-27 Mark Mitchell <mark@codesourcery.com>
8856
8857 * BASE-VER: Change to 4.5.0.
8858
e9d51dc6
XDL
88592009-03-27 Xinliang David Li <davidxl@google.com>
8860
8861 PR tree-optimization/39557
8862 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8863
4577cea1
XDL
88642009-03-27 Xinliang David Li <davidxl@google.com>
8865
8866 PR tree-optimization/39548
2ba9daa7 8867 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
8868 candidate check.
8869
0f7464f4
L
88702009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8871
8872 * c-common.c (pointer_int_sum): Use %wd on return from
8873 tree_low_cst.
8874
a8847a7f
L
88752009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8876
8877 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8878 on return from tree_low_cst.
8879
b0957daf
AP
88802009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
8881
8882 PR c++/36799
ba20e309
UB
8883 * ginclude/stdarg.h (va_copy): Define also for
8884 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 8885
a5f805df
MLI
88862009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8887
8888 PR c++/35652
8889 * builtins.h (c_strlen): Do not warn here.
8890 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8891 * c-common.c (pointer_int_sum): Take an explicit location.
8892 Warn about offsets out of bounds.
8893 * c-common.h (pointer_int_sum): Adjust declaration.
8894
6f401211
RW
88952009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8896
a5f805df
MLI
8897 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8898 markup glitch.
6f401211 8899
5a59b39e
JJ
89002009-03-26 Jakub Jelinek <jakub@redhat.com>
8901
8902 PR c++/39554
8903 * opts.c (warn_if_disallowed_function_p): Don't assume
8904 get_callee_fndecl must return non-NULL.
8905
d5f89b53
VM
89062009-03-26 Vladimir Makarov <vmakarov@redhat.com>
8907
8908 PR rtl-optimization/39522
8909 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8910 when reg_reloaded_valid is set.
8911
61238a79
UW
89122009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8913
8914 * config/spu/divv2df3.c: New file.
8915 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8916 (DPBIT_FUNCS): Filter out _div_df.
8917
03f8829b
BS
89182009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
8919
8920 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8921 a jump insn, count that jump in the distance to the loop start.
8922
9fdcdc74
KK
89232009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
8924
8925 PR target/39523
8926 * config/sh/sh.c (calc_live_regs): Fix condition for global
8927 registers except PIC_OFFSET_TABLE_REGNUM.
8928
46994828
KT
89292009-03-25 Kai Tietz <kai.tietz@onevision.com>
8930
8931 PR/39518
8932 * doc/invoke.texi (-mconsole): New.
8933 (-mcygwin): New.
8934 (-mno-cygwin): New.
8935 (-mdll): New.
8936 (-mnop-fun-dllimport): New.
8937 (-mthread): New.
8938 (-mwin32): New.
8939 (-mwindows): New.
8940 (sub section "i386 and x86-64 Windows Options"): New.
8941
60839f5d 89422009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
8943
8944 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8945 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8946
ae560440
RG
89472009-03-25 Richard Guenther <rguenther@suse.de>
8948
8949 PR middle-end/39497
8950 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8951 of -Wno-error.
8952
cd510f15
AM
89532009-03-25 Andrey Belevantsev <abel@ispras.ru>
8954
8955 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8956 neither of haifa/selective schedulers are working.
8957
44ab0f0e
RW
89582009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8959
8960 * doc/invoke.texi (Debugging Options): Fix description of
8961 -fno-merge-debug-strings.
8962
ad9646c7
HPN
89632009-03-24 Hans-Peter Nilsson <hp@axis.com>
8964
e6142656
HPN
8965 * config/cris/libgcc.ver: New version-script.
8966 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8967
ad9646c7
HPN
8968 * configure.ac <GAS features, nop mnemonic>: Add pattern
8969 crisv32-*-* for "nop".
ba20e309 8970 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
8971 * configure: Regenerate.
8972
09ac4473
IR
89732009-03-24 Ira Rosen <irar@il.ibm.com>
8974
8975 PR tree-optimization/39529
8976 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8977 mark_sym_for_renaming for the tag copied to the new vector
8978 pointer.
8979
d94a427e
AL
89802009-03-24 Arthur Loiret <aloiret@debian.org>
8981
ba20e309 8982 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
8983 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8984 EXTRA_SPEC_FUNCTIONS.
8985 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8986 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8987 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8988 -march and -mtune options.
8989
60839f5d 89902009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
8991
8992 * config/m68k/t-rtems: Add m5329 multilib.
8993
603f5959
DS
89942009-03-24 Dodji Seketeli <dodji@redhat.com>
8995 Jakub Jelinek <jakub@redhat.com>
8996
8997 PR debug/39524
8998 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8999 nodes.
9000
c5cdb03f
JJ
90012009-03-23 Jakub Jelinek <jakub@redhat.com>
9002
9003 PR c/39495
9004 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
9005 instead of c_parser_expression_conv, if original_code isn't one of the
9006 4 allowed comparison codes, fail.
9007
3691626c
RG
90082009-03-23 Richard Guenther <rguenther@suse.de>
9009
9010 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
9011 * tree.h (struct tree_type): Likewise.
9012 * reload.h (struct insn_chain): Likewise.
9013 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
9014 * function.h (struct function): Likewise.
9015 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
9016
88ccb72a
JJ
90172009-03-23 Jakub Jelinek <jakub@redhat.com>
9018
9019 PR tree-optimization/39516
9020 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
9021
60839f5d 90222009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 9023
2ba9daa7 9024 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
9025 should be set true if BITS_PER_WORD of target is bigger than 32
9026
f82162f8
HPN
90272009-03-22 Hans-Peter Nilsson <hp@axis.com>
9028
9029 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
9030 Translate -B-options to -rpath-link. Correct existing
9031 rpath-link and conditionalize on !nostdlib.
9032
048fd785
RW
90332009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9034
9035 * doc/extend.texi (Function Attributes, Variable Attributes):
9036 Fix typos.
9037 * doc/invoke.texi (Debugging Options, Optimize Options)
9038 (i386 and x86-64 Options, MCore Options): Likewise.
9039
6e75c1a9
JJ
90402009-03-20 Jakub Jelinek <jakub@redhat.com>
9041
9042 PR debug/37890
9043 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
9044 it for block local namespace aliases.
9045 (gen_decl_die): Pass context_die to gen_namespace_die.
9046
ea1199ee
JJ
90472009-03-19 Jakub Jelinek <jakub@redhat.com>
9048
9049 PR c/39495
9050 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
9051 minimum or maximum value.
9052
58929c10
AO
90532009-03-19 Alexandre Oliva <aoliva@redhat.com>
9054
9055 * reginfo.c (globalize_reg): Recompute derived reg sets.
9056
60839f5d 90572009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
9058
9059 PR target/39063
9060 * libgcc2.c (mprotect): Do not use signed arguments for
9061 VirtualProtect, use DWORD arguments. Also fix the 'may
9062 be used uninitialized' warning for the np variable.
9063
f57c2f04
JJ
90642009-03-19 Jakub Jelinek <jakub@redhat.com>
9065
9066 PR target/39496
9067 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
9068 functions using regparm calling conventions when not optimizing.
9069 (ix86_function_sseregparm): Similarly for sseregparm calling
9070 conventions.
9071
9e517d61
LF
90722009-03-19 Li Feng <nemokingdom@gmail.com>
9073
9074 PR middle-end/39500
9075 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
9076 dependence if the first conflict is after niter iterations.
9077
8ef20026
HPN
90782009-03-19 Hans-Peter Nilsson <hp@axis.com>
9079
9080 PR middle-end/38609
9081 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
9082 functions with dynamic stack-pointer adjustments.
9083
64e4a1a6
BE
90842009-03-19 Ben Elliston <bje@au.ibm.com>
9085
9086 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
9087 option; change to -msdata=data.
9088
9a0f3e86
RW
90892009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9090
9091 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
9092 and -fopenmp.
9093
09bc5979
EB
90942009-03-18 Eric Botcazou <ebotcazou@adacore.com>
9095
9096 PR target/35180
9097 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
9098
332459cd
SL
90992009-03-18 Sandra Loosemore <sandra@codesourcery.com>
9100
9101 * doc/invoke.texi (Code Gen Options): Expand discussion of
9102 -fno-common.
9103
8f5929e1
JJ
91042009-03-18 Jakub Jelinek <jakub@redhat.com>
9105
9106 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
9107 * matrix-reorg.c (struct matrix_info): Likewise.
9108 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
9109 * rtl.h (struct mem_attrs): Likewise.
9110 * df.h (struct df): Likewise.
9111 * tree-data-ref.h (struct data_dependence_relation): Likewise.
9112 * ira-int.h (struct ira_allocno): Likewise.
9113 * df-scan.c (struct df_collection_rec): Likewise.
9114 * ira.c (struct equivalence): Likewise.
9115 * function.c (struct temp_slot): Likewise.
9116 * cfgloop.h (struct loop): Likewise.
9117
d130d647
JJ
9118 PR debug/39485
9119 * function.c (use_register_for_decl): When not optimizing, disregard
9120 register keyword for variables with types containing methods.
9121
9968d233
SP
91222009-03-18 Sebastian Pop <sebastian.pop@amd.com>
9123
9124 PR middle-end/39447
9125 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
9126 (is_simple_operand): Call contains_component_ref_p before calling data
9127 reference analysis that would fail on COMPONENT_REFs.
9128
9129 * tree-vrp.c (search_for_addr_array): Fix formatting.
9130
69484bfd
RG
91312009-03-18 Richard Guenther <rguenther@suse.de>
9132
9133 * tree-vect-transform.c (vect_loop_versioning): Fold the
9134 generated comparisons.
9135 * tree-vectorizer.c (set_prologue_iterations): Likewise.
9136 (slpeel_tree_peel_loop_to_edge): Likewise.
9137
66811228
RW
91382009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9139
0631b69f
RW
9140 PR middle-end/37805
9141 * opts.c (print_specific_help): In addition to `undocumented',
9142 accept `separate' and `joined' flags if passed alone. Describe
9143 output by the first matched one of those.
9144 (common_handle_option): Skip over empty strings.
9145 * gcc.c (display_help): Fix help string for `--help='.
9146 * doc/invoke.texi (Option Summary, Overall Options): With
9147 `--help=', classes and qualifiers can both be repeated, but
9148 only the latter can be negated. One should not pass only
9149 negated qualifiers. Fix markup and examples.
9150
66811228
RW
9151 Revert
9152 2008-10-14 Jakub Jelinek <jakub@redhat.com>
9153 PR middle-end/37805
9154 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
9155 and -fhelp=separate.
9156
3c072c6b
JY
91572009-03-17 Jing Yu <jingyu@google.com>
9158
9159 PR middle-end/39378
80c65208
JY
9160 * function.h (struct rtl_data): Move is_thunk from here...
9161 (struct function): ...to here.
9162 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
9163 * varasm.c (assemble_start_function): Change is_thunk from crtl to
9164 cfun.
80c65208
JY
9165 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
9166 cfun.
9167 (alpha_does_function_need_gp, alpha_start_function): Likewise.
9168 (alpha_output_function_end_prologue): Likewise.
9169 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
9170 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
9171 (rs6000_output_function_epilogue): Likewise.
9172 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 9173
9ade279b
UB
91742009-03-17 Uros Bizjak <ubizjak@gmail.com>
9175
9176 PR target/39482
9177 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
9178 from different units in a single alternative.
9179 (*truncdfsf_i387): Ditto.
9180 (*truncxfsf2_mixed): Ditto.
9181 (*truncxfdf2_mixed): Ditto.
9182
16e60c17
JJ
91832009-03-17 Jakub Jelinek <jakub@redhat.com>
9184
98381eb4
JJ
9185 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
9186 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
9187
df5deb18
JJ
9188 PR debug/39474
9189 * tree-ssa-live.c (remove_unused_locals): Don't remove local
9190 unused non-artificial variables when not optimizing.
9191
a3f596ba
JJ
9192 PR debug/39471
9193 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
9194 DW_TAG_imported_module even if decl is IMPORTED_DECL with
9195 NAMESPACE_DECL in its DECL_INITIAL.
9196
6b2b8871
JJ
9197 PR middle-end/39443
9198 * optabs.c (set_user_assembler_libfunc): New function.
9199 * expr.h (set_user_assembler_libfunc): New prototype.
9200 * c-common.c: Include libfuncs.h.
9201 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
9202 for memcmp, memset, memcpy, memmove and abort.
9203 * Makefile.in (c-common.o): Depend on libfuncs.h.
9204
16e60c17
JJ
9205 PR debug/39412
9206 * dwarf2out.c (gen_inlined_enumeration_type_die,
9207 gen_inlined_structure_type_die, gen_inlined_union_type_die,
9208 gen_tagged_type_instantiation_die): Removed.
9209 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
9210 do nothing.
9211
4d936aca
JJ
92122009-03-17 Janis Johnson <janis187@us.ibm.com>
9213
9214 PR testsuite/38526
9215 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
9216 its use.
9217 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
9218 (check-parallel-%): Ditto.
9219 (check-consistency): Ditto.
9220
4e9b2e50
KT
92212009-03-17 Kai Tietz <kai.tietz@onevision.com>
9222
9223 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
9224 local variable rhs by NULL_TREE.
9225
21440b2d
L
92262009-03-17 H.J. Lu <hongjiu.lu@intel.com>
9227
9228 PR target/39477
9ade279b 9229 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 9230
d8905c6a
L
92312009-03-17 H.J. Lu <hongjiu.lu@intel.com>
9232
9233 PR target/39476
9ade279b 9234 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
9235
92362009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
9237
9238 PR target/39473
9239 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
9240 for ms->sysv ABI calls only in 64bit mode.
9241
9242 * config/i386/i386.md (untyped_call): Support 32bit.
9243
cdcabece
L
92442009-03-16 H.J. Lu <hongjiu.lu@intel.com>
9245
9246 * doc/extend.texi: Replace x86_65 with x86_64.
9247
97b4ba9f
JJ
92482009-03-16 Jakub Jelinek <jakub@redhat.com>
9249
9250 PR tree-optimization/39455
9251 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
9252 mismatches for POINTER_TYPE_P (type).
9253 (number_of_iterations_le): Likewise.
9254
60839f5d 92552009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
9256
9257 * config/picochip/picochip.c: Removed profiling support.
9258 * config/picochip/picochip.md: Removed profiling instruction.
9259 * config/picochip/picochip.h: Removed profiling builtin.
9260
f38095f3
JM
92612009-03-16 Joseph Myers <joseph@codesourcery.com>
9262
9263 * doc/install.texi (--with-host-libstdcxx): Document.
9264
2cb4817b
AS
92652009-03-14 Anatoly Sokolov <aesok@post.ru>
9266
9267 PR target/34299
9268 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
9269 generate a warning if the function name does not begin with
9270 "__vector" and the function has either the 'signal' or 'interrupt'
9271 attribute, from here to ...
9272 (avr_declare_function_name): ...here. New function.
9273 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
9274 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
9275
39b2ac74
JJ
92762009-03-14 Jakub Jelinek <jakub@redhat.com>
9277
9278 PR bootstrap/39454
9279 * cse.c (fold_rtx): Don't modify original const_arg1 when
9280 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
9281 separate variable instead.
9282 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
9283 from out of range shift counts.
9284 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
9285
ad41bd84 92862009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 9287
60839f5d 9288 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
9289 diagnostic.h with $(DIAGNOSTIC_H).
9290
ad41bd84 92912009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
9292
9293 PR target/39431
9294 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
9295 predicate.
9296 * config/i386/sync.md (sync_compare_and_swap<mode>,
9297 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
9298 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
9299 into a register.
9300 (sync_double_compare_and_swapdi_pic,
9301 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
9302 cmpxchg8b_pic_memory_operand instead of just memory_operand.
9303
122c59c7
L
93042009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9305
9306 PR target/39445
9ade279b 9307 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 9308
cec8874f
L
93092009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9310
9311 PR target/39327
9312 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9313 (avx_addsubv4df3): Likewise.
9314 (*avx_addsubv4sf3): Likewise.
9315 (sse3_addsubv4sf3): Likewise.
9316
bbb52802
L
93172009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9318
9319 PR target/38824
9ade279b 9320 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 9321
a812fb07
VM
93222009-03-12 Vladimir Makarov <vmakarov@redhat.com>
9323
9324 PR debug/39432
9325 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
9326 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9327 registers for allocnos created from user-defined variables.
9328
4caab5ba
UW
93292009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9330
9331 PR target/39181
9332 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
9333 of non-integer mode as well.
9334
498e51ca
AN
93352009-03-11 Adam Nemet <anemet@caviumnetworks.com>
9336
9337 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
9338 for functions for which the parameter types are unknown.
9339
9bfaf89d
JJ
93402009-03-11 Jakub Jelinek <jakub@redhat.com>
9341
9342 PR target/39137
9ade279b 9343 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
9344 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9345 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9346 * config/i386/i386.c (ix86_local_alignment): For
9347 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9348 long long variables on the stack to avoid dynamic realignment.
9349 Allow the first argument to be a decl rather than type.
9350 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9351
18a3bdcb
NC
93522009-03-11 Nick Clifton <nickc@redhat.com>
9353
9354 PR target/5362
40190a76
NC
9355 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9356 options.
9357 Add description to mno-lsim option.
9358 * config/mcore/mcore.h: Remove comment about deprecated m4align
9359 option.
9360 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9361 * doc/invoke.texi: Add description of mno-lsim and
9362 mstack-increment options.
9363
18a3bdcb
NC
9364 * config/fr30/fr30.opt: Document the -mno-lsim option.
9365 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9366 and -mno-lsim options.
9367
dc215785
UW
93682009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9369
9370 * fold-const.c (fold_comparison): Only call fold_inf_compare
9371 if the mode supports infinities.
9372
7716876b
JM
93732009-03-11 Jason Merrill <jason@redhat.com>
9374
9375 PR debug/39086
9376 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9377 end already did. Notice GIMPLE_CALL modifications of the result.
9378 Don't copy debug information from an ignored decl or a decl from
9379 another function.
9380
ddef83d2
RG
93812009-03-10 Richard Guenther <rguenther@suse.de>
9382 Nathan Froyd <froydnj@codesourcery.com>
9383
9384 PR middle-end/37850
9ade279b 9385 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
9386 (__divMODE3): Likewise.
9387
9a9ba8d9
JJ
93882009-03-09 Jakub Jelinek <jakub@redhat.com>
9389
9390 PR tree-optimization/39394
9391 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9392 DECL_SIZE_UNIT of variable length FIELD_DECLs.
9393
929b7fc3
AK
93942009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9395
9396 * recog.c (verfiy_changes): Disallow renaming of hard regs in
9397 inline asms for register asm ("") declarations.
9398
1803581d
EB
93992009-03-09 Eric Botcazou <ebotcazou@adacore.com>
9400
9401 * fold-const.c (fold_unary): Fix comment.
9402
8454d27e
JH
94032009-03-07 Jan Hubicka <jh@suse.cz>
9404
9405 PR target/39361
969a5433
JJ
9406 * tree-inline.c (setup_one_parameter): Do replacement of const
9407 argument by constant in SSA form.
8454d27e 9408
3a695389
UW
94092009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9410
9411 PR middle-end/38028
9412 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9413 determine alignment passed to assign_stack_local.
9414 (assign_parms_unsplit_complex): Likewise.
9415 * except.c (sjlj_build_landing_pads): Likewise.
9416
9f0e7885
JJ
94172009-03-06 Jakub Jelinek <jakub@redhat.com>
9418
65401a0b
JJ
9419 PR middle-end/39360
9420 * tree-flow.h (add_referenced_var): Return bool instead of void.
9421 * tree-dfa.c (add_referenced_var): Return result of
9422 referenced_var_check_and_insert call.
9423 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9424 of referenced_var_check_and_insert.
9425
9f0e7885 9426 PR debug/39372
9ade279b 9427 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
9428 (gen_variable_die): Emit DW_AT_location on abstract static variable's
9429 DIE, don't emit it if abstract origin already has it.
9430 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9431 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9432
3b664bd1
JBG
94332009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9434
ba20e309 9435 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
9436 detection.
9437 (write_tm_constrs_h): Indent generated code.
9438
d8f8ca80
RR
94392009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9440
9441 * doc/extend.texi (Function Attributes): Add documentation
9442 for isr attributes.
9443
6c3d550c
JJ
94442009-03-06 Jakub Jelinek <jakub@redhat.com>
9445
9446 PR debug/39387
9447 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9448 take locus from its DECL_SOURCE_LOCATION instead of input_location.
9449
f9e96751
BS
94502009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
9451
9452 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9453 the loop as bad.
9454
ee0ee7e2
JJ
94552009-03-05 Jakub Jelinek <jakub@redhat.com>
9456
9457 PR debug/39379
9458 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9459 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9460
6c6094f1
UB
94612009-03-05 Uros Bizjak <ubizjak@gmail.com>
9462
9463 * config/i386/i386.md (R8_REG, R9_REG): New constants.
9464 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9465 constants instead of magic numbers.
9466 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9467 (QI_REG_P): Ditto.
9468 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9469 (x86_64_ms_abi_int_parameter_registers): Ditto.
9470 (x86_64_int_return_registers): Ditto.
09f8a8d3 9471 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
9472 (ix86_expand_call): Ditto for clobbered_registers array.
9473 (ix86_hard_regno_mode_ok): Ditto.
9474 (x86_extended_QIreg_mentioned_p): Ditto.
9475
b267bd41
R
94762009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
9477
6c6094f1 9478 PR tree-optimization/39349
1f3ad3f0
R
9479 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9480
b267bd41
R
9481 * combine.c (gen_lowpart_for_combine): Use omode when generating
9482 clobber.
9483
1242bc9d
R
94842009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
9485
6c6094f1 9486 PR rtl-optimization/39235
1242bc9d
R
9487 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9488
48f03606
ZD
94892009-03-04 Zdenek Dvorak <ook@ucw.cz>
9490
9491 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9492
b505e785
RG
94932009-03-04 Richard Guenther <rguenther@suse.de>
9494
9495 PR tree-optimization/39362
9496 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9497 that occur in abnormal PHIs should be varying.
9498
f017bf5e
ZD
94992009-03-04 Zdenek Dvorak <ook@ucw.cz>
9500
9501 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9502 Extend comments.
9503 (simple_iv): Take loop as an argument instead of statement.
9504 * tree-scalar-evolution.h (simple_iv): Declaration changed.
9505 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9506 to simple_iv.
9507 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9508 Ditto.
9509 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9510 * matrix-reorg.c (analyze_transpose): Ditto.
9511 * tree-data-ref.c (dr_analyze_innermost): Ditto.
9512 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9513 * tree-predcom.c (ref_at_iteration): Ditto.
9514 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9515
6a66f28e
RG
95162009-03-04 Richard Guenther <rguenther@suse.de>
9517
9518 PR tree-optimization/39358
9519 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9520 escaped_id and callused_id.
9521 (solve_graph): Likewise.
9522
57e454ee
RG
95232009-03-04 Richard Guenther <rguenther@suse.de>
9524
9525 PR tree-optimization/39339
9526 * tree-sra.c (try_instantiate_multiple_fields): Make it
9527 no longer ICE on the above.
9528
a6fe9ed4
JM
95292009-03-03 Joseph Myers <joseph@codesourcery.com>
9530
9531 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9532 that fits within Pmode.
9533
dc672951
SE
95342009-03-03 Steve Ellcey <sje@cup.hp.com>
9535
9536 PR middle-end/10109
9537 * tm.texi (LIBCALL_VALUE): Update description.
9538
8b9d598f
SE
95392009-03-03 Steve Ellcey <sje@cup.hp.com>
9540
9541 PR middle-end/34443
9542 * doc/extend.texi (section): Update description.
9543
13e4e36e
L
95442009-03-03 H.J. Lu <hongjiu.lu@intel.com>
9545
9546 PR middle-end/39345
9547 * tree-inline.c (remapped_type): New.
9548 (can_be_nonlocal): Call remapped_type instead of remap_type.
9549
067dd3c9
JJ
95502009-03-03 Jakub Jelinek <jakub@redhat.com>
9551
9552 PR fortran/39354
9553 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9554 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9555
9bd9f738
RG
95562009-03-03 Richard Guenther <rguenther@suse.de>
9557
9558 PR middle-end/39272
9559 * tree.c (tree_nonartificial_location): New function.
9560 * tree.h (tree_nonartificial_location): Declare.
9561 * builtins.c (expand_builtin_memory_chk): Provide location
9562 of the call location for artificial function pieces.
9563 (maybe_emit_chk_warning): Likewise.
9564 (maybe_emit_sprintf_chk_warning): Likewise.
9565 (maybe_emit_free_warning): Likewise.
9566 * expr.c (expand_expr_real_1): Likewise.
9567
f07049c8
JJ
95682009-03-03 Jakub Jelinek <jakub@redhat.com>
9569
9570 PR tree-optimization/39343
9571 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9572 COMPONENT_REF t has ARRAY_TYPE.
9573
7d4fba4a
SP
95742009-03-02 Sebastian Pop <sebastian.pop@amd.com>
9575
9576 PR middle-end/39335
9577 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9578 when the type precision of the induction variable should be
9579 larger than the type precision of nit.
9580 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9581 * graphite.c (graphite_loop_normal_form): Same.
9582 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9583
78168632
UB
95842009-03-02 Uros Bizjak <ubizjak@gmail.com>
9585
9586 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9587 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 9588 numbers to describe clobbered registers.
78168632 9589 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
9590 * config/i386/mmx.md (mmx_emms): Ditto.
9591 (mmx_femms): Ditto.
78168632 9592
63553059
RS
95932009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
9594
9595 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9596 of ABI_64.
9597
500a1f85
UW
95982009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9599
9600 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9601 (spu_section_type_flags): New function.
9602
962aae34
UB
96032009-03-02 Uros Bizjak <ubizjak@gmail.com>
9604
9605 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9606 reg_class_contents of FLOAT_REGS into a temporary.
9607
6dfb529c 96082009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 9609 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
9610
9611 PR tree-optimization/39318
9612 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9613 information to the vectorized statement.
9614
6b5629db
UB
96152009-03-01 Uros Bizjak <ubizjak@gmail.com>
9616
434426d2
UB
9617 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9618 variable. Use defined names instead of magic constants for REX SSE
9619 registers.
6b5629db 9620
14e5b285
RG
96212009-03-01 Richard Guenther <rguenther@suse.de>
9622
9623 PR tree-optimization/39331
9624 * omp-low.c (lower_send_shared_vars): Do not receive new
9625 values for the reference of DECL_BY_REFERENCE parms or results.
9626
526d73ab
JH
96272009-03-01 Jan Hubicka <jh@suse.cz>
9628
9629 PR debug/39267
9630 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9631 BLOCK_NONLOCALIZED_VAR): New macros.
9632 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
9633 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9634 gen_decl_die): Add origin argument. Allow generation of die with
9635 origin at hand only.
526d73ab 9636 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
9637 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9638 of gen_*.
526d73ab
JH
9639 (gen_block_die): Fix checking for unused blocks.
9640 (process_scope_var): Break out from .... ; work with origins only.
9641 (decls_for_scope) ... here; process nonlocalized list.
9642 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
9643 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9644 vars.
526d73ab
JH
9645 (dump_scope_block): Dump them.
9646 * tree-inline.c (remap_decls): Handle nonlocalized vars.
9647 (remap_block): Likewise.
9648 (can_be_nonlocal): New predicate.
9649 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9650
7a9d3fe8
RW
96512009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9652
9653 * configure: Regenerate.
9654
b3cdf3cb
RW
96552009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9656
a16d1645 9657 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 9658 Reuse help texts for duplicate options which do not have any.
a16d1645 9659
1156c176
RW
9660 * gcc.c (display_help): Document --version.
9661
033505fc
RW
9662 * gcc.c (main): If print_help_list and verbose_flag, ensure
9663 driver output comes before subprocess output.
9664
4d077054
RW
9665 * optc-gen.awk: Assign all remaining fields to help string,
9666 space-separated, for multi-line help in *.opt.
9667
a072f1cf
RW
9668 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9669 -Wno-pedantic-ms-format is for MinGW targets only.
9670
b3cdf3cb
RW
9671 * doc/options.texi (Option file format): Fix bad indentation,
9672 restoring dropped sentence.
9673
a3aadcc5
JH
96742009-02-28 Jan Hubicka <jh@suse.cz>
9675
9676 * tree-inline.c (tree_function_versioning): Output debug info.
9677
1cf5abb3
JH
96782009-02-28 Jan Hubicka <jh@suse.cz>
9679
9680 PR debug/39267
9681 * tree-inline.c (setup_one_parameter): Do not copy propagate
9682 arguments when not optimizing.
9683
c4d3f42f
L
96842009-02-28 H.J. Lu <hongjiu.lu@intel.com>
9685
9686 PR target/39327
9687 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9688 (avx_addsubv4df3): Likewise.
9689 (*avx_addsubv4sf3): Likewise.
9690 (sse3_addsubv4sf3): Likewise.
9691 (*avx_addsubv2df3): Likewise.
9692 (sse3_addsubv2df3): Likewise.
9693 (avx_unpckhps256): Correct item selectors.
9694 (avx_unpcklps256): Likewise.
9695 (avx_unpckhpd256): Likewise.
9696 (avx_unpcklpd256): Likewise.
9697
eb50f5f4
JH
96982009-02-28 Jan Hubicka <jh@suse.cz>
9699
9700 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9701 static vars.
9702 (copy_arguments_for_versioning): If var is declared don't declare it.
9703 (tree_function_versioning): First setup substitutions and then copy
9704 args.
9705
26140130
JH
97062009-02-27 Jan Hubicka <jh@suse.cz>
9707
9708 PR debug/39267
9709 * cgraph.h (varpool_output_debug_info): Remove.
9710 * cgraphunit.c (varpool_output_debug_info): Remove.
9711 * dwarf2out.c (deferred_locations_struct): New struct
9712 (deferred_locations): New type.
9713 (deferred_locations_list): New static var.
9714 (deffer_location): New function.
9715 (gen_variable_die): Use it.
9716 (decls_for_scope): Output info on local static vars.
9717 (dwarf2out_finish): Process deferred locations.
9718 * varpool.c (varpool_output_debug_info): Remove.
9719
cff7525f
JH
97202009-02-27 Jan Hubicka <jh@suse.cz>
9721
9722 PR debug/39267
9723 * tree.h (TREE_PROTECTED): Fix comment.
9724 (BLOCK_HANDLER_BLOCK): Remove.
9725 (struct tree_block): Remove handler_block add body_block.
9726 (inlined_function_outer_scope_p): New.
9727 (is_body_block): Remove.
9728 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9729 * dwarf2out.c (is_inlined_entry_point): Remove.
9730 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
9731 (gen_block_die): Use is_inlined_entry_point check. Remove body block
9732 code.
cff7525f
JH
9733 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9734 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
9735 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9736 block with multiple subblocks.
cff7525f
JH
9737 (dump_scope_block): Prettier output; dump more flags and info.
9738 (dump_scope_blocks): New.
9739 (remove_unused_locals): Use dump_scope_blocks.
9740 * tree-flow.h (dump_scope_blocks): Declare.
9741 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9742 * stmt.c (is_body_block): Remove.
9743 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9744 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9745
c20993b9
SP
97462009-02-27 Sebastian Pop <sebastian.pop@amd.com>
9747
9748 PR middle-end/39308
2ba9daa7 9749 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
9750 number_of_iterations_exit from a gcc_assert.
9751
e3cba5e5
AK
97522009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9753
60839f5d 9754 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
9755 jumps if COND is NULL.
9756 (find_cond_jump): New function.
9757 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 9758 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 9759
9dadeeb8
UB
97602009-02-26 Uros Bizjak <ubizjak@gmail.com>
9761
9762 * config/alpha/alpha.h (alpha_expand_mov): Return false if
9763 force_const_mem returns NULL_RTX.
9764
625d3251
EB
97652009-02-26 Jan Hubicka <jh@suse.cz>
9766
9767 PR debug/39267
9768 * cgraph.h (varpool_output_debug_info): Remove.
9769 * cgraphunit.c (varpool_output_debug_info): Remove.
9770 * dwarf2out.c (deferred_locations_struct): New struct
9771 (deferred_locations): New type.
9772 (deferred_locations_list): New static var.
9773 (deffer_location): New function.
9774 (gen_variable_die): Use it.
9775 (decls_for_scope): Output info on local static vars.
9776 (dwarf2out_finish): Process deferred locations.
9777 * varpool.c (varpool_output_debug_info): Remove.
9778
38432148 97792009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
9780
9781 PR rtl-optimization/39241
9782 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9783 to subreg_offset_representable_p.
9784
62d049cf
PB
97852009-02-25 Paolo Bonzini <bonzini@gnu.org>
9786
9787 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9788 execute function prototype. Get f and nregs from max_reg_num
9789 and get_insns. Remove the first backward pass as it's dead,
9790 guard the forward pass by flag_expensive_optimizations.
9791 (rest_of_handle_regmove): Delete.
9792 (pass_regmove): Replace it with regmove_optimize.
9793
f618d33e
MJ
97942009-02-25 Martin Jambor <mjambor@suse.cz>
9795
9796 PR tree-optimization/39259
9797 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 9798 calls_alloca function flags.
f618d33e
MJ
9799 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9800 calls are detected.
9801
c8a05f7c
PB
98022009-02-25 Paolo Bonzini <bonzini@gnu.org>
9803
9804 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9805 flags_set_1_rtx, flags_set_1_set): Delete.
9806 (regmove_optimize): Do not call mark_flags_life_zones.
9807
6d2538f5
JB
98082009-02-24 Julian Brown <julian@codesourcery.com>
9809
9810 PR target/35965
9811 * config/arm/arm.c (require_pic_register): Only set
9812 cfun->machine->pic_reg once per function.
9813
a2fa6772
SL
98142009-02-24 Sandra Loosemore <sandra@codesourcery.com>
9815
9816 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 9817 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 9818
5472de36
SE
98192009-02-24 Steve Ellcey <sje@cup.hp.com>
9820
9821 PR target/33785
9822 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9823
844216f3
RG
98242009-02-24 Richard Guenther <rguenther@suse.de>
9825
9826 PR debug/39285
9827 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9828
71adbef3 98292009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 9830 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
9831
9832 PR tree-optimization/39233
9833 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9834 from converting them to a generic type.
9835
f1a558e0
SP
98362009-02-23 Sebastian Pop <sebastian.pop@amd.com>
9837
9838 PR tree-optimization/39260
9839 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9840 contains a condition with a real type.
9841 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9842
d8028f2c
JM
98432009-02-23 Jason Merrill <jason@redhat.com>
9844
9845 PR c++/38880
9846 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9847 narrowing_initializer_constant_valid_p.
2ba9daa7 9848 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
9849 null_pointer_node for adding a pointer to itself.
9850
9283b513
JH
98512009-02-23 Jan Hubicka <jh@suse.cz>
9852
9853 PR c/12245
9dadeeb8
UB
9854 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9855 resizing.
9283b513 9856
61e04322
JH
98572009-02-23 Jan Hubicka <jh@suse.cz>
9858
9dadeeb8
UB
9859 PR tree-optimization/37709
9860 * tree.c (block_ultimate_origin): Move here from dwarf2out.
9861 * tree.h (block_ultimate_origin): Declare.
9862 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
9863 * tree-ssa-live.c (remove_unused_scope_block_p):
9864 Eliminate blocks containig no instructions nor live variables nor
9865 nested blocks.
9866 (dump_scope_block): New function.
9867 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 9868 enable dumping at TDF_DETAILS.
61e04322 9869
38432148 98702009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
9871
9872 * config/i386/i386.c (classify_argument): Don't allow COImode
9873 and OImode.
9874 (function_arg_advance_32): Don't allow OImode.
9875 (function_arg_32): Likewise.
9876 (function_value_32): Likewise.
9877 (return_in_memory_32): Likewise.
9878 (function_arg_64): Remove OImode comment.
9879
38432148 98802009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
9881
9882 PR target/39261
9883 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9884 ix86_expand_vector_set for V4DImode in 64bit mode only.
9885 (ix86_expand_vector_init_one_var): Likewise.
9886
dcd739a6
SP
98872009-02-21 Sebastian Pop <sebastian.pop@amd.com>
9888
9889 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9890
6c3b938d
RS
98912009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9892
8e361f23 9893 PR bootstrap/39257
6c3b938d
RS
9894 * loop-iv.c: Revert last change.
9895 * emit-rtl.c: Likewise.
9896
38432148 98972009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
9898
9899 PR target/39256
9900 * config/i386/i386.c (type_natural_mode): Remove an extra
9901 space in the warning message.
9902 (function_value_32): Handle 32-byte vector modes.
9903 (return_in_memory_32): Likewise.
9904
2ec62529
RS
99052009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9906
9907 * loop-iv.c (truncate_value): New function.
9908 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9909 of lowpart_subreg.
9910 (lowpart_subreg): Move to...
9911 * emit-rtl.c: ...here.
9912
ecb8c3cc 99132009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 9914
ecb8c3cc
DS
9915 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9916 accidental and undocumented change at revision 140860.
9917
ae46a823
JM
99182009-02-21 Joseph Myers <joseph@codesourcery.com>
9919
9920 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9921 take gimple_seq * arguments.
9922 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9923 types_compatible_p langhook.
9924
07d8efe3 99252009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 9926 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
9927
9928 * config/arm/arm.c (arm_builtin_va_list): New function.
9929 (arm_expand_builtin_va_start): Likewise.
9930 (arm_gimplify_va_arg_expr): Likewise.
9931 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9932 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9933 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9934 (va_list_type): New variable.
9935 (arm_mangle_type): Mangle va_list_type appropriately.
9936
b1fb9f56
JJ
99372009-02-20 Jakub Jelinek <jakub@redhat.com>
9938
9939 PR middle-end/39157
9940 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9941 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9942 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9943 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9944 parameter to 1000 for -O1 by default.
9945 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9946 parameter.
9947 * loop-invariant.c: Include params.h.
9948 (move_loop_invariants): Don't call move_single_loop_invariants on
9949 very large loops.
9950
5bc0807c
JM
99512009-02-20 Jaka Mocnik <jaka@xlab.si>
9952
9953 * calls.c (emit_library_call_value_1): Use slot_offset instead of
9954 offset when calculating bounds for indexing stack_usage_map. Fixes
9955 a buffer overflow with certain target setups.
9956
c69cd1f5
JJ
99572009-02-20 Jakub Jelinek <jakub@redhat.com>
9958
9959 PR target/39240
9960 * calls.c (expand_call): Clear try_tail_call if caller and callee
9961 disagree in promotion of function return value.
9962
09812622
JJ
99632009-02-19 Jakub Jelinek <jakub@redhat.com>
9964
9965 PR target/39175
9966 * c-common.c (c_determine_visibility): If visibility changed and
9967 DECL_RTL has been already set, call make_decl_rtl to update symbol
9968 flags.
9969
68017cb4
L
99702009-02-19 H.J. Lu <hongjiu.lu@intel.com>
9971
9972 PR c++/39188
9973 * varasm.c (assemble_variable): Don't check DECL_NAME when
9974 globalizing a variable.
9975
ab4194da
JM
99762009-02-19 Joseph Myers <joseph@codesourcery.com>
9977
9978 PR c/38483
9979 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9980 expression before any __builtin_trap call.
9981 * c-typeck.c (build_function_call): Convert and check function
9982 arguments before generating a call to a trap. Evaluate the
9983 function arguments before the trap.
9984
6b67572e
UB
99852009-02-19 Uros Bizjak <ubizjak@gmail.com>
9986
9987 PR target/39228
9988 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9989 (UNSPEC_FXAM_MEM): New unspec.
9990 (fxam<mode>2_i387_with_temp): New insn and split pattern.
9991 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
9992 memory using fxam<mode>2_i387_with_temp to remove excess precision.
9993
9e39dba6
RG
99942009-02-19 Richard Guenther <rguenther@suse.de>
9995
9996 PR tree-optimization/39207
9997 PR tree-optimization/39074
9998 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9999 storedanything_tree): New.
10000 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 10001 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
10002 (build_succ_graph): Add edges from STOREDANYTHING to all
10003 non-direct nodes.
10004 (init_base_vars): Initialize STOREDANYTHING.
10005 (compute_points_to_sets): Free substitution info after
10006 building the succ graph.
10007 (ipa_pta_execute): Likewise.
10008
10009 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
10010 field.
10011 (do_ds_constraint): Do not add to special var or non-pointer
10012 field solutions.
10013 (type_could_have_pointers): Split out from ...
10014 (could_have_pointers): ... here. For arrays use the element type.
10015 (create_variable_info_for): Initialize may_have_pointers.
10016 (new_var_info): Likewise.
10017 (handle_lhs_call): Make the HEAP variable unknown-sized.
10018 (intra_create_variable_infos): Use a type with pointers for
10019 PARM_NOALIAS, make it unknown-sized.
10020
fd7b2603
L
100212009-02-18 H.J. Lu <hongjiu.lu@intel.com>
10022
10023 PR target/39224
6b67572e 10024 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 10025
98b80692
JM
100262009-02-18 Jason Merrill <jason@redhat.com>
10027
10028 PR target/39179
10029 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
10030 value if DECL_EXTERNAL.
10031 * tree-sra.c (sra_walk_gimple_assign): Likewise.
10032 * target.h (gcc_target::binds_local_p): Clarify "module".
10033 * tree.h (TREE_PUBLIC): Clarify "module".
10034
0705d3f4
L
100352009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
10036
10037 PR target/38891
10038 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
10039 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
10040
bce08d50
L
100412009-02-17 H.J. Lu <hongjiu.lu@intel.com>
10042
10043 PR target/39082
10044 * c.opt (Wabi): Support C and ObjC.
10045 (Wpsabi): New.
10046
10047 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
10048
10049 * config/i386/i386.c (classify_argument): Warn once about the ABI
10050 change when passing union with long double.
10051
10052 * doc/invoke.texi: Update -Wabi for warning psABI changes.
10053
5600f233
JM
100542009-02-18 Joseph Myers <joseph@codesourcery.com>
10055
10056 PR c/35447
10057 * c-parser.c (c_parser_compound_statement): Always enter and leave
10058 a scope.
10059
8cd01fe6
JDA
100602009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10061
10062 PR target/34587
10063 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
10064
418df9d7
JJ
100652009-02-18 Jakub Jelinek <jakub@redhat.com>
10066
10067 PR tree-optimization/36922
10068 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
10069 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
10070 Likewise.
10071
082d2ebb
RS
100722009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
10073
10074 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
10075 to 0 for EABI64.
10076
17de576c
RS
100772009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
10078
10079 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
10080
6d8d5435
RS
100812009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
10082
10083 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
10084 tree sharing.
10085
e69ff910
RB
100862009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
10087 Richard Sandiford <rdsandiford@googlemail.com>
10088
10089 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
10090 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
10091 (loongson_biadd): ...this.
10092
6b24ee26
RG
100932009-02-17 Richard Guenther <rguenther@suse.de>
10094
10095 PR tree-optimization/39202
10096 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
10097 a var make sure to follow existing collapses.
10098
91ab2c86
RG
100992009-02-17 Richard Guenther <rguenther@suse.de>
10100
10101 PR middle-end/39214
10102 * langhooks.c (lhd_print_error_function): Check for NULL block.
10103
73a63870
RG
101042009-02-17 Richard Guenther <rguenther@suse.de>
10105
10106 PR tree-optimization/39204
10107 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
10108 of the PHI arg.
10109
0e08f686
UB
101102009-02-17 Uros Bizjak <ubizjak@gmail.com>
10111
10112 * config/soft-fp/double.h: Update from glibc CVS.
10113
a60b7ddb
RG
101142009-02-17 Richard Guenther <rguenther@suse.de>
10115
10116 PR tree-optimization/39207
10117 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
10118 strict-aliasing warnings for pointers pointing to NULL.
10119
a47e20fd
JM
101202009-02-16 Joseph Myers <joseph@codesourcery.com>
10121
10122 PR c/35446
10123 * c-parser.c (c_parser_braced_init): Call pop_init_level when
10124 skipping until next close brace.
10125
50aab7dc
L
101262009-02-16 H.J. Lu <hongjiu.lu@intel.com>
10127
10128 PR target/37049
10129 * config/i386/i386.c (ix86_expand_push): Set memory alignment
10130 to function argument boundary.
10131
68e53db0
HS
101322009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
10133
10134 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
10135 in the lea_add. Reload eventually constraints it properly.
0d50d55a 10136 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
10137 "b", since it is not needed anymore.
10138
09e361bb
JJ
101392009-02-16 Jakub Jelinek <jakub@redhat.com>
10140
10141 * gthr-dce.h: Uglify function parameter and local variable names.
10142 * gthr-gnat.h: Likewise.
10143 * gthr-mipssde.h: Likewise.
10144 * gthr-nks.h: Likewise.
10145 * gthr-posix95.h: Likewise.
10146 * gthr-posix.h: Likewise.
10147 * gthr-rtems.h: Likewise.
10148 * gthr-single.h: Likewise.
10149 * gthr-solaris.h: Likewise.
10150 * gthr-tpf.h: Likewise.
10151 * gthr-vxworks.h: Likewise.
10152 * gthr-win32.h: Likewise.
10153
47f5a48f
L
101542009-02-15 H.J. Lu <hongjiu.lu@intel.com>
10155
10156 PR target/39196
10157 * config/i386/i386.md: Restrict the new peephole2 to move
10158 between MMX/SSE registers.
10159
68c9ab45
RG
101602009-02-15 Richard Guenther <rguenther@suse.de>
10161
10162 Revert
10163 2009-02-13 Richard Guenther <rguenther@suse.de>
10164
10165 * configure.ac: Enable LFS.
10166 * configure: Re-generate.
10167 * config.in: Likewise.
10168
d7815554
UW
101692009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10170
10171 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
10172 spu_srqwbyte, spu_srqwbytebc): Define.
10173 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
10174 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
10175 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
10176 "shrqby_<mode>"): New insn-and-split patterns.
10177 * config/spu/spu.c (expand_builtin_args): Determine and return
10178 number of operands using spu_builtin_description data.
10179 (spu_expand_builtin_1): Use it.
10180
c208436c
SE
101812009-02-13 Steve Ellcey <sje@cup.hp.com>
10182
10183 PR target/38056
10184 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
10185 TARGET_CONST_GP.
10186
c2e7ba7e
L
101872009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10188
10189 PR target/39149
10190 * config/i386/i386.c (override_options): Correct warning
6c6094f1 10191 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 10192
72f4e3a7
L
101932009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10194
10195 PR target/39152
10196 * config/i386/i386.md: Restrict the new peephole2 to move
10197 between the general purpose registers.
10198
53f648e2
L
101992009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10200
10201 PR target/39162
10202 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 10203 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
10204 (function_arg_advance): Updated.
10205 (function_arg): Likewise.
10206 (ix86_function_value): Likewise.
10207 (ix86_return_in_memory): Likewise.
10208 (ix86_sol10_return_in_memory): Likewise.
10209 (ix86_gimplify_va_arg): Likewise.
10210 (function_arg_32): Don't warn ABX ABI change here.
10211 (function_arg_64): Likewise.
10212
38432148 102132009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
10214
10215 * loop-iv.c (implies_p): In the final case, test that operands 0
10216 of the two comparisons match.
10217
dd2139e7
BS
10218 * config/bfin/bfin.c (find_prev_insn_start): New function.
10219 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
10220 (find_next_insn_start): Move.
10221
601b3e1a
RG
102222009-02-13 Richard Guenther <rguenther@suse.de>
10223
10224 * configure.ac: Enable LFS.
10225 * configure: Re-generate.
10226 * config.in: Likewise.
10227
f007042e
JM
102282009-02-13 Joseph Myers <joseph@codesourcery.com>
10229
10230 PR c/35444
10231 * c-parser.c (c_parser_parms_list_declarator): Discard pending
10232 sizes on syntax error after some arguments have been parsed.
10233
3f238e8b
JJ
102342009-02-12 Jakub Jelinek <jakub@redhat.com>
10235
10236 * doc/invoke.texi (-fira): Remove.
10237
328e13b7
L
102382009-02-12 H.J. Lu <hongjiu.lu@intel.com>
10239
10240 * caller-save.c: Replace regclass.c with reginfo.c in comments.
10241 * recog.c: Likewise.
10242 * rtl.h: Likewise.
10243
c252db20
L
102442009-02-12 Uros Bizjak <ubizjak@gmail.com>
10245
10246 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
10247 (umul_ppmm): Likewise.
10248 (count_leading_zeros): Likewise.
10249 (count_trailing_zeros): Likewise.
10250 (UMUL_TIME): Likewise.
10251
102522009-02-12 H.J. Lu <hongjiu.lu@intel.com>
10253
ba181049
UB
10254 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
10255 soft-fp/t-softfp to tmake_file.
c252db20
L
10256
10257 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
10258 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
10259 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
10260 IA64_BUILTIN_INFQ]: New.
c252db20
L
10261 (ia64_init_builtins): Initialize __builtin_infq,
10262 __builtin_fabsq and __builtin_copysignq if not HPUX.
10263 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
10264 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
10265
10266 * config/ia64/lib1funcs.asm (__divtf3): Define only if
10267 SHARED is defined.
10268 (__fixtfti): Likewise.
10269 (__fixunstfti): Likewise.
10270 (__floattitf): Likewise.
10271
10272 * config/ia64/libgcc-glibc.ver: New.
10273 * config/ia64/t-fprules-softfp: Likewise.
10274 * config/ia64/sfp-machine.h: Likewise.
10275
10276 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
10277 (LIBGCC2_TF_CEXT): Likewise.
10278 (TF_SIZE): Likewise.
10279 (TARGET_INIT_LIBFUNCS): Likewise.
10280
ba181049 10281 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 10282 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 10283
f13eae6a
L
102842009-02-12 H.J. Lu <hongjiu.lu@intel.com>
10285
10286 * config/i386/i386.c (construct_container): Rewrite processing
10287 BLKmode with X86_64_SSE_CLASS.
10288
12019aec
L
102892009-02-12 Paolo Bonzini <bonzini@gnu.org>
10290
10291 PR target/39152
10292 * config/i386/i386.md: Replace simplify_replace_rtx with
10293 replace_rtx in the new peephole2.
10294
28c11eb3
NS
102952009-02-12 Nathan Sidwell <nathan@codesourcery.com>
10296
10297 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
10298 loop unrolling do not happen at -O2.
10299
c7b94907
MM
103002009-02-12 Michael Matz <matz@suse.de>
10301
10302 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
10303
61e98967
JJ
103042009-02-12 Jakub Jelinek <jakub@redhat.com>
10305
10306 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
10307 for -g3.
10308
a2a237b5
BE
103092009-02-12 Ben Elliston <bje@au.ibm.com>
10310
10311 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
10312 patterns when updating the back chain. Missed in the 2009-02-10
10313 change.
10314
853eda8d
JJ
103152009-02-11 Janis Johnson <janis187@us.ibm.com>
10316
10317 * doc/extend.texi (Decimal Floating Types): Update identifier of
10318 draft TR and list of missing support.
10319
3ad6b266
JJ
103202009-02-11 Jakub Jelinek <jakub@redhat.com>
10321
10322 PR middle-end/39154
10323 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
10324 bit to variable length decl's flags, add it also to its
10325 pointer replacement variable.
10326
b058b753
UB
103272009-02-11 Uros Bizjak <ubizjak@gmail.com>
10328 Jakub Jelinek <jakub@redhat.com>
10329
10330 PR target/39118
10331 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
10332 (memory_blockage): New expander.
10333 (*memory_blockage): New insn pattern.
10334 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
10335 instead of general blockage at the end of function prologue when
10336 frame pointer is used to access red zone area. Do not emit blockage
10337 when profiling, it is emitted in generic code.
10338 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
10339 function epilogue when frame pointer is used to access red zone area.
10340
bab64f23
PB
103412009-02-11 Paolo Bonzini <bonzini@gnu.org>
10342
0ce6dcfa 10343 PR target/38824
bab64f23
PB
10344 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10345 by arithmetic with memory operands.
10346 * config/i386/predicates.md (commutative_operator): New.
10347
8fd94bda
JJ
103482009-02-10 Janis Johnson <janis187@us.ibm.com>
10349
10350 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10351 bulleted lists.
10352
794511d2
EB
103532009-02-10 Eric Botcazou <ebotcazou@adacore.com>
10354
10355 * alias.h (record_alias_subset): Declare.
10356 * alias.c (record_alias_subset): Make global.
10357
6da7fc87
NC
103582009-02-10 Nick Clifton <nickc@redhat.com>
10359
10360 * tree-parloops.c: Change license to GPLv3.
10361 * ipa-struct-reorg.c: Change license to GPLv3.
10362 * ipa-struct-reorg.h: Change license to GPLv3.
10363
a03813c8
SE
103642009-02-10 Steve Ellcey <sje@cup.hp.com>
10365
10366 PR c/39084
10367 * c-decl.c (start_struct): Return NULL on error.
10368
fc3103e7
JJ
103692009-02-10 Jakub Jelinek <jakub@redhat.com>
10370
9b43d37b
JJ
10371 PR middle-end/39124
10372 * cfgloopmanip.c (remove_path): Call remove_bbs after
10373 cancel_loop_tree, not before it.
10374
fc3103e7 10375 PR target/39139
b058b753 10376 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
10377 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10378 VAR_DECLs were seen.
10379 * tree-ssa-live.c (remove_unused_locals): Recompute
10380 cfun->has_local_explicit_reg_vars.
10381 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10382 copies or clearings if cfun->has_local_explicit_reg_vars.
10383
dbf9ee15
UB
103842009-02-10 Uros Bizjak <ubizjak@gmail.com>
10385
10386 PR target/39118
10387 * config/i386/i386.c (expand_prologue): Emit blockage at the end
10388 of function prologue when frame pointer is used to access
10389 red zone area.
10390
bdec4dc7
RG
103912009-02-10 Richard Guenther <rguenther@suse.de>
10392
10393 PR middle-end/39127
10394 * gimplify.c (gimple_regimplify_operands): Always look if
10395 we need to create a temporary.
10396
7cae94fc
RG
103972009-02-10 Richard Guenther <rguenther@suse.de>
10398
10399 PR tree-optimization/39132
10400 * tree-loop-distribution.c (todo): New global var.
10401 (generate_memset_zero): Trigger TODO_rebuild_alias.
10402 (tree_loop_distribution): Return todo.
10403
a8800687
L
104042009-02-10 H.J. Lu <hongjiu.lu@intel.com>
10405
10406 PR target/39119
10407 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10408 (x86_64_reg_class_name): Removed.
10409 (classify_argument): Return 0 if bytes > 32. Return 0 if the
10410 first one isn't X86_64_SSE_CLASS or any other ones aren't
10411 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
10412 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10413 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
10414 and 3 X86_64_SSEUP_CLASS.
10415 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
10416 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10417
d4bacef0
BE
104182009-02-10 Ben Elliston <bje@au.ibm.com>
10419
10420 * config/rs6000/rs6000.md (allocate_stack): Always use an update
10421 form instruction to update the stack back chain word, even if the
10422 user has disabled the generation of update instructions.
10423 (movdi_<mode>_update_stack): New.
10424 (movsi_update_stack): Likewise.
10425 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10426 always use an update form instruction to update the stack back
10427 chain word.
10428
01d7d2f3
SP
104292009-02-09 Sebastian Pop <sebastian.pop@amd.com>
10430
10431 PR middle-end/38953
b058b753
UB
10432 * graphite.c (if_region_set_false_region): After moving a region in
10433 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
10434 (gloog): Remove wrong fix for PR38953.
10435
e41e2ab4
UW
104362009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10437
10438 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10439 generation due to implicit sign extension.
10440
4bb07c5d
EB
104412009-02-09 Eric Botcazou <ebotcazou@adacore.com>
10442
10443 PR middle-end/38981
10444 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10445 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10446
f060a261
RG
104472009-02-09 Richard Guenther <rguenther@suse.de>
10448
10449 PR middle-end/35202
10450 * convert.c (convert_to_real): Disable (float)fn((double)x)
10451 to fnf(x) conversion if errno differences may occur and
10452 -fmath-errno is set.
10453
5a7e237c
AS
104542009-02-07 Anatoly Sokolov <aesok@post.ru>
10455
10456 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10457 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10458 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10459
feab5a67
JM
104602009-02-06 Joseph Myers <joseph@codesourcery.com>
10461
10462 PR c/35434
10463 * c-common.c (handle_alias_attribute): Disallow attribute for
10464 anything not a FUNCTION_DECL or VAR_DECL.
10465
90ef2296
JJ
104662009-02-06 Janis Johnson <janis187@us.ibm.com>
10467
10468 PR c/39035
10469 * real.c (do_compare): Special-case compare of zero against
10470 decimal float value.
10471
1de2c900
JM
104722009-02-06 Joseph Myers <joseph@codesourcery.com>
10473
10474 PR c/36432
10475 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10476 as indicating flexible array members unless the field itself is
10477 being declarared as the incomplete array.
10478
e901811a
JH
104792009-02-06 Jan Hubicka <jh@suse.cz>
10480
10481 PR tree-optimization/38844
10482 * ipa-inline.c (try_inline): Stop inlining recursion when edge
10483 is already inlined.
10484
3cfa762b
RG
104852009-02-06 Richard Guenther <rguenther@suse.de>
10486
10487 PR middle-end/38977
10488 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10489 fork because we may expand it as __gcov_fork.
10490
8506528c
NC
104912009-02-06 Nick Clifton <nickc@redhat.com>
10492
dbf9ee15 10493 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 10494
85169114
PB
104952009-02-06 Paolo Bonzini <bonzini@gnu.org>
10496
10497 PR tree-optimization/35659
10498 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10499 vn_phi_eq): Shortcut if hashcode does not match.
10500 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10501 NULL operands.
10502 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10503 and avoid iterative_hash_expr.
10504 (FOR_EACH_VALUE_ID_IN_SET): New.
10505 (value_id_compare): Remove.
10506 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10507 sort expressions by value id.
10508
6d39673d
KK
105092009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
10510
10511 PR target/38991
10512 * config/sh/predicates.md (general_movsrc_operand): Don't check
10513 the subreg of system registers here.
10514
e6e1c050
JJ
105152009-02-05 Jakub Jelinek <jakub@redhat.com>
10516
10517 PR c++/39106
10518 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10519 on the copied decl.
10520
65a74b5d
PB
105212009-02-05 Paolo Bonzini <bonzini@gnu.org>
10522
10523 PR rtl-optimization/39110
10524 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10525 addresses, not aligned ones.
10526
08e14b2a
DB
105272009-02-05 Daniel Berlin <dberlin@dberlin.org>
10528 Richard Guenther <rguenther@suse.de>
10529
10530 PR tree-optimization/39100
10531 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10532 comment says and add edges.
10533
5006381c
JM
105342009-02-05 Joseph Myers <joseph@codesourcery.com>
10535
10536 PR c/35435
10537 * c-common.c (handle_tls_model_attribute): Ignore attribute for
10538 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10539
2ba9daa7 105402009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
10541
10542 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10543 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10544 register_bb_in_sese, new_sese, free_sese): Moved.
10545 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10546 outermost_loop_in_scop, build_scop_iteration_domain,
10547 expand_scalar_variables_ssa_name, get_vdef_before_scop,
10548 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10549 Use loop_in_sese_p instead of loop_in_scop_p.
10550 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10551 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10552 (scopdet_basic_block_info): Fix bug in scop detection.
10553 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10554 eq_loop_to_cloog_loop): Remove.
10555 (nb_loops_around_loop_in_scop, nb_loop
10556 ref_nb_loops): Moved here...
10557 * graphite.h (ref_nb_loops): ... from here.
10558 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10559 (loop_domain_dim, loop_iteration_vector_dim): Remove.
10560 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10561 * testsuite/gcc.dg/graphite/scop-19.c: New
10562
48e8382e
PB
105632009-02-04 Paolo Bonzini <bonzini@gnu.org>
10564 Hans-Peter Nilsson <hp@axis.com>
10565
10566 PR rtl-optimization/37889
10567 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10568 Move offset handling from PLUS to before the switch. Use new
10569 arguments when considering SYMBOL_REFs too.
10570 (rtx_addr_can_trap_p): Pass dummy offset and size.
10571 (enum may_trap_p_flags): Remove.
10572 (may_trap_p_1): Pass size from MEM_SIZE.
10573
10574 PR rtl-optimization/38921
10575 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10576 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10577 * rtlanal.c (may_trap_after_code_motion_p): Delete.
10578 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10579
69349ea5
L
105802009-02-04 H.J. Lu <hongjiu.lu@intel.com>
10581
10582 AVX Programming Reference (January, 2009)
10583 * config/i386/sse.md (*vpclmulqdq): New.
10584
b545e411
JJ
105852009-02-04 Jakub Jelinek <jakub@redhat.com>
10586
10587 PR tree-optimization/38977
10588 PR gcov-profile/38292
bf9b2cc9 10589 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 10590
5b43bf05
HS
105912009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
10592
10593 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10594 non-indexable addresses even before reload.
10595
062c4bb3
JM
105962009-02-03 Joseph Myers <joseph@codesourcery.com>
10597
10598 PR c/29129
10599 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10600 as having variable size. Do not give an error for unnamed
10601 parameters with [*] declarators. Give a warning for type names
10602 with [*] declarators and mark them as variable size.
10603 * c-parser.c (c_parser_sizeof_expression): Do not give an error
10604 for sizeof applied to [*] type names.
10605
6175f578
AP
106062009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
10607
10608 PR C++/36607
10609 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10610
d4f4bc84
JJ
106112009-02-03 Jakub Jelinek <jakub@redhat.com>
10612
10613 * gcc.c (process_command): Update copyright notice dates.
10614 * gcov.c (print_version): Likewise.
10615 * gcov-dump.c (print_version): Likewise.
10616 * mips-tfile.c (main): Likewise.
10617 * mips-tdump.c (main): Likewise.
10618
f6294de7
JM
106192009-02-03 Joseph Myers <joseph@codesourcery.com>
10620
10621 PR c/35433
10622 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10623 for composite type involving a zero-length array type.
10624
754ccf7c
JJ
106252009-02-03 Jakub Jelinek <jakub@redhat.com>
10626
70f16287
JJ
10627 PR target/35318
10628 * function.c (match_asm_constraints_1): Skip over
10629 initial optional % in the constraint.
10630
754ccf7c
JJ
10631 PR inline-asm/39059
10632 * c-parser.c (c_parser_postfix_expression): If fixed point is not
10633 supported, don't accept FIXED_CSTs.
10634 * c-decl.c (finish_declspecs): Error if fixed point is not supported
10635 and _Sat is used without _Fract/_Accum. Set specs->type to
10636 integer_type_node for cts_fract/cts_accum if fixed point is not
10637 supported.
10638
965fdadf
CM
106392009-02-02 Catherine Moore <clm@codesourcery.com>
10640
dbf9ee15 10641 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 10642
2e8a796f
RS
106432009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
10644
10645 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10646 (ABI_HAS_64BIT_SYMBOLS): Use it.
10647 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10648
e0079468
PB
106492009-02-02 Paul Brook <paul@codesourcery.com>
10650
10651 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10652
eca72963
JJ
106532009-02-02 Jakub Jelinek <jakub@redhat.com>
10654
10655 PR inline-asm/39058
10656 * recog.h (asm_operand_ok): Add constraints argument.
10657 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
10658 recurse on matching constraint.
10659 (check_asm_operands): Pass constraints as 3rd argument to
10660 asm_operand_ok. Don't look up matching constraint here.
10661 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10662 to asm_operand_ok.
10663
b5bde9ff
BE
106642009-02-02 Ben Elliston <bje@au.ibm.com>
10665
10666 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10667 TARGET_NARROW_VOLATILE_BITFIELD macro names.
10668
30f3e427
JDA
106692009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10670
be7659ba
JDA
10671 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10672 information. Remove some obsolete information. Reorganize.
10673
30f3e427
JDA
10674 * config/pa/fptr.c: Revert license to GPL 2.
10675 * config/pa/milli64.S: Likewise.
10676
3cbfaf98
DK
106772009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10678
10679 PR target/38904
10680 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
10681 LIBRARY name in, instead of hard-coding it.
10682 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
10683 extra target make frag to tmake_files according to EH model.
10684 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10685 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
10686 frags that define makefile variable EH_MODEL appropriately.
10687 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
10688 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
10689 to "-sjlj" according to type of EH configured.
10690 (LIBGCC_SONAME): Concatenate it to shared library base name.
10691 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
10692 to "_sjlj" according to type of EH configured.
10693 (LIBGCC_SONAME): Concatenate it to shared library base name.
10694 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
10695 (SHLIB_LINK): Add missing semicolon to if-else construct.
10696 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10697 string value of "pe_dll" command-line option.
10698 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
10699 (SHLIB_SONAME): Use it when overriding t-cygming default.
10700 (SHLIB_IMPLIB): Override t-cygming default.
10701 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10702 string value of "pe_dll" command-line option.
10703
8d0b6068
DK
107042009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10705
10706 PR target/38952
10707 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 10708 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 10709
14c28276
RG
107102009-01-31 Richard Guenther <rguenther@suse.de>
10711
10712 PR tree-optimization/38937
10713 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10714 computing the transitive closure.
10715
5f4d82c2
RG
107162009-01-30 Richard Guenther <rguenther@suse.de>
10717
10718 PR tree-optimization/39041
10719 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10720 Propagate variable indices only if the types match for this stmt.
10721
d0728ae0
JJ
107222009-01-30 Jakub Jelinek <jakub@redhat.com>
10723
10724 PR target/39013
10725 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10726 inline but never defined.
10727
6b67572e 107282009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
10729
10730 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10731 (*insv_h_di_reg_extimm): New insn.
10732 (*insv_l<mode>_reg_extimm): New insn.
10733
107342009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
10735
10736 * config/picochip/picochip.c (flag_conserve_stack): set
10737 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10738 fconserve-stack. Reduce call-overhead used by inliner.
10739
9fec758d 107402009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
10741
10742 PR/38157
10743 * common.opt (flag_conserve_stack): Initialised to zero.
10744
7f1c539c
KT
107452009-01-30 Kai Tietz <kai.tietz@onevision.com>
10746
10747 PR/39002
10748 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10749 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10750 method.
10751
3631be48
L
107522009-01-29 H.J. Lu <hongjiu.lu@intel.com>
10753
10754 * ira-color.c (allocno_reload_assign): Update comments.
10755 * regmove.c (regmove_optimize): Likewise.
10756
10757 * ra.h: Removed.
10758
416ac4d4
RM
107592009-01-29 Robert Millan <rmh@aybabtu.com>
10760
60839f5d
EB
10761 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10762 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 10763 `MD_UNWIND_SUPPORT'.
60839f5d 10764 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 10765
d5e54bc1
KH
107662009-01-29 Kazu Hirata <kazu@codesourcery.com>
10767
10768 PR tree-optimization/39007
10769 * tree-loop-distribution.c (generate_builtin): Use
10770 recompute_dominator to compute the immediate dominator of the
10771 basic block just after the loop.
10772
38432148 107732009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
10774
10775 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10776 (ASM_OUTPUT_DWARF_PCREL): Define.
10777
38432148 107782009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
10779
10780 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10781 * doc/passes.texi: Remove entries about regclass, local-alloc, and
10782 global. Modify entries about regmove and IRA.
10783
10784 * ra-conflict.c: Remove the file.
10785
10786 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10787
10788 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10789 (pass_regclass_init): Rename to pass_reginfo_init.
10790
10791 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10792
10793 * toplev.h (flag_ira): Remove.
10794
10795 * caller-save.c (setup_save_areas): Remove flag_ira.
10796
bf9b2cc9 10797 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
10798
10799 * global.c: Remove the file.
10800
ba20e309 10801 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
10802
10803 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10804
10805 * regmove.c: Modify file description.
10806 (find_use_as_address, try_auto_increment): Define them only if
10807 AUTO_INC_DEC is defined.
10808 (replacement_quality, replace_in_call_usage, fixup_match_1,
10809 stable_and_no_regs_but_for_p): Remove.
10810 (reg_set_in_bb): Make it static.
10811 (regmove_optimize): Remove flag_ira and code which worked for
10812 !flag_ira.
10813
10814 * local-alloc.c: Remove the file.
10815
10816 * common.opt (fira): Remove.
10817
10818 * ira.c: Include except.h.
10819 (eliminable_regset): Move from global.c.
10820 (mark_elimination): Ditto. Remove flag_ira.
10821 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10822 equiv_mem_modified, validate_equiv_mem_from_store,
10823 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10824 contains_replace_regs, memref_referenced_p, memref_used_between_p,
10825 no_equiv, recorded_label_ref): Move from local-alloc.c.
10826 (update_equiv_regs): Ditto. Make it static.
10827 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 10828 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
10829 (build_insn_chain): Ditto. Make it static.
10830 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
10831 Rename to init_live_subregs.
10832 (gate_ira): Remove flag_ira.
10833
10834 * regclass.c: Rename reginfo.c. Change file description.
10835 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 10836 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
10837 (init_reg_sets_1): Remove code for evaluation of
10838 reg_class_superclasses and losing_caller_save_reg_set.
10839 (init_regs): Remove init_reg_autoinc.
10840 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10841 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 10842 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
10843 (pass_regclass_init): Rename to pass_reginfo_init. Modify
10844 corresponding entries.
10845 (dump_regclass, record_operand_costs, scan_one_insn,
10846 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10847 record_address_regs, auto_inc_dec_reg_p): Remove.
10848 (gt-regclass.h): Rename to gt-reginfo.h.
10849
10850 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 10851 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
10852
10853 * Makefile.in (RA_H): Remove.
10854 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10855 Rename regclass.o to reginfo.o.
10856 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
10857 gt-reginfo.h.
10858 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10859 (GTFILES): Rename regclass.c to reginfo.c.
10860
10861 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 10862 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
10863
10864 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10865 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10866 Remove flag_ira.
6b67572e 10867 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 10868
c95b2534 108692009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
10870
10871 PR middle-end/35854
10872 * doc/invoke.texi (rtl debug options): Complete rewrite.
10873 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10874 to auto_inc_dec".
10875 * mode-switching.c (pass_mode_switching): Rename pass from
10876 "mode-sw" to "mode_sw".
10877 * except.c (pass_convert_to_eh_ranges): Rename pass from
10878 "eh-ranges" to "eh_ranges".
10879 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10880 to "subreg1".
2ba9daa7
AS
10881
10882
72a54528
AM
108832009-01-29 Andrey Belevantsev <abel@ispras.ru>
10884 Alexander Monakov <amonakov@ispras.ru>
10885
10886 PR middle-end/38857
10887 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10888 register.
10889 (move_exprs_to_boundary): Change return type and pass through
10890 should_move from move_op. Relax assert. Update usage ...
10891 (schedule_expr_on_boundary): ... here. Use should_move instead of
10892 cant_move.
10893 (move_op_orig_expr_found): Indicate that insn was disconnected from
10894 stream.
10895 (code_motion_process_successors): Do not call after_merge_succs
10896 callback if original expression was not found when traversing any of
10897 the branches.
10898 (code_motion_path_driver): Change return type. Update prototype.
10899 (move_op): Update comment. Add a new parameter (should_move). Update
10900 prototype. Set *should_move based on indication provided by
10901 move_op_orig_expr_found.
10902
001b9eb6
PH
109032009-01-28 Pat Haugen <pthaugen@us.ibm.com>
10904
10905 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10906 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10907 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10908 * config/rs6000/rs6000.c (rs6000_override_options): Default
10909 avoid-indexed-addresses on for Power6, off for everything else.
10910 (avoiding_indexed_address_p): New function.
10911 (rs6000_legitimize_address): Use it.
10912 (rs6000_legitimate_address): Likewise.
10913 * config/rs6000/rs6000.md (movXX_updateX): Likewise
10914
59dc4898
KH
109152009-01-28 Kazu Hirata <kazu@codesourcery.com>
10916
10917 PR tree-optimization/38997
10918 * tree-loop-distribution.c (generate_memset_zero): Use
10919 POINTER_PLUS_EXPR for a pointer addition.
10920
07da44ab
AK
109212009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
10922
10923 * config/s390/s390.md (bswap<mode>2): New pattern added.
10924
cdc15d23
WG
109252009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10926
10927 * config/s390/s390.md (*tls_load_31): Added type attribute.
10928
d46f24b6
WG
109292009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10930
10931 * config/s390/s390.md: Fix a few comments.
10932
729e750f
WG
109332009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10934
10935 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10936 (*tm<mode>_full): Fixed z10prop attribute.
10937 (*tst<mode>_extimm): Fixed z10prop attribute.
10938 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10939 (*tstqiCCT_cconly): Fixed z10prop attribute.
10940 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10941 (*movsi_larl): Fixed z10prop attribute.
10942 (*movsi_zarch): Fixed z10prop attribute.
10943 (*movsi_eas): Fixed z10prop attribute.
10944 (*movhi): Fixed z10prop attribute.
10945 (*movqi): Fixed z10prop attribute.
10946 (*movstrictqi): Fixed z10prop attribute.
10947 (*mov<mode>): Fixed z10prop attribute.
10948 (*movcc): Fixed z10prop attribute.
10949 (*sethighpartdi_64): Fixed z10prop attribute.
10950 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10951 (*negdi2_sign_cc): Fixed z10prop attribute.
10952 (*negdi2_sign): Fixed z10prop attribute.
10953 (*absdi2_sign_cc): Fixed z10prop attribute.
10954 (*absdi2_sign): Fixed z10prop attribute.
10955 (*negabsdi2_sign_cc): Fixed z10prop attribute.
10956 (*negabsdi2_sign): Fixed z10prop attribute.
10957 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10958 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10959 (doloop_si64): Fixed z10prop attribute.
10960 (doloop_si31): Fixed z10prop attribute.
10961 (doloop_long): Fixed z10prop attribute.
10962 (indirect_jump): Fixed z10prop attribute.
10963 (nop): Fixed z10prop attribute.
10964 (main_base_64): Fixed z10prop attribute.
10965 (reload_base_64): Fixed z10prop attribute.
10966
c7789bfb
JJ
109672009-01-28 Jakub Jelinek <jakub@redhat.com>
10968
10969 PR rtl-optimization/38740
6b67572e
UB
10970 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10971 if !optimize.
c7789bfb
JJ
10972 * config/mips/mips.c (mips_reorg): Likewise.
10973
de081cfd
RG
109742009-01-28 Richard Guenther <rguenther@suse.de>
10975
10976 PR tree-optimization/38926
10977 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10978 with the correct value id to a value.
10979 (do_regular_insertion): Use the value number of edoubleprime
10980 for the value number of the expr.
10981
10982 Revert
10983 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 10984
d748c406
UB
10985 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10986 a PHI ask VN if it is already available.
10987 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10988 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 10989
a9d386a1
JJ
109902009-01-28 Jakub Jelinek <jakub@redhat.com>
10991
10992 PR middle-end/38934
10993 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10994 set to varying whenever max has TREE_OVERFLOW set, similarly
10995 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10996
97a170cd
RG
109972009-01-28 Richard Guenther <rguenther@suse.de>
10998
10999 PR middle-end/38908
11000 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
11001 uninitialized aggregate uses in call arguments.
11002
89ebafc6
PB
110032009-01-28 Paolo Bonzini <bonzini@gnu.org>
11004
11005 PR tree-optimization/38984
11006 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
11007 the nothing_id variable if -fno-delete-null-pointer-checks.
11008
bef3c57b
UB
110092009-01-28 Uros Bizjak <ubizjak@gmail.com>
11010
11011 PR target/38988
11012 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
11013 (set_got_offset_rex64): Ditto.
11014
0c6390fa
L
110152009-01-27 H.J. Lu <hongjiu.lu@intel.com>
11016
11017 PR target/38941
11018 * doc/extend.texi: Improve local variable with asm reg.
11019
bee6fa6d
AN
110202009-01-27 Adam Nemet <anemet@caviumnetworks.com>
11021
11022 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
11023 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
11024 was not supplied then set warn_packed_bitfield_compat to the
11025 default value of 1.
11026 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
11027 against 1.
11028
b5c3dfbb
RG
110292009-01-27 Richard Guenther <rguenther@suse.de>
11030
11031 PR tree-optimization/38503
11032 * cfgexpand.c (expand_gimple_basic_block): Ignore
11033 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
11034 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
11035 variables that cannot have TBAA applied.
11036 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
11037 statements.
11038
d748c406 110392009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
11040
11041 PR middle-end/38969
11042 * calls.c (initialize_argument_information): Do not wrap complex
11043 arguments in SAVE_EXPR.
11044
9112bb38
AT
110452009-01-26 Andreas Tobler <a.tobler@schweiz.org>
11046
11047 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 11048 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 11049
4757704f
RG
110502009-01-26 Richard Guenther <rguenther@suse.de>
11051
11052 PR tree-optimization/38745
11053 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
11054 from special handling.
11055
e3e6cff4
RG
110562009-01-26 Richard Guenther <rguenther@suse.de>
11057
11058 PR tree-optimization/38745
11059 * tree-ssa.c (execute_update_addresses_taken): Do not include
11060 variables that cannot possibly be a register in not_reg_needs.
11061 Do not clear TREE_ADDRESSABLE on vars that may not become
11062 registers.
11063 * tree-ssa.c (update_alias_info_1): Include those in the set
11064 of addressable vars.
11065
dc874b53
RG
110662009-01-26 Richard Guenther <rguenther@suse.de>
11067
11068 PR middle-end/38851
11069 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
11070 * tree-ssa-dse.c: Include langhooks.h
11071 (execute_simple_dse): Remove stores with zero size.
11072
849421a3
JJ
110732009-01-24 Jakub Jelinek <jakub@redhat.com>
11074
11075 PR c/38957
11076 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
11077 as PLUS_EXPR.
11078
82f70421
JB
110792009-01-24 Julian Brown <julian@codesourcery.com>
11080
11081 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
11082 config/arm/linux-atomic.c.
11083 * config/arm/linux-atomic.c: New.
11084
863412d6
EB
110852009-01-24 Eric Botcazou <ebotcazou@adacore.com>
11086
11087 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
11088 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
11089 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
11090
8c684300
L
110912009-01-24 H.J. Lu <hongjiu.lu@intel.com>
11092
11093 PR c/38938
93f1527a 11094 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
11095 properly.
11096
b840fb02
SP
110972009-01-24 Sebastian Pop <sebastian.pop@amd.com>
11098
11099 PR tree-optimization/38953
11100 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
11101 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
11102 (gloog): Split the exit of the scop when the scop exit is a loop exit.
11103 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
11104 changed the CFG.
11105
ecee559f
PB
111062009-01-24 Paul Brook <paul@codesourcery.com>
11107
11108 * config/arm/neon.md (neon_type): Move to arm.md.
11109 (neon_mov<VSTRUCT>): Add neon_type attribute.
11110 * config/arm/arm.md (neon_type): Move to here.
11111 (conds): Add "unconditioal" and use as default for NEON insns.
11112
61ad0914
BE
111132009-01-24 Ben Elliston <bje@au.ibm.com>
11114
11115 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
11116 void *' warning from -Wc++-compat.
11117 * Makefile.in (dominance.o-warn): Remove.
11118
38432148 111192009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
11120
11121 PR tree-optimization/38932
11122 * fold-const.c (fold_unary_ignore_overflow): New.
11123 * tree.h (fold_unary_ignore_overflow): Declare.
11124 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
11125 * tree-ssa-sccvn.c (visit_reference_op_load,
11126 simplify_unary_expression): Likewise.
11127
2cd36c22
AN
111282009-01-22 Adam Nemet <anemet@caviumnetworks.com>
11129
11130 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
11131 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
11132 regardless of their type.
11133 * c-common.c (handle_packed_attribute): Don't ignore packed on
11134 bitfields.
11135 * c.opt (Wpacked-bitfield-compat): New warning option.
11136 * stor-layout.c (place_field): Warn if offset of a field changed.
11137 * doc/extend.texi (packed): Mention the ABI change.
11138 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
11139 (Warning Options): Add it to the list.
11140
e4e624ab
L
111412009-01-22 H.J. Lu <hongjiu.lu@intel.com>
11142
11143 * c-opts.c (c_common_post_options): Fix a typo in comments.
11144
d0ea0759
SE
111452009-01-22 Steve Ellcey <sje@cup.hp.com>
11146
11147 PR middle-end/38615
11148 * gimplify.c (gimplify_init_constructor): Fix promotion of const
11149 variables to static.
11150 * doc/invoke.texi (-fmerge-all-constants): Update description.
11151
87673f84
UB
111522009-01-22 Uros Bizjak <ubizjak@gmail.com>
11153
11154 PR target/38931
11155 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
11156 (*movdi_1_rex64): Use type "mmx" for alternative 5.
11157
96339268
RE
111582009-01-22 Richard Earnshaw <rearnsha@arm.com>
11159
11160 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
11161 a word boundary.
11162 (LOCAL_ALIGNMENT): Similarly.
11163
442dc742 111642009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 11165 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
11166
11167 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
11168 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
11169 * config/arm/arm-tune.md: Regenerate.
11170 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
11171 -march=iwmmxt2.
11172
9b34732e
MS
111732009-01-22 Mark Shinwell <shinwell@codesourcery.com>
11174
11175 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
11176 version number to five.
11177
03c2a308
DS
111782009-01-22 Dodji Seketeli <dodji@redhat.com>
11179
11180 PR c++/38930
ba20e309 11181 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
11182 * c-common.c (set_underlying_type): Likewise.
11183 (is_typedef_decl ): Likewise
11184 * tree.h: Likewise
11185 (set_underlying_type): Likewise.
11186 (is_typedef_type): Likewise.
11187
1240d76e
VM
111882009-01-21 Vladimir Makarov <vmakarov@redhat.com>
11189
11190 PR middle-end/38587
11191 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
11192 crossing setjmps.
11193
b8a1087d
DK
111942009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
11195
11196 PR bootstrap/37660
11197 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
11198 (LIBGCC_SPEC): Don't define.
11199 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
11200
435da628
UB
112012009-01-21 Uros Bizjak <ubizjak@gmail.com>
11202
11203 PR rtl-optimization/38879
11204 * alias.c (base_alias_check): Unaligned access via AND address can
11205 alias all surrounding object types except those with sizes equal
11206 or wider than the size of unaligned access.
11207
d597b3ce
DS
112082009-01-21 Dodji Seketeli <dodji@redhat.com>
11209
11210 PR c++/26693
ba20e309 11211 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 11212 * c-common.c (set_underlying_type): ... here.
435da628 11213 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
11214 the newly created typedef variant type.
11215 (is_typedef_decl ): New entry point.
11216 * tree.h: Added a new member member_types_needing_access_check to
11217 struct tree_decl_non_common.
11218 (set_underlying_type): New entry point.
11219 (is_typedef_type): Likewise.
11220
71a6fe66
BM
112212009-01-21 Bingfeng Mei <bmei@broadcom.com>
11222
11223 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
11224 Check whether two instructions have memory references that
11225 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
11226 are helper functions for traversing.
11227 * alias.h (insn_alias_sets_confilict_p): New prototypes.
11228 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
11229 not to draw dependency edge for instructions with non-conflicting
11230 alias sets.
11231
5a248274
JM
112322009-01-20 Joseph Myers <joseph@codesourcery.com>
11233
11234 PR other/38758
6b67572e
UB
11235 * longlong.h: Update copyright years. Use soft-fp license notice.
11236 Sync __clz_tab declaration with glibc.
5a248274 11237
4b84f3de
SE
112382009-01-20 Steve Ellcey <sje@cup.hp.com>
11239
11240 PR target/30687
11241 * doc/extend.texi (syscall_linkage): New.
11242 (version_id): Modify.
11243
37348bf1 112442009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 11245 Richard Guenther <rguenther@suse.de>
37348bf1
AP
11246
11247 PR tree-optimization/38747
11248 PR tree-optimization/38748
11249 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
11250 conversion if the base address is an indirect reference and the
11251 aliasing sets could cause issues.
11252
d0a58904
SP
112532009-01-20 Sebastian Pop <sebastian.pop@amd.com>
11254
2ba9daa7 11255 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
11256 explaining why these options are not documented.
11257
71e7afb2
SP
112582009-01-20 Sebastian Pop <sebastian.pop@amd.com>
11259
11260 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
11261 gimple_call_lhs is NULL.
11262
38432148 112632009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
11264
11265 PR target/38868
11266 * emit-rtl.c (adjust_address_1): Make sure memref is never
11267 overwritten.
11268
cbb8dee3
BE
112692009-01-20 Ben Elliston <bje@au.ibm.com>
11270
11271 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 11272 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
11273 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
11274 const qualifier from arg 2.
11275
72c66596
IS
112762009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
11277
435da628 11278 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 11279
f68211cd
VM
112802009-01-19 Vladimir Makarov <vmakarov@redhat.com>
11281
11282 PR c/38869
11283 * rtl.h (reinit_regs): New prototype.
11284 * regclass.c: Include ira.h.
11285 (reinit_regs): New.
11286 * Makefile.in (regclass.o): Add ira.h.
11287 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
11288
6e4f1168
L
112892009-01-18 H.J. Lu <hongjiu.lu@intel.com>
11290
11291 PR target/38736
11292 * c-common.c (handle_aligned_attribute): Use
11293 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
11294 default alignment value.
11295
11296 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
11297
11298 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
11299 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
11300
11301 * doc/extend.texi: Update __attribute__ ((aligned)). Document
11302 __BIGGEST_ALIGNMENT__.
11303
11304 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
11305
890065bf
RG
113062009-01-18 Richard Guenther <rguenther@suse.de>
11307
11308 PR tree-optimization/38819
11309 * tree-flow.h (operation_could_trap_helper_p): Declare.
11310 * tree-eh.c (operation_could_trap_helper_p): Export.
11311 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
11312 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
11313 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
11314 are about to insert a possibly trapping instruction and fail
11315 in this case.
11316
a729d731
AS
113172009-01-18 Andreas Schwab <schwab@suse.de>
11318
11319 * doc/install.texi (Configuration): Remove obsolete paragraph
11320 about use of --with-gnu-ld with --with-gnu-as.
11321
a640c13b
KH
113222009-01-18 Kazu Hirata <kazu@codesourcery.com>
11323
11324 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
11325 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
11326 Follow spelling conventions.
11327
dba2cc0c
BE
113282009-01-18 Ben Elliston <bje@au.ibm.com>
11329
11330 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
11331 C++ warning about implicit conversion from void * to struct
11332 bitmap_head_def *.
11333 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 11334 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 11335
2207a498
DK
113362009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
11337
11338 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
11339
8137e465
SP
113402009-01-17 Sebastian Pop <sebastian.pop@amd.com>
11341 Tobias Grosser <tobi.grosser@amd.com>
11342
11343 * graphite.c (graphite_trans_scop_block): Do not block single
11344 nested loops.
11345
5be1c58c
AO
113462009-01-16 Alexandre Oliva <aoliva@redhat.com>
11347
11348 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11349 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11350 test with assertion.
11351
786ce82d
RG
113522009-01-16 Richard Guenther <rguenther@suse.de>
11353
11354 PR tree-optimization/38835
11355 PR middle-end/36227
11356 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11357 and INT + PTR -> (INT)(PTR p+ INT) folding.
11358 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11359
c1cb09ad
AN
113602009-01-16 Adam Nemet <anemet@caviumnetworks.com>
11361
11362 PR target/38554
11363 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11364 the subreg from a lowpart subreg if it is also casting the value.
11365
bcab4e19
SP
113662009-01-16 Sebastian Pop <sebastian.pop@amd.com>
11367 Tobias Grosser <tobi.grosser@amd.com>
11368
11369 * graphite.c (compare_prefix_loops): New.
11370 (build_scop_canonical_schedules): Rewritten.
11371 (graphite_transform_loops): Move build_scop_canonical_schedules
11372 after build_scop_iteration_domain.
11373
0b040072
SP
113742009-01-16 Sebastian Pop <sebastian.pop@amd.com>
11375 Tobias Grosser <tobi.grosser@amd.com>
11376
2ba9daa7 11377 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
11378 the dimension of the iteration domain. Do copy the domain
11379 only when it exists.
11380 (build_scop_conditions_1): Do not call add_conditions_to_domain.
11381 (add_conditions_to_constraints): New.
11382 (can_generate_code_stmt, can_generate_code): Removed.
11383 (gloog): Do not call can_generate_code.
11384 (graphite_transform_loops): Call add_conditions_to_constraints
11385 after building the iteration domain.
11386
56c6a499
JJ
113872009-01-16 Jakub Jelinek <jakub@redhat.com>
11388
11389 PR tree-optimization/38789
11390 * tree-ssa-threadedge.c
11391 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11392 __builtin_constant_p.
11393
c95b2534 113942009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
11395
11396 * dce.c (delete_unmarked_insns): Reversed the order that insns are
11397 examined before deleting them.
2ba9daa7 11398
c433cb14
RE
113992009-01-16 Richard Earnshaw <rearnsha@arm.com>
11400
11401 * function.c (aggregate_value_p): Correctly extract the function
11402 type from CALL_EXPR_FN lookup.
11403
c95b2534 114042009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
11405
11406 * config/picochip/picochip.c (picochip_override_options): Revert
11407 CFI asm flag disable commited previously.
11408
c77bb78f
SP
114092009-01-15 Sebastian Pop <sebastian.pop@amd.com>
11410 Tobias Grosser <tobi.grosser@amd.com>
11411 Jan Sjodin <jan.sjodin@amd.com>
11412
11413 * graphite.c (scan_tree_for_params): On substractions negate
11414 all the coefficients of the term.
11415 (clast_to_gcc_expression_red): New. Handle reduction expressions
11416 of more than two operands.
11417 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11418 (get_vdef_before_scop): Handle also the case of default definitions.
11419
574af2d6
RS
114202009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
11421
11422 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11423 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11424 Also use them when walking CALL_INSN_FUNCTION_USAGE.
11425
e939805b
L
114262009-01-15 H.J. Lu <hongjiu.lu@intel.com>
11427 Joey Ye <joey.ye@intel.com>
11428
11429 PR middle-end/37843
11430 * cfgexpand.c (expand_stack_alignment): Don't update stack
11431 boundary nor check incoming stack boundary here.
11432 (gimple_expand_cfg): Update stack boundary and check incoming
11433 stack boundary here.
11434
c95b2534 114352009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 11436
435da628 11437 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 11438
0196c95e
JJ
114392009-01-14 Jakub Jelinek <jakub@redhat.com>
11440
11441 PR rtl-optimization/38245
11442 * calls.c (expand_call): Add stack arguments to
11443 CALL_INSN_FUNCTION_USAGE even for pure calls (when
11444 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11445 in regs and partially in memory or BLKmode arguments.
11446 (emit_library_call_value_1): Add stack arguments to
11447 CALL_INSN_FUNCTION_USAGE even for pure calls (when
11448 ACCUMULATE_OUTGOING_ARGS).
11449 * dce.c: Include tm_p.h.
11450 (find_call_stack_args): New function.
11451 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
11452 argument.
11453 (mark_insn): Call find_call_stack_args for CALL_Ps.
11454 (prescan_insns_for_dce): Walk insns backwards in bb rather than
11455 forwards. Allocate and free arg_stores bitmap if needed, pass it
11456 down to deletable_insn_p, don't mark stores set in arg_stores
11457 bitmap, clear the bitmap at the beginning of each bb.
11458 * Makefile.in (dce.o): Depend on $(TM_P_H).
11459
6df6bcfa
MM
114602009-01-14 Michael Meissner <gnu@the-meissners.org>
11461
11462 PR target/22599
435da628
UB
11463 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11464 to make sure the insn is a conditional test (bug 22599). Reformat a
11465 few long lines.
6df6bcfa 11466
765ec70c
SP
114672009-01-14 Sebastian Pop <sebastian.pop@amd.com>
11468
11469 PR middle-end/38431
11470 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11471 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11472 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 11473 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
11474 scops have been code generated.
11475
7de2b688
BS
114762009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
11477 * doc/gty.texi (Invoking the garbage collector): Added new node
11478 and section documenting ggc_collect.
11479
10bd6c5c
RG
114802009-01-14 Richard Guenther <rguenther@suse.de>
11481
11482 PR tree-optimization/38826
11483 PR middle-end/38477
11484 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11485 initialization notes only if we actually emitted a warning.
11486 (intra_create_variable_infos): Add constraints for a result decl
11487 that is passed by hidden reference.
11488 (build_pred_graph): Mark all related variables non-direct on
11489 address-taking.
11490
9c7c70ee
NC
114912009-01-14 Nick Clifton <nickc@redhat.com>
11492
11493 * ira-conflicts.c: Include addresses.h for the definition of
11494 base_reg_class.
435da628
UB
11495 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11496 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 11497
cf0c2a60
VM
114982009-01-13 Vladimir Makarov <vmakarov@redhat.com>
11499
11500 PR target/38811
11501 * Makefile.in (ira-lives.o): Add except.h.
11502
11503 * ira-lives.c: Include except.h.
11504 (process_bb_node_lives): Process can_throw_internal.
11505
d3302fd3
JJ
115062009-01-13 Jakub Jelinek <jakub@redhat.com>
11507
11508 PR rtl-optimization/38774
11509 * combine.c (simplify_set): When undoing cc_use change, don't do
11510 PUT_CODE on the newly created comparison, but instead put back the
11511 old comparison.
11512
7ab23fd0
JM
115132009-01-13 Joseph Myers <joseph@codesourcery.com>
11514
11515 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11516 values. Remove duplicate arm8 entry.
11517
f9344488
SP
115182009-01-13 Sebastian Pop <sebastian.pop@amd.com>
11519
11520 PR tree-optimization/38786
11521 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11522 the SSA_NAME case of expand_scalar_variables_expr.
11523 Set the type of an expression to the type of its assign statement.
11524 (expand_scalar_variables_expr): Also gather the scalar computation
11525 used to index the memory access. Do not pass loop_p.
11526 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
11527 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
11528 the gimple_stmt_iterator where it inserts new code.
11529 Do not pass loop_p.
f9344488
SP
11530 (copy_bb_and_scalar_dependences): Do not pass loop_p.
11531 (translate_clast): Update call to copy_bb_and_scalar_dependences.
11532
2d8bb84d
SP
115332009-01-13 Sebastian Pop <sebastian.pop@amd.com>
11534
11535 * graphite.h (debug_value): Removed.
11536 * graphite.c (debug_value): Removed.
11537
ff128632
RE
115382009-01-13 Richard Earnshaw <rearnsha@arm.com>
11539
435da628
UB
11540 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11541 ldrd/strd with two 32-bit instructions.
ff128632 11542
d5a0a47b
RE
115432009-01-13 Richard Earnshaw <rearnsha@arm.com>
11544
435da628
UB
11545 * config/arm/arm.c (struct processors): Pass for speed down into
11546 cost helper functions.
d5a0a47b
RE
11547 (const_ok_for_op): Handle COMPARE and inequality nodes.
11548 (arm_rtx_costs_1): Rewrite.
11549 (arm_size_rtx_costs): Update prototype.
11550 (arm_rtx_costs): Pass speed down to helper functions.
11551 (arm_slowmul_rtx_costs): Rework cost calculations.
11552 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11553 (arm_9e_rtx_costs): Likewise.
11554
26d5bf5b
UB
115552009-01-13 Uros Bizjak <ubizjak@gmail.com>
11556
11557 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 11558 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
11559 (alpha_legitimize_address): Do not split local symbols wider than
11560 UNITS_PER_WORD into HIGH/LO_SUM parts.
11561
5d14e3d5
DS
115622009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
11563
11564 PR bootstrap/38580
11565 * gcc.c (process_command): Replace call to execvp with calls
11566 to pex_one and exit.
11567
33faafca
AS
115682009-01-03 Anatoly Sokolov <aesok@post.ru>
11569
11570 PR target/29141
11571 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11572 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11573 variant for devices with 3-byte PC.
ba20e309 11574 (__tablejump_elpm__): New.
33faafca 11575
634b5df5
JJ
115762009-01-12 Jakub Jelinek <jakub@redhat.com>
11577
11578 PR c/32041
11579 * c-parser.c (c_parser_postfix_expression): Allow `->' in
11580 offsetof member-designator, handle it as `[0].'.
11581
2842bb86
JDA
115822009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11583
11584 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11585 function when not using named sections on targets with named sections
11586 if branch distance is less than 262132.
11587
76ee70f6
RE
115882009-01-12 Richard Earnshaw <rearnsha@arm.com>
11589
11590 * combine.c (combine_instructions): Recompute
11591 optimize_this_for_speed_p for each BB in the main combine loop.
11592
f56e675d
TB
115932009-01-12 Tomas Bily <tbily@suse.cz>
11594
11595 PR middlend/38385
26d5bf5b
UB
11596 * tree-loop-distribution.c (prop_phis): New function.
11597 (generate_builtin): Call prop_phis.
11598 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 11599
c2152239
JJ
116002009-01-12 Jakub Jelinek <jakub@redhat.com>
11601
11602 PR tree-optimization/38807
11603 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11604 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11605
0e510b3e
AN
116062009-01-11 Adam Nemet <anemet@caviumnetworks.com>
11607
11608 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11609 subreg of op0 to the original op0.
11610
c95b2534 116112009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
11612
11613 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 11614
53a7ff9a
MS
116152009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
11616
11617 PR debug/7055
60839f5d 11618 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
11619 starting with digits.
11620
b3a796bc
JJ
116212009-01-10 Jakub Jelinek <jakub@redhat.com>
11622
11623 PR target/38695
11624 * config/arm/arm.c (arm_is_long_call_p): Don't call
11625 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11626
b21b850e
SB
116272009-01-09 Steven Bosscher <steven@gcc.gnu.org>
11628
11629 * regrename.c (regrename_optimize): Fix dumping.
11630 (find_oldest_value_reg): Preserve REG_POINTER.
11631 (copy_hardreg_forward_1): Likewise.
11632
e0e10d3a
DN
116332009-01-09 Diego Novillo <dnovillo@google.com>
11634
bf9b2cc9 11635 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
11636 the restrictions on its use.
11637 (gimple_uid): Tidy.
11638 (gimple_set_uid): Tidy.
11639
c9da2ae8
JJ
116402009-01-09 Jakub Jelinek <jakub@redhat.com>
11641
11642 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11643 zero guard even if align_bytes != 0 and count is smaller than
11644 size_needed.
11645
38432148 116462009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
11647
11648 PR rtl-optimization/38495
26d5bf5b 11649 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
11650 (add_range_and_copies_from_move_list): Print all added ranges.
11651 Add ranges to memory optimized destination.
11652
260fda3d
JJ
116532009-01-09 Jakub Jelinek <jakub@redhat.com>
11654
6f6278ad
JJ
11655 PR target/38686
11656 PR target/38708
11657 * config/i386/i386.c (override_options): Reject
11658 -mstringop-strategy=rep_8byte with -m32.
11659 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11660 to 1. Do count comparison against epilogue_size_needed at compile
11661 time even when count_exp was constant forced into register. For
11662 size_needed don't jump to epilogue, instead just avoid aligning
11663 and invoke the body algorithm. If need_zero_guard, add zero guard
11664 even if count is non-zero, but smaller than size_needed + number of
11665 bytes that could be stored for alignment.
11666 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11667 to 1. If need_zero_guard, add zero guard even if count is non-zero,
11668 but smaller than size_needed + number of bytes that could be stored
11669 for alignment. Compare size_needed with epilogue_size_needed instead
11670 of desired_align - align, don't adjust size_needed, pass
11671 epilogue_size_needed to the epilogue expanders.
11672
260fda3d 11673 PR c/35742
26d5bf5b 11674 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 11675
67b846fa
JDA
116762009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11677
11678 * pa.c (last_address): Change to unsigned.
11679 (update_total_code_bytes): Change argument to unsigned. Don't
11680 check if insn addresses are set.
11681 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11682 addresses are not set.
11683 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11684
91c82473
NC
116852009-01-09 Nick Clifton <nickc@redhat.com>
11686
11687 * config/sh/symbian.c: Replace uses of DECL_INLINE with
11688 DECL_DECLARED_INLINE_P.
11689
4017e262
JJ
116902009-01-09 Jakub Jelinek <jakub@redhat.com>
11691
0a49e5c2
JJ
11692 PR middle-end/38347
11693 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11694 GET_MODE (op0) in operand_subword_force calls.
11695
4017e262
JJ
11696 PR middle-end/38771
11697 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11698 fold_convert arg0 operands to TREE_TYPE (op0) first.
11699
7cd06356
VM
117002009-01-08 Vladimir Makarov <vmakarov@redhat.com>
11701
11702 * params.def (ira-max-conflict-table-size): Decrease default value
11703 to 1000.
11704
96867bbd
JJ
117052009-01-08 Jakub Jelinek <jakub@redhat.com>
11706
11707 PR tree-optimization/37031
11708 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11709 on parameter_set.
11710 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11711 allocate it using gc instead of heap, use VEC_quick_push instead of
11712 VEC_safe_push.
11713 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11714 instead of heap, use VEC_quick_push instead of VEC_safe_push.
11715 * tree-data-ref.h (struct access_matrix): Change matrix to gc
11716 allocated vector from heap allocated.
11717 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11718 * tree-loop-linear.c (linear_transform_loops): Allocate nest
11719 vector only after perfect_loop_nest_depth call.
11720
68f61c3d
SP
117212009-01-08 Sebastian Pop <sebastian.pop@amd.com>
11722 Jan Sjodin <jan.sjodin@amd.com>
11723
11724 PR tree-optimization/38559
11725 * graphite.c (debug_value, copy_constraint,
11726 swap_constraint_variables, scale_constraint_variable, ): New.
11727 (get_lower_bound, get_upper_bound): Removed.
11728 (graphite_trans_bb_strip_mine): Clean up this code that works
11729 only for constant number of iterations. Fully copy upper and
11730 lower bound constraints, not only the constant part of them.
11731 * graphite.h (debug_value): Declared.
11732
82567e33
IR
117332009-01-08 Ira Rosen <irar@il.ibm.com>
11734
11735 PR tree-optimization/37194
11736 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 11737 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
11738 outside cost in case of known number of iterations.
11739
7da13f1d
NF
117402009-01-07 Nathan Froyd <froydnj@codesourcery.com>
11741 Alan Modra <amodra@bigpond.net.au>
11742
11743 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11744 non-word-aligned REG+CONST addressing.
11745
c0f64575
UB
117462009-01-07 Uros Bizjak <ubizjak@gmail.com>
11747
11748 PR target/38706
11749 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11750 free_after_compilation when outputting a thunk.
11751 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11752 Do not call free_after_compilation here.
11753
301b6a4e
UB
117542009-01-07 Uros Bizjak <ubizjak@gmail.com>
11755
11756 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
11757 (ix86_valid_target_attribute_inner_p): Ditto.
11758
6a114766
JS
117592009-01-07 Jan Sjodin <jan.sjodin@amd.com>
11760
11761 PR tree-optimization/38492
11762 PR tree-optimization/38498
11763 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11764 * tree-chrec.h (scev_is_linear_expression): Declared.
11765 * graphite.c (graphite_cannot_represent_loop_niter): New.
11766 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11767 (graphite_loop_normal_form): Use gcc_assert.
11768 (scan_tree_for_params): Use CASE_CONVERT.
11769 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11770 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11771 Use gcc_assert. Discard scops that contain unhandled cases.
11772 (build_scop_conditions): Return a boolean status for unhandled cases.
11773 (strip_mine_profitable_p): Print the loop number, not its depth.
11774 (is_interchange_valid): Pass the depth of the loop nest, don't
11775 recompute it wrongly.
11776 (graphite_trans_bb_block): Same.
11777 (graphite_trans_bb_block): Print tentative of loop blocking.
11778 (graphite_trans_scop_block): Do not print that the loop has been
11779 blocked.
11780 (graphite_transform_loops): Do not handle scops that contain condition
11781 scalar phi nodes.
11782
65b82caa
L
117832009-01-07 H.J. Lu <hongjiu.lu@intel.com>
11784
11785 AVX Programming Reference (December, 2008)
11786 * config/i386/avxintrin.h (_mm256_stream_si256): New.
11787 (_mm256_stream_pd): Likewise.
11788 (_mm256_stream_ps): Likewise.
11789
11790 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11791 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11792 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11793 (bdesc_special_args): Add __builtin_ia32_movntdq256,
11794 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11795 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11796 (ix86_expand_special_args_builtin): Likewise.
11797
11798 * config/i386/sse.md (AVXMODEDI): New.
11799 (avx_movnt<mode>): Likewise.
11800 (avx_movnt<mode>): Likewise.
11801 (<sse>_movnt<mode>): Remove AVX support.
11802 (sse2_movntv2di): Likewise.
11803
cef158f9
RG
118042009-01-07 Richard Guenther <rguenther@suse.de>
11805
11806 PR middle-end/38751
11807 * fold-const.c (extract_muldiv): Remove obsolete comment.
11808 (fold_plusminus_mult_expr): Undo MINUS_EXPR
11809 to PLUS_EXPR canonicalization for the canonicalization.
11810
246cb5be
GP
118112009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
11812
11813 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11814 hosted cross-compilers generating less efficient code.
11815
84b9b872
RS
118162009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11817
11818 * function.h (rtl_data): Add a dbr_scheduled_p field.
11819 * reorg.c (dbr_schedule): Set it.
11820 (gate_handle_delay_slots): Check it.
11821 * config/mips/mips.c (mips_base_delayed_branch): Delete.
11822 (mips_reorg): Check flag_delayed_branch instead of
11823 mips_base_delayed_branch.
11824 (mips_override_options): Don't set mips_base_delayed_branch
11825 or flag_delayed_branch.
11826
ace984c8
RS
118272009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11828
11829 PR rtl-optimization/38426.
11830 * ira.c (ira): Set current_function_is_leaf earlier.
11831
7ad7809b
JJ
118322009-01-06 Jakub Jelinek <jakub@redhat.com>
11833
11834 PR rtl-optimization/38722
11835 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11836 too early, only set a flag and modify after last possible
11837 undo_all point.
11838
c52ec948
JJ
118392009-01-06 Janis Johnson <janis187@us.ibm.com>
11840
11841 PR c/34252
11842 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11843 * real.c (decimal_single_format): Correct values of emin and emax.
11844 (decimal_double_format): Ditto.
11845 (decimal_quad_format): Ditto.
11846 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11847 computation of DECnn_MIN and DECnn_MAX for corrected values of
11848 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
11849 __DECnn_MIN__, and adjust its computation for the corrected value
11850 of emin.
11851
300240e1
JH
118522009-01-06 Jan Hubicka <jh@suse.cz>
11853
11854 PR target/38744
435da628 11855 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 11856
271c069e
GP
118572009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
11858
11859 * doc/contrib.texi (Contributors): Slightly adjust the end note.
11860 Add Robert Clark to the list of testers.
11861
64e4c301 118622009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11863 Kai Tietz <kai.tietz@onevision.com>
64e4c301 11864
435da628
UB
11865 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11866 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 11867
7650b83e 118682009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11869 Kai Tietz <kai.tietz@onevision.com>
7650b83e 11870
435da628
UB
11871 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11872 for w64 ABI.
11873 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
11874 (ix86_nsaved_regs): Count only general purpose regs.
11875 (ix86_nsaved_sseregs): New.
11876 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11877 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
11878 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11879 general purpose regs.
7650b83e
JH
11880 (ix86_emit_save_sse_regs_using_mov): New.
11881 (ix86_expand_prologue): Save SSE regs if needed.
11882 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11883 (ix86_emit_restore_sse_regs_using_mov): New.
11884 (ix86_expand_epilogue): Save SSE regs if needed.
11885
9aa5c1b2 118862009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11887 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 11888
435da628
UB
11889 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11890 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11891 functions when accumulate outgoing args is off.
9aa5c1b2 11892
f7556aae
L
118932009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11894
11895 PR bootstrap/38742
11896 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11897 before using pseudos_have_intersected_live_ranges_p.
11898
11899 * ira-int.h (ira_assert): Always define.
11900
e47b7d04
L
119012009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11902
11903 AVX Programming Reference (December, 2008)
11904 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11905 (_mm256_permute2_pd): Likewise.
11906 (_mm_permute2_ps): Likewise.
11907 (_mm256_permute2_ps): Likewise.
11908 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11909 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11910
11911 * config/i386/i386.c (ix86_builtins): Remove
11912 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11913 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11914 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11915 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11916 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11917 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11918 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11919 __builtin_ia32_vpermil2ps256.
11920 (ix86_init_mmx_sse_builtins): Updated.
11921 (ix86_expand_args_builtin): Likewise.
11922
44b86471
JDA
119232009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11924
e47b7d04
L
11925 * pa.c (output_call): Relocate non-jump insns in the delay slot of
11926 long absolute calls when generating PA 2.0 code.
44b86471 11927
311aab06
VM
119282009-01-05 Vladimir Makarov <vmakarov@redhat.com>
11929
11930 PR rtl-optimization/38583
11931 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11932
11933 * params.def (ira-max-conflict-table-size): New.
11934
11935 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 11936
311aab06 11937 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 11938
311aab06
VM
11939 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11940 table. Report this. Return result of building.
11941 (ira_build_conflicts): Use ira_conflicts_p. Check result of
11942 building conflict table.
11943
301b6a4e 11944 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 11945 (ira_color): Use ira_conflicts_p.
2ba9daa7 11946
311aab06
VM
11947 * global.c: Include ira.h.
11948 (pseudo_for_reload_consideration_p, build_insn_chain): Use
11949 ira_conflicts_p.
11950
11951 * Makefile.in (global.o): Add ira.h.
2ba9daa7 11952
311aab06
VM
11953 * ira-build.c (mark_all_loops_for_removal,
11954 propagate_some_info_from_allocno): New.
11955 (remove_unnecessary_allocnos): Call
11956 propagate_some_info_from_allocno.
11957 (remove_low_level_allocnos): New.
11958 (remove_unnecessary_regions): Add parameter. Call
11959 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
11960 parameter to remove_unnecessary_regions.
11961 (ira_build): Remove all regions but root if the conflict table was
11962 not built. Update conflict hard regs for allocnos crossing calls.
11963
11964 * ira.c (ira_conflicts_p): New global.
11965 (ira): Define and use ira_conflicts_p.
11966
11967 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11968 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 11969 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 11970
5641785f
BE
119712009-01-06 Ben Elliston <bje@au.ibm.com>
11972
11973 * gengtype-lex.l (YY_NO_INPUT): Define.
11974
e4e5261f
AP
119752009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11976
11977 PR c/34911
5641785f
BE
11978 * c-common.c (handle_vector_size_attribute): Also reject
11979 BOOLEAN_TYPE types.
e4e5261f 11980
7b10257f
SP
119812009-01-05 Sebastian Pop <sebastian.pop@amd.com>
11982
11983 PR tree-optimization/38492
11984 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
11985 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11986 rename_map_elt_info, eq_rename_map_elts,
11987 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
11988 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11989 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11990 (sese_build_livein_liveouts): New.
11991 (new_sese, free_sese): New.
11992 (new_scop): Call new_sese.
11993 (free_scop): Call free_sese.
11994 (rename_variables_from_edge, rename_phis_end_scop): Removed.
11995 (register_old_new_names): Renamed register_old_and_new_names.
11996 (register_scop_liveout_renames, add_loop_exit_phis,
11997 insert_loop_close_phis, struct igp,
11998 default_liveout_before_guard, add_guard_exit_phis,
11999 insert_guard_phis, copy_renames): New.
12000 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
12001 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
12002 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
12003 (scop_adjust_phis_for_liveouts): New.
12004 (gloog): Call scop_adjust_phis_for_liveouts.
12005
12006 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 12007 num_ver and livein.
7b10257f
SP
12008 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
12009 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
12010 (struct scop): Added field liveout_renames.
12011 (SCOP_LIVEOUT_RENAMES): New.
12012
9761fcc7
HJ
120132009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
12014
12015 PR tree-optimization/38510
12016 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
12017 (translate_clast): Call recompute_all_dominators before
12018 graphite_verify.
12019 (gloog): Call recompute_all_dominators before graphite_verify.
12020
120212009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 12022 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
12023
12024 PR tree-optimization/38500
12025 * graphite.c (create_sese_edges): Call fix_loop_structure after
12026 splitting blocks.
12027
c95b2534 120282009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
12029
12030 * config.gcc: Add m32r*-*-rtems*.
12031 * config/m32r/rtems.h: New file.
12032
fc0cd180
BE
120332009-01-05 Ben Elliston <bje@au.ibm.com>
12034
12035 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
12036 (.po.pox): Likewise.
12037 (po/gcc.pot): Likewise.
12038
3106d8e5
DM
120392009-01-04 David S. Miller <davem@davemloft.net>
12040
12041 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
12042 (STARTING_FRAME_OFFSET): Always set to zero.
12043
0009b473
RS
120442009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
12045
12046 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
12047 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
12048 fixed-point types, and vectors of the same.
12049
4f24c6d6
RS
120502009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
12051
12052 * config/mips/sync.md (*mb_barrier): Rename to...
12053 (*memory_barrier): ...this.
12054
1df48f5c
JW
120552009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
12056
12057 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 12058 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
12059 and put in alphabetical order. Fix 'target' name and put in order.
12060 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
12061 typos.
12062
1a8c13b3
UB
120632009-01-04 Uros Bizjak <ubizjak@gmail.com>
12064
12065 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
12066 (memory_barrier): Expand as unspec instead of unspec_volatile.
12067 Remove mem:BLK from insn operands. Use Pmode scratch register.
12068 (*memory_barrier): Define as unspec instead of unspec_volatile.
12069 Use (match_dup 0) as input operand.
12070
12071 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
12072 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
12073 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
12074 scratch register. Remove operand 1.
12075 (*stbar): Define as unspec instead of unspec_volatile.
12076 Use (match_dup 0) as input operand, remove (const_int 8).
12077 (*membar): Define as unspec instead of unspec_volatile.
12078 Use (match_dup 0) as input operand, remove input operand 2.
12079
12080 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
12081 (memory_barrier): Expand as unspec instead of unspec_volatile.
12082 Remove mem:BLK from insn operands. Use Pmode scratch register.
12083 (*memory_barrier): Define as unspec instead of unspec_volatile.
12084 Use (match_dup 0) as input operand.
12085
12086 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
12087 Remove mem:BLK from insn operands. Use Pmode scratch register.
12088 Set volatile flag on operand 0.
12089 (*memory_barrier): New insn pattern.
12090
12091 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
12092 insn operands.
12093 (*memory_barrier): Use (match_dup 0) as input operand.
12094
12095 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
12096 Remove mem:BLK from insn operands. Use Pmode scratch register.
12097 Set volatile flag on operand 0.
301b6a4e 12098 (*mb_internal): New insn pattern.
1a8c13b3
UB
12099
12100 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
12101
fb0703f7
SB
121022009-01-04 Steven Bosscher <steven@gcc.gnu.org>
12103
12104 PR middle-end/38586
12105 * function.c (struct temp_slot): Move to the section of the file
12106 that deals with temp slots. Remove field 'address'.
12107 (temp_slot_address_table): New hash table of address -> temp slot.
12108 (struct temp_slot_address_entry): New struct, items for the table.
12109 (temp_slot_address_compute_hash, temp_slot_address_hash,
12110 temp_slot_address_eq, insert_temp_slot_address): Support functions
12111 for the new table.
12112 (find_temp_slot_from_address): Rewrite to use the new hash table.
12113 (remove_unused_temp_slot_addresses): Remove addresses of temp
12114 slots that have been made available.
12115 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
12116 worker function for remove_unused_temp_slot_addresses.
12117 (assign_stack_temp_for_type): Don't clear the temp slot address list.
12118 Add the temp slot address to the address -> temp slot map.
12119 (update_temp_slot_address): Update via insert_temp_slot_address.
12120 (free_temp_slots): Call remove_unused_temp_slot_addresses.
12121 (pop_temp_slots): Likewise.
12122 (init_temp_slots): Allocate the address -> temp slot map, or empty
12123 the map if it is already allocated.
12124 (prepare_function_start): Initialize temp slot processing.
12125
b5a430f3
SB
121262009-01-04 Steven Bosscher <steven@gcc.gnu.org>
12127
12128 PR middle-end/38584
12129 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
12130 Calculate the size of all stack vars assuming no packing of stack
12131 vars will happen, replacing a quadratic algorithm with a linear one.
12132
5d560619
JJ
121332009-01-03 Jakub Jelinek <jakub@redhat.com>
12134
12135 PR target/38707
12136 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
12137 can't be used.
12138
953a7caa
DN
121392009-01-03 Diego Novillo <dnovillo@google.com>
12140
12141 * doc/contrib.texi: Update contributions.
12142
5f26a230
JJ
121432009-01-03 Jakub Jelinek <jakub@redhat.com>
12144
493aa551
JJ
12145 PR c++/38705
12146 * builtins.c (fold_builtin_memory_op): Give up if either operand
12147 is volatile. Set srctype or desttype to non-qualified version
12148 of the other type.
12149
5f26a230
JJ
12150 PR c/38700
12151 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
12152 and FUNCTION_DECLs.
12153
c95b2534 121542009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
12155
12156 PR rtl-optimization/35805
12157 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
12158 problem if fast dce is able to remove any instructions.
12159 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 12160
0b355794
MM
121612009-01-02 Mark Mitchell <mark@codesourcery.com>
12162
12163 PR 33649
12164 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
12165
0cf0d02b
JJ
121662009-01-02 Jakub Jelinek <jakub@redhat.com>
12167
12168 PR middle-end/38690
12169 * tree-flow.h (op_code_prio, op_prio): New prototypes.
12170 * tree-pretty-print.c (op_code_prio): New function.
12171 (op_prio): No longer static. Use op_code_prio.
12172 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
12173 Use op_prio and op_code_prio to determine if () should be
12174 printed around operand(s) or not.
12175
12176 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
12177 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
12178 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
12179 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
12180 pp_character instead of pp_string for single letter printing.
12181
e3606f3b
RS
121822009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12183
12184 * doc/extend.texi: Fix '#pragma GCC option' typo.
12185
c95b2534 121862009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 12187
a5f061dc
RG
12188 * doc/install.texi (--enable-checking): Mention different
12189 default for stage1.
12190 (--enable-stage1-checking): Document.
00f39bd5 12191
26de0bcb
AP
121922009-01-01 Andrew Pinski <pinskia@gmail.com>
12193
12194 PR middle-end/30142
12195 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
12196 case to be an error.
12197
7a7d8fab
BE
121982009-01-02 Ben Elliston <bje@au.ibm.com>
12199
12200 * config/fp-bit.h (pack_d): Constify argument.
12201 * config/fp-bit.c (makenan): Constify return type. Remove casts.
12202 (isnan): Constify argument.
12203 (isinf): Likewise.
12204 (iszero): Likewise.
12205 (pack_d): Likewise.
12206 (_fpadd_parts): Constify return type.
12207 (_fpmul_parts): Likewise.
12208 (_fpdiv_parts): Likewise.
12209
b295aee2
JJ
122102009-01-01 Jakub Jelinek <jakub@redhat.com>
12211
12212 PR c/36489
12213 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
12214 warn about overwriting initializer with side-effects or
12215 -Woverride-init if !IMPLICIT.
12216 (output_init_element): Likewise. Pass IMPLICIT down to
12217 add_pending_init.
12218 (process_init_element): Add IMPLICIT argument. Pass it down
12219 to output_init_element.
12220 (push_init_element, pop_init_level, set_designator): Adjust
12221 process_init_element callers.
12222 (set_nonincremental_init, set_nonincremental_init_from_string):
12223 Adjust add_pending_init callers.
12224 (output_pending_init_elements): Adjust output_init_element callers.
12225 * c-tree.h (process_init_element): Adjust prototype.
12226 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
12227 process_init_element callers.
ad41bd84
JM
12228
12229\f
12230Copyright (C) 2009 Free Software Foundation, Inc.
12231
12232Copying and distribution of this file, with or without modification,
12233are permitted in any medium without royalty provided the copyright
12234notice and this notice are preserved.