]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
invoke.texi (max-early-inliner-iterations): New flag.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
796bda22
JH
12009-05-15 Jan Hubicka <jh@suse.cz>
2
3 * doc/invoke.texi (max-early-inliner-iterations): New flag.
4 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
5 (try_inline): Fix return value.
6 (cgraph_decide_inlining_incrementally): Honor new value.
7 (cgraph_early_inlining): Handle indirect inlining.
8 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
9
d88e5c37
JH
102009-05-15 Jan Hubicka <jh@suse.cz>
11
12 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
13 * cgraphunit.c (cgraph_finalize_function): Set it.
14 (cgraph_expand_function): Use it.
15
ae63687c
SL
162009-05-15 Sandra Loosemore <sandra@codesourcery.com>
17
18 * real.c (encode_ieee_half): Define.
19 (decode_ieee_half): Define.
20 (ieee_half_format): Define.
21 (arm_half_format): Define.
22 * real.h (ieee_half_format): Declare.
23 (arm_half_format): Declare.
24
1bd74ad9
SL
252009-05-15 Sandra Loosemore <sandra@codesourcery.com>
26
27 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
28 swapped, and reversed optabs exist before trying to use them.
29
dc34db56
PB
302009-05-15 Paul Brook <paul@codesourcery.com>
31 Sandra Loosemore <sandra@codesourcery.com>
32
dc34db56
PB
33 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
34 loads. Allow PRE_DEC.
35 (output_move_neon): Handle PRE_DEC.
36 (arm_print_operand): Add 'A' for neon structure loads.
37 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
38 * config/arm/neon.md (neon_mov): Update comment.
39 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
40 calls.
41 (Um): New constraint.
42
1d405d7b
JH
432009-05-15 Jan Hubicka <jh@suse.cz>
44
45 Revert the following patch until testsuite fallout is fixed:
46 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
47 * cgraph.h (struct inline_summary): New filed self_wize,
48 size_inlining_benefit, self_time and time_inlining_benefit.
49 (struct cgraph_global_info): Replace insns by time ans size fields.
50 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
51 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
52 (ipcp_update_callgraph): Do not touch function bodies.
53 * ipa-inline.c: Include except.h
54 MAX_TIME: New constant.
55 (overall_insns): Remove
56 (overall_size, max_benefit): New static variables.
57 (cgraph_estimate_time_after_inlining): New function.
58 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
59 (cgraph_clone_inlined_nodes): Update size.
60 (cgraph_mark_inline_edge): Update size.
61 (cgraph_estimate_growth): Use size info.
62 (cgraph_check_inline_limits): Check size.
63 (cgraph_default_inline_p): Likewise.
64 (cgraph_edge_badness): Compute badness based on benefit and size cost.
65 (cgraph_decide_recursive_inlining): Check size.
66 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
67 (cgraph_decide_inlining): Likewise.
68 (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
69 (likely_eliminated_by_inlining_p): New predicate.
70 (estimate_function_body_sizes): New function.
71 (compute_inline_parameters): Use it.
72 * except.c (must_not_throw_labels): New function.
73 * except.h (must_not_throw_labels): Declare.
74 * tree-inline.c (init_inline_once): Kill inlining_weigths
75 * tree-ssa-structalias.c: Avoid uninitialized warning.
76 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
77 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
78 (PARAM_INLINE_CALL_COST): Remove.
79 (PARAM_EARLY_INLINING_INSNS): New.
80
7ffa47ca
RG
812009-05-15 Richard Guenther <rguenther@suse.de>
82
83 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
84 not TODO_update_ssa.
85
828552ed
RG
862009-05-15 Richard Guenther <rguenther@suse.de>
87
88 PR tree-optimization/39999
89 * gimple.h (gimple_expr_type): Use the expression type looking
90 through useless conversions.
91 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
92 (vn_nary_op_insert_stmt): Likewise.
93 (simplify_binary_expression): Likewise.
94
248fc9f3
RG
952009-05-15 Richard Guenther <rguenther@suse.de>
96
97 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
98 New options, enabled by default.
99 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
100 Document.
101 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
102 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
103 * tree-ssa-structalias.c (gate_tree_pta): New function.
104 (pass_build_alias): Use it.
105
16b29cc4
JM
1062009-05-15 Joseph Myers <joseph@codesourcery.com>
107
108 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
109 recurse on an invariant address if a conversion from a pointer
110 type to a wider integer type is involved.
111
125cae84
JH
1122009-05-15 Jan Hubicka <jh@suse.cz>
113
114 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
115 * cgraph.h (struct inline_summary): New filed self_wize,
116 size_inlining_benefit, self_time and time_inlining_benefit.
117 (struct cgraph_global_info): Replace insns by time ans size fields.
118 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
119 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
120 (ipcp_update_callgraph): Do not touch function bodies.
121 * ipa-inline.c: Include except.h
122 MAX_TIME: New constant.
123 (overall_insns): Remove
124 (overall_size, max_benefit): New static variables.
125 (cgraph_estimate_time_after_inlining): New function.
126 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
127 (cgraph_clone_inlined_nodes): Update size.
128 (cgraph_mark_inline_edge): Update size.
129 (cgraph_estimate_growth): Use size info.
130 (cgraph_check_inline_limits): Check size.
131 (cgraph_default_inline_p): Likewise.
132 (cgraph_edge_badness): Compute badness based on benefit and size cost.
133 (cgraph_decide_recursive_inlining): Check size.
134 (cgraph_decide_inlining_of_small_function): Update size; dump sizes and times.
135 (cgraph_decide_inlining): Likewise.
136 (cgraph_decide_inlining_incrementally): Likewise; honor PARAM_EARLY_INLINING_INSNS.
137 (likely_eliminated_by_inlining_p): New predicate.
138 (estimate_function_body_sizes): New function.
139 (compute_inline_parameters): Use it.
140 * except.c (must_not_throw_labels): New function.
141 * except.h (must_not_throw_labels): Declare.
142 * tree-inline.c (init_inline_once): Kill inlining_weigths
143 * tree-ssa-structalias.c: Avoid uninitialized warning.
144 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
145 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
146 (PARAM_INLINE_CALL_COST): Remove.
147 (PARAM_EARLY_INLINING_INSNS): New.
148 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
149 (inline-call-cost): Remove.
150 (early-inlining-insns): New.
151
84fb43a1
EB
1522009-05-15 Eric Botcazou <ebotcazou@adacore.com>
153
154 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
155 for bounds.
156 (print_int_cst_bounds_in_octal_p): Likewise.
157 (dbxout_type): Adjust calls to above functions. Be prepared to deal
158 with subtypes.
159 * dwarf2out.c (base_type_die): Likewise.
160 (is_subrange_type): Delete.
161 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
162 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
163 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
164 the destination type is boolean.
165 (build_range_check): Do not special-case subtypes.
166 (fold_sign_changed_comparison): Likewise.
167 (fold_unary): Likewise.
168 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
169 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
170 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
171 * tree.c (subrange_type_for_debug_p): New predicate based on the former
172 is_subrange_type.
173 * tree.h (subrange_type_for_debug_p): Declare.
174 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
175 (convert_affine_scev): Remove call to above function.
176 (chrec_convert_aggressive): Likewise.
177 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
178 false for conversions involving subtypes.
179 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
180 (vrp_val_min): Likewise.
181 (needs_overflow_infinity): Likewise.
182 (extract_range_from_unary_expr): Likewise.
183
331d9186
PB
1842009-05-15 Paolo Bonzini <bonzini@gnu.org>
185
186 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
187 * config/frv/frv.c: Likewise.
188 * config/s390/s390.c: Likewise.
189 * config/sparc/sparc.h: Likewise.
190 * config/i386/i386.h: Likewise.
191 * config/i386/i386.c: Likewise.
192 * config/crx/crx.c: Likewise.
193 * config/m68hc11/m68hc11.h: Likewise.
194 * config/iq2000/iq2000.c: Likewise.
195 * config/mn10300/mn10300.h: Likewise.
196 * config/mn10300/mn10300.c: Likewise.
197 * config/m68k/m68k.c: Likewise.
198 * config/rs6000/rs6000.c: Likewise.
199 * config/rs6000/xcoff.h: Likewise.
200 * config/rs6000/linux64.h: Likewise.
201 * config/rs6000/sysv4.h: Likewise.
202 * config/score/score3.c: Likewise.
203 * config/score/score7.c: Likewise.
204 * config/score/score.c: Likewise.
205 * config/arm/arm.md: Likewise.
206 * config/mips/mips.c: Likewise.
207 * config/mips/mips.md: Likewise.
208 * config/bfin/bfin.h: Likewise.
209 * config/pa/pa.c: Likewise.
210 * config/pa/constraints.md: Likewise.
211
212 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
213 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
214 * config/pdp11/pdp11.h: Use memory_address_p instead.
215
09639a83
ILT
2162009-05-14 Ian Lance Taylor <iant@google.com>
217
218 * passes.c (finish_optimization_passes): Change i to int.
219 * plugin.c (plugins_active_p): Change event to int.
220 (dump_active_plugins): Likewise.
221 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
222 Add cast.
223 * tree.c (tree_range_check_failed): Change c to unsigned int.
224 (omp_clause_range_check_failed): Likewise.
225 (build_common_builtin_nodes): Change mode to int. Add cast.
226 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
227 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
228
229 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
230 ++ or -- with a variable of enum type.
231
c04a56bf
SB
2322009-05-14 Steven Bosscher <steven@gcc.gnu.org>
233
234 PR driver/40144
235 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
236
237ee620
SB
2372009-05-14 Steven Bosscher <steven@gcc.gnu.org>
238
239 * store-motion.c: Do not include params.h
240 * Makefile.in: Fix dependencies for various files.
241
1154c4fa
SB
2422009-05-14 Steven Bosscher <steven@gcc.gnu.org>
243
244 * auto-inc-dec.c: Fix pass description, remove apparent
245 accidental duplication.
246
61c27353
L
2472009-05-14 H.J. Lu <hongjiu.lu@intel.com>
248
249 PR middle-end/40147
250 * ipa-utils.h (memory_identifier_string): Moved to ...
251 * tree.h (memory_identifier_string): Here. Add GTY(()).
252
c6c3dba9
PB
2532009-05-14 Paolo Bonzini <bonzini@gnu.org>
254
255 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
256 in the former documentation of...
257 (GO_IF_LEGITIMATE_ADDRESS): ... this.
258 * ira-conflicts.c (get_dup_num): Use address_operand.
259 * targhooks.c (default_legitimate_address_p): New.
260 * targhooks.h (default_legitimate_address_p): New.
261 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
262 Call hook.
263 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
264 * target.h (struct target): Add legitimate_address_p.
265 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
266 (TARGET_INITIALIZER): Include it.
267
268 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
269 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
270 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
271 (TARGET_LEGITIMATE_ADDRESS_P): New.
272
273 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
274 (REG_OK_STRICT_P): Delete.
275 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
276 (frv_legitimate_address_p_1): ... this.
277 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
278 (frv_legitimate_address_p_1): ... the renamed old
279 frv_legitimate_address_p.
280 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
281 (TARGET_LEGITIMATE_ADDRESS_P): New.
282
283 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
284 * config/s390/s390-protos.h (legitimate_address_p): Remove.
285 * config/s390/s390.c (legitimate_address_p): Rename to...
286 (s390_legitimate_address_p): ... this, make static.
287 (legitimize_address): Adjust call.
288 (TARGET_LEGITIMATE_ADDRESS_P): New.
289 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
290
291 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
292 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
293 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
294 (TARGET_LEGITIMATE_ADDRESS_P): New.
295
296 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
297 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
298 * config/spu/spu.c (spu_legitimate_address): Rename to...
299 (spu_legitimate_address_p): ... this, make static.
300 (TARGET_LEGITIMATE_ADDRESS_P): New.
301
302 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
303 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
304 * config/sparc/sparc.c (legitimate_address_p): Rename to...
305 (sparc_legitimate_address_p): ... this, make static and return bool.
306 (legitimize_address): Adjust call.
307 (TARGET_LEGITIMATE_ADDRESS_P): New.
308
309 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
310 * config/i386/i386-protos.h (legitimate_address_p): Remove.
311 * config/i386/i386.c (legitimate_address_p): Rename to...
312 (ix86_legitimate_address_p): ... this, make static.
313 (constant_address_p): Move after it, adjust call.
314 (TARGET_LEGITIMATE_ADDRESS_P): New.
315
316 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
317 * config/avr/avr-protos.h (legitimate_address_p): Remove.
318 * config/avr/avr.c (legitimate_address_p): Rename to...
319 (avr_legitimate_address_p): ... this, make static.
320 (legitimize_address): Adjust call.
321 (TARGET_LEGITIMATE_ADDRESS_P): New.
322
323 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
324 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
325 * config/crx/crx.c (crx_legitimate_address_p): Make static.
326 (TARGET_LEGITIMATE_ADDRESS_P): New.
327
328 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
329 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
330 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
331 (TARGET_LEGITIMATE_ADDRESS_P): New.
332
333 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
334 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
335 Remove.
336 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
337 Make static.
338 (TARGET_LEGITIMATE_ADDRESS_P): New.
339
340 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
341 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
342 Remove.
343 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
344 Rename to...
345 (m68hc11_legitimate_address_p): ... this, make static.
346 (go_if_legitimate_address_internal): Rename to...
347 (m68hc11_legitimate_address_p_1): ... this.
348 (legitimize_address): Adjust call.
349 (TARGET_LEGITIMATE_ADDRESS_P): New.
350
351 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
352 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
353 Remove.
354 * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
355 Make static.
356 (TARGET_LEGITIMATE_ADDRESS_P): New.
357
358 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
359 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
360 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
361 (mn10300_legitimate_address_p): ... this, make static.
362 (TARGET_LEGITIMATE_ADDRESS_P): New.
363
364 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
365 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
366 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
367 (TARGET_LEGITIMATE_ADDRESS_P): New.
368
369 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
370 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
371 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
372 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
373 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
374 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
375 (rs6000_legitimate_address_p): ... this, make static.
376 (TARGET_LEGITIMATE_ADDRESS_P): New.
377 (REG_MODE_OK_FOR_BASE_P): Delete.
378 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
379
380 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
381 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
382 Delete.
383 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
384 static, adjust types.
385 (TARGET_LEGITIMATE_ADDRESS_P): New.
386
387 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
388 * config/score/score.c (score_address_p): Rename to...
389 (score_legitimate_address_p): ... this.
390 (TARGET_LEGITIMATE_ADDRESS_P): New.
391 * config/score/score3.c (score3_address_p): Rename to...
392 (score3_legitimate_address_p): ... this.
393 * config/score/score7.c (score7_address_p): Rename to...
394 (score7_legitimate_address_p): ... this.
395
396 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
397 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
398 GO_IF_LEGITIMATE_ADDRESS): Delete.
399 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
400 thumb2_legitimate_address_p): Delete.
401 (arm_legitimate_address_p): Rename to...
402 (arm_legitimate_address_outer_p): ... this.
403 * config/arm/constraints.md ("Uq"): Adjust call.
404 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
405 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
406 (arm_legitimate_address_outer_p): ... this.
407 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
408 (TARGET_LEGITIMATE_ADDRESS_P): New.
409
410 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
411 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
412 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
413 (TARGET_LEGITIMATE_ADDRESS_P): New.
414
415 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
416 * config/vax/vax-protos.h (legitimate_address_p): Remove.
417 * config/vax/vax.c (legitimate_address_p): Rename to...
418 (vax_legitimate_address_p): ... this, make static.
419 (TARGET_LEGITIMATE_ADDRESS_P): New.
420
421 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
422 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
423 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
424 (TARGET_LEGITIMATE_ADDRESS_P): New.
425
426 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
427 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
428 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
429 (mmix_legitimate_address_p): ... this, make static.
430 (TARGET_LEGITIMATE_ADDRESS_P): New.
431
432 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
433 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
434 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
435 (TARGET_LEGITIMATE_ADDRESS_P): New.
436
3bd0d9c8
PB
4372009-05-14 Paolo Bonzini <bonzini@gnu.org>
438
439 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
440 of MODE_COMPLEX_INT.
441
fe049033
RO
4422009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
443
444 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
445 LCT_NORMAL in function call.
446 * mips-tdump.c (print_file_desc): Add cast to enum type.
447 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
448 (mark_stabs): Add casts to enum types.
449 (parse_stabs_common): Add casts to enum types.
16f7ad42 450
b0907a6c
AN
4512009-05-13 Adam Nemet <anemet@caviumnetworks.com>
452
453 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
454 Check for invalid values of LETTER.
455
d1c8e08a
TG
4562009-05-13 Taras Glek <tglek@mozilla.com>
457
16f7ad42
TG
458 * attribs.c (register_attribute): moved out attribute registration into
459 register_attribute.
460 * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
461 * gcc-plugin.h: Added forward decl for register_attribute.
462 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
463 * plugin.c (register_callback, invoke_plugin_callbacks): Added
464 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 465
4ed7f970
DK
4662009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
467
468 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
469 values even in sentinel and empty entries.
470 (ms_printf_flag_specs): Likewise.
471 (ms_scanf_flag_specs): Likewise.
472 (ms_strftime_flag_specs): Likewise.
473 (ms_print_char_table): Likewise.
474 (ms_scan_char_table): Likewise.
475 (ms_time_char_table): Likewise.
476
3d8fa148
DK
4772009-05-13 Doug Kwan <dougkwan@google.com>
478
479 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
480
f06257d3
AN
4812009-05-13 Adam Nemet <anemet@caviumnetworks.com>
482
483 * config/mips/mips.md (store): Add attributes for QI and HI.
484 Update comment.
485 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
486 (truncdi<mode>2): ... this new pattern.
487
fb201767
BH
4882009-05-13 Brad Hards <bradh@kde.org>
489
490 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
491
c7bda60e 4922009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
493 Ben Elliston <bje@au.ibm.com>
494
495 PR middle-end/40035
496 * dse.c (check_mem_read_rtx): Guard against width == -1.
497
ce985b43
MM
4982009-05-13 Michael Matz <matz@suse.de>
499
500 PR middle-end/39976
501 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
502 (trivially_conflicts_p): New function.
503 (insert_backedge_copies): Use it.
504
7de1d221
JJ
5052009-05-13 Janis Johnson <janis187@us.ibm.com>
506
507 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
508 (handle_stdc_pragma): Use new enum constant names.
509 (handle_pragma_float_const_decimal64): Ditto.
510
bfefafc6
ILT
5112009-05-13 Ian Lance Taylor <iant@google.com>
512
513 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
514 tree.def.
515
286c4fcb
NS
5162009-05-13 Nathan Sidwell <nathan@codesourcery.com>
517
518 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
519 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
520 multilibs.
521 * config/m68k/m68k.h (FL_UCLINUX): Define.
522
ebaa6ea7
JH
5232009-05-13 Jan Hubicka <jh@suse.cz>
524
525 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
526
2b703e1a
KK
5272009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
528
529 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
530 unless -fschedule-insns is specified.
531
c3537723
KK
5322009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
533
534 PR target/39561
535 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
536 TARGET_EXPAND_CBRANCHDI4.
537 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
538 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
539 (cmpeqdi): Fix comment.
540
cdeed45a
KK
5412009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
542
543 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
544 (sh_legitimate_address_p): Likewise.
545 * config/sh/sh.c (sh_legitimate_index_p): New.
546 (sh_legitimate_address_p): Likewise.
547 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
548 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
549 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
550 (MAYBE_BASE_REGISTER_RTX_P): New macro.
551 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
552 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
553 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
554 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
555 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
556
02f0b13a
JH
5572009-05-12 Jan Hubicka <jh@suse.cz>
558
559 * tree-inline.c (estimate_operator_cost): Add operands;
560 when division happens by constant, it is cheap.
561 (estimate_num_insns): Loads and stores are not having cost of 0;
562 EH magic stuff is cheap; when computing runtime cost of switch,
563 use log2 base of amount of its cases; builtin_expect has cost of 0;
564 compute cost for moving return value of call.
565 (init_inline_once): Initialize time_based flags.
566 * tree-inline.h (eni_weights_d): Add time_based flag.
567
ecb7f6de
PB
5682009-05-12 Paolo Bonzini <bonzini@gnu.org>
569
570 * df-core.c: Update head documentation.
571
c24151ce
MM
5722009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
573
574 PR bootstrap/40118
575 * rs6000.c (rs6000_generate_compare): Use op1b instead of
576 shadowing exisiting variable op1.
577
fbdf817d
UB
5782009-05-12 Uros Bizjak <ubizjak@gmail.com>
579
704bf7c8 580 PR target/37179
fbdf817d
UB
581 * config/i386/driver-i386.c (processor_signatures): New enum.
582 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
583 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
584 processor signature to detect geode processor.
585
5e8d1826
PB
5862009-05-12 Paolo Bonzini <bonzini@gnu.org>
587
588 Revert:
589
590 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
591
592 * optabs.c (prepare_cmp_insn): Temporarily disable test that
593 causes spurious differences between trunk and cond-optab branch.
594
f90b7a5a
PB
5952009-05-12 Paolo Bonzini <bonzini@gnu.org>
596
fbdf817d
UB
597 * dojump.c (compare_from_rtx): Delete.
598 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
599 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
600 if the comparison does not satisfy the predicate; test predicates for
601 operands 2 and 3 of a cstore pattern. Don't try cstore optab
602 further if one existing pattern fails.
fbdf817d 603 * expr.h (compare_from_rtx): Delete.
f90b7a5a 604 (prepare_operand): Declare it.
fbdf817d 605 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 606 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
607 HAVE_conditional_trap, emit_cmp_insn): Delete.
608 (can_compare_p): Delete cmp_optab case.
f90b7a5a 609 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
610 Accept other parameters by value.
611 (prepare_operand): Make non-static.
612 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
613 other parameters by value. Try to widen operands here based on
614 an optab_methods argument and looking at cbranch_optab.
615 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
616 loop. Use cbranch_optab directly.
617 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
618 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
619 assertion.
620 (emit_conditional_move, emit_conditional_add): Inline what's needed
621 of compare_from_rtx, using new prepare_cmp_insn for the rest.
622 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
623 with COMPARE. Move cmov_optab and cstore_optab above
624 with cbranch_optab, move cmp_optab down with ucmp_optab,
625 remove tst_otpab. Do not initialize trap_rtx.
626 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
627 for trap code. Do not check HAVE_conditional_trap. Use
628 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
629 * optabs.h (OTI_cmp): Mark as used only for libcalls.
630 (OTI_ctrap, ctrap_optab): New.
631 (tst_optab): Delete.
632 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
633 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
634 with lookup of ctrap_optab.
635 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
636 setcc_gen_code): Delete.
637 (ctrap_optab): New.
638
639 * combine.c (combine_simplify_rtx, simplify_set): Do not
640 special case comparing against zero for cc0 machines.
f90b7a5a
PB
641 * simplify-rtx.c (simplify_binary_operation_1): Never remove
642 COMPARE on cc0 machines.
643 (simplify_relational_operation): Return a new expression when
644 a COMPARE could be removed.
fbdf817d
UB
645 * final.c (final_scan_insn): Compare cc_status values
646 against LHS of a (compare FOO (const_int 0)) cc0 source.
647 Also check if cc_status.value is the full compare.
f90b7a5a 648
fbdf817d
UB
649 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
650 (cstoreMM4): Document.
f90b7a5a 651 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 652 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
653 (Dependent Patterns): Eliminate obsolete information referring to
654 the old jump optimization phase.
fbdf817d 655 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
656 of compares with 0 on cc0 machines.
657 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
658 avoiding references to cc0. Remove text about storing operands
659 in cmpMM.
660 * doc/tm.texi (Condition Codes): Include blurb on different
661 condition code representations, separate into subsections for
662 CC0, MODE_CC and conditional execution.
663
fbdf817d
UB
664 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
665 alpha_emit_setcc): Accept operands and a machine mode.
666 * config/alpha/alpha.c (alpha_emit_conditional_branch):
667 Get code/op0/op1 from operands, use machine mode argument
668 instead of alpha_compare.fp_p. Emit the branch here.
669 (alpha_emit_setcc): Likewise, and return boolean.
670 (alpha_emit_conditional_move): Likewise. Assert that
671 cmp_op_mode == cmp_mode, and simplify accordingly.
672 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
673 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
674 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
675 Delete.
676 (stack probe test): Use cbranchdi4.
677 * config/alpha/predicates.md (alpha_cbranch_operator): New.
678
679 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
680 * config/arc/arc.h (movsicc, movsfcc): Use it.
681 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
682 (cbranchsi4, cstoresi4): New.
683 (cmpsi, bCC and sCC expanders): Remove.
684
685 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
686 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
687 * config/arm/predicates.md (arm_comparison_operator): Only include
688 floating-point operators if there is a hardware floating-point unit.
689 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
690 deferring to cbranch_cc and cstore_cc respectively.
691 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
692 cbranch_cc, cstore_cc): New.
693 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 694 arm_compare_op1.
fbdf817d
UB
695 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
696
697 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
698 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
699 as an argument.
700 (adjust_insn_length): Adjust calls.
701 (avr_reorg): Handle (compare (foo) (const_int 0)).
702 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
703 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
704 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
705 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
706 (bCC): Remove.
707 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
708 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
709
fbdf817d
UB
710 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
711 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 712 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
713 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
714 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
715 (bfin_optimize_loop): Use cbranch expander.
716 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
717 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
718 (bfin_bimode_comparison_operator): ... this.
719 (bfin_direct_comparison_operator): New.
f90b7a5a 720
fbdf817d
UB
721 * config/cris/cris.c (cris_normal_notice_update_cc): Look
722 inside (compare FOO (const_int 0)).
723 (cris_rtx_costs): Handle ZERO_EXTRACT.
724 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
725 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
726 (*tstdi_v32): Delete.
727 (*cmpdi_non_v32): Add M alternative for operand 1.
728 (cmpsi, cmp<mode>): Make private.
729 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
730 with COMPARE.
731 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
732
733 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
734 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
735 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
736 (cc_reg_operand): New.
737 (any_cond): Delete.
fbdf817d
UB
738 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
739 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
740 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
741 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
742 crx_expand_scond): Delete.
743
744 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
745 (cbranchsi4): New.
746 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
747 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
748
749 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
750 cstoresi4, cstoresf4, cstoredf4): New.
751 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
752 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
753 Receive the entire operands array.
754 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
755 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
756 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
757 Get test/op0/op1 from the operands array.
758 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
759
760 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
761 (h8300_expand_store): New.
762 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
763 (const_int 0)).
764 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
765 (h8300_expand_store): New.
766 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
767 or do not try to produce (set (cc0) REG).
768 (peepholes): Wrap arguments with COMPARE. Add a peephole to
769 change a compare into a move to a scratch register. Disable some
770 peepholes when comparing with zero.
771 (tstsi, tsthi, tstsi, cmpqi): Make private.
772 (cmphi): Delete.
773 (bCC, sCC): Delete.
774 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
775 cstoresi4): New.
f90b7a5a
PB
776
777 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
778 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
779 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
780 (ix86_emit_i387_log1p): Use cbranchxf2.
781 (ix86_expand_setcc): Return void.
782 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
783 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
784 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
785 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
786 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
787 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
788 (sCC and bCC expanders): Remove.
789 (stack_protect_test): Use cbranchcc4.
790
fbdf817d
UB
791 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
792 Delete.
793 (ia64_expand_compare): Accept three rtx by reference and return void.
794 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
795 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
796 from *expr. Update *expr with the BImode comparison to do.
797 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
798 cmptf, bCC, sCC, conditional_trap): Delete.
799 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
800 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
801 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
802 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
803 * config/ia64/predicates.md (ia64_cbranch_operator): New.
804
805 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
806 type of last argument.
807 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
808 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
809 use machine mode argument instead of branch_type. Remove dead
810 code for floating-point comparisons.
811 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
812 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
813 Remove.
814 (cbranchsi4, cstoresi4): New.
815 * config/iq2000/predicates.md (reg_or_const_operand): New.
816
817 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
818 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
819 (b<code>_op): Rewrite to...
820 (bcc_op): ... this, using match_operator.
821 (s<code>_op): Rewrite to...
822 (scc_op): ... this, using match_operator.
823 (s<code>_24_op): Rewrite to...
824 (scc_op_24): ... this, using match_operator.
825 (s<code>_<mode>): Rewrite to...
826 (cstore<mode>4): ... this, using match_operator.
827 (s<code>_<mode>_24): Rewrite to...
828 (cstore<mode>4_24): ... this, using match_operator.
829 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
830 m32c_unpend_compare, m32c_expand_scc): Delete.
831 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
832 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
833 (m32c_expand_movcc): Change NE to EQ if necessary.
834 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
835
836 * config/m32r/m32r-protos.h (gen_cond_store): New.
837 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
838 (gen_cond_store): New, from sCC patterns.
839 (m32r_expand_block_move): Use cbranchsi4.
840 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
841 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
842 (cbranchsi4, cstoresi4): New.
843
844 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
845 Delete.
846 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 847 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
848 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
849 Delete.
850 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
851 cmphi, cmpqi, bCC): Delete.
852 (cbranchsi4, cbranchhi4, cbranchqi4): New.
853 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
854 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
855 sets with COMPARE.
856
857 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
858 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
859 * config/m68k/constraints.md (H): New.
860 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
861 the define_insn below.
862 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
863 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
864 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
865 patterns): Wrap RHS with COMPARE.
866 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
867 (*cmpdi_internal): Name this pattern.
868 (cmpdi): Change to define_insn.
869 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
870 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
871 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
872 predicate.
873 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
874 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
875 (conditional_trap): Change to...
876 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
877 (*conditional_trap): Use the ordered_comparison_operator and
878 const1_operand predicates.
879 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
880 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
881 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
882 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
883
884 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
885 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
886 (mcore_gen_compare): New.
887 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
888 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
889 (mcore_gen_compare): ... this.
890 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
891 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
892 (stack probe pattern): Use cbranchsi4.
893
894 * config/mips/predicates.md (mips_cstore_operator): New.
895 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
896 * config/mips/mips.md (any_cond): Delete.
897 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
898 always succeed.
899 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
900 fixuns_truncsfdi2): Use cbranch patterns.
901 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
902 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
903 Adjust call to mips_expand_conditional_branch.
904 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
905 cstore<GPR:mode>4.
906 * config/mips/mips-protos.h (mips_expand_conditional_branch,
907 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
908 * config/mips/mips.c (cmp_operands): Delete.
909 (mips_emit_compare): Get comparison operands from *op0/*op1.
910 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
911 that it succeeds. Use op0/op1 instead of cmp_operands.
912 (mips_expand_conditional_branch, mips_expand_conditional_move,
913 mips_expand_conditional_trap): Likewise.
914 (mips_block_move_loop): Use cbranch patterns.
915 * config/mips/mips.h (cmp_operands): Delete.
916
917 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
918 (mmix_gen_compare_reg): Just return a register in the right CC mode.
919 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
920 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
921 (*cmpcc_folded): Rename to...
922 (*cmpdi_folded): this.
923 (*cmpcc): Rename to...
924 (*cmps): ... this.
925 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
926 (bCC): Remove.
927 (cbranchdi4): New.
928 (cbranchdf4): New. Handle invalid comparisons here.
929 * config/mmix/predicates.md (float_comparison_operator): New.
930
931 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
932 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
933 * config/mn10300/mn10300.md (tst): Delete.
934 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
935 Name these patterns and wrap RHS in a compare.
936 (*cmpsi): Make this pattern private. Include tst.
937 (*cmpsf): Make this pattern private.
938 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
939 (compare with zero peepholes): Likewise.
940 (bCC): Remove.
941 (cbranchsi4, cbranchsf4): New.
942 (casesi): Use cbranchsi4.
943
944 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
945 hppa_branch_type): Delete.
946 (return_addr_rtx): Use cbranchsi4.
947 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
948 Emit CCFPmode comparison here.
949 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
950 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
951 hppa_branch_type): Delete.
952 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
953 (movsicc, movdicc): Remove references to hppa_compare_op0,
954 hppa_compare_op1 and compare_from_rtx.
955 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
956 (casesi): Use cbranchsi4.
957
958 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
959 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
960 * config/pdp11/pdp11.md (register_or_const0_operand): New.
961 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
962 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
963 (bCC): Delete.
964 (cbranchdf4, cbranchhi4, cbranchqi4): New.
965 (*branch, *branch_inverted): New.
966
967 * config/picochip/picochip.md (cbranchhi4): Use
968 ordered_comparison_operator.
969 (cmphi, bCC): Remove.
970
971 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
972 (trap_comparison_operator): Delete.
973 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
974 rs6000_emit_cbranch): Accept mode and operands.
975 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
976 rs6000_compare_fp_p): Delete.
977 (rs6000_generate_compare): Accept mode and comparison. Extract code
978 and op0/op1 from there. Replace references to rs6000_compare_op0
979 and rs6000_compare_op1.
980 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
981 extract result from passed operands.
982 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
983 extract loc from passed operands.
984 (rs6000_emit_cmove): Likewise.
985 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
986 rs6000_compare_fp_p): Delete.
987 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
988 (cbranch<GPR>4, cbranch<FP>4): New.
989 (cstore<mode>4): New. Consolidate here all choices about when to use
990 portable or specialized sCC sequences.
991 (stack_protect_test): Use cbranchsi4.
992 (conditional_trap): Replace with ctrap<GPR>4.
993 (conditional trap insn): Replace trap_comparison_operator with
994 ordered_comparison_operator.
995
996 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
997 (s390_emit_prologue): Use ctrap.
998 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
999 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
1000 New predicates replacing...
1001 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
1002 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
1003 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
1004 (add<mode>cc): Do not use s390_compare_op0/op1.
1005 (s<code>): Change to...
1006 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
1007 (seq): Change to...
1008 (cstorecc4): ... this. Handle EQ or NE equally.
1009 (*sne): Un-privatize for use in cstorecc4.
1010 (b<code>): Change to...
1011 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
1012 (conditional_trap): Replace with...
1013 (ctrap<GPR>4, ctrap<FP>4): ... these.
1014 (stack_protect): Use cbranchcc4.
1015
1016 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
1017 * config/score/score-protos.h (score_gen_cmp): Delete.
1018 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
1019 (score_block_move-loop): Use cbranchsi4.
1020 * config/score/score.md (cbranchsi4): New.
1021 (cmpsi, bCC): Delete.
1022 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
1023 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1024 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
1025 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1026 * config/score/score3.h (score3_gen_cmp): Delete.
1027 * config/score/score7.h (score7_gen_cmp): Delete.
1028
1029 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
1030 (sh_emit_scc_to_t): ... this. Return void.
1031 (from_compare): Rename to...
1032 (sh_emit_compare_and_branch): ... this.
1033 (sh_emit_compare_and_set): New.
1034 (sh_expand_t_scc): Accept operands.
1035 * config/sh/predicates.md (sh_float_comparison_operator): New.
1036 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
1037 (prepare_scc_operands): Rename to...
1038 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
1039 arguments.
1040 (sh_emit_cheap_store_flag): New.
f90b7a5a 1041 (sh_emit_set_t_insn): New.
fbdf817d
UB
1042 (from_compare): Rename to...
1043 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
1044 handling of TARGET_SH2E floating point to avoid recursive call.
1045 Generate branch here.
1046 (sh_emit_compare_and_set): New.
1047 (sh_expand_t_scc): Get op0/op1 from arguments.
1048 (sh_emit_cheap_store_flag): New.
1049 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
1050 cases.
f90b7a5a 1051 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
1052 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
1053 (movsicc, movdicc): Do nothing when it recreated operands from
1054 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
1055 prepare_scc_operands (now sh_emit_scc_to_t).
1056 (udivdi3): Use cstoresi4.
1057 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
1058 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
1059 (cbranchint4_media, cbranchfp4_media): New.
1060 (casesi): Use cbranchdi4.
1061 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
1062 Delete.
1063 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
1064 (movnegt): Remove second operand.
1065 (cbranchsf4, cbranchdf4): New.
1066 (stack_protect): Use cbranchdi4/cbranchsi4.
1067
1068 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
1069 (gen_compare_reg): Accept comparison, extract part of it to...
1070 (gen_compare_reg_1): ... this.
1071 (gen_compare_operator): Delete.
1072 (gen_v9_scc): Accept separate destination, comparison code and arms.
1073 Do not use sparc_compare_op0/sparc_compare_op1.
1074 (emit_scc_insn, emit_conditional_branch_insn): New.
1075 (emit_v9_brxx): Make static. Remove useless assertion.
1076 (sparc_emit_float_lib_cmp): Return RTL instead of calling
1077 emit_cmp_insn.
1078 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
1079 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
1080 sparc_emit_float_lib_cmp): Adjust prototype.
1081 (emit_scc_insn, emit_conditional_branch_insn): New.
1082 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
1083 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
1084 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
1085 iterators to the top.
1086 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
1087 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 1088 snedi_special_trunc): Delete.
fbdf817d 1089 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 1090 and snedi_special_trunc.
fbdf817d
UB
1091 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
1092 cbranchdi4, cbranch<F:mode>4): New.
1093 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
1094 here. Use gen_compare_reg instead of gen_compare_operator.
1095 (conditional_trap): Replace with...
1096 (ctrapsi4, ctrapdi4): ... this.
1097 (stack_protect_test): Use cbranchcc4.
1098
1099 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
1100 argument to rtx.
1101 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
1102 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
1103 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
1104 from operands[0] or operands[3] depending on is_set.
1105 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
1106 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
1107 cmpdf, bCC), sCC: Remove.
1108 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
1109 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
1110 cstoredf4): New.
1111 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
1112 spu_emit_branch_or_set.
1113
1114 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
1115 Add two arguments.
1116 * config/stormy16/stormy16.h (xstormy16_compare_op0,
1117 xstormy16_compare_op1): Delete.
1118 * config/stormy16/stormy16.c (xstormy16_compare_op0,
1119 xstormy16_compare_op1): Delete.
1120 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
1121 Adjust calls.
1122 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
1123 (cmphi, cmpsi, bCC): Remove.
1124
1125 * config/v850/v850.md (tstsi, cmpsi): Fold into...
1126 (*cmpsi): ... this one.
1127 (cbranchsi4, cstoresi4): New.
1128 (bCC expanders): Delete.
1129 (sCC insns): Fold into...
1130 (*setcc): ... this one.
1131 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
1132 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
1133 (movsicc): Simplify.
1134 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
1135
fbdf817d
UB
1136 * config/vax/vax-protos.h (cond_name): New.
1137 (vax_output_conditional_branch): Remove.
1138 * config/vax/vax.c (cond_name): New.
1139 (vax_output_conditional_branch): Remove.
1140 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
1141 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
1142 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
1143 (bit<VAXint>): Wrap source with (compare).
1144 (b<code> and following unnamed pattern): Rename to *branch and
1145 *branch_reversed. Change macroization to match_operator.
1146 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
1147
1148 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
1149 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
1150 Change last argument to machine_mode.
1151 (xtensa_expand_scc): Add machine_mode argument.
1152 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
1153 (gen_conditional_move, xtensa_expand_conditional_branch,
1154 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
1155 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
1156 Adjust operand numbers.
1157 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
1158 Delete.
1159 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
1160 (cmpsi, cmpsf, b<code>, s<code>): Delete.
1161 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 1162
16670495
PB
11632009-05-12 Paolo Bonzini <bonzini@gnu.org>
1164
1165 * optabs.c (prepare_cmp_insn): Temporarily disable test that
1166 causes spurious differences between trunk and cond-optab branch.
1167
4a4a4e99
AO
11682009-05-12 Alexandre Oliva <aoliva@redhat.com>
1169
1170 PR target/37137
1171 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
1172
72b9acff
AO
11732009-05-12 Alexandre Oliva <aoliva@redhat.com>
1174
1175 * tree.c (iterative_hash_pointer): Delete.
1176 (iterative_hash_expr): Short-circuit handling of NULL pointer.
1177 Hash UIDs and versions of SSA names. Don't special-case built-in
1178 function declarations.
1179
b7dd69ac
ILT
11802009-05-11 Ian Lance Taylor <iant@google.com>
1181
1182 PR bootstrap/40103
1183 * graphite.c: Force -Wc++-compat to only be a warning before
1184 #including "cloog/cloog.h".
1185
ed102b70
MJ
11862009-05-11 Martin Jambor <mjambor@suse.cz>
1187
1188 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
1189
08f1af2e
JH
11902009-05-11 Jan Hubicka <jh@suse.cz>
1191
1192 * tree-ssa-loop-ivcanon.c: Include target.h
1193 (struct loop_size): new structure.
1194 (constant_after_peeling): New predicate.
1195 (tree_estimate_loop_size): New function.
1196 (estimated_unrolled_size): Rewrite for new estimates.
1197 (try_unroll_loop_completely): Use new estimates.
1198 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
1199
a7d39bd3
AP
12002009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
1201
1202 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
1203 libcpp interface change.
1204 (spu_macro_to_expand): Likewise.
1205
f5a1f0d0
PB
12062009-05-11 Paolo Bonzini <bonzini@gnu.org>
1207
1208 PR tree-optimization/40026
1209 * gimplify.c (gimplify_init_constructor): Change initial conditional
1210 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
1211 optimize_compound_literals_in_ctor.
1212
c260f01f
NS
12132009-05-11 Nathan Sidwell <nathan@codesourcery.com>
1214
1215 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
1216 New devices.
1217 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
1218
df398a37
L
12192009-05-11 H.J. Lu <hongjiu.lu@intel.com>
1220
1221 * tree-vect-data-refs.c (vect_analyze_group_access): Use
1222 HOST_WIDE_INT for gap.
1223
4da39468
IR
12242009-05-11 Ira Rosen <irar@il.ibm.com>
1225
1226 PR tree-optimization/40074
1227 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
1228 account in group size and step comparison.
1229
4effdf02
RG
12302009-05-11 Richard Guenther <rguenther@suse.de>
1231
1232 * passes.c (init_optimization_passes): Strip now incorrect comment.
1233 (execute_function_todo): Do not set PROP_alias.
1234 * tree-pass.h (PROP_alias): Remove.
1235 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
1236 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
1237 * tree-nrv.c (pass_return_slot): Likewise.
1238 * tree-object-size.c (pass_object_sizes): Likewise.
1239 * tree-ssa-dom.c (pass_dominator): Likewise.
1240 (pass_phi_only_cprop): Likewise.
1241 * tree-ssa-dse.c (pass_dse): Likewise.
1242 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1243 (pass_cselim): Likewise.
1244 * tree-ssa-pre.c (pass_pre): Likewise.
1245 (pass_fre): Likewise.
1246 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
1247 * tree-ssa-sink.c (pass_sink_code): Likewise.
1248 * tree-stdarg.c (pass_stdarg): Likewise.
1249 * tree-tailcall.c (pass_tail_calls): Likewise.
1250 * tree-vrp.c (pass_vrp): Likewise.
1251
24b97832
ILT
12522009-05-10 Ian Lance Taylor <iant@google.com>
1253
1254 * basic-block.h (enum profile_status): Break out of struct
1255 control_flow_graph.
1256 * cgraph.h (struct inline_summary): Break out of struct
1257 cgraph_local_info.
1258 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1259 of struct cgraph_order_sort.
fbdf817d 1260 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
1261 * cse.c (struct branch_path): Break out of struct
1262 cse_basic_block_data.
1263 * except.h (enum eh_region_type): Break out of struct eh_region.
1264 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 1265 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
1266 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1267 ggc_pch_data.
fbdf817d
UB
1268 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1269 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
1270 * sched-int.h (enum post_call_group): New enum, broken out of
1271 struct deps.
1272 (struct deps_reg): Break out of struct deps.
1273 * target.h (struct asm_int_op): Break out of struct gcc_target.
1274 * tree-eh.c (struct goto_queue_node): Break out of struct
1275 leh_tf_state.
1276 * tree-inline.h (enum copy_body_cge_which): Break out of
1277 copy_body_data.
1278 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1279
1280 * c-decl.c (in_struct, struct_types): New static variables.
1281 (pushtag): Add loc parameter. Change all callers.
1282 (lookup_tag): Add ploc parameter. Change all callers.
1283 (check_compound_literal_type): New function.
1284 (parser_xref_tag): Add loc parameter. Change all callers. If
1285 -Wc++-compat, warn about struct/union/enum types defined within a
1286 struct or union.
1287 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1288 and loc parameters. Change all callers. Change error calls to
1289 error_at, using loc. For a redefinition, if the location of the
1290 original definition is known, report it. Set in_struct and
fbdf817d 1291 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
1292 (finish_struct): Add new parameters enclosing_in_struct and
1293 enclosing_struct_types. Change all callers. Set
1294 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1295 in the struct. If in a struct, add this struct to struct_types.
1296 (start_enum): Add loc parameter. Change all callers. Use
1297 error_at for errors, using loc. For a redefinition, if the
1298 location of the original definition is known, report it. If in a
1299 struct, add this enum type to struct_types. If -Wc++-compat warn
1300 if in sizeof, typeof, or alignof.
fbdf817d
UB
1301 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1302 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
1303 (c_parser_enum_specifier): Get enum location for start_enum.
1304 (c_parser_struct_or_union_specifier): Get struct location for
1305 start_struct. Save in_struct and struct_types status between
1306 start_struct and finish_struct.
1307 (c_parser_cast_expression): Get location of cast.
1308 (c_parser_alignof_expression): Get location of type.
1309 (c_parser_postfix_expression): Likewise.
1310 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
1311 parameter. Change all callers. Call check_compound_literal_type.
1312 Use type_loc for error about variable size type.
1313 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1314 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
1315 (c_cast_expr): Add loc parameter. Change all callers. If
1316 -Wc++-compat, warn about defining a type in a cast.
1317 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1318 (start_enum, start_struct, finish_struct): Update declarations.
1319 (parser_xref_tag, c_cast_expr): Update declarations.
1320 (check_compound_literal_type): Declare.
1321
7a2738fa
BE
13222009-05-11 Ben Elliston <bje@au.ibm.com>
1323
1324 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1325 for recent libcpp interface change.
1326 (rs6000_macro_to_expand): Likewise.
1327
af618949
MM
13282009-05-10 Michael Matz <matz@suse.de>
1329
1330 PR target/40031
1331 * config/arm/arm.c (require_pic_register): Emit on entry edge,
1332 not at entry of function.
1333
b7d7a473
RG
13342009-05-10 Richard Guenther <rguenther@suse.de>
1335
1336 PR tree-optimization/40081
1337 Revert
1338 * tree-sra.c (instantiate_element): Instantiate scalar replacements
1339 using the main variant of the element type. Do not fiddle with
1340 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1341
1342 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1343 structs with volatile fields.
1344
078c3644
JH
13452009-05-10 Jan Hubicka <jh@suse.cz>
1346
1347 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
1348 (estimate_move_cost): Assert that it does not get called for
1349 VOID_TYPE_P.
078c3644
JH
1350 (estimate_num_insns): Skip VOID types in argument handling.
1351 (optimize_inline_calls): Delete unreachable blocks and verify that
1352 callgraph is valid.
1353
39ff5a96
JH
13542009-05-10 Jan Hubicka <jh@suse.cz>
1355
1356 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1357 * cgraph.c (cgraph_mark_address_taken_node): New function.
1358 (dump_cgraph_node): Dump new flag.
1359 * cgraph.h (struct cgraph_node): Add address_taken.
1360 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
1361 * ipa.c (cgraph_postorder): Prioritize functions with address taken
1362 since new direct calls can be born.
1363
9a0c6187
JM
13642009-05-10 Joseph Myers <joseph@codesourcery.com>
1365
1366 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1367 tok->val.node.node.
1368
4b685e14
JH
13692009-05-10 Jan Hubicka <jh@suse.cz>
1370
1371 PR middle-end/40084
fb0be169
EB
1372 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1373 argument; rewrite.
4b685e14
JH
1374 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1375 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1376 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
1377 (fold_marked_statements): Update call to
1378 cgraph_update_edges_for_call_stmt.
4b685e14 1379
29d08eba
JM
13802009-05-10 Joseph Myers <joseph@codesourcery.com>
1381
1382 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1383 identifiers in diagnostics.
1384 * config/arm/arm.c (arm_handle_fndecl_attribute,
1385 arm_handle_isr_attribute): Likewise.
1386 * config/avr/avr.c (avr_handle_progmem_attribute,
1387 avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1388 Likewise.
1389 * config/bfin/bfin.c (handle_int_attribute,
1390 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1391 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1392 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1393 Likewise.
1394 * config/darwin.c (darwin_handle_kext_attribute,
1395 darwin_handle_weak_import_attribute): Likewise.
1396 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1397 h8300_handle_eightbit_data_attribute,
1398 h8300_handle_tiny_data_attribute): Likewise.
1399 * config/i386/i386.c (ix86_handle_cconv_attribute,
1400 ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1401 Likewise.
1402 * config/i386/winnt.c (ix86_handle_shared_attribute,
1403 ix86_handle_selectany_attribute): Likewise.
1404 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1405 * config/m32c/m32c.c (function_vector_handler): Likewise.
1406 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1407 m68hc11_handle_fntype_attribute): Likewise.
1408 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1409 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1410 * config/mips/mips.c (mips_insert_attributes,
1411 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1412 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1413 rs6000_handle_struct_attribute): Likewise.
1414 * config/sh/sh.c (sh_insert_attributes,
1415 sh_handle_resbank_handler_attribute,
1416 sh_handle_interrupt_handler_attribute,
1417 sh2a_handle_function_vector_handler_attribute,
1418 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1419 Likewise.
1420 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1421 * config/spu/spu.c (spu_handle_fndecl_attribute,
1422 spu_handle_vector_attribute): Likewise.
1423 * config/stormy16/stormy16.c
1424 (xstormy16_handle_interrupt_attribute): Likewise.
1425 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1426 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1427
f41c4af3
JM
14282009-05-10 Joseph Myers <joseph@codesourcery.com>
1429
1430 * pretty-print.h (struct pretty_print_info): Add
1431 translate_identifiers.
1432 (pp_translate_identifiers): New.
1433 (pp_identifier): Only conditionally translate identifier to locale
1434 character set.
1435 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1436 (pp_base_tree_identifier): Only conditionally translate identifier
1437 to locale character set.
1438 * c-pretty-print.c (M_): Define.
1439 (pp_c_type_specifier, pp_c_primary_expression): Mark English
1440 fragments for conditional translation with M_.
1441 * tree-pretty-print.c (maybe_init_pretty_print): Disable
1442 identifier translation.
1443
896d7dbd
RG
14442009-05-10 Richard Guenther <rguenther@suse.de>
1445
1446 PR tree-optimization/40081
1447 * tree-sra.c (instantiate_element): Instantiate scalar replacements
1448 using the main variant of the element type. Do not fiddle with
1449 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1450
9a23acef
JH
14512009-05-09 Jan Hubicka <jh@suse.cz>
1452
1453 PR middle-end/40080
1454 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1455 indirect calls; verify cgraph afterwards.
1456
d563610d
JH
14572009-05-09 Jan Hubicka <jh@suse.cz>
1458
1459 PR bootstrap/40082
1460 * ipa.c (update_inlined_to_pointer): New function.
1461 (cgraph_remove_unreachable_nodes): Use it.
1462
f08a18d0
JH
14632009-05-09 Jan Hubicka <jh@suse.cz>
1464
1465 * tree-eh.c (struct leh_state): Remove prev_try.
1466 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1467 not track prev_try.
1468 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
1469 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1470 remove_eh_handler_and_replace, foreach_reachable_handler,
1471 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1472 * except.h (struct eh_region): Remove eh_region_u_cleanup.
1473 (gen_eh_region_cleanup): Update prototype.
1474
0afd7219
JH
14752009-05-09 Jan Hubicka <jh@suse.cz>
1476
1477 PR middle-end/40043
1478 * except.c (copy_eh_region): Always set prev_try.
1479 (redirect_eh_edge_to_label): Find outer try.
1480 (foreach_reachable_handler): When looking for prev try
1481 handle case where previous try is not going to be taken.
1482
ad6c0864
MM
14832009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
1484
1485 PR tree-optimization/40049
1486 * tree-vect-stmts.c (vectorizable_operation): If the machine has
1487 only vector/vector shifts, convert the type of the constant to the
1488 appropriate type to avoid building incorrect trees, which
1489 eventually have problems with garbage collection.
1490
c94f9067
JM
14912009-05-08 Joseph Myers <joseph@codesourcery.com>
1492
1493 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1494 -1 for complex floating-point types if honoring signed zeros.
1495
9187e02d
JH
14962009-05-08 Jan Hubicka <jh@suse.cz>
1497
20acb8a2
EB
1498 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1499 argument; handle correctly when profile is absent.
9187e02d
JH
1500 (build_cgraph_edges): Update.
1501 (rebuild_cgraph_edges): Update.
20acb8a2
EB
1502 * cgraph.c: Do not include varray.h.
1503 (cgraph_set_call_stmt_including_clones): New function.
1504 (cgraph_create_edge_including_clones): Likewise
1505 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
1506 (cgraph_update_edges_for_call_stmt): Handle clones.
1507 (cgraph_remove_node): Handle clone tree.
1508 (cgraph_remove_node_and_inline_clones): New function.
1509 (dump_cgraph_node): Dump clone tree.
1510 (cgraph_clone_node): Handle clone tree.
20acb8a2 1511 (clone_function_name): Bring here from tree-inline.c.
9187e02d 1512 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
1513 * cgraph.h (ipa_replace_map): Move here from ipa.h.
1514 (cgraph_clone_info): New function.
9187e02d 1515 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
1516 (cgraph_remove_node_and_inline_clones,
1517 cgraph_set_call_stmt_including_clones,
1518 cgraph_create_edge_including_clones,
1519 cgraph_create_virtual_clone): Declare.
9187e02d
JH
1520 (cgraph_function_versioning): Use VEC argument.
1521 (compute_call_stmt_bb_frequency): Update prototype.
1522 (cgraph_materialize_all_clones): New function.
1523 * ipa-cp.c (ipcp_update_cloned_node): Remove.
1524 (ipcp_create_replace_map): Update to VECtors.
1525 (ipcp_update_callgraph): Use virtual clones.
1526 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1527 (ipcp_update_profiling): Do not update local profiling.
1528 (ipcp_insert_stage): Use VECtors and virtual clones.
1529 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1530 (clone_of_p): New function.
1531 (cgraph_preserve_function_body_p): Use clone tree.
1532 (cgraph_optimize): Materialize clones.
1533 (cgraph_function_versioning): Update for VECtors.
1534 (save_inline_function_body): Use clone tree.
20acb8a2
EB
1535 (cgraph_materialize_clone): New function.
1536 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
1537 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
1538 * ipa.c: Include gimple.h.
1539 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
1540 * ipa-prop.c (ipa_note_param_call): Update call to
1541 compute_call_stmt_bb_frequencycall.
9187e02d 1542 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 1543 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
1544 (copy_bb): Handle updating of clone tree; add new edge when new call
1545 appears.
1546 (expand_call_inline): Be strict about every call having edge.
1547 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
1548 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
1549 (tree_function_versioning): Use VECtors; always remove unreachable
1550 blocks and fold conditionals.
1551 * tree-inline.h: Do not include varray.h.
9187e02d
JH
1552 (tree_function_versioning): Remove.
1553 * Makefile.in (GTFILES): Remove tree-inline.c
1554 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
1555 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
1556 tree.
9187e02d 1557
9b86d6bb
L
15582009-05-08 H.J. Lu <hongjiu.lu@intel.com>
1559 Andrew Morrow <acm@google.com>
1560
1561 PR c/36892
1562 * c-common.c (c_common_attribute_table): Permit deprecated
1563 attribute to take an optional argument.
1564 (handle_deprecated_attribute): If the optional argument to
1565 __attribute__((deprecated)) is not a string ignore the attribute
1566 and emit a warning.
1567
1568 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
1569 * c-typeck.c (build_component_ref): Likewise.
1570 (build_external_ref): Likewise.
1571
1572 * toplev.c (warn_deprecated_use): Add an attribute argument.
1573 Emit the message associated with __attribute__((deprecated)).
1574
1575 * toplev.h (warn_deprecated_use): Updated.
1576
1577 * doc/extend.texi: Document new optional parameter to
1578 __attribute__((deprecated))
1579
82ad047f
ME
15802009-05-08 Michael Eager <eager@eagercon.com>
1581
1582 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
1583 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
1584
788d3075
RG
15852009-05-08 Richard Guenther <rguenther@suse.de>
1586
1587 PR tree-optimization/40062
1588 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
1589 Avoid exponential behavior.
1590
00952e97
PB
15912009-05-08 Paolo Bonzini <bonzini@gnu.org>
1592
1593 PR rtl-optimization/33928
1594 PR 26854
1595 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
1596 process_uses, build_single_def_use_links): New.
1597 (update_df): Update use_def_ref.
1598 (forward_propagate_into): Use get_def_for_use instead of use-def
1599 chains.
1600 (fwprop_init): Call build_single_def_use_links and let it initialize
1601 dataflow.
1602 (fwprop_done): Free use_def_ref.
1603 (fwprop_addr): Eliminate duplicate call to df_set_flags.
1604 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
1605 df_rd_simulate_one_insn): New.
1606 (df_rd_bb_local_compute_process_def): Update head comment.
1607 (df_chain_create_bb): Use the new RD simulation functions.
1608 * df.h (df_rd_simulate_artificial_defs_at_top,
1609 df_rd_simulate_one_insn): New.
1610 * opts.c (decode_options): Enable fwprop at -O1.
1611 * doc/invoke.texi (-fforward-propagate): Document this.
1612
2ca862e9
JM
16132009-05-08 Joseph Myers <joseph@codesourcery.com>
1614
1615 PR c/24581
1616 * c-typeck.c (build_binary_op): Handle arithmetic between one real
1617 and one complex operand specially.
1618 * tree-complex.c (some_nonzerop): Do not identify a real value as
1619 zero if flag_signed_zeros.
1620
3e807ffc
PB
16212009-05-08 Paolo Bonzini <bonzini@gnu.org>
1622
1623 PR rtl-optimization/33928
7925c06c 1624 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 1625
1bfdbb29
PB
16262009-05-08 Paolo Bonzini <bonzini@gnu.org>
1627
1628 PR rtl-optimization/33928
e913423f
EB
1629 * loop-invariant.c (struct use): Add addr_use_p.
1630 (struct def): Add n_addr_uses.
1631 (struct invariant): Add cheap_address.
1632 (create_new_invariant): Set cheap_address.
1633 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
1634 (record_uses): Pass df_ref to record_use.
1635 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
1636 used only as such.
1bfdbb29 1637
702cb2a0
KK
16382009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
1639
1640 * config/sh/sh.c: Do not include c-pragma.h.
1641
5e8df753
AP
16422009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
1643
1644 * config/spu/spu.c: Remove include of c-common.h.
1645
6ec637a4
JJ
16462009-05-07 Janis Johnson <janis187@us.ibm.com>
1647
1648 PR c/39037
1649 * c-common.h (mark_valid_location_for_stdc_pragma,
1650 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
1651 clear_float_const_decimal64, float_const_decimal64_p): New.
1652 * c.opt (Wunsuffixed-float-constants): New.
1653 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
1654 unsuffixed float constant, handle new warning.
1655 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
1656 * c-decl.c (c_scope): New flag float_const_decimal64.
1657 (set_float_const_decimal64, clear_float_const_decimal64,
1658 float_const_decimal64_p): New.
1659 (push_scope): Set new flag.
1660 * c-parser.c (c_parser_translation_unit): Mark when it's valid
1661 to use STDC pragmas.
1662 (c_parser_external_declaration): Ditto.
1663 (c_parser_compound_statement_nostart): Ditto.
1664 * c-pragma.c (valid_location_for_stdc_pragma,
1665 mark_valid_location_for_stdc_pragma,
1666 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
1667 handle_pragma_float_const_decimal64): New.
1668 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
1669 * cp/semantics.c (valid_location_for_stdc_pragma_p,
1670 set_float_const_decimal64, clear_float_const_decimal64,
1671 float_const_decimal64_p): New dummy functions.
1672 * doc/extend.texi (Decimal Float): Remove statement that the
1673 pragma, and suffix for double constants, are not supported.
1674 * doc/invoke.texi (Warning Options): List new option.
1675 (-Wunsuffixed-float-constants): New.
1676
45b9b2e9
SB
16772009-05-08 Steven Bosscher <steven@gcc.gnu.org>
1678
1679 * config/i386/i386.c: Do not include c-common.h.
1680
e71da632
MH
16812009-05-07 Mark Heffernan <meheff@google.com>
1682
1683 * doc/invoke.texi (Debugging Options): Document change of debugging
1684 dump location.
e913423f 1685 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
1686 aux_base_name directory.
1687
fe4c7bc6
HS
16882009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
1689
1690 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
1691 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
1692
3b3e44eb
RAE
16932009-05-07 Rafael Avila de Espindola <espindola@google.com>
1694
1695 * Makefile.in (install-plugin): Simplify a bit.
1696
fac41238
PB
16972009-05-07 Paolo Bonzini <bonzini@gnu.org>
1698
1699 * Makefile.in (OBJS-common): Add regcprop.o.
1700 (regcprop.o): New.
1701 * timevar.def (TV_CPROP_REGISTERS): New.
1702 * regrename.c (regrename_optimize): Return 0.
1703 (rest_of_handle_regrename): Delete.
1704 (pass_rename_registers): Point to regrename_optimize.
1705 (struct value_data_entry, struct value_data,
1706 kill_value_one_regno, kill_value_regno, kill_value,
1707 set_value_regno, init_value_data, kill_clobbered_value,
1708 kill_set_value, kill_autoinc_value, copy_value,
1709 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
1710 replace_oldest_value_reg, replace_oldest_value_addr,
1711 replace_oldest_value_mem, copyprop_hardreg_forward_1,
1712 debug_value_data, validate_value_data): Move...
1713 * regcprop.c: ... here.
1714 (rest_of_handle_cprop): Delete.
1715 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
1716
472e0df9
JJ
17172009-05-07 Jakub Jelinek <jakub@redhat.com>
1718
1719 PR middle-end/40057
1720 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
1721 GEN_INT for 1 << bitnum.
1722 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
1723 build_int_cst_type.
1724
0d50d55a
UB
17252009-05-07 Uros Bizjak <ubizjak@gmail.com>
1726
1727 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 1728 Remove wrong description of "nand" operation.
0d50d55a 1729
22f597f1
RG
17302009-05-06 Richard Guenther <rguenther@suse.de>
1731 Adam Nemet <anemet@caviumnetworks.com>
1732
1733 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
1734 comment. Add that if LHS is not a gimple register, then RHS1 has
1735 to be a single object (GIMPLE_SINGLE_RHS).
1736
641cac0b
AN
17372009-05-06 Adam Nemet <anemet@caviumnetworks.com>
1738
1739 * expr.c (get_def_for_expr): Move it up in the file.
1740 (store_field): When expanding a bit-field store, look at the
1741 defining gimple stmt for the masking conversion.
1742
5a5c6435
JJ
17432009-05-06 Janis Johnson <janis187@us.ibm.com>
1744
1745 PR middle-end/39986
1746 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1747 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
1748 32-bit memcpy into long.
1749
96474f36
JJ
17502009-05-06 Jakub Jelinek <jakub@redhat.com>
1751
1752 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
1753 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
1754 new_reg_loc_descr.
1755 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
1756 instead of appending DW_OP_deref*.
1757
529ff441
MM
17582009-05-06 Michael Matz <matz@suse.de>
1759
1760 PR middle-end/40021
1761 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
1762 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
1763
9419a9fd
RAE
17642009-05-06 Rafael Avila de Espindola <espindola@google.com>
1765
1766 * Makefile.in (install-plugin): Fix srcdir handling.
1767
fff1894c
AB
17682009-05-06 Andrey Belevantsev <abel@ispras.ru>
1769
1770 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
1771 when processing for not_regs_needed bitmap.
1772 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
1773 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
1774 handling it for rhs.
1775
700ae70c
L
17762009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1777
ab3426a7 1778 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 1779 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
1780 * config/i386/predicates.md (incdec_operand): Likewise.
1781 (aligned_operand): Likewise.
1782 * config/i386/sse.md (divv8sf3): Likewise.
1783 (sqrtv8sf2): Likewise.
1784
67341fb5
L
17852009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1786
1787 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
1788
1789 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
1790
87946f42
L
17912009-05-06 H.J. Lu <hongjiu.lu@intel.com>
1792
1793 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
1794 ssemodesuffixf2c with avxmodesuffixf2c.
1795
1202aec1
JM
17962009-05-06 Joseph Myers <joseph@codesourcery.com>
1797
1798 PR c/40032
aa016ff7 1799 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 1800
6e57a01d
JJ
18012009-05-05 Jakub Jelinek <jakub@redhat.com>
1802
1803 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
1804 (struct tree_base): Adjust spacing for 8 bit boundaries.
1805 (struct tree_decl_common): Add decl_by_reference_flag bit.
1806 (DECL_BY_REFERENCE): Adjust.
1807 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
1808 print DECL_BY_REFERENCE bit.
1809 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
1810 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
1811 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
1812 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
1813 unconditionally.
1814
32f579f6
JJ
1815 PR middle-end/39666
1816 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
1817 range of the type, but default label is missing, add it with one
1818 of the existing labels instead of adding a new label for it.
1819
617ab743
JM
18202009-05-05 Joseph Myers <joseph@codesourcery.com>
1821
1822 * dwarf.h: Remove.
1823
bf016de8
RAE
18242009-05-05 Rafael Avila de Espindola <espindola@google.com>
1825
1826 * Makefile.in (enable_plugin, plugin_includedir): New.
1827 (install): Depend on install-plugin.
1828 (PLUGIN_HEADERS): New.
1829 (install-plugin): New.
1830 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
1831
7f8fdb9f
RG
18322009-05-05 Richard Guenther <rguenther@suse.de>
1833
1834 PR tree-optimization/40022
1835 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
1836 the only vuse.
1837 (phivn_valid_p): Fix tuplification error, simplify.
1838 (phiprop_insert_phi): Add dumps.
1839 (propagate_with_phi): Simplify.
1840
8d972839
RG
18412009-05-05 Richard Guenther <rguenther@suse.de>
1842
1843 PR middle-end/40023
aa016ff7 1844 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 1845
66ba9b0b
SZ
18462009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
1847
1848 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
1849 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
1850 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
1851 block_ultimate_origin): Rearrange the declarations line to match the
1852 comment that indicates the .c file which the functions are defined.
1853 (dwarf2out_*, set_decl_rtl): Add comment.
1854 (get_base_address): Adjust comment.
1855 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
1856 declarations line and add comment.
1857 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 1858
4f1e4960
JM
18592009-05-04 Joseph Myers <joseph@codesourcery.com>
1860
1861 * attribs.c (decl_attributes): Use %qE for identifiers in
1862 diagnostics.
1863 * cgraphunit.c (verify_cgraph_node): Translate function names to
1864 locale character set in diagnostics.
1865 * coverage.c (get_coverage_counts): Use %qE for identifiers in
1866 diagnostics.
1867 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
1868 Document that functions are named in UTF-8.
1869 * expr.c (expand_expr_real_1): Translate function names to locale
1870 character set in diagnostics.
1871 * gimplify.c (omp_notice_variable, omp_is_private,
1872 gimplify_scan_omp_clauses): Use %qE for identifiers in
1873 diagnostics.
1874 * langhooks.c (lhd_print_error_function): Translate function names
1875 to locale character set.
1876 * langhooks.h (decl_printable_name): Document that return value is
1877 in internal character set.
1878 * stmt.c: Include pretty-print.h
1879 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
1880 diagnostics.
1881 (resolve_operand_name_1): Translate named operand name to locale
1882 character set.
1883 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
1884 diagnostics.
1885 * toplev.c (announce_function): Translate function names to locale
1886 character set.
1887 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
1888 (default_tree_printer): Use pp_identifier or translate identifiers
1889 to locale character set. Mark "<anonymous>" for translation.
1890 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
1891 for identifiers in diagnostics.
1892 * tree.c (handle_dll_attribute): Use %qE for identifiers in
1893 diagnostics.
1894 * varasm.c (output_constructor): Use %qE for identifiers in
1895 diagnostics.
1896
40540e68
RAE
18972009-05-04 Rafael Avila de Espindola <espindola@google.com>
1898
1899 * configure.ac: use ` ` instead of $()
1900 * configure: Regenerate.
1901
33fc884c
BE
19022009-05-05 Ben Elliston <bje@au.ibm.com>
1903
1904 * config/pa/linux-atomic.c: Eliminate conditional include of
1905 errno.h on non-LP64 systems to simplify build requirements.
1906
88388a52
JM
19072009-05-04 Joseph Myers <joseph@codesourcery.com>
1908
1909 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
1910 diagnostics.
1911 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
1912 and pass value to identifier_to_locale.
1913 (warn_variable_length_array): Make name a tree.
1914 (grokdeclarator): Separate diagnostic texts for named and unnamed
1915 declarators. Use %qE for named declarators.
1916 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
1917 diagnostics.
1918 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
1919 identifiers in diagnostics.
1920 * c-typeck.c (push_member_name, start_init): Pass identifiers to
1921 identifier_to_locale. Mark "anonymous" strings for translation.
1922
960c5c79
ME
19232009-05-04 Michael Eager <eager@eagercon.com>
1924
1925 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 1926 address for DImode/DFmode only if double-precision FP regs.
960c5c79 1927
d083fbba
ME
19282009-05-04 Michael Eager <eager@eagercon.com>
1929
1930 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
1931 TARGET_SINGLE_FLOAT check.
1932
c3ba8d32
ME
19332009-05-04 Michael Eager <eager@eagercon.com>
1934
1935 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
1936
edce9f18
ME
19372009-05-04 Michael Eager <eager@eagercon.com>
1938
1939 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
1940 * config/rs6000/t-xilinx: New
1941
506d7b68
PB
19422009-05-04 Paolo Bonzini <bonzini@gnu.org>
1943
e913423f 1944 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
1945 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
1946 * gcc/explow.c (memory_address): Use target hook.
1947 * gcc/targhooks.c (default_legitimize_address): New.
1948 * gcc/targhooks.h (default_legitimize_address): New.
1949 * gcc/target.h (legitimize_address): New.
1950 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
1951 (TARGET_INITIALIZER): Include it.
1952 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
1953
1954 * config/bfin/bfin-protos.h (legitimize_address): Remove.
1955 * config/bfin/bfin.c (legitimize_address): Remove.
1956 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
1957 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
1958 Remove.
506d7b68
PB
1959 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
1960 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
1961
1962 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
1963 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
1964 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
1965 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
1966 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
1967 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
1968 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
1969 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
1970 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
1971 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
1972 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
1973 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
1974 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
1975 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
1976 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
1977 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
1978 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
1979 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
1980 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
1981 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
1982 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
1983 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
1984 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
1985
1986 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
1987 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
1988 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
1989 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
1990 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
1991 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
1992 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
1993 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
1994 (thumb_legitimize_address): Delete.
1995 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
1996 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
1997 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
1998 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
1999 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
2000 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
2001 Delete.
2002 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
2003 Delete.
506d7b68
PB
2004
2005 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
2006 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
2007 * config/m32r/m32r.c (m32r_legitimize_address): New.
2008 * config/m68k/m68k.c (m68k_legitimize_address): New.
2009 * config/score/score.c (score_legitimize_address): Standardize.
2010 * config/score/score3.c (score3_legitimize_address): Standardize.
2011 * config/score/score3.h (score3_legitimize_address): Adjust.
2012 * config/score/score7.c (score7_legitimize_address): Standardize.
2013 * config/score/score7.h (score7_legitimize_address): Adjust.
2014 * config/sh/sh.c (sh_legitimize_address): New.
2015 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
2016
2017 * gcc/config/s390/s390.c (legitimize_address): Rename to...
2018 (s390_legitimize_address): ... this.
2019 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
2020 (sparc_legitimize_address): ... this.
2021 * gcc/config/i386/i386.c (legitimize_address): Rename to...
2022 (ix86_legitimize_address): ... this.
2023 * gcc/config/avr/avr.c (legitimize_address): Rename to...
2024 (avr_legitimize_address): ... this.
2025 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
2026 (mn10300_legitimize_address): ... this.
2027 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
2028 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
2029 (alpha_expand_mov): Adjust call.
2030
2031 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
2032 * config/spu/spu.c (spu_legitimize_address): Likewise.
2033 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
2034 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
2035
a3af5087
JM
20362009-05-04 Joseph Myers <joseph@codesourcery.com>
2037
2038 * intl.c (locale_encoding, locale_utf8): New.
2039 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
2040 * intl.h (locale_encoding, locale_utf8): Declare.
2041 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
2042 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
2043 New.
2044 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
2045 argument.
2046 (pp_tree_identifier): Define to call pp_base_tree_identifier.
2047 (pp_base_tree_identifier): Declare as function.
2048 (identifier_to_locale): Declare.
2049 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 2050 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 2051
ea5cd5f1
RG
20522009-05-04 Richard Guenther <rguenther@suse.de>
2053
2054 PR middle-end/40015
2055 * builtins.c (fold_builtin_memory_op): Do not decay to element
2056 type if the size matches the whole array.
2057
ddc2690a
KH
20582009-05-04 Kazu Hirata <kazu@codesourcery.com>
2059
2060 * expmed.c (synth_mult): When trying out a shift, pass the result
2061 of a signed shift.
2062
ef268d34
KH
20632009-05-04 Kazu Hirata <kazu@codesourcery.com>
2064
2065 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
2066 (shiftsub1_cost): New.
2067 (init_expmed): Compute shiftsub1_cost.
2068 (synth_mult): Optimize multiplications by constants of the form
2069 -(2^^m-1) for some constant positive integer m.
2070
255d3827
RG
20712009-05-03 Richard Guenther <rguenther@suse.de>
2072
2073 PR c/39983
2074 * c-typeck.c (array_to_pointer_conversion): Do not built
2075 ADDR_EXPRs of arrays of pointer-to-element type.
2076 * c-gimplify.c (c_gimplify_expr): Revert change fixing
2077 up wrong ADDR_EXPRs after-the-fact.
2078 * c-common.c (strict_aliasing_warning): Strip pointer
2079 conversions for obtaining the original type.
2080 * builtins.c (fold_builtin_memset): Handle array types.
2081 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
2082 and array types
2083
16c33770
RG
20842009-05-03 Richard Guenther <rguenther@suse.de>
2085
2086 PR middle-end/23329
2087 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
2088 Do not lose casts from array types with unknown extent to array
2089 types with known extent.
2090 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
2091 alias set compatibility.
2092
62a67c94
MLI
20932009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
2094
2095 * flags.h (extra_warnings): Delete.
2096 * toplev.c (process_options): Handle Wuninitialized here.
2097 * opts.c (extra_warnings): Delete.
2098 (set_Wextra): Delete.
2099 (common_handle_option): -Wextra can be handled automatically.
2100 * c-opts.c (c_common_handle_option): Delete obsolete code.
2101 (c_common_post_options): Simplify comment.
2102 * common.opt (W): Add Var.
2103 (Wextra): Add Var.
2104 (Wuninitialized): Initialize to -1.
2105
8c7926c4
AN
21062009-05-03 Adam Nemet <anemet@caviumnetworks.com>
2107 Richard Guenther <rguenther@suse.de>
2108
2109 * expr.c (get_def_for_expr): New function.
2110 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
2111 SSA rather than trees.
2112 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
2113 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
2114
fa5da7de
JM
21152009-05-03 Joseph Myers <joseph@codesourcery.com>
2116
2117 * c-common.c (reswords): Add _Imaginary.
2118 * c-common.c (enum rid): Add RID_IMAGINARY.
2119
2ddd5020
PB
21202009-05-03 Paolo Bonzini <bonzini@gnu.org>
2121
2122 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
2123 Patch by Richard Guenther.
2124
aea88c05
AS
21252009-05-03 Anatoly Sokolov <aesok@post.ru>
2126
2127 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
2128 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
2129 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
2130 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
2131 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
2132 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
2133 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
2134 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
2135 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
2136 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
2137 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
2138 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
2139 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
2140 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
2141 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
2142 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
2143 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
2144 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
2145
85e59f3a
RG
21462009-05-02 Richard Guenther <rguenther@suse.de>
2147
2148 PR tree-optimization/39940
2149 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
2150 doing so.
2151
4636b850
RG
21522009-05-02 Richard Guenther <rguenther@suse.de>
2153
2154 PR middle-end/40001
2155 * tree-ssa.c (execute_update_addresses_taken): Properly check
2156 if we can mark a variable DECL_GIMPLE_REG_P.
2157 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
2158 back to the end of the function.
2159 (is_gimple_reg_type): Remove complex type special casing.
2160 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
2161 if not optimizing.
2162
5e10cb5a
BE
21632009-05-02 Ben Elliston <bje@au.ibm.com>
2164
2165 * doc/collect2.texi (Collect2): Document search path behaviour
2166 when configured with --with-ld.
2167
048bf48b
JH
21682009-05-02 Jan Hubicka <jh@suse.cz>
2169
2170 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
2171 parameter; update callers.
aa016ff7
UB
2172 (coalesce_cost_edge): EH edges are costier because they needs
2173 splitting even if not critical and even more costier when there are
2174 multiple EH predecestors.
048bf48b 2175
d5c5f9ab
JH
21762009-05-02 Jan Hubicka <jh@suse.cz>
2177
2178 * except.c (remove_eh_handler_and_replace): Handle updating after
2179 removing TRY blocks.
2180
2ed1959a
EB
21812009-05-02 Eric Botcazou <ebotcazou@adacore.com>
2182
2183 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
2184
d363a7e7
SB
21852009-05-02 Steven Bosscher <steven@gcc.gnu.org>
2186
2187 * varasm.c: Do not include c-pragma.h.
2188 * attribs.c: Do not incude c-common.h.
2189
9c3d55b4
MM
21902009-05-01 Michael Matz <matz@suse.de>
2191
2192 * calls.c (initialize_argument_information): Handle SSA names like
2193 decls with a non MEM_P DECL_RTL.
2194
ea264ca5
SB
21952009-05-01 Steven Bosscher <steven@gcc.gnu.org>
2196
2197 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
2198 * ipa-utils.c: Likewise.
2199 * ipa-type-escape.c: Likewise.
2200 * cgraphunit.c Do not include c-common.h.
2201 * ipa-pure-const.c: Likewise.
2202 * tree-if-conv.c: Likewise.
2203 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
2204 * ipa-struct-reorg.c: Likewise.
2205 * tree-nomudflap.c: Likewise.
2206 * tree-ssa-structalias.c: Likewise.
2207
6c5d4d1a
SB
22082009-05-01 Steven Bosscher <steven@gcc.gnu.org>
2209
2210 * store-motion.c: Many cleanups to make this pass a first-class
2211 citizen instead of an appendix to gcse load motion. Add TODO list
2212 to make this pass faster/cleaner/better.
2213
2214 (struct ls_expr): Post gcse.c-split cleanups.
2215 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
2216 "stores" field to "avail_stores".
2217 (pre_ldst_mems): Rename to store_motion_mems.
2218 (pre_ldst_table): Rename to store_motion_mems_table.
2219 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
2220 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
2221 (ldst_entry): Rename to st_expr_entry, update users.
2222 (free_ldst_entry): Rename to free_st_expr_entry, update users.
2223 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
2224 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
2225 update caller.
6c5d4d1a
SB
2226 (first_ls_expr): Rename to first_st_expr, update users.
2227 (next_ls_expr): Rename to next_st_expr, update users.
2228 (print_ldst_list): Rename to print_store_motion_mems. Print names of
2229 fields properly for store motion instead of names inherited from load
2230 motion in gcse.c.
2231 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
2232 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
2233 are done with it.
2234
2235 (ae_kill): Rename to st_kill, update users.
2236 (ae_gen): Rename to st_avloc, update users.
2237 (transp): Rename to st_transp, update users.
2238 (pre_insert_map): Rename to st_insert_map, update users.
2239 (pre_delete_map): Rename to st_delete_map, update users.
2240 (insert_store, build_store_vectors, free_store_memory,
2241 one_store_motion_pass): Update for abovementioned changes.
2242
2243 (gcse_subst_count, gcse_create_count): Remove.
2244 (one_store_motion_pass): New statistics counters "n_stores_deleted"
2245 and "n_stores_created", local variables.
2246
2247 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
2248 use for_each_rtx.
2249
2250 (regvec, compute_store_table_current_insn): Remove.
2251 (reg_set_info, reg_clear_last_set): Remove.
2252 (compute_store_table): Use DF caches instead of local dataflow
2253 solvers.
2254
b02cec6e
JM
22552009-05-01 Joseph Myers <joseph@codesourcery.com>
2256
2257 * c-objc-common.c (c_tree_printer): Print identifiers with
2258 pp_identifier, not pp_string. Mark "({anonymous})" for
2259 translation.
2260 * c-pretty-print.c (pp_c_ws_string): New.
2261 (pp_c_cv_qualifier, pp_c_type_specifier,
2262 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2263 pp_c_storage_class_specifier, pp_c_function_specifier,
2264 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2265 pp_c_primary_expression, pp_c_postfix_expression,
2266 pp_c_unary_expression, pp_c_shift_expression,
2267 pp_c_relational_expression, pp_c_equality_expression,
2268 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2269 use pp_string and pp_c_ws_string in place of pp_identifier and
2270 pp_c_identifier for non-identifiers. Mark English strings for
2271 translation.
2272 * c-pretty-print.h (pp_c_ws_string): Declare.
2273
cd533689
PP
22742009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
2275 Roland McGrath <roland@redhat.com>
2276
aa016ff7 2277 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
2278 (ENABLE_LD_BUILDID): New configuration option.
2279 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2280 (LINK_BUILDID_SPEC): New macro.
2281 (init_spec): If defined, prepend it between LINK_EH_SPEC and
2282 link_spec.
2283 * doc/install.texi: Document --enable-linker-build-id option.
2284 * configure: Rebuild.
2285 * config.in: Rebuild.
2286
ba6adec4
AN
22872009-04-30 Adam Nemet <anemet@caviumnetworks.com>
2288
2289 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2290 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2291 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
2292 MIPS_GP_SAVE_AREA_SIZE.
2293 * config/mips/mips.c (struct mips_frame_info): Update comment
2294 before arg_pointer_offset and hard_frame_pointer_offset.
2295 (mips_compute_frame_info): Update diagram before function: to
2296 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2297 indicate the position of frame_pointer_rtx with -fstack-protector and
2298 to show args_size. Don't allocate cprestore area for leaf functions
2299 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
2300 cprestore_size.
2301 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2302
48f5b722
MM
23032009-04-30 Michael Matz <matz@suse.de>
2304
ba6adec4
AN
2305 PR tree-optimization/39955
2306 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 2307
b65d6744
DK
23082009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
2309
2310 * ira.c (setup_cover_and_important_classes): Use safe macro
2311 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2312 directly.
2313 * genpreds.c (write_tm_preds_h): Output suitable definition of
2314 REG_CLASS_FOR_CONSTRAINT.
2315
f136c8ae
RAE
23162009-04-30 Rafael Avila de Espindola <espindola@google.com>
2317
2318 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2319 instead of an int.
2320 * bitmap.c (bitmap_descriptor): Likewise.
2321 * ggc-common.c (loc_descriptor): Likewise.
2322 * varray.c (varray_descriptor): Likewise.
2323 * vec.c (vec_descriptor): Likewise.
2324
43fcece8 23252009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
2326
2327 * Makefile.in (dce.o): Add $(EXCEPT_H).
2328 * dce.c: Include except.h and delete redundant vector definitions.
2329 (deletable_insn_p): Return false for non-call insns that can throw
2330 if DF is running.
2331
df35c271
SB
23322009-04-30 Steven Bosscher <steven@gcc.gnu.org>
2333
2334 * gcse.c (ae_gen): Remove.
2335 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2336 and make non-static function to make it available in store-motion.c.
2337 Update call sites with search-and-replace.
2338 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2339 extract_mentioned_regs, extract_mentioned_regs_helper,
2340 find_moveable_store, compute_store_table, load_kills_store, find_loads,
2341 store_killed_in_insn, store_killed_after, store_killed_before,
2342 build_store_vectors, insert_insn_start_basic_block, insert-store,
2343 remove_reachable_equiv_notes, replace_store_insn, delete_store,
2344 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2345 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2346 * store-motion.c: ...new file. Also copy data structures from gcse.c
2347 and clean up to remove parts not used by store motion.
2348 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2349 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2350
f711a87a
RR
23512009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2352
2353 PR target/38571
2354 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2355 when optimizing for size.
2356
fa5ed76e
HPN
23572009-04-30 Hans-Peter Nilsson <hp@axis.com>
2358
2359 * gcse.c (gcse_constant_p): Fix typo in last change.
2360
0acbbdb0
RAE
23612009-04-30 Rafael Avila de Espindola <espindola@google.com>
2362
2363 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2364
82f5c05d
AK
23652009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
2366
2367 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2368
6d8f135b
JW
23692009-04-29 James E. Wilson <wilson@codesourcery.com>
2370
2371 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2372 CONST_HIGH_PART result.
2373
c21ca196
AS
23742009-04-29 Anatoly Sokolov <aesok@post.ru>
2375
2376 * config/avr/avr.c (initial_elimination_offset): Rename to
2377 avr_initial_elimination_offset.
2378 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2379 change return type to bool.
2380 (avr_can_eliminate): New function.
2381 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2382 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2383 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 2384 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
2385 avr_initial_elimination_offset.
2386 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2387 (avr_initial_elimination_offset): Define.
2388
2a34bece 23892009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 2390 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
2391
2392 PR rtl-optimization/39938
2393 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2394 * cfgrtl.c: Include insn-attr.h.
2395 (rest_of_pass_free_cfg): New function.
2396 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2397 * resource.c (init_resource_info): Remove call to df_analyze.
2398
5dc7911e
RG
23992009-04-29 Richard Guenther <rguenther@suse.de>
2400
2401 PR target/39943
2402 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2403 allow conversion to signed integers.
2404
1fe479fd
RG
24052009-04-29 Richard Guenther <rguenther@suse.de>
2406
2407 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2408 shifts of floating point vectors if the shift amount is
2409 a constant multiple of the element size.
2410
8e001680
AK
24112009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
2412 Michael Matz <matz@suse.de>
2413
2414 PR middle-end/39927
2415 PR bootstrap/39929
2416 * tree-outof-ssa.c (emit_partition_copy): New function.
2417 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2418 insert_part_to_rtx_on_edge): Perform the partition base var
2419 copy using emit_partition_copy.
2420 (insert_value_copy_on_edge): Convert constants to the right mode.
2421 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2422 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2423
e50e3081
BS
24242009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2425
2426 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2427 scan backwards to try to find a constant to initialize it.
2428
4e5d521b
BS
2429 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2430 insn before the loop_end instruction, don't look past labels.
2431
7c90021d
RG
24322009-04-29 Richard Guenther <rguenther@suse.de>
2433
2434 PR middle-end/39937
2435 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2436 loose type conversions.
2437 (forward_propagate_addr_expr): Fix tuplification bug. Remove
2438 stmts only if there are no uses of its definition.
2439
97a988bc
BS
24402009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2441
2442 * config/bfin/bfin.h (splitting_loops): Declare.
2443 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2444 Reorder bit definitions to be ascending.
2445 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2446 * config/bfin/bfin.c (splitting_loops): New variable.
2447 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2448 (struct loop_info): Remove members INIT and LOOP_INIT.
2449 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
2450 the LSETUP sequence. Allow LC to be loaded from any register, but
2451 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
2452 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2453 set to 1.
2454 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2455 of reload_completed.
aa016ff7 2456
97a988bc
BS
2457 From Jie Zhang:
2458 * config/bfin/bfin.md (movsi_insn): Refine constraints.
2459
0c463e16
RAE
24602009-04-29 Rafael Avila de Espindola <espindola@google.com>
2461
2462 * Makefile.in (PLUGIN_VERSION_H): New.
2463 (OBJS-common): Remove plugin-version.o.
2464 (plugin.o): Depend on (PLUGIN_VERSION_H).
2465 (plugin-version.o): Remove.
2466 * configure: Regenerate
2467 * configure.ac: Create plugin-version.h.
2468 * gcc-plugin.h (plugin_gcc_version): Remove.
2469 (plugin_default_version_check): Change signature.
2470 * plugin-version.c: Remove.
2471 * plugin.c: Include plugin-version.h.
2472 (str_plugin_gcc_version_name): Remove.
2473 (try_init_one_plugin): Pass gcc version to plugin_init.
2474 (plugin_default_version_check): Both gcc and plugin versions are now
2475 arguments.
2476
307e7eab
BS
24772009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2478
2479 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2480 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
2481 Remove special case testing for last insn of inner loops. Don't fail
2482 if the loop ends with a jump, emit an extra nop instead.
307e7eab 2483
c5d96723
BS
2484 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2485 DREGS rather than comparing directly. Remove code that tries to
2486 account for latencies.
2487
de0b4ad5
RG
24882009-04-29 Richard Guenther <rguenther@suse.de>
2489
2490 PR tree-optimization/39941
2491 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2492 eliminating an indirect call.
2493
3a19701a
RG
24942009-04-29 Richard Guenther <rguenther@suse.de>
2495
2496 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2497 parameter. Allow invariants as base if !require_lvalue.
2498 (verify_gimple_assign_single): Adjust.
2499
a0a31d1e
BS
25002009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
2501
2502 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2503 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
2504 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2505 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
2506 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2507 a VEC_SELECT.
aa016ff7
UB
2508 * config/bfin/bfin.c (bfin_expand_builtin,
2509 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 2510
795bd26a
RG
25112009-04-28 Richard Guenther <rguenther@suse.de>
2512
2513 * tree-vect-loop.c (get_initial_def_for_induction): Use
2514 correct types for pointer increment.
2515
04be270f
KG
25162009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2517
2518 * toplev.c (print_version): Update GMP version string calculation.
2519
e1a3b85c
EB
25202009-04-28 Eric Botcazou <ebotcazou@adacore.com>
2521
2522 PR rtl-optimization/39938
2523 * resource.c (init_resource_info): Add call to df_analyze.
2524
8224166e
UB
25252009-04-28 Uros Bizjak <ubizjak@gmail.com>
2526
2527 * config/alpha/alpha.md (usegp): Cast the result of
2528 alpha_find_lo_sum_using_gp to enum attr_usegp.
2529 * config/alpha/alpha.c (override_options): Remove end-of-structure
2530 marker element from cpu_table. Use array size of cpu_table to handle
2531 -mcpu and -mtune options.
2532 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2533
c5f0fe67
JM
25342009-04-28 Joseph Myers <joseph@codesourcery.com>
2535
2536 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
2537 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
2538 tune_32 and tune_64.
2539 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2540 support on PowerPC.
2541 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
2542 * config/rs6000/option-defaults.h: ... here. New file.
2543 (OPT_64, OPT_32): Define.
2544 (MASK_64BIT): Define to 0 if not already defined.
2545 (OPT_ARCH64, OPT_ARCH32): Define.
2546 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
2547 and tune_64.
2548
0c48a567
RR
25492009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2550
2551 * config/arm/arm.c (arm_override_options): Emit error on using
2552 fpa with AAPCS.
2553
f1028b9d
UB
25542009-04-28 Uros Bizjak <ubizjak@gmail.com>
2555
2556 PR rtl-optimization/39914
2557 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
2558 registers for allocnos created from user-defined variables only
2559 when not optimizing.
2560
e0dd989a
RG
25612009-04-28 Richard Guenther <rguenther@suse.de>
2562
2563 PR middle-end/39937
2564 * fold-const.c (fold_binary): Use distribute_real_division only
2565 on float types.
2566
9a17c91d
SE
25672009-04-28 Steve Ellcey <sje@cup.hp.com>
2568
2569 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
2570 add hpux-stdint.h to tm_file.
2571 (hppa[12]*-*-hpux11*): Ditto.
2572 (ia64*-*-hpux*): Ditto.
2573 * config/hpux-stdint.h: New.
60839f5d 2574 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 2575 __STDC_EXT__ for all compiles.
60839f5d
EB
2576 * config/pa/pa-hpux.h: Ditto.
2577 * config/pa/pa-hpux10.h: Ditto.
2578 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 2579
af04e659
CM
25802009-04-28 Catherine Moore <clm@codesourcery.com>
2581
2582 * debug.h (set_name): Add comment.
2583
04ef80ce
AP
25842009-04-28 Andrew Pinski <pinskia@gmail.com>
2585
2586 PR target/39929
2587 * config/darwin.c (machopic_gen_offset): Check
2588 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
2589 * config/arm/arm.c (require_pic_register): Likewise.
2590
65ad77af
PB
25912009-04-28 Paolo Bonzini <bonzini@gnu.org>
2592
8224166e
UB
2593 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
2594 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
2595 m32c_promote_prototypes): Delete.
65ad77af 2596
1b15a008
MM
25972009-04-28 Michael Matz <matz@suse.de>
2598
2599 PR middle-end/39922
2600 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
2601 constants.
2602
7569a6cc
RG
26032009-04-28 Richard Guenther <rguenther@suse.de>
2604
f1028b9d 2605 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 2606
ead204d9
RR
26072009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2608
2609 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
2610 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
2611 * config/arm/arm-tune.md: Regenerate.
2612
f2c45f08 26132009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 2614
f2c45f08
AM
2615 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
2616 block if there are complex incoming edges.
2617 (sel_merge_blocks): Remove useless assert.
2618 (sel_redirect_edge_and_branch): Check that edge was redirected.
2619 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
2620 (sel_find_rgns): Delete declaration.
2621 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
2622 the region when it is not a preheader.
2623
7a00d767
UB
26242009-04-28 Uros Bizjak <ubizjak@gmail.com>
2625
2626 PR c/39323
2627 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
2628
448ee662
RG
26292009-04-28 Richard Guenther <rguenther@suse.de>
2630
2631 * tree.h (SSA_NAME_VALUE): Remove.
2632 (struct tree_ssa_name): Remove value_handle member.
2633 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
2634 array for jump threading.
2635 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
2636 SSA_NAME_VALUEs.
2637 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
2638 * tree-flow.h (threadedge_initialize_values): Declare.
2639 (threadedge_finalize_values): Likewise.
2640 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
2641 (SSA_NAME_VALUE): Define.
2642 (threadedge_initialize_values): New function.
2643 (threadedge_finalize_values): Likewise.
2644 * tree-ssa-dom.c (ssa_name_values): New global variable.
2645 (SSA_NAME_VALUE): Define.
f1028b9d 2646 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 2647
8644a673
IR
26482009-04-28 Ira Rosen <irar@il.ibm.com>
2649
2650 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2651 Use REPORT_VECTORIZED_LOCATIONS instead
2652 REPORT_VECTORIZED_LOOPS.
2653 * tree-vectorizer.c (vect_verbosity_level): Make static.
2654 (vect_loop_location): Rename to vect_location.
2655 (vect_set_verbosity_level): Update comment.
2656 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
2657 and vect_location.
2658 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
2659 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
2660 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
2661 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
2662 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 2663 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7a00d767 2664 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
2665 REPORT_UNVECTORIZED_LOCATIONS.
2666 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
2667 and vect_used_in_loop and to vect_unused_in_scope and
2668 vect_used_in_scope.
2669 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
2670 (vect_verbosity_level): Remove declaration.
2671 (vect_analyze_operations): Likewise.
2672 (vect_analyze_stmt): Declare.
2673 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
2674 REPORT_UNVECTORIZED_LOCATIONS.
2675 (vect_get_loop_niters): Fix indentation.
2676 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
2677 (vect_analyze_loop_operations): New function.
2678 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
2679 vect_analyze_operations.
2680 (vect_is_simple_reduction): Use new names.
2681 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
2682 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
2683 to specify whether the data references can be a part of interleaving
2684 chain.
8644a673
IR
2685 (vect_analyze_data_ref_dependence): Use new names.
2686 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
2687 (vect_create_addr_base_for_vector_ref): Remove redundant code.
2688 * tree-vect-patterns.c (widened_name_p): Use new names.
2689 (vect_recog_dot_prod_pattern): Likewise.
2690 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
2691 (process_use, vect_mark_stmts_to_be_vectorized,
2692 vect_model_simple_cost, vect_model_store_cost,
2693 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
2694 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
2695 vectorizable_operation, vectorizable_type_demotion,
2696 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
2697 vectorizable_condition): Likewise.
2698 (vect_analyze_operations): Split into vect_analyze_loop_operations
2699 and ...
2700 (vect_analyze_stmt): ... new function.
2701 (new_stmt_vec_info): Use new names.
2702 (vect_is_simple_use): Use new names and fix comment.
2703 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
2704 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
2705
b91322f2
UB
27062009-04-28 Uros Bizjak <ubizjak@gmail.com>
2707
2708 PR target/39911
2709 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
2710 and integer modes for x87 operands. Do not ICE for unsupported size,
2711 generate error instead. Generate error for unsupported operand types.
2712 ['z']: Do not handle HImode memory operands specially. Warning
2713 for floating-point operands. Fallthru to 'Z' for unsupported operand
2714 types. Do not ICE for unsupported size, generate error instead.
2715 (output_387_binary_op): Use %Z to output operands.
2716 (output_fp_compare): Ditto.
2717 (output_387_reg_move): Ditto.
2718
b2ed71b6
BE
27192009-04-28 Ben Elliston <bje@au.ibm.com>
2720
2721 PR c++/35652
2722 Revert:
2723
2724 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2725
2726 * builtins.c (c_strlen): Do not warn here.
2727 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2728 * c-common.c (pointer_int_sum): Take an explicit location.
2729 Warn about offsets out of bounds.
2730 * c-common.h (pointer_int_sum): Adjust declaration.
2731
81f40b79
ILT
27322009-04-27 Ian Lance Taylor <iant@google.com>
2733
2734 * collect2.c (is_ctor_dtor): Change type of ret field in struct
2735 names to symkind.
2736 * dce.c (run_fast_df_dce): Change type of old_flags to int.
2737 * df-core.c (df_set_flags): Change return type to int. Change
2738 type of old_flags to int.
2739 (df_clear_flags): Likewise.
2740 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
2741 (df_get_conditional_uses): Likewise.
2742 * df.h (df_set_flags, df_clear_flags): Update declarations.
2743 * dwarf2out.c (struct indirect_string_node): Change type of form
2744 field to enum dwarf_form.
2745 (AT_string_form): Change return type to enum dwarf_form.
2746 * fixed-value.c (fixed_compare): Add cast to enum type.
2747 * fwprop.c (update_df): Change 0 to VOIDmode.
2748 * gensupport.c: Change 0 to UNKNOWN.
2749 * gimple.h (gimple_cond_code): Add cast to enum type.
2750 * haifa-sched.c (reemit_notes): Add cast to enum type.
2751 * hooks.c (hook_int_void_no_regs): Remove function.
2752 * hooks.h (hook_int_void_no_regs): Remove declaration.
2753 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 2754 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
2755 * real.c (real_arithmetic): Add cast to enum type.
2756 (real_compare): Likewise.
2757 * target.h (struct gcc_target): Change return type of
2758 branch_target_register_class to enum reg_class.
2759 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
2760 default_branch_target_register_class.
7a00d767 2761 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 2762 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 2763 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
2764 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
2765 cast to int.
2766 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
2767 ERROR_MARK.
2768 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
2769 vect_uninitialized_def. Change 0 to ERROR_MARK.
2770 * tree-vect-stmts.c (supportable_widening_operation): Don't
2771 initialize icode1 and icode2.
7a00d767 2772 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
2773 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
2774 and to STD_C89.
2775 (cmn_err_flag_specs): Change 0 to STD_C89.
2776 (cmn_err_char_table): Likewise.
2777 * config/arm/arm.c (get_arm_condition_code): Change type of code
2778 to enum arm_cond_code.
2779 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
2780 (IWMMXT_BUILTIN2): Likewise.
2781 (neon_builtin_type_bits): Don't define typedef.
2782 (neon_builtin_datum): Change type of bits field to int.
2783 (arm_expand_neon_args): Add cast to enum type.
2784 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
2785 TLS_MODEL_NONE.
2786 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
2787 casts to enum type.
2788 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
2789 MIPS_FP_COND_f.
2790 * config/mips/mips.md (jal_macro): Return enum constant.
2791 (single_insn): Likewise.
2792 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
2793 CODE_FOR_nothing.
2794 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2795 casts to enum type.
2796 * config/s390/s390.c (s390_tune_flags): Change type to int.
2797 (s390_arch_flags): Likewise.
7a00d767 2798 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
2799 * config/s390/s390.h (s390_tune_flags): Update declaration.
2800 (s390_arch_flags): Likewise.
2801 * config/sh/sh.c (prepare_move_operands): Compare
2802 tls_symbolic_operand result with enum constant.
2803 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
2804 (sh_expand_prologue): Add cast to enum type.
2805 (sh_expand_epilogue): Likewise.
2806 (tls_symbolic_operand): Change return type to enum tls_model.
2807 (fpscr_set_from_mem): Add cast to enum type.
2808 (legitimize_pic_address): Compare tls_symbolic_operand result with
2809 enum constant.
2810 (sh_target_reg_class): Change return type to enum reg_class.
2811 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
2812 PROCESSOR_xxx.
7a00d767
UB
2813 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
2814 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
2815 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
2816 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
2817 (delayed_branch, tls_call_delay): Likewise.
2818 (eligible_for_sibcall_delay): Likewise.
2819 (eligible_for_return_delay): Likewise.
2820 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
2821 (spu_expand_builtin_1): Likewise.
2822
2823 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
2824 for all types of conversions.
2825 (output_init_element): Issue -Wc++-compat warning if needed when
2826 initializing a bitfield with enum type.
2827 * c-parser.c (c_parser_expression): Set original_type to
2828 original_type of right hand operand of comman operator.
2829
e4ae5e77
RW
28302009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2831
2832 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
2833 grammar nits.
7a00d767 2834 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
2835 * doc/cpp.texi (Standard Predefined Macros)
2836 (Implementation-defined behavior): Likewise.
7a00d767 2837 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
2838 * doc/gimple.texi (GIMPLE Exception Handling)
2839 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 2840 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
2841 * doc/invoke.texi (Warning Options, Optimize Options)
2842 (AVR Options, Darwin Options): Likewise.
2843 (Optimize Options): Reformulate -fwhole-program description.
2844 * doc/loop.texi (Lambda): Likewise.
2845 * doc/md.texi (Output Template, Define Constraints)
2846 (Standard Names, Insn Splitting): Likewise.
2847 * doc/options.texi (Option properties): Likewise.
2848 * doc/passes.texi (Tree-SSA passes): Likewise.
2849 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
2850 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
2851 (File Names and DBX): Likewise.
2852 * doc/trouble.texi (Incompatibilities): Likewise.
2853
1883802f 28542009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
2855
2856 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
2857 instruction is correct.
2858
1883802f 28592009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
2860
2861 Allow non-constant arguments to conversion intrinsics.
2862 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
2863 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
2864 * spu.c (print_operand): Handle 'v' and 'w'.
2865 (exp2_immediate_p, spu_gen_exp2): Define.
2866 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
2867 spu_convtf_1): Update parameter descriptions.
7a00d767 2868 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
2869 * constraints.md ('v', 'w'): New.
2870 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
2871 Remove.
2872 (i2f, I2F): New define_mode_attr.
2873 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
2874 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
2875 fixuns_truncv4sfv4si2): Update to use mode attribute.
2876 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
2877 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
2878 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
2879 patterns for combine.
2880
5f39ad47
SB
28812009-04-27 Steven Bosscher <steven@gcc.gnu.org>
2882
2883 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
2884 (cprop, hoist, pre, store_motion): New debug counters.
2885 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
2886 is not an RTL pass anymore.
2887 (pass_profiling): Remove extern decl for pass removed in 2005.
2888 (pass_gcse, pass_jump_bypass): Remove.
2889 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
2890 to 0 for clean state.
2891 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
2892 * cse.c (gate_handle_cse_after_global_opts,
2893 rest_of_handle_cse_after_global_opts): New functions.
2894 (pass_cse_after_global_opts): New pass, does local CSE.
2895 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
2896 (TV_CPROP): New timevar.
2897 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
2898 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
2899 (gcse_main, recompute_all_luids): Remove.
2900 (compute_hash_table_work): Call max_reg_num instead of reading
2901 max_gcse_regno.
2902 (cprop_jump): Don't set run_jump_opt_after_gcse.
2903 (constprop_register): Always allow to alter jumps.
2904 (cprop_insn): Likewise.
2905 (do_local_cprop): Likewise.
2906 (local_cprop_pass): Likewise. Return non-zero if something changed.
2907 (cprop): Remove function, fold interesting bits into one_cprop_pass.
2908 (find_implicit_sets): Add note about missed optimization opportunity.
2909 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
2910 pass_rtl_cprop execute function.
2911 Don't bother tracking the pass number, each pass gets its own dumpfile
2912 now anyway.
2913 Always allow to alter jumpsand bypass jumps.
2914 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
2915 will just find no suitable set.
2916 (pre_edge_insert): Fix dumping, this function is for PRE only.
2917 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
2918 pass_rtl_pre execute function.
2919 (hoist_code): Return non-zero if something changed. Keep track of
2920 substitutions and insertions for statistics gathering similar to PRE.
2921 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
2922 called from the pass_rtl_hoist execute function. Show pass statistics.
2923 (compute_store_table): Use max_reg_num directly instead of using the
2924 formerly global max_gcse_regno.
2925 (build_store_vectors): Likewise.
2926 (replace_store_insn): Fix dumping.
2927 (store_motion): Rename to ...
2928 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
2929 pass, called from the pass_rtl_store_motion execute function. Keep
2930 track of substitutions and insertions for statistics gathering similar
2931 to PRE.
2932 (bypass_jumps): Remove, fold interesting bits into ...
2933 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
2934 from the pass_rtl_cprop execute function.
2935 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
2936 pass_jump_bypass): Remove.
2937 (gate_handle_gcse, rest_of_handle_gcse): Remove.
2938 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
2939 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
2940 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
2941 (gate_rtl_store_motion, execute_rtl_store_motion,
2942 pass_rtl_store_motion): New.
2943 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
2944 make it clear that -fcse-skip-blocks is a no-op for backward compat.
2945 * passes.c (init_optimization_passes): Remove pass_gcse and
2946 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
2947 and cse_after_global_opts in place of pass_gcse. Schedule cprop
2948 instead of pass_jump_bypass.
2949
c685de4a
RG
29502009-04-27 Richard Guenther <rguenther@suse.de>
2951
2952 PR middle-end/39928
2953 * gimplify.c (gimplify_expr): If we are required to create
2954 a temporary make sure it ends up as register.
2955
72d41f29
L
29562009-04-27 H.J. Lu <hongjiu.lu@intel.com>
2957
2958 PR target/39903
2959 * config/i386/i386.c (construct_container): Don't call
2960 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
2961 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
2962
e97809c6
MM
29632009-04-27 Michael Matz <matz@suse.de>
2964
2965 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
2966 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
2967 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
2968 (dump_replaceable_exprs): Take a bitmap.
2969 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
2970 array.
2971 (expand_gimple_basic_block): Likewise.
2972 * tree-ssa-ter.c (struct temp_expr_table_d): Make
2973 replaceable_expressions member a bitmap.
2974 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
2975 (mark_replaceable): Likewise.
2976 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
2977 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
2978
211ca15c
RG
29792009-04-27 Richard Guenther <rguenther@suse.de>
2980
2981 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
2982 (verify_stmts): Dispatch to gimple/type verification code.
2983 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
2984 issue with call argument types.
2985
fca5f3d1
MM
29862009-04-27 Michael Matz <matz@suse.de>
2987
2988 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
2989 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
2990 to above.
2991
a1fa3e79 29922009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 2993 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
2994
2995 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
2996 a label's basic block.
2997 (mark_target_live_regs): Tidy and rework obsolete comments.
2998 Change back DF problem to LIVE. If a label starts a basic block,
2999 assume that all registers that used to be live then still are.
3000 (init_resource_info): If a label starts a basic block, set its
3001 BLOCK_FOR_INSN accordingly.
3002 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
3003
33b223c0
RG
30042009-04-27 Richard Guenther <rguenther@suse.de>
3005
3006 * tree-flow-inline.h (function_ann): Remove.
3007 (get_function_ann): Likewise.
3008 * tree-dfa.c (create_function_ann): Remove.
3009 * tree-flow.h (struct static_var_ann_d): Remove.
3010 (struct function_ann_d): Likewise.
3011 (union tree_ann_d): Remove fdecl member.
3012 (function_ann_t): Remove.
3013 (function_ann, get_function_ann, create_function_ann): Remove
3014 declarations.
3015
e3136fa2
UB
30162009-04-27 Uros Bizjak <ubizjak@gmail.com>
3017
3018 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
3019
f87c9042
JH
30202009-04-27 Jan Hubicka <jh@suse.cz>
3021
3022 * ipa-pure-const.c (struct funct_state_d): New fields
3023 state_previously_known, looping_previously_known; remove
3024 state_set_in_source.
3025 (analyze_function): Use new fields.
3026 (propagate): Avoid assumption that state_set_in_source imply
3027 nonlooping.
3028
3029 * tree-ssa-loop-niter.c (finite_loop_p): New function.
3030 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
3031 * cfgloop.h (finite_loop_p): Declare.
3032
33abd718
MM
30332009-04-26 Michael Matz <matz@suse.de>
3034
e3136fa2 3035 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 3036
ddc34084
MM
30372009-04-26 Michael Matz <matz@suse.de>
3038
3039 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
3040 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
3041 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
3042 pass_mark_used_blocks): Remove.
3043 * tree-optimize.c (pass_free_datastructures,
3044 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
3045 * passes.c (init_optimization_passes): Don't call
3046 pass_mark_used_blocks, remove dead code.
3047
1fec7ed4
L
30482009-04-26 H.J. Lu <hongjiu.lu@intel.com>
3049
3050 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
3051 * tree-ssa-live.h (register_ssa_partition): Likewise.
3052
4e3825db
MM
30532009-04-26 Michael Matz <matz@suse.de>
3054
3055 Expand from SSA.
3056 * builtins.c (fold_builtin_next_arg): Handle SSA names.
3057 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
3058 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
3059 SSA names.
3060 (compare_pairs): Swap cost comparison.
3061 (coalesce_ssa_name): Don't use change_partition_var.
3062 * tree-nrv.c (struct nrv_data): Add modified member.
3063 (finalize_nrv_r): Set it.
3064 (tree_nrv): Use it to update statements.
3065 (pass_nrv): Require PROP_ssa.
3066 * tree-mudflap.c (mf_decl_cache_locals,
3067 mf_build_check_statement_for): Use make_rename_temp.
3068 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
3069 * alias.c (find_base_decl): Handle SSA names.
3070 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
3071 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
3072 * rtl.h (set_reg_attrs_for_parm): Declare.
3073 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
3074 to "optimized", remove unused locals at finish.
3075 (execute_free_datastructures): Make global, call
3076 delete_tree_cfg_annotations.
3077 (execute_free_cfg_annotations): Don't call
3078 delete_tree_cfg_annotations.
3079
3080 * ssaexpand.h: New file.
3081 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 3082 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
3083 (expand_expr_real_1): Expand SSA names.
3084 * cfgexpand.c (toplevel): Include ssaexpand.h.
3085 (SA): New global variable.
3086 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
3087 (SSAVAR): New macro.
3088 (set_rtl): New helper function.
3089 (add_stack_var): Deal with SSA names, use set_rtl.
3090 (expand_one_stack_var_at): Likewise.
3091 (expand_one_stack_var): Deal with SSA names.
3092 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
3093 before unique numbers.
3094 (expand_stack_vars): Use set_rtl.
3095 (expand_one_var): Accept SSA names, add asserts for them, feed them
3096 to above subroutines.
3097 (expand_used_vars): Expand all partitions (without default defs),
3098 then only the local decls (ignoring those expanded already).
3099 (expand_gimple_cond): Remove edges when jumpif() expands an
3100 unconditional jump.
3101 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
3102 or remove abnormal edges. Ignore insns setting the LHS of a TERed
3103 SSA name.
3104 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
3105 members of SA; deal with PARM_DECL partitions here; expand
3106 all PHI nodes, free tree datastructures and SA. Commit instructions
3107 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
3108 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
3109 info and statements at start, collect garbage at finish.
3110 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
3111 (VAR_ANN_PARTITION) Remove.
3112 (change_partition_var): Don't declare.
3113 (partition_to_var): Always return SSA names.
3114 (var_to_partition): Only accept SSA names.
3115 (register_ssa_partition): Only check argument.
3116 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
3117 member.
3118 (delete_var_map): Don't free it.
3119 (var_union): Only accept SSA names, simplify.
3120 (partition_view_init): Mark only useful SSA names as used.
3121 (partition_view_fini): Only deal with SSA names.
3122 (change_partition_var): Remove.
3123 (dump_var_map): Use ssa_name instead of partition_to_var member.
3124 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
3125 basic blocks.
3126 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
3127 (struct _elim_graph): New member const_dests; nodes member vector of
3128 ints.
3129 (set_location_for_edge): New static helper.
3130 (create_temp): Remove.
3131 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 3132 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
3133 (new_elim_graph): Allocate const_dests member.
3134 (clean_elim_graph): Truncate const_dests member.
3135 (delete_elim_graph): Free const_dests member.
3136 (elim_graph_size): Adapt to new type of nodes member.
3137 (elim_graph_add_node): Likewise.
3138 (eliminate_name): Likewise.
3139 (eliminate_build): Don't take basic block argument, deal only with
3140 partition numbers, not variables.
3141 (get_temp_reg): New static helper.
3142 (elim_create): Use it, deal with RTL temporaries instead of trees.
3143 (eliminate_phi): Adjust all calls to new signature.
3144 (assign_vars, replace_use_variable, replace_def_variable): Remove.
3145 (rewrite_trees): Only do checking.
3146 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
3147 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
3148 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
3149 contains_tree_r, MAX_STMTS_IN_LATCH,
3150 process_single_block_loop_latch, analyze_edges_for_bb,
3151 perform_edge_inserts): Remove.
3152 (expand_phi_nodes): New global function.
3153 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
3154 functions, initialize new parameter, remember partitions having a
3155 default def.
3156 (finish_out_of_ssa): New global function.
3157 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
3158 don't reset in_ssa_p here, don't disable TER when mudflap.
3159 (pass_del_ssa): Remove.
3160 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
3161 partition members.
3162 (execute_free_datastructures): Declare.
3163 * Makefile.in (SSAEXPAND_H): New variable.
3164 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
3165 * basic-block.h (commit_one_edge_insertion): Declare.
3166 * passes.c (init_optimization_passes): Move pass_nrv and
3167 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
3168 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
3169 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
3170 (redirect_branch_edge): Deal with super block when expanding, split
3171 out jump patching itself into ...
3172 (patch_jump_insn): ... here, new static helper.
3173
17c665a9
MM
31742009-04-26 Michael Matz <matz@suse.de>
3175
3176 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
3177 beyond num_ssa_names.
3178 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
3179 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
3180
92061771
JJ
31812009-04-26 Jakub Jelinek <jakub@redhat.com>
3182
ce372372
JJ
3183 PR inline-asm/39543
3184 * fwprop.c (forward_propagate_asm): New function.
3185 (forward_propagate_and_simplify): Propagate also into __asm, if it
3186 doesn't increase the number of referenced registers.
3187
92061771
JJ
3188 PR c/39889
3189 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
3190
31912009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
3192
3193 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
3194 note_nonlocal_vla_type for nonlocal VLAs.
3195 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
3196 contains_remapped_vars, remap_vla_decls): New functions.
3197 (convert_nonlocal_reference_stmt): If not optimizing, call
3198 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
3199 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
3200 if it wasn't found in var_map.
3201 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
3202 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
3203 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
3204 declare_vars.
3205 * gimplify.c (nonlocal_vlas): New variable.
3206 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
3207 referenced VLAs.
3208 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 3209
4561e242
JJ
3210 * dwarf2out.c (loc_descr_plus_const): New function.
3211 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
3212 mem_loc_descriptor, loc_descriptor_from_tree_1,
3213 descr_info_loc, gen_variable_die): Use it.
3214
a9548ddf
JJ
3215 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
3216 !TREE_STATIC VAR_DECLs.
3217 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
3218 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
3219 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
3220 DECL_BY_REFERENCE is valid.
3221 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
3222 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
3223 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
3224 Copy DECL_BY_REFERENCE.
3225 (struct nesting_copy_body_data): New type.
3226 (nesting_copy_decl): New function.
3227 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
3228 if they have variable length.
3229
10555d08
MM
32302009-04-26 Michael Matz <matz@suse.de>
3231
3232 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
3233 mark new temporaries for renaming.
3234
e11187cc
JM
32352009-04-26 Joseph Myers <joseph@codesourcery.com>
3236
3237 PR c/39581
3238 * c-decl.c (global_bindings_p): Return negative value.
3239 (c_variable_size): New. Based on variable_size from
3240 stor-layout.c.
3241 (grokdeclarator): Call c_variable_size not variable_size.
3242
f6a51d31
UB
32432009-04-26 Uros Bizjak <ubizjak@gmail.com>
3244
3245 * config/i386/i386.c (print_operand) ['z']: Fix typo.
3246
4b97723d
KT
32472009-04-26 Kai Tietz <kai.tietz@onevision.com>
3248
3249 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
3250 Redefine it to just use mingw/include.
3251 (ASM_SPEC): Rules for -m32 and -m64.
3252 (LINK_SPEC): Use Likewise.
3253 (SPEC_32): New define.
3254 (SPEC_64): Likewise.
3255 (SUB_LINK_SPEC): Likewise.
3256 (MULTILIB_DEFAULTS): New define.
3257 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3258 Add multilib options.
3259 (MULTILIB_DIRNAMES): Likewise.
3260 (MULTILIB_OSDIRNAMES): Likewise.
3261 (LIBGCC): Likewise.
3262 (INSTALL_LIBGCC): Likewise.
3263
991d6621
JM
32642009-04-26 Joseph Myers <joseph@codesourcery.com>
3265
3266 PR c/39556
3267 * c-tree.h (enum c_inline_static_type): New.
3268 (record_inline_static): Declare.
3269 * c-decl.c (struct c_inline_static, c_inline_statics,
3270 record_inline_static, check_inline_statics): New.
3271 (pop_file_scope): Call check_inline_statics.
3272 (start_decl): Call record_inline_static instead of pedwarning
3273 directly for static in inline function.
3274 * c-typeck.c (build_external_ref): Call record_inline_static
3275 instead of pedwarning directly for static referenced in inline
3276 function.
3277
4a81774c
SB
32782009-04-26 Steven Bosscher <steven@gcc.gnu.org>
3279
3280 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3281 not new but only being rescanned.
3282 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3283 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3284 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3285 record_set_info, compute_set, grealloc): Remove.
3286 (recompute_all_luids): New function.
3287 (gcse_main): Don't compute sets, and don't do related memory
3288 allocations/free-ing. If something changed before the end of the
3289 pass, update LUIDs using recompute_all_luids.
3290 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
3291 (free_gcse_mem): Don't free it either.
3292 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3293 Use the df insn LUIDs.
3294 (load_killed_in_block): Likewise.
3295 (compute_hash_table_work): Don't compute reg_set_in_block.
3296 (compute_transp): Use DF_REG_DEF_CHAINs.
3297 (local_cprop_pass): Don't use compute_sets and related functions.
3298 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3299 Use get_max_uid() instead of max_cuid.
3300 (insert_insn_end_basic_block, pre_insert_copy_insn,
3301 update_ld_motion_stores): Don't try to
3302 keep reg_set tables up to date.
3303 (pre_insert_copies): Use df insn LUIDs.
3304 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3305 (reg_set_info): Don't use extra bitmap argument.
3306 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
3307 information to compute regs_set_in_block.
3308 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3309 (bypass_jumps): Don't use compute_sets and friends.
3310
e8f99a9d
RW
33112009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3312
3313 PR testsuite/39710
3314 * opts.c (undocumented_msg): Do not leave blank even with
3315 ENABLE_CHECKING.
3316
6895bac8
JM
33172009-04-25 Joseph Myers <joseph@codesourcery.com>
3318
3319 * c-decl.c (build_enumerator): Allow values folding to integer
3320 constants but not integer constant expressions with a pedwarn if
3321 pedantic.
3322
24070fcb
JM
33232009-04-25 Joseph Myers <joseph@codesourcery.com>
3324
3325 PR c/39582
3326 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3327 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3328 type is an integer constant.
3329
d6d89aa1
UB
33302009-04-25 Uros Bizjak <ubizjak@gmail.com>
3331
3332 PR target/39897
3333 * config/i386/i386.c (print_operand) ['z']: Revert handling of
3334 HImode operands.
3335
92f6fd0b
JM
33362009-04-25 Joseph Myers <joseph@codesourcery.com>
3337
3338 PR c/39564
3339 * c-decl.c (grokdeclarator): Diagnose declarations of functions
3340 with variably modified return type and no storage class
3341 specifiers, except for the case of nested functions. Distinguish
3342 extern declarations of functions with variably modified return
3343 types from those of objects with variably modified types.
3344
a3710436
JH
33452009-04-25 Jan Hubicka <jh@suse.cz>
3346
3347 * tree.c (list_equal_p): New function.
3348 * tree.h (list_equal_p): Declare.
3349 * coretypes.h (edge_def, edge, const_edge, basic_block_def
3350 basic_block_def, basic_block, const_basic_block): New.
3351 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3352 (redirect_eh_edge): New function.
3353 (make_eh_edge_update_phi): EH edges are not abnormal.
3354 * except.c: Include tree-flow.h.
3355 (list_match): New function.
3356 (eh_region_replaceable_by_p): New function.
3357 (replace_region): New function.
3358 (hash_type_list): New function.
3359 (hash_eh_region): New function.
3360 (eh_regions_equal_p): New function.
3361 (merge_peers): New function.
3362 (remove_unreachable_regions): Verify EH tree when checking;
3363 merge peers.
3364 (copy_eh_region_1): New function.
3365 (copy_eh_region): New function.
3366 (push_reachable_handler): New function.
3367 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3368 regions without label but with live RESX.
3369 * except.h (redirect_eh_edge_to_label): New.
3370 * tree-flow.h (redirect_eh_edge): New.
3371 * coretypes.h (edge_def, edge, const_edge, basic_block_def
3372 basic_block_def, basic_block, const_basic_block): Remove.
3373 * Makefile.in (except.o): Add dependency on tree-flow.h
3374 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3375 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3376 Remove.
3377
3764d512
EB
33782009-04-25 Eric Botcazou <ebotcazou@adacore.com>
3379
3380 PR bootstrap/39645
3381 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3382 on the destination of memcpy.
3383
1c62e8f2
PB
33842009-04-25 Paolo Bonzini <bonzini@gnu.org>
3385
3386 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3387 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3388 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3389
496a4ef5
JH
33902009-04-25 Jan Hubicka <jh@suse.cz>
3391
3392 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3393 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3394 to be reached by different label than left.
3395 (update_eh_edges): Update comment; remove edge_to_remove if possible
3396 and return true if suceeded.
3397 (cleanup_empty_eh): Accept sharing map; handle shared regions.
3398 (cleanup_eh): Compute sharing map.
3399 * except.c (remove_eh_handler_and_replace): Add argument if we should
3400 update regions.
3401 (remove_unreachable_regions): Update for label sharing.
3402 (label_to_region_map): Likewise.
3403 (get_next_region_sharing_label): New function.
3404 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3405 prev_try pointers.
3406 (remove_eh_handler): Update.
3407 (remove_eh_region_and_replace_by_outer_of): New function.
3408 * except.h (struct eh_region): Add next_region_sharing_label.
3409 (remove_eh_region_and_replace_by_outer_of,
3410 get_next_region_sharing_label): Declare.
3411 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3412
34132009-04-25 Jan Hubicka <jh@suse.cz>
3414
3415 * tree-cfg.c (split_critical_edges): Split also edges where we can't
3416 insert code even if they are not critical.
3417
34182009-04-25 Jan Hubicka <jh@suse.cz>
3419
3420 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3421 (gimple_can_remove_branch_p): EH edges won't remove branch by
3422 redirection.
3423 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3424 updating of non-abnormal EH edges.
3425 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3426 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3427 (split_critical_edges): Split also edges where emitting code on them
3428 will lead to splitting later.
3429
a3a5e3d1
UB
34302009-04-25 Uros Bizjak <ubizjak@gmail.com>
3431 H.J. Lu <hongjiu.lu@intel.com>
3432
3433 PR target/39590
3434 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3435 the configured assembler supports fildq and fistpq mnemonics.
3436 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3437 * configure: Regenerated.
3438 * config.in: Ditto.
3439
3440 * config/i386/i386.c (print_operand): Handle 'Z'.
3441 ['z']: Remove handling of special fild/fist suffixes.
3442 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3443 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3444 suffix of fild insn.
3445 (*floatsi<mode>2_vector_mixed): Ditto.
3446 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3447 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3448 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3449 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3450 * config/i386/gas.h (GAS_MNEMONICS): Remove.
3451
23750d7f
BE
34522009-04-25 Ben Elliston <bje@au.ibm.com>
3453
3454 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3455 the source of a set operation.
3456
e6ff3083
AS
34572009-04-25 Anatoly Sokolov <aesok@post.ru>
3458
3459 * target.h (struct gcc_target): Add case_values_threshold field.
3460 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3461 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3462 * targhooks.c (default_case_values_threshold): New function.
3463 * targhooks.h (default_case_values_threshold): Declare function.
3464 * stmt.c (expand_case): Use case_values_threshold target hook.
3465 * expr.h (case_values_threshold): Remove declartation.
3466 * expr.c (case_values_threshold): Remove function.
3467 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3468
3469 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3470 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3471 (avr_case_values_threshold): Declare as static.
3472 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3473
3474 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3475 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3476 (mn10300_case_values_threshold): New function.
3477
569c72fc
L
34782009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3479
3480 * ira.c (setup_cover_and_important_classes): Add enum cast.
3481
ff3cb468
VM
34822009-04-24 Vladimir Makarov <vmakarov@redhat.com>
3483
3484 * genpreds.c (write_enum_constraint_num): Output definition of
3485 CONSTRAINT_NUM_DEFINED_P macro.
3486 * ira.c (setup_cover_and_important_classes): Use
3487 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3488
4f7be849
DD
34892009-04-24 DJ Delorie <dj@redhat.com>
3490
3491 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3492 __SH2A_SINGLE_ONLY__ also.
3493
735b94a7
SE
34942009-04-24 Steve Ellcey <sje@cup.hp.com>
3495
3496 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3497 (movdf_internal): Ditto.
3498 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3499 SFmode and DFmode constants.
3500 (ia64_print_operand): Add 'G' format for printing
3501 floating point constants.
3502
77a30264
RG
35032009-04-24 Richard Guenther <rguenther@suse.de>
3504
3505 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3506 from unsigned additions.
3507
2b6da65c
JM
35082009-04-24 Joseph Myers <joseph@codesourcery.com>
3509
3510 * c-typeck.c (set_init_index): Allow array designators that are
3511 not integer constant expressions with a pedwarn if pedantic.
3512
f5a17c43
BS
35132009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3514
3515 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3516 zero if no overlap in nonzero bits between the operands.
3517
32e8bb8e
ILT
35182009-04-24 Ian Lance Taylor <iant@google.com>
3519
3520 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3521 (record_dead_and_set_regs): Likewise.
3522 * df.h (struct df_mw_hardreg): Change flags field to int.
3523 (struct df_base_ref): Likewise.
3524 (struct df): Change changeable_flags field to int.
3525 * df-scan.c (df_defs_record): Change clobber_flags to int.
3526 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3527 constants rather than #define macros.
3528 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3529 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3530 (enum dwarf_calling_convention): Likewise.
3531 (enum dwarf_line_number_x_ops): Likewise.
3532 (enum dwarf_call_frame_info): Likewise.
3533 (enum dwarf_source_language): Likewise.
3534 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
3535 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
3536 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
3537 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
3538 * genrecog.c (maybe_both_true_2): Change c to int.
3539 (write_switch): Likewise. Add cast to enum type.
3540 * gimplify.c (gimplify_omp_for): Handle return values from
3541 gimplify_expr using MIN rather than bitwise or.
3542 (gimplify_expr): Add cast to enum type.
3543 * ipa-prop.c (update_jump_functions_after_inlining): Change
3544 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
3545 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
3546 Add casts to enum type.
32e8bb8e
ILT
3547 (setup_cover_and_important_classes): Change cl to int. Add casts
3548 to enum type.
3549 (setup_class_translate): Change cl and mode to int.
3550 (ira_init_once): Change mode to int.
3551 (free_register_move_costs): Likewise.
3552 (setup_prohibited_mode_move_regs): Add casts to enum type.
3553 * langhooks.c (add_builtin_function_common): Rework assertion that
3554 value fits bitfield.
3555 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
3556 * omega.c (omega_do_elimination): Avoid math on enum types.
3557 * optabs.c (expand_vec_shift_expr): Remove casts to int.
3558 * opts.c (set_debug_level): Change 2 to enum constant. Use new
3559 int local to handle integral_argment value.
3560 * regmove.c (try_auto_increment): Change PUT_MODE to
3561 PUT_REG_NOTE_KIND.
3562 * reload.c (push_secondary_reload): Add casts to enum type.
3563 (secondary_reload_class, find_valid_class): Likewise.
3564 * reload1.c (emit_input_reload_insns): Likewise.
3565 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
3566 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
3567 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
3568 constant.
3569 * tree.c (build_common_builtin_nodes): Add casts to enum type.
3570 * tree-complex.c (complex_lattice_t): Typedef to int rather than
3571 enum type.
3572 (expand_complex_libcall): Add casts to enum type.
3573 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
3574 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
3575 with ERROR_MARK, not NUM_TREE_CODES.
3576 (vect_create_epilog_for_reduction): Likewise.
3577 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 3578 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
3579 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
3580 enum machine_mode.
3581 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
3582 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 3583 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
3584 * var-tracking.c (get_init_value): Change return type to enum
3585 var_init_status.
3586 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
3587 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
3588 arm_fp_model.
3589 (arm_override_options): Add casts to enum type.
3590 (arm_emit_tls_decoration): Likewise.
3591 * config/i386/i386.c (ix86_function_specific_restore): Add casts
3592 to enum type.
3593 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
3594 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
3595 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
3596 enum type.
3597 * config/s390/s390.c (code_for_builtin_64): Change to array of
3598 enum insn_code.
3599 (code_for_builtin_31): Likewise.
3600 (s390_expand_builtin): Change code_for_builtin to enum insn_code
3601 const *.
3602 * config/sparc/sparc.c (sparc_override_options): Change value
3603 field in struct code_model to enum cmodel. In initializer change
3604 0 to NULL and add cast to enum type.
3605
3606 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
3607 Change all callers. Issue a -Wc++-compat warning using
3608 lhs_origtype if necessary.
3609 (convert_for_assignment): Issue -Wc++-compat warnings about
3610 invalid conversions to enum type on assignment.
3611 * c-common.h (build_modify_expr): Update declaration.
3612
ac4fc08a
NC
36132009-04-24 Nick Clifton <nickc@redhat.com>
3614
3615 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
3616 (function_arg_advance): Likewise.
3617 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
3618 5th alternative.
3619
f22e891a
AK
36202009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
3621
3622 * config/s390/constraints.md ('I', 'J'): Fix condition.
3623
ad58aabe
DN
36242009-04-24 Diego Novillo <dnovillo@google.com>
3625
3626 * gengtype-parse.c (parse_error): Add newline after message.
3627
879a4a01
L
36282009-04-24 H.J. Lu <hongjiu.lu@intel.com>
3629
3630 * config/i386/sse.md (avxmodesuffixs): Removed.
3631 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
3632 (*avx_pinsr<ssevecsize>): This.
3633
f63426af
BS
36342009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
3635
3636 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
3637 follow chains of regs with a single definition, and allow expressions
3638 that are function_invariant_p.
ce72fe6c 3639 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 3640
30349c74
PB
36412009-04-24 Paolo Bonzini <bonzini@gnu.org>
3642
3643 PR middle-end/39867
3644 * fold-const.c (fold_cond_expr_with_comparison): When folding
3645 > and >= to MAX, make sure the MAX uses the same type as the
3646 comparison's operands.
3647
8d8256c1
NC
36482009-04-24 Nick Clifton <nickc@redhat.com>
3649
3650 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
3651 addressing for DImode accesses.
3652 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 3653 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 3654
6216f94e
JJ
36552009-04-24 Jakub Jelinek <jakub@redhat.com>
3656
3657 PR rtl-optimization/39794
3658 * alias.c (canon_true_dependence): Add x_addr argument.
3659 * rtl.h (canon_true_dependence): Adjust prototype.
3660 * cse.c (check_dependence): Adjust canon_true_dependence callers.
3661 * cselib.c (cselib_invalidate_mem): Likewise.
3662 * gcse.c (compute_transp): Likewise.
3663 * dse.c (scan_reads_nospill): Likewise.
3664 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
3665 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
3666 canon_base_addr of the group, plus optional offset.
3667 (struct group_info): Rename canon_base_mem to
3668 canon_base_addr.
3669 (get_group_info): Set canon_base_addr to canon_rtx of base, not
3670 canon_rtx of base_mem.
3671
6de7a512
PB
36722009-04-23 Paolo Bonzini <bonzini@gnu.org>
3673
3674 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
3675 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
3676
4a3a2376
UW
36772009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3678
3679 * config/spu/spu-builtins.h: Delete file.
3680
3681 * config/spu/spu.h (enum spu_builtin_type): Move here from
3682 spu-builtins.h.
3683 (struct spu_builtin_description): Likewise. Add GTY marker.
3684 Do not use enum spu_function_code or enum insn_code.
3685 (spu_builtins): Add extern declaration.
3686
3687 * config/spu/spu.c: Do not include "spu-builtins.h".
3688 (enum spu_function_code, enum spu_builtin_type_index,
3689 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
3690 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
3691 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
3692 unsigned_V2DI_type_node): Move here from spu-builtins.h.
3693 (spu_builtin_types): Make static. Add GTY marker.
3694 (spu_builtins): Add extern declaration with GTY marker.
3695 Include "gt-spu.h".
3696
3697 * config/spu/spu-c.c: Do not include "spu-builtins.h".
3698 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
3699 Check programmatically whether all parameters are scalar.
3700
3701 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
3702
bbaba73f
EB
37032009-04-23 Eric Botcazou <ebotcazou@adacore.com>
3704
3705 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
3706 assignment from the constructor either if the target is volatile.
3707
ee93c1c6
DJ
37082009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
3709
3710 * config/arm/arm.md (insv): Do not share operands[0].
3711
b2f21330
NS
37122009-04-23 Nathan Sidwell <nathan@codesourcery.com>
3713
3714 * config/vxlib-tls.c (active_tls_threads): Delete.
3715 (delete_hook_installed): New.
3716 (tls_delete_hook): Don't delete the delete hook.
3717 (tls_destructor): Delete it here.
3718 (__gthread_set_specific): Adjust installing the delete hook.
3719 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
3720 __gthread_leave_tsd_dtor_context.
3721
4782dfa7
RAE
37222009-04-23 Rafael Avila de Espindola <espindola@google.com>
3723
3724 * c-format.c (gcc_tdiag_char_table): Add support for %E.
3725
bf758008
UB
37262009-04-23 Uros Bizjak <ubizjak@gmail.com>
3727
3728 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
3729 enum type.
3730 (alpha_rtx_costs): Ditto.
3731 (emit_unlikely_jump): Use add_reg_note.
3732 (emit_frame_store_1): Ditto.
3733 (alpha_expand_prologue): Ditto.
3734 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3735 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
3736
7323a100
NC
37372009-04-23 Nick Clifton <nickc@redhat.com>
3738
3739 * config/v850/v850.md (epilogue): Remove suppressed code.
3740 (return): Rename to return_simple and remove test of frame size.
3741 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
3742 to gen_return_simple.
3743
360032ba
JY
37442009-04-22 Jing Yu <jingyu@google.com>
3745
3746 PR testsuite/39781
3747 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
3748
53650abe
AP
37492009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
3750
3751 PR C/31499
3752 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
3753 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
3754 value is a VECTOR_CST, the element type is the element type of the
3755 vector.
3756
89043e8a
DD
37572009-04-22 DJ Delorie <dj@redhat.com>
3758
3759 * config/m32c/m32c.h: Update GTY annotations to new syntax.
3760
023f059b
JJ
37612009-04-22 Jakub Jelinek <jakub@redhat.com>
3762
3763 * alias.c (find_base_term): Move around LO_SUM case, so that
3764 CONST falls through into PLUS/MINUS handling.
3765
2c0eba5a
JJ
3766 PR c/39855
3767 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
3768 into 0, use omit_one_operand.
3769
9a461028
BE
37702009-04-23 Ben Elliston <bje@au.ibm.com>
3771
3772 * config/rs6000/linux-unwind.h (get_regs): Remove type
3773 puns. Change the type of `pc' to an array of unsigned ints and
3774 update all users. Constify frame24.
3775
653e2568
DD
37762009-04-22 DJ Delorie <dj@redhat.com>
3777
3778 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
3779 declarations before code.
3780 (current_function_special_page_vector): Likewise.
3781 (m32c_expand_insv): Silence a warning.
3782
60839f5d 37832009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
3784
3785 * alias.c: Update GTY annotations to new syntax.
3786 * basic-block.h: Likewise.
3787 * bitmap.h: Likewise.
3788 * c-common.h: Likewise.
3789 * c-decl.c: Likewise.
3790 * c-parser.c: Likewise.
3791 * c-pragma.c: Likewise.
3792 * c-tree.h: Likewise.
3793 * cfgloop.h: Likewise.
3794 * cgraph.h: Likewise.
3795 * config/alpha/alpha.c: Likewise.
3796 * config/arm/arm.h: Likewise.
3797 * config/avr/avr.h: Likewise.
3798 * config/bfin/bfin.c: Likewise.
3799 * config/cris/cris.c: Likewise.
3800 * config/darwin.c: Likewise.
3801 * config/frv/frv.c: Likewise.
3802 * config/i386/i386.c: Likewise.
3803 * config/i386/i386.h: Likewise.
3804 * config/i386/winnt.c: Likewise.
3805 * config/ia64/ia64.h: Likewise.
3806 * config/iq2000/iq2000.c: Likewise.
3807 * config/mips/mips.c: Likewise.
3808 * config/mmix/mmix.h: Likewise.
3809 * config/pa/pa.c: Likewise.
3810 * config/pa/pa.h: Likewise.
3811 * config/rs6000/rs6000.c: Likewise.
3812 * config/s390/s390.c: Likewise.
3813 * config/sparc/sparc.c: Likewise.
3814 * config/xtensa/xtensa.c: Likewise.
3815 * cselib.h: Likewise.
3816 * dbxout.c: Likewise.
3817 * dwarf2out.c: Likewise.
3818 * except.c: Likewise.
3819 * except.h: Likewise.
3820 * fixed-value.h: Likewise.
3821 * function.c: Likewise.
3822 * function.h: Likewise.
3823 * gimple.h: Likewise.
3824 * integrate.c: Likewise.
3825 * optabs.c: Likewise.
3826 * output.h: Likewise.
3827 * real.h: Likewise.
3828 * rtl.h: Likewise.
3829 * stringpool.c: Likewise.
3830 * tree-data-ref.c: Likewise.
3831 * tree-flow.h: Likewise.
3832 * tree-scalar-evolution.c: Likewise.
3833 * tree-ssa-address.c: Likewise.
3834 * tree-ssa-alias.h: Likewise.
3835 * tree-ssa-operands.h: Likewise.
3836 * tree.c: Likewise.
3837 * tree.h: Likewise.
3838 * varasm.c: Likewise.
3839 * varray.h: Likewise.
3840 * vec.h: Likewise.
bf758008 3841 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
3842 * doc/gty.texi: Update GTY documentation to new syntax.
3843 * gengtype-lex.l: Enforce attribute-like syntax for GTY
3844 annotations on structs.
3845 * gengtype-parse.c: Likewise.
3846
a123d175
MH
38472009-04-22 Mark Heffernan <meheff@google.com>
3848
bf758008 3849 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 3850
4c7c486a
KH
38512009-04-22 Kazu Hirata <kazu@codesourcery.com>
3852
3853 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
3854 where appropriate.
3855
6e782a29
KH
38562009-04-22 Kazu Hirata <kazu@codesourcery.com>
3857
3858 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
3859 the same as a PLUS without a shift. Increase the cost of a
3860 CONST_INT in MULT.
3861
38d2336a
MLI
38622009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3863
3864 * Makefile.in: Update dependencies.
bf758008 3865 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
3866 * errors.h: Remove bogus comment about compatibility.
3867 (warning): Update declaration.
3868 * genautomata.c: Update all calls to warning.
3869 * gimple.c: Do not include errors.h. Include toplev.h.
3870 * tree-ssa-structalias.c: Do not include errors.h.
3871 * omega.c: Likewise.
3872 * tree-ssa-reassoc.c: Likewise.
3873 * config/spu/spu-c.c: Likewise.
3874 * config/spu/t-spu-elf: Update dependencies.
3875
aea4deba
RG
38762009-04-22 Richard Guenther <rguenther@suse.de>
3877
3878 PR tree-optimization/39824
3879 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
3880 make sure the types are compatible.
3881
cfc93532
MLI
38822009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
3883
3884 PR c++/14875
3885 * c-common.c (c_parse_error): Take a token_flags parameter.
3886 Use token_type for the token type instead.
3887 Pass token_flags to cpp_type2name.
3888 * c-common.h (c_parse_error): Update declaration.
3889 * c-parser.c (c_parser_error): Pass 0 as token flags.
3890
8632d02a
AB
38912009-04-22 Andrey Belevantsev <abel@ispras.ru>
3892
3893 PR rtl-optimization/39580
3894 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
3895
4c33221c
UW
38962009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3897
3898 * function.c (expand_function_end): Do not emit a jump to the "naked"
3899 return label for fall-through returns.
3900 * except.c (sjlj_emit_function_exit): Always place the call to the
3901 unregister function at the location installed by expand_function_end.
3902
9925bce0
RG
39032009-04-22 Richard Guenther <rguenther@suse.de>
3904
3905 PR tree-optimization/39845
3906 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
3907 (gen_inbound_check): Likewise.
3908
24a40b35
NS
39092009-04-22 Nathan Sidwell <nathan@codesourcery.com>
3910
3911 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
3912 padding for PPC.
3913 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
3914 * config/vxlib.c (__gthread_once): Add race guard for PPC.
3915
6c34a092
PB
39162009-04-22 Paolo Bonzini <bonzini@gnu.org>
3917
3918 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
3919 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
3920 shift counts to avoid out-of-bounds array accesses.
3921
baa48dfa
PB
39222009-04-22 Paolo Bonzini <bonzini@gnu.org>
3923
3924 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
3925 (Pmode): Move above.
3926
7d83f4f5
UB
39272009-04-22 Uros Bizjak <ubizjak@gmail.com>
3928
3929 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
3930 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
3931 GET_CODE macro. Use IN_RANGE macro where appropriate.
3932 * config/alpha/alpha.h: Ditto.
3933 * config/alpha/alpha.md: Ditto.
3934 * config/alpha/constraints.md: Ditto.
3935 * config/alpha/predicates.md: Ditto.
3936
3ad606bc
PB
39372009-04-22 Paolo Bonzini <bonzini@gnu.org>
3938
3939 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
3940 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3941 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3942 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3943 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3944 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3945 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3946 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3947 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3948 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3949 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3950 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3951 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3952 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3953 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3954 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3955 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3956 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3957 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3958 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3959 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3960 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3961 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3962 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3963 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3964 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3965 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
3966
3cabd6d1
LB
39672009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3968
3969 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
3970 references from comments.
3971 * cfgbuild.c: (count_basic_blocks): Delete.
3972 (find_basic_blocks_1): Delete.
3973 (find_basic_blocks): Delete.
3974 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 3975 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
3976 * except.h (finish_eh_generation): Delete.
3977 * basic-block.h (find_basic_blocks): Delete.
3978 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
3979
270d1bcd
DK
39802009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
3981
3982 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
3983 (sdbout_parms): Likewise.
3984
b757d36f
KK
39852009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
3986
3987 * config/sh/sh.c (prepare_cbranch_operands): Use
3988 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
3989 (expand_cbranchdi4): Likewise.
3990 (from_compare): Add cast to enum type.
3991 (expand_cbranchsi4): Use add_reg_note.
3992 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
3993 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
3994 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
3995 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
3996 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
3997 instead of CODE_FOR_nothing.
3998 (cbranchdi4): Likewise. Fix the order of arguments for
3999 gen_rtx_fmt_ee.
4000 (push_fpscr): Use add_reg_note.
4001 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
4002 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
4003
ad41bd84
JM
40042009-04-21 Joseph Myers <joseph@codesourcery.com>
4005
4006 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
4007 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4008 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4009 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
4010 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
4011 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
4012 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
4013 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
4014 config/alpha/x-vms, config/arc/t-arc,
4015 config/arm/README-interworking, config/arm/arm-c.c,
4016 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
4017 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
4018 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
4019 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
4020 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
4021 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
4022 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
4023 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
4024 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
4025 config/cris/t-elfmulti, config/crx/t-crx,
4026 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
4027 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
4028 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
4029 config/h8300/t-h8300, config/i386/athlon.md,
4030 config/i386/darwin-libgcc.10.4.ver,
4031 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
4032 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
4033 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
4034 config/i386/t-linux64, config/i386/t-nwld,
4035 config/i386/t-rtems-i386, config/i386/t-sol2-10,
4036 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
4037 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
4038 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
4039 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
4040 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
4041 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
4042 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
4043 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
4044 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
4045 config/m68k/t-uclinux, config/mcore/t-mcore,
4046 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
4047 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
4048 config/mips/crtn.asm, config/mips/irix-crti.asm,
4049 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
4050 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
4051 config/mips/mips-fixed.md, config/mips/sb1.md,
4052 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
4053 config/mips/t-iris6, config/mips/t-isa3264,
4054 config/mips/t-libgcc-mips16, config/mips/t-linux64,
4055 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
4056 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
4057 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
4058 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
4059 config/mn10300/t-linux, config/mn10300/t-mn10300,
4060 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
4061 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
4062 config/picochip/libgccExtras/clzsi2.asm,
4063 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
4064 config/rs6000/darwin-libgcc.10.4.ver,
4065 config/rs6000/darwin-libgcc.10.5.ver,
4066 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
4067 config/rs6000/t-aix43, config/rs6000/t-aix52,
4068 config/rs6000/t-darwin, config/rs6000/t-fprules,
4069 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
4070 config/rs6000/t-lynx, config/rs6000/t-netbsd,
4071 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
4072 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
4073 config/rs6000/t-rtems, config/rs6000/t-spe,
4074 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
4075 config/score/t-score-elf, config/sh/divcost-analysis,
4076 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
4077 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
4078 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
4079 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
4080 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
4081 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
4082 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
4083 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
4084 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
4085 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
4086 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
4087 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
4088 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
4089 limitx.h, version.c, xcoff.h: Add copyright and license notices.
4090 * config/h8300/genmova.sh: Include copyright and license notices
4091 in generated output.
4092 * config/h8300/mova.md: Regenerate.
4093 * doc/install.texi2html: Include word "Copyright" in copyright
4094 notice and use name "Free Software Foundation, Inc.".
4095 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4096 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4097 ChangeLog-2007, ChangeLog-2008: Correct dates.
4098
ca80e52b
EB
40992009-04-21 Eric Botcazou <ebotcazou@adacore.com>
4100
4101 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
4102 NE_EXPR operations as well.
4103 * c-parser.c (c_parser_condition): Do not set location information on
4104 the condition.
4105 (c_parser_conditional_expression): Likewise.
4106 (c_parser_binary_expression): Set location information on operators.
4107 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
4108 TRUTH_NOT_EXPR has been folded.
4109 * fold-const.c (fold_truth_not_expr): Copy location information from
4110 the incoming expression to the outgoing one.
4111 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
4112 recursive calls on the LHS of the operator but pass that of the
4113 operator to recursive calls on the RHS of the operator. Set it
4114 on the COND_EXPR.
4115 (shortcut_cond_expr): Set the locus of the operator on the second
4116 COND_EXPR and that of the expression on the first in degenerate cases.
4117 Pass the locus of the expression to calls to shortcut_cond_r.
4118 Set the locus of the 'then' block on the associated jump, if any.
4119 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
4120 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
4121 expression to call to gimplify_boolean_expr.
4122
35091630
KT
41232009-04-21 Kai Tietz <kai.tietz@onevision.com>
4124
4125 * config.gcc: Add additional configuration for
4126 i686-w64-mingw* and x86_64-w64-mingw* triplet.
4127 * config/i386/mingw-w64.h: New mingw-w64 specific header.
4128 (CPP_SPEC): Redefine for allowing -municode option.
4129 (STARTFILE_SPEC): Likewise.
4130 * config/i386/t-mingw-w64: New.
4131 * config/i386/mingw-w64.opt: New.
4132 (municode): Add new target option.
4133 * doc/invoke.texi (municode): Add documentation for new option.
4134
0267afc4
ILT
41352009-04-21 Ian Lance Taylor <iant@google.com>
4136
4137 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4138 Correct test for number of arguments.
4139 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
4140
2ba9daa7
AS
41412009-04-21 Andreas Schwab <schwab@linux-m68k.org>
4142
4143 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
4144 argument of emit_library_call.
4145
ad8a1ac0
RG
41462009-04-21 Richard Guenther <rguenther@suse.de>
4147
4148 PR middle-end/39829
4149 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
4150 inside VIEW_CONVERT_EXPRs.
4151
7156c8ab
MJ
41522009-04-21 Martin Jambor <mjambor@suse.cz>
4153
4154 * tree-switch-conversion.c (build_constructors): Split a long line.
4155 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
4156 (build_one_array): Create assigns of constants if possible, do not
4157 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
4158 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
4159 make_rename_temp. Do not call mark_symbols_for_renaming, call
4160 update_stmt.
4161 (gen_def_assigns): Do not call mark_symbols_for_renaming or
4162 find_new_referenced_vars, call update_stmt.
4163 (gen_inbound_check): Use create_tmp_var and create ssa names manually
4164 instead of calling make_rename_temp. Do not call
4165 find_new_referenced_vars or mark_symbols_for_renaming, call
4166 update_stmt.
4167
2970ccb3
RG
41682009-04-21 Richard Guenther <rguenther@suse.de>
4169
4170 PR tree-optimization/39827
7d83f4f5 4171 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
4172 (tree_ssa_phiprop): Pass the correct array size.
4173
47f402d1
UB
41742009-04-21 Uros Bizjak <ubizjak@gmail.com>
4175
4176 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
4177
1e4ae551
MLI
41782009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
4179
4180 PR 16202
4181 * c-typeck.c (lvalue_p): Move declaration ...
4182 * c-common.h (lvalue_p): ... to here.
4183 * c-common.c (candidate_equal_p): New.
4184 (add_tlist): Use it.
4185 (merge_tlist): Use it.
4186 (warn_for_collisions_1): Likewise.
4187 (warning_candidate_p): Accept more candidates.
4188 (verify_tree): A warning candidate can be an expression. Use
4189 candidate_equal_p.
4190
244609a6
BE
41912009-04-21 Ben Elliston <bje@au.ibm.com>
4192
4193 PR target/5267
4194 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
4195 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
4196 options. Remove -mcall-solaris documentation.
4197
9c650d90
MLI
41982009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
4199
4200 PR c++/13358
4201 * doc/invoke.texi (-Wlong-long): Update description.
4202 * c-lex (interpret_integer): Only warn if there was no previous
4203 overflow and -Wlong-long is enabled.
4204 * c-decl.c (declspecs_add_type): Drop redundant flags.
4205 * c.opt (Wlong-long): Init to -1.
4206 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
4207 and front-end warn_long_long. Wlong-long only depends on other
4208 flags if it is uninitialized.
4209 * c-parser.c (disable_extension_diagnostics): warn_long_long is
4210 the same for CPP and FE.
4211 (restore_extension_diagnostics): Likewise.
4212
bbbbb16a
ILT
42132009-04-20 Ian Lance Taylor <iant@google.com>
4214
4215 Fix enum conversions which are invalid in C++:
47f402d1
UB
4216 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
4217 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
4218 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
4219 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 4220 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 4221 (dbxout_parms): Likewise.
47f402d1 4222 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
4223 (df_clear_flags): Likewise.
4224 * df-problems.c (df_rd_bb_local_compute_process_def): Change
4225 top_flag parameter to int.
4226 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
4227 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
4228 Remove cast.
bbbbb16a
ILT
4229 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
4230 (df_ref_create_structure, df_def_record_1): Likewise.
4231 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
4232 (df_notes_rescan): Change 0 to VOIDmode in function call.
4233 (df_get_call_refs, df_insn_refs_collect): Likewise.
4234 (df_bb_regs_collect): Likewise.
4235 (df_entry_block_defs_collect): Likewise.
4236 (df_exit_block_uses_collect): Likewise.
4237 * df.h: Update declarations.
4238 * double-int.c (double_int_divmod): Add cast to enum type.
4239 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
4240 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
4241 (based_loc_descr): Likewise.
4242 (loc_descriptor_from_tree_1): Change first_op and second_op to
4243 enum dwarf_location_atom. Add cast to enum type.
4244 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 4245 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
4246 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
4247 (do_store_flag): Likewise.
4248 * fixed-value.h (struct fixed_value): Change mode to enum
4249 machine_mode.
47f402d1 4250 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
4251 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
4252 function call.
4253 (insert_insn_decl, insert_decl, insert_state): Likewise.
4254 (automata_list_finish): Likewise.
4255 * genrecog.c (process_define_predicate): Add cast to enum type.
4256 * gensupport.c (init_predicate_table): Add cast to enum type.
4257 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4258 function call.
4259 (gimple_build_call_1, gimple_build_label): Likewise.
4260 (gimple_build_goto, gimple_build_asm_1): Likewise.
4261 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 4262 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
4263 (enum fallback): Rename from enum fallback_t.
4264 (fallback_t): Typedef as int.
4265 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4266 GSI_SAME_STMT in function call.
4267 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4268 enum type.
4269 (setup_reg_class_relations): Likewise.
47f402d1 4270 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
4271 (setup_prohibited_class_mode_regs): Add cast to enum type.
4272 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 4273 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
4274 (record_address_regs): Change i to enum reg_class.
4275 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4276 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4277 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4278 (GET_MODE_2XWIDER_MODE): Likewise.
4279 (GET_CLASS_NARROWEST_MODE): Likewise.
4280 * omp-low.c (expand_omp_for): Add cast to enum type.
4281 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4282 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4283 * postreload.c (reload_cse_simplify_operands): Change rclass local
4284 to enum reg_class.
4285 * predict.c (combine_predictions_for_insn): Change best_predictor
4286 and predictor to enum br_predictor.
4287 (combine_predictions_for_bb): Likewise.
4288 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4289 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 4290 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
4291 * reginfo.c (init_move_cost): Add casts to enum type.
4292 (init_reg_sets_1, init_fake_stack_mems): Likewise.
4293 * regmove.c (regclass_compatible_p): Change class0 and class1 to
4294 enum reg_class.
4295 * reload.c (find_valid_class): Add casts to enum type.
4296 (push_reload): Change 0 to NO_REGS in function call.
4297 (find_reloads): Change this_alternative to array of enum
4298 reg_class. Remove some now-unnecessary casts.
4299 (make_memloc): Change 0 to VOIDmode in function call.
4300 * reload1.c (reload): Change 0 to VOIDmode in function call.
4301 (eliminate_regs_1, elimination_effects): Likewise.
4302 (eliminate_regs_in_insn): Likewise.
4303 (emit_input_reload_insns): Add cast to enum type.
4304 (delete_output_reload): Change 0 to VOIDmode in function call.
4305 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4306 to enum type in function call.
4307 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4308 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 4309 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
4310 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4311 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4312 (dump_function): Likewise.
4313 * tree-dump.h: Update declarations.
4314 * tree-pass.h: Update declarations.
4315 * varasm.c (assemble_integer): Change mclass to enum mode_class.
4316 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4317 enum type.
4318 (arm_rtx_costs_1): Correct parenthesization.
4319 (arm_rtx_costs): Add casts to enum type.
4320 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4321 (vfp_emit_fstmd): Use add_rg_note.
4322 (emit_multi_reg_push, emit_sfm): Likewise.
4323 (thumb_set_frame_pointer): Likewise.
4324 (arm_expand_prologue): Likewise.
4325 (arm_regno_class): Change return type to enum reg_class.
4326 (thumb1_expand_prologue): Use add_reg_note.
4327 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4328 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4329 in function call.
4330 * config/arm/gentune.sh: Add cast to enum type.
4331 * config/arm/arm-tune.md: Rebuild.
4332 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4333 (ix86_split_fp_branch, predict_jump): Likewise.
4334 (ix86_expand_multi_arg_builtin): Change sub_code from enum
4335 insn_code to enum rtx_code.
4336 (ix86_builtin_vectorized_function): Add cast to enum type.
4337 * config/i386/i386.md (truncdfsf2): Change slot to enum
4338 ix86_stack_slot.
4339 (truncxf<mode>2, isinf<mode>2): Likewise.
4340 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4341 enum type.
4342 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4343 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4344 (insert_bundle_state): Change 1 to INSERT in function call.
4345 (ia64_add_bundle_selector_before): Likewise.
4346 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4347 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4348 (restore_stack_nonlocal): Likewise.
4349 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4350 function call.
4351 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4352 function call.
4353 (mips_rtx_costs): Likewise.
4354 (mips_override_options): Add casts to enum type.
4355 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4356 in function call.
4357 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4358 (store_reg, set_reg_plus_d): Likewise.
4359 (hppa_expand_prologue, hppa_profile_hook): Likewise.
4360 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4361 cast to enum type.
4362 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4363 function call.
4364 (emit_unlikely_jump): Use add_reg_note.
4365 (rs6000_emit_allocate_stack): Likewise.
4366 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4367 (output_toc): Change 1 to INSERT in function call.
4368 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4369 (rs6000_initialize_trampoline): Likewise.
4370 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4371 function call.
4372 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4373 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4374 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4375 (save_gprs): Use add_reg_note.
4376 (s390_emit_prologue): Likewise.
47f402d1 4377 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
4378 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4379 (sparc_fold_builtin): Add cast to enum type.
4380 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4381 enum insn_code.
4382 (spu_expand_prologue): Use add_reg_note.
47f402d1 4383 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
4384
43852009-04-20 Ian Lance Taylor <iant@google.com>
4386
4387 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4388 (c_parser_postfix_expression_after_primary): Get VEC for list of
4389 arguments. Get original types of arguments. Call
4390 build_function_call_vec.
4391 (cached_expr_list_1, cached_expr_list_2): New static variables.
4392 (c_parser_expr_list): Change return type to VEC *. Add
4393 p_orig_types parameter. Change all callers.
4394 (c_parser_release_expr): New static function.
4395 (c_parser_vec_to_tree_list): New static function.
4396 * c-typeck.c (build_function_call): Rewrite to build a VEC and
4397 call build_function_call_vec.
4398 (build_function_call_vec): New function, based on old
4399 build_function_call.
4400 (convert_arguments): Remove nargs and argarray parameters. Change
4401 values to a VEC. Add origtypes parameter.
47f402d1 4402 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
4403 (convert_for_assignment): Add origtype parameter. Change all
4404 callers. If warn_cxx_compat, check for conversion to an enum
4405 type when calling a function.
4406 (store_init_value): Add origtype parameter. Change all callers.
4407 (digest_init): Likewise.
4408 (struct init_node): Add origtype field.
4409 (add_pending_init): Add origtype parameter. Change all callers.
4410 (output_init_element): Likewise.
4411 (output_pending_init_elements): Pass origtype from init_node to
4412 output_init_element.
f28a61ab 4413 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
4414 output_init_element.
4415 (c_finish_return): Add origtype parameter. Change all callers.
4416 * c-common.c (sync_resolve_size): Change params to VEC *. Change
4417 caller.
4418 (sync_resolve_params): Likewise.
47f402d1 4419 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 4420 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 4421 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
4422 * c-decl.c (finish_decl): Add origtype parameter. Change all
4423 callers. Call build_function_call_vec rather than
4424 build_function_call for cleanup.
4425 * c-tree.h: Update declarations.
4426 * c-common.h: Update declarations.
4427 * stub-objc.c (objc_rewrite_function_call): Change parameter from
4428 params to first_param.
4429 * target.h (struct gcc_target): Change resolve_overloaded_builtin
4430 params parameter from tree to void *.
4431 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4432 Change arglist parameter to have type void *, and to be a pointer
4433 to a VEC.
4434 * config/rs6000/rs6000-protos.h
4435 (altivec_resolve_overloaded_builtin): Update declaration.
4436 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4437 fnargs parameter to have type void *, and to be a pointer to a
4438 VEC. Call build_function_call_vec instead of
4439 build_function_call.
47f402d1 4440 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 4441
6ff078d4 44422009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 4443 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
4444 H.J. Lu <hongjiu.lu@intel.com>
4445
4446 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4447
4448 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4449 (IX86_LEA_PRIORITY): Likewise.
4450 (distance_non_agu_define): New function.
4451 (distance_agu_use): Likewise.
4452 (ix86_lea_for_add_ok): Likewise.
4453 (ix86_dep_by_shift_count): Likewise.
4454
4455 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4456 should split for LEA.
4457
4458 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4459 function.
4460 (ix86_dep_by_shift_count): Likewise.
4461
87a5b4cc
RG
44622009-04-20 Richard Guenther <rguenther@suse.de>
4463
4464 * expr.c (handled_component_p): Move ...
4465 * tree.h (handled_component_p): ... here.
4466 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4467 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4468 and REALPART_EXPR to be in one group.
4469
438c239d
RG
44702009-04-20 Richard Guenther <rguenther@suse.de>
4471
4472 * basic-block.h (get_all_dominated_blocks): Declare.
4473 * dominance.c (get_all_dominated_blocks): New function.
4474 * tree-cfg.c (get_all_dominated_blocks): Remove.
4475 (remove_edge_and_dominated_blocks): Adjust.
4476 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4477 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
4478 instead of recursing.
4479
fed5ae11
DK
44802009-04-20 Doug Kwan <dougkwan@google.com>
4481
4482 * cgraph.h (cgraph_node_ptr): New type for vector functions.
4483 (struct cgraph_node_set_def): New type.
4484 (cgraph_node_set) New type. Also declare vector functions.
4485 (struct cgraph_node_set_element_def): New type.
4486 (cgraph_node_set_element): Ditto.
4487 (cgraph_node_set_iterator): New iterator type.
4488 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4489 cgraph_node_set_remove, dump_cgraph_node_set,
4490 debug_cgraph_node_set): New prototypes.
4491 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4492 cgraph_node_set_size): New inlines.
4493 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4494 including cgraph.h.
4495 (struct ipa_opt_pass): Add struct cgraph_node_set_def
4496 argument to function 'write_summary'.
4497 * ipa.c: Include ggc.h.
4498 (hash_cgraph_node_set_element,
4499 eq_cgraph_node_set_element, cgraph_node_set_new,
4500 cgraph_node_set_add, cgraph_node_set_remove,
4501 cgraph_node_set_find, dump_cgraph_node_set,
4502 debug_cgraph_node_set): New functions.
4503 * Makefile.in (ipa.o): Add dependency on GGC_H.
4504
c4551b28
IR
45052009-04-20 Ira Rosen <irar@il.ibm.com>
4506
4507 PR tree-optimization/39675
2ba9daa7 4508 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
4509 check of the return code of vect_schedule_slp. Check that
4510 stmt_vec_info still exists for the statement, before checking its
4511 vectorization type.
c4551b28 4512
21a495fb
MM
45132009-04-20 Michael Matz <matz@suse.de>
4514
4515 * Makefile.in (generated_files): Take out $(simple_generated_c).
4516
8e208874
DK
45172009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
4518
4519 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
4520 (UINTPTR_TYPE): Likewise.
4521
a45e580b
JM
45222009-04-19 Joseph Myers <joseph@codesourcery.com>
4523
4524 PR c/37481
4525 * c-typeck.c (digest_init): Check for initializing an array with a
4526 string literal.
4527
20845d35
JM
45282009-04-19 Joseph Myers <joseph@codesourcery.com>
4529
4530 PR c/19771
4531 * c-semantics.c (pop_stmt_list): Propagate
4532 STATEMENT_LIST_HAS_LABEL to parent statement list.
4533
28143fdd
AN
45342009-04-19 Adam Nemet <anemet@caviumnetworks.com>
4535
4536 * config/mips/mips.h (mips_tune_attr): New macro.
4537 * config/mips/mips.md (cpu): Use it.
4538
da377db9
JM
45392009-04-19 Joseph Myers <joseph@codesourcery.com>
4540
4541 PR c/38243
4542 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
4543 declaring a tag.
4544
3baf459d
DN
45452009-04-19 Diego Novillo <dnovillo@google.com>
4546
4547 * toplev.c (compile_file): Move call to coverage_finish ...
4548 * cgraphunit.c (ipa_passes): ... here.
4549 Call cgraph_process_new_functions.
4550 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
4551 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
4552
b6fa5b01
JH
45532009-04-19 Jan Hubicka <jh@suse.cz>
4554
47f402d1
UB
4555 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
4556 cfun.
b6fa5b01
JH
4557 (dump_cgraph_node): Dump can throw external flag.
4558 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
4559
ca409efd
MLI
45602009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
4561
4562 PR c/32061
4563 PR c++/36954
4564 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
4565 * common.opt (Wlogical-op): Move from here...
4566 * c.opt (Wlogical-op): ... to here.
4567 * c-typeck.c (parser_build_binary_op): Update call to
4568 warn_logical_operator.
4569 * c-opts.c (c_common_post_options): Enable warn_logical_op with
4570 extra_warnings.
4571 * c-common.c (warn_logical_op): Update.
4572 * c-common.h (warn_logical_op): Update declaration.
4573
9db4cdd3
EB
45742009-04-19 Eric Botcazou <ebotcazou@adacore.com>
4575
4576 * tree.c (protected_set_expr_location): Fix formatting.
4577
f37acdf9
JM
45782009-04-18 Joseph Myers <joseph@codesourcery.com>
4579
4580 PR c/27676
4581 * c-typeck.c (readonly_warning): new.
4582 (build_unary_op, build_modify_expr): Use readonly_warning for
4583 storing into something readonly but not const-qualified.
4584
2b4b7036
JM
45852009-04-18 Joseph Myers <joseph@codesourcery.com>
4586
4587 PR c/22367
4588 * c-typeck.c (build_unary_op): Check for taking address of
4589 expression of type void.
4590
3ce62965
JM
45912009-04-18 Joseph Myers <joseph@codesourcery.com>
4592
4593 PR c/35210
4594 * c-typeck.c (build_function_call): Check for calling a function
4595 with qualified void return types. Call require_complete_type when
4596 generating a trap.
4597
2505c5ed
JH
45982009-04-18 Jan Hubicka <jh@suse.cz>
4599
4600 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
4601 Set nothrow flag.
4602 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
4603 can_throw_external flag.
4604 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
4605 * ipa-pure-const.c (ignore_edge): New function.
4606 (propagate): Compute order for NOTHROW computation; set NOTHROWs
4607 only over can_throw_external edges.
4608 (local_pure_const): Add nothrow flag.
4609 * ipa-utils.c (searchc): Add ignore_edge callback.
4610 (ipa_utils_reduced_inorder): Add ignore_edge callback.
4611 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
4612 (set_nothrow_function_flags): Update cgraph.
4613 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
4614
2586ba4b
RG
46152009-04-18 Richard Guenther <rguenther@suse.de>
4616
4617 PR middle-end/39804
4618 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
4619 (fold_stmt): ... this and ...
4620 (fold_stmt_inplace): ... this.
4621 (fold_stmt_1): Fold references in calls and asms.
4622 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
4623
1eefab17
KH
46242009-04-18 Kazu Hirata <kazu@codesourcery.com>
4625
4626 * tree-vrp.c (ssa_name_nonzero_p): Remove.
4627 * tree.h: Remove the prototype for ssa_name_nonzero_p.
4628
aa424b01
KH
46292009-04-18 Kazu Hirata <kazu@codesourcery.com>
4630
4631 * tree.c (function_args_count): Remove.
4632 * tree.h: Remove the prototype for function_args_count.
4633
613a896b
KH
46342009-04-18 Kazu Hirata <kazu@codesourcery.com>
4635
4636 * tree-iterator.c (expr_only): Remove.
4637 * tree.h: Remove the prototype for expr_only.
4638
579e694c
KH
46392009-04-18 Kazu Hirata <kazu@codesourcery.com>
4640
4641 * reginfo.c (cannot_change_mode_set_regs): Remove.
4642 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
4643
ee7e3ad3
AS
46442009-04-08 Anatoly Sokolov <aesok@post.ru>
4645
4646 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
4647 whether operands 0 and 1 overlaps.
4648
92ef7fb1
MLI
46492009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
4650
4651 PR middle-end/36902
4652 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
4653 pointer. Use warning_at instead of warning.
4654 (search_for_addr_array): Likewise.
4655 (check_array_bounds): Likewise.
4656 (check_all_array_refs): Check that the incoming edge is not in the
4657 list of edges to be removed.
4658 (check_all_array_refs): Avoid the temporal pointer.
4659 (vrp_visit_cond_stmt): Fix typo.
4660 (simplify_switch_using_ranges): Handle the case where the switch
4661 index is an integer constant.
4662
0e097268
AN
46632009-04-18 Adam Nemet <anemet@caviumnetworks.com>
4664
4665 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
4666
c782f1dd
KH
46672009-04-18 Kazu Hirata <kazu@codesourcery.com>
4668
4669 * doc/extend.texi, doc/invoke.texi: Fix typos.
4670
668fb0e8
CC
46712009-04-17 Cary Coutant <ccoutant@google.com>
4672
4673 * tree-flow-inline.h (get_lineno): Fix inverted test.
4674
4d4014c1
DN
46752009-04-17 Diego Novillo <dnovillo@google.com>
4676
4677 * tree-ssa-pre.c (create_expression_by_pieces): Remove
4678 assertion for AVAIL_OUT.
4679
2984e1b6
MF
46802009-04-17 Mike Frysinger <vapier@gentoo.org>
4681
4682 PR target/38627
4683 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
4684 * config/sh/linux-atomic.asm: Likewise.
4685
9994a182
DN
46862009-04-17 Diego Novillo <dnovillo@google.com>
4687
4688 * except.c (debug_eh_tree): New.
4689 (struct eh_region, struct eh_status): Move ...
4690 * except.h: ... here.
4691 (add_type_for_runtime): Declare extern.
4692 (lookup_type_for_runtime): Likewise.
4693 (debug_eh_tree): Declare.
4694 * Makefile.in (GTFILES): List except.h before except.c
4695
07485407
DN
46962009-04-17 Diego Novillo <dnovillo@google.com>
4697
47f402d1 4698 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
4699 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
4700 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
4701 (find_vars_r): ... here.
4702 * tree-flow.h (find_referenced_vars_in): Declare.
4703 * tree-ssa-pre.c (create_expression_by_pieces): Assert
4704 that AVAIL_OUT exists for BLOCK.
4705 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
4706 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
4707 (tree-parloops.o): Likewise.
4708
4e53d196
SB
47092009-04-17 Simon Baldwin <simonb@google.com>
4710
4711 * toplev.c (default_tree_printer): Add handling for %E format.
4712
413d3aa8
DN
47132009-04-17 Diego Novillo <dnovillo@google.com>
4714
47f402d1
UB
4715 * tree-pretty-print.c (dump_generic_node): Add break after
4716 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
4717 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
4718 FUNCTION_TYPE together. Call print_struct_decl when printing
4719 structures and TDF_SLIM is not given.
413d3aa8
DN
4720 (print_struct_decl): Fix logic for detecting recursion.
4721
5a691e98
RAE
47222009-04-17 Rafael Avila de Espindola <espindola@google.com>
4723
4724 PR 31567
4725 * gcc.c (create_at_file): New.
4726 (compile_input_file_p): New.
4727 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
4728 * main.c (main): Update call to toplev_main.
4729 * toplev.c (toplev_main): Change signature. Call expandargv.
4730 * toplev.h (toplev_main): Change signature.
4731
9eacf7a6
EB
47322009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4733
4734 * dwarf2out.c (field_byte_offset): Use the type size as the field size
4735 if the latter is not constant.
4736
58298177
DE
47372009-04-17 David Edelsohn <edelsohn@gnu.org>
4738
4739 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
4740
5b4c43d7
EB
47412009-04-17 Eric Botcazou <ebotcazou@adacore.com>
4742
4743 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
4744 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
4745
b51605c4
RG
47462009-04-17 Richard Guenther <rguenther@suse.de>
4747
4748 * tree-ssa-structalias.c (get_constraint_for_component_ref):
4749 Handle component references view-converting an invariant address.
4750
9e3be889
AN
47512009-04-17 Adam Nemet <anemet@caviumnetworks.com>
4752
4753 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
4754 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
4755 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
4756 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
4757 Use @deftypevr rather than @deftypevar.
4758
7c3e9dc3
RG
47592009-04-17 Richard Guenther <rguenther@suse.de>
4760
47f402d1 4761 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
4762 (get_prop_source_stmt): Likewise.
4763 (can_propagate_from): Likewise.
4764
aca600aa
AS
47652009-04-17 Andrew Stubbs <ams@codesourcery.com>
4766
4767 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
4768 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
4769 (--with-multilib-list): Add default value.
4770 * configure: Regenerate.
4771 * Makefile.in (TM_ENDIAN_CONFIG): Define.
4772 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
4773 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
4774 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
4775 Don't add default cpu to multilib list unnecessarily, but do enable
4776 the relevant compiler option..
4777 Add support for --with-multilib-list=<blank> and
4778 --with-multilib-list=!<somelib> to supress unwanted multilibs.
4779 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
4780 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
4781 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
4782 TM_MULTILIB_CONFIG.
4783 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
4784 (MULTILIB_OSDIRNAMES): New variable.
4785 * config/sh/t-1e: Delete file.
4786 * config/sh/t-mlib-sh1: Delete file.
4787 * config/sh/t-mlib-sh2: Delete file.
4788 * config/sh/t-mlib-sh2a: Delete file.
4789 * config/sh/t-mlib-sh2a-nofpu: Delete file.
4790 * config/sh/t-mlib-sh2a-single: Delete file.
4791 * config/sh/t-mlib-sh2a-single-only: Delete file.
4792 * config/sh/t-mlib-sh2e: Delete file.
4793 * config/sh/t-mlib-sh3e: Delete file.
4794 * config/sh/t-mlib-sh4: Delete file.
4795 * config/sh/t-mlib-sh4-nofpu: Delete file.
4796 * config/sh/t-mlib-sh4-single: Delete file.
4797 * config/sh/t-mlib-sh4-single-only: Delete file.
4798 * config/sh/t-mlib-sh4a: Delete file.
4799 * config/sh/t-mlib-sh4a-nofpu: Delete file.
4800 * config/sh/t-mlib-sh4a-single: Delete file.
4801 * config/sh/t-mlib-sh4a-single-only: Delete file.
4802 * config/sh/t-mlib-sh4al: Delete file.
4803 * config/sh/t-mlib-sh5-32media: Delete file.
4804 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
4805 * config/sh/t-mlib-sh5-64media: Delete file.
4806 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
4807 * config/sh/t-mlib-sh5-compact: Delete file.
4808 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
4809 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
4810 * doc/install.texi (Options specification): Add
4811 --with-multilib-list and --with-endian.
4812
cf8aba7f
RAE
48132009-04-17 Rafael Avila de Espindola <espindola@google.com>
4814
4815 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
4816 REVISION_c.
4817 (OBJS-common): Add plugin-version.o.
4818 (plugin-version.o): New.
4819 * gcc-plugin.h (plugin_gcc_version): New.
4820 (plugin_default_version_check): New.
4821 (plugin_init_func, plugin_init): Add version argument.
4822 * plugin-version.c: New.
4823 * plugin.c (str_plugin_gcc_version_name): New.
4824 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
4825 pass it to the init function.
4826 (plugin_default_version_check): New.
4827
61e20b90
RG
48282009-04-17 Richard Guenther <rguenther@suse.de>
4829
4830 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
4831 for decl-vs-decl disambiguation.
4832
90c6fd8a
AK
48332009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
4834
4835 * config/s390/s390.h (s390_tune_attr): New macro definition.
4836 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
4837
9fe9fe04
RG
48382009-04-17 Richard Guenther <rguenther@suse.de>
4839
4840 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4841 (fold_stmt_r): Likewise.
4842 (maybe_fold_reference): New function.
4843 (fold_gimple_assign): Handle cases fold_stmt_r did.
4844 (fold_stmt): Do not use fold_stmt_r.
4845 (fold_stmt_inplace): Likewise.
4846
7e673273
RG
48472009-04-17 Richard Guenther <rguenther@suse.de>
4848
4849 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
4850 (record_equivalences_from_stmt): Remove useless checks and
4851 simplifications.
4852 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
4853 the type is already suitable.
4854
fabf2749
PB
48552009-04-17 Paolo Bonzini <bonzini@gnu.org>
4856
4857 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
4858
68f7b061
UB
48592009-04-17 Uros Bizjak <ubizjak@gmail.com>
4860
4861 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
4862 (CMPtype): Define as __gcc_CMPtype.
4863
532bfb0a
AJ
48642009-04-17 Aurelien Jarno <aurelien@aurel32.net>
4865
4866 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
4867 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
4868
e3ac77ff
RG
48692009-04-17 Richard Guenther <rguenther@suse.de>
4870
4871 PR tree-optimization/39746
4872 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
4873 special-casing for builtins and static variable use/def.
4874 (call_may_clobber_ref_p_1): Likewise.
4875
7072a650
ILT
48762009-04-16 Ian Lance Taylor <iant@google.com>
4877
4878 * df.h: Include "timevar.h".
4879 (struct df_problem): Change tv_id field to timevar_id_t.
4880 * tree-pass.h: Include "timevar.h".
4881 (struct opt_pass): Change tv_id field to timevar_id_t.
4882 * timevar.h (timevar_id_t): Define TV_NONE.
4883 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
4884 TV_NONE rather than tv_id != 0.
4885 (execute_one_pass): Likewise.
4886 * Makefile.in (DF_H): Add $(TIMEVAR_H).
4887 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
4888 dependencies to $(TREE_PASS_H).
4889 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
4890 to TV_NONE.
4891 (pass_branch_target_load_optimize2): Likewise.
4892 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
4893 (pass_outof_cfg_layout_mode): Likewise.
4894 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
4895 (pass_rebuild_cgraph_edges): Likewise.
4896 (pass_remove_cgraph_callee_edges): Likewise.
4897 * df-core.c (pass_df_initialize_opt): Likewise.
4898 (pass_df_initialize_no_opt): Likewise.
4899 (pass_df_finish): Likewise.
4900 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
4901 * except.c (pass_set_nothrow_function_flags): Likewise.
4902 (pass_convert_to_eh_region_ranges): Likewise.
4903 * final.c (pass_compute_alignments): Likewise.
4904 * function.c (pass_instantiate_virtual_regs): Likewise.
4905 (pass_init_function): Likewise.
4906 (pass_leaf_regs): Likewise.
4907 (pass_match_asm_constraints): Likewise.
4908 * gimple-low.c (pass_lower_cf): Likewise.
4909 (pass_mark_used_blocks): Likewise.
4910 * init-regs.c (pass_initialize_regs): Likewise.
4911 * integrate.c (pass_initial_value_sets): Likewise.
4912 * ira.c (pass_ira): Likewise.
4913 * jump.c (pass_cleanup_barriers): Likewise.
4914 * omp-low.c (pass_expand_omp): Likewise.
4915 (pass_lower_omp): Likewise.
4916 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
4917 * recog.c (pass_split_all_insns): Likewise.
4918 (pass_split_after_reload): Likewise.
4919 (pass_split_before_regstack): Likewise.
4920 (pass_split_before_sched2): Likewise.
4921 (pass_split_for_shorten_branches): Likewise.
4922 * reginfo.c (pass_reginfo_init): Likewise.
4923 (pass_subregs_of_mode_init): Likewise.
4924 (pass_subregs_of_mode_finish): Likewise.
4925 * passes.c (pass_postreload): Likewise.
4926 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
4927 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
4928 (pass_warn_function_return): Likewise.
4929 (pass_warn_function_noreturn): Likewise.
4930 * tree-complex.c (pass_lower_complex): Likewise.
4931 (pass_lower_complex_O0): Likewise.
4932 * tree-if-conv.c (pass_if_conversion): Likewise.
4933 * tree-into-ssa.c (pass_build_ssa): Likewise.
4934 * tree-mudflap.c (pass_mudflap_1): Likewise.
4935 (pass_mudflap_2): Likewise.
4936 * tree-nomudflap.c (pass_mudflap_1): Likewise.
4937 (pass_mudflap_2): Likewise.
4938 * tree-nrv.c (pass_return_slot): Likewise.
4939 * tree-object-size.c (pass_object_sizes): Likewise.
4940 * tree-optimize.c (pass_all_optimizations): Likewise.
4941 (pass_early_local_passes): Likewise.
4942 (pass_all_early_optimizations): Likewise.
4943 (pass_cleanup_cfg): Likewise.
4944 (pass_cleanup_cfg_post_optimizing): Likewise.
4945 (pass_free_datastructures): Likewise.
4946 (pass_free_cfg_annotations): Likewise.
4947 (pass_fixup_cfg): Likewise.
4948 (pass_init_datastructures): Likewise.
4949 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
4950 (pass_late_warn_uninitialized): Likewise.
4951 (pass_update_address_taken): Likewise.
4952 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
4953 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
4954 (pass_cse_sincos): Likewise.
4955 (pass_convert_to_rsqrt): Likewise.
4956 * tree-ssa-structalias.c (pass_build_alias): Likewise.
4957 * tree-stdarg.c (pass_stdarg): Likewise.
4958 * tree-tailcall.c (pass_tail_recursion): Likewise.
4959 (pass_tail_calls): Likewise.
4960 * tree-vect-generic.c (pass_lower_vector): Likewise.
4961 (pass_lower_vector_ssa): Likewise.
4962 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
4963
0051ef59
JM
49642009-04-16 Joseph Myers <joseph@codesourcery.com>
4965
4966 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
4967 XLR entry.
4968 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
4969 Handle -march=xlr.
4970 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
4971 logical and signext.
4972
b3f8558a
KK
49732009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
4974
4975 PR target/39767
4976 * config/sh/predicates.md (arith_operand): Check if the operand
4977 of TRUNCATE is a REG.
4978
f57597d9
KH
49792009-04-16 Kazu Hirata <kazu@codesourcery.com>
4980
4981 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
4982 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
4983
b172d063
KH
49842009-04-16 Kazu Hirata <kazu@codesourcery.com>
4985
4986 * tree-iterator.c (tsi_split_statement_list_after,
4987 tsi_split_statement_list_before): Remove.
4988 * tree-iterator.h: Remove the prototypes for
532bfb0a 4989 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 4990
78fe4f1f
KH
49912009-04-16 Kazu Hirata <kazu@codesourcery.com>
4992
4993 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
4994 * tree-ssa-propagate.h: Remove the prototype for
4995 stmt_makes_single_load.
4996
43dd3201
KH
49972009-04-16 Kazu Hirata <kazu@codesourcery.com>
4998
4999 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
5000 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
5001
4252a4aa
KH
50022009-04-16 Kazu Hirata <kazu@codesourcery.com>
5003
5004 * tree-iterator.c (EXPR_LAST_BODY): Remove.
5005
bfb69968
KH
50062009-04-16 Kazu Hirata <kazu@codesourcery.com>
5007
5008 * except.c (eh_region_outer_p): Remove.
5009 * except.h: Remove the prototype for eh_region_outer_p.
5010
c7db7fa5
KH
50112009-04-16 Kazu Hirata <kazu@codesourcery.com>
5012
5013 * function.c (current_function_assembler_name): Remove.
5014 * function.h: Remove the prototype for
5015 current_function_assembler_name.
5016
efc0b2bd
ILT
50172009-04-16 Ian Lance Taylor <iant@google.com>
5018
532bfb0a 5019 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
5020 (add_reg_note): Call alloc_reg_note.
5021 * rtl.h (alloc_reg_note): Declare.
5022 * combine.c (try_combine): Use alloc_reg_note.
5023 (recog_for_combine, move_deaths): Likewise.
5024 (distribute_notes): Use alloc_reg_note and add_reg_note.
5025 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
5026 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
5027 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
5028
6080348f
VM
50292009-04-16 Vladimir Makarov <vmakarov@redhat.com>
5030
5031 PR rtl-optimization/39762
5032 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
5033 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 5034 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 5035
6080348f
VM
5036 * ira-conflicts.c (process_regs_for_copy): Use function
5037 ira_get_register_move_cost instead of global
5038 ira_register_move_cost.
5039
5040 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
5041 color_pass, move_spill_restore, update_curr_costs): Ditto.
5042
5043 * ira-lives.c (process_single_reg_class_operands): Ditto.
5044
5045 * ira-emit.c (emit_move_list): Ditto.
5046
5047 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
5048 (record_reg_classes): Ditto. Use functions
5049 ira_get_register_move_cost and ira_get_may_move_cost instead of
5050 global vars ira_register_move_cost, ira_may_move_out_cost and
5051 ira_may_move_in_cost.
5052 (record_address_regs): Don't call ira_init_register_move_cost.
5053 Use function ira_get_may_move_cost instead of global
5054 ira_may_move_in_cost.
5055 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 5056 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 5057 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 5058
646bea10
RG
50592009-04-16 Richard Guenther <rguenther@suse.de>
5060
5061 * tree-cfg.c (verify_gimple_assign_binary):
5062 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
5063 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
5064 (create_general_new_stmt): Note that this function is broken.
5065
02e819ff
RAE
50662009-04-16 Rafael Avila de Espindola <espindola@google.com>
5067
5068 * common.opt (fhelp): Add Var(help_flag).
5069 * gcc-plugin.h (plugin_info): Add help.
5070 * plugin.c (plugin_name_args): Add help.
5071 (register_plugin_info): Set plugin->help.
5072 (print_help_one_plugin): New.
5073 (print_plugins_help): New.
5074 * plugin.h (print_plugins_help): New.
5075 * toplev.c (toplev_main): Call print_plugins_help if needed.
5076
ccacdf06
RG
50772009-04-16 Richard Guenther <rguenther@suse.de>
5078
5079 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
5080 (gimple_ior_addresses_taken_1): New function.
5081 (gimple_ior_addresses_taken): Likewise.
5082 * gimple.h (struct gimple_statement_with_ops_base): Remove
5083 addresses_taken member.
5084 (gimple_ior_addresses_taken): Declare.
5085 (gimple_addresses_taken, gimple_addresses_taken_ptr,
5086 gimple_set_addresses_taken): Remove.
5087 * ipa-reference.c (mark_address): New function.
5088 (scan_stmt_for_static_refs): Use it for marking addresses taken.
5089 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
5090 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
5091 (gimple_add_to_addresses_taken): Remove.
5092 (get_tmr_operands): Call mark_address_taken.
5093 (get_asm_expr_operands): Likewise.
5094 (get_expr_operands): Likewise.
5095 (build_ssa_operands): Do not clear the addresses_taken bitmap.
5096 (free_stmt_operands): Do not free it.
5097 * tree-ssa.c (delete_tree_ssa): Likewise.
5098 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
5099
346ef3fa
RG
51002009-04-16 Richard Guenther <rguenther@suse.de>
5101
5102 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
5103 (walk_stmt_load_store_ops): Likewise.
5104 * gimple.c (get_base_loadstore): New function.
5105 (walk_stmt_load_store_addr_ops): Likewise.
5106 (walk_stmt_load_store_ops): Likewise.
5107 * ipa-pure-const.c (check_op): Simplify.
5108 (check_load, check_store): New functions.
5109 (check_stmt): Use walk_stmt_load_store_ops.
5110 * ipa-reference.c (mark_load): Adjust signature.
5111 (mark_store): Likewise.
5112 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
5113
44e9f006
RAE
51142009-04-16 Rafael Avila de Espindola <espindola@google.com>
5115
5116 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
5117 (plugin_info): New.
5118 * opts.c (common_handle_option): Don't call print_version.
5119 * plugin.c (plugin_name_args): Add version.
5120 (register_plugin_info): New.
5121 (register_callback): Handle PLUGIN_INFO.
5122 (try_init_one_plugin): New.
5123 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
5124 if failed to init.
5125 (finalize_one_plugin): New.
5126 (finalize_plugins): New.
5127 (print_one_plugin): New.
5128 (print_plugins_versions): New.
5129 * plugin.h (print_plugins_versions): New.
5130 (finalize_plugins): New.
5131 * toplev.c (compile_file): Don't call initialize_plugins.
5132 (print_version): Call print_plugins_versions.
5133 (toplev_main): Call initialize_plugins. Print version if needed.
5134 Call finalize_plugins.
5135
41fd0f9b
RAE
51362009-04-16 Rafael Avila de Espindola <espindola@google.com>
5137
5138 * common.opt (fversion): New.
5139 * gcc.c (print_version): New.
5140 (process_command): Don't print the version. Just set print_version.
5141 (main): Print version. Call subprocesses if print_version and
5142 verbose_flag are set.
5143 * opts.c (common_handle_option): Handle OPT_fversion.
5144
550918ca 51452009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 5146 Ira Rosen <irar@il.ibm.com>
550918ca
RG
5147
5148 PR tree-optimization/39698
5149 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
5150 type of the reduction variable. Only generate the def if
5151 it is needed.
5152
5153 * omp-low.c (expand_omp_for_generic): When converting to a pointer
5154 make sure to first convert to an integer of the same precision.
5155 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
5156 the type of the evolution correctly in computing the new
5157 induction variable base.
5158
54634841
RG
51592009-04-16 Richard Guenther <rguenther@suse.de>
5160
5161 PR middle-end/39625
5162 * tree-cfg.c (make_blocks): Split statements with to-be
5163 abnormal SSA names on the lhs.
5164
b6fc2cdb
PB
51652009-04-16 Paolo Bonzini <bonzini@gnu.org>
5166
5167 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
5168 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
5169 * c-typeck.c (really_start_incremental_init): Likewise.
5170 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
5171 (TARGET_INITIALIZER): Remove it.
5172 * target.h (struct target): Remove vector_opaque_p.
5173 * tree.c (build_opaque_vector_type): New.
5174 * tree.h (TYPE_VECTOR_OPAQUE): New.
5175 (build_opaque_vector_type): Declare.
5176 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
5177 * config/rs6000/rs6000.c (build_opaque_vector_type,
5178 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
5179 (rs6000_init_builtins): Use build_opaque_vector_type for
5180 opaque_V4SI_type_node.
5181
a417cdd9
CM
51822009-04-15 Catherine Moore <clm@codesourcery.com>
5183
532bfb0a
AJ
5184 * debug.h (set_name): Declare.
5185 * dwarf2out.c (dwarf2out_set_name): Declare.
5186 (dwarf2_debug_hooks): Add set_name.
5187 (find_AT_string): New.
5188 (add_AT_string): Call find_AT_string.
5189 (dwarf2out_set_name): New.
5190 * cp/decl.c (grokdeclarator): Call set_name.
5191 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
5192 * debug.c (do_nothing_debug_hooks): Likewise.
5193 * dbxout.c (dbx_debug_hooks): Likewise.
5194 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 5195
60839f5d 51962009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 5197
532bfb0a
AJ
5198 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
5199 reg for single-precision FPU.
5200 * config/rs6000/rs6000.md (movsi_internal1): Only for
5201 !TARGET_SINGLE_FPU.
5202 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
5203 single-precision FP regs.
5204
ada39f0b
RG
52052009-04-15 Richard Guenther <rguenther@suse.de>
5206
5207 * omp-low.c (lower_rec_input_clauses): Build correct address
5208 expressions.
5209 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 5210 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
5211 (generate_memset_zero): Fix types.
5212 * tree-profile.c (prepare_instrumented_value): Correctly
5213 widen a pointer.
5214
6866c6e8
ILT
52152009-04-15 Ian Lance Taylor <iant@google.com>
5216
5217 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
5218 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
5219 for -Wall and for -Wc++-compat.
5220 (c_common_post_options): For C++, set warn_enum_compare if not
5221 already set.
5222 * c-tree.h (struct c_expr): Add field original_type.
5223 (build_external_ref): Update declaration.
5224 * c-parser.c (c_parser_braced_init): Set original_type.
5225 (c_parser_initelt): Likewise.
5226 (c_parser_expr_no_commas): Likewise.
5227 (c_parser_conditional_expression): Likewise.
5228 (c_parser_cast_expression): Likewise.
5229 (c_parser_unary_expression): Likewise. Pull setting of
5230 original_code to top of function.
5231 (c_parser_sizeof_expression): Set original_type.
5232 (c_parser_alignof_expression): Likewise.
5233 (c_parser_postfix_expression): Likewise. Pull setting of
5234 original_code to top of function.
532bfb0a 5235 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
5236 (c_parser_postfix_expression_after_primary): Likewise.
5237 (c_parser_expression): Likewise.
5238 * c-typeck.c (build_external_ref): Add type parameter. Change all
5239 callers.
5240 (c_expr_sizeof_expr): Set original_type field.
5241 (parser_build_unary_op): Likewise.
5242 (parser_build_binary_op): Likewise. Optionally warn about
5243 comparisons of enums of different types.
5244 (digest_init): Set original_type field.
5245 (really_start_incremental_init): Likewise.
5246 (push_init_level, pop_init_level): Likewise.
5247 * doc/invoke.texi (Warning Options): -Wenum-compare now
5248 supported in C.
5249
f116fecf
RG
52502009-04-15 Richard Guenther <rguenther@suse.de>
5251
5252 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
5253 out a necessary conversion.
5254 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5255 names we didn't value number.
5256 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5257
25e20805
RG
52582009-04-15 Richard Guenther <rguenther@suse.de>
5259
5260 PR tree-optimization/39764
5261 * tree-ssa-ccp.c (get_value): Canonicalize value with
5262 canonicalize_float_value.
5263
90cc3676
JH
52642009-04-15 Jan Hubicka <jh@suse.cz>
5265
5266 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5267 Wrong version of patch.
5268
6d14c006
JH
52692009-04-15 Jan Hubicka <jh@suse.cz>
5270
5271 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5272
5afaa917
NS
52732009-04-15 Nathan Sidwell <nathan@codesourcery.com>
5274
5275 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5276 our distinct integral and vector types.
5277
3b482fca
RAE
52782009-04-15 Rafael Avila de Espindola <espindola@google.com>
5279
5280 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5281 * init.c (build_vtbl_address): Remove call to assemble_external.
5282
6cd1d2e2
DJ
52832009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
5284
5285 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5286 output for other floating point modes.
5287
dab71827
DN
52882009-04-14 Diego Novillo <dnovillo@google.com>
5289
5290 * diagnostic.c (diagnostic_report_diagnostic): Do not
5291 warn about loaded plugins for DK_ERROR and DK_WARNING.
5292 * c-decl.c (declspecs_add_type): Move call to
5293 invoke_plugin_callbacks ...
5294 * c-parser.c (c_parser_declspecs): ... here.
5295 * plugin.c (dump_active_plugins): Tidy output.
5296
68a607d8
DN
52972009-04-14 Diego Novillo <dnovillo@google.com>
5298 Le-Chun Wu <lcwu@google.com>
5299
5300 * configure.ac: Add --enable-plugin support.
5301 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5302 * Makefile.in (PLUGIN_H): Define.
5303 Export ENABLE_PLUGIN and GMPINC to site.exp.
5304 Add PLUGINLIBS to link command.
5305 Add/modify dependencies for plugin.o and files including plugin.h.
5306 (plugin.o): New.
5307 * config.in: Regenerate.
2ba9daa7 5308
68a607d8
DN
5309 * opts.c (common_handle_option): Handle OPT_fplugin_ and
5310 OPT_fplugin_arg_.
5311
53122009-04-14 Le-Chun Wu <lcwu@google.com>
5313
5314 * tree-pass.h (register_one_dump_file): Add a prototype for
5315 register_one_dump_file.
5316 * toplev.c (compile_file): Call initialize_plugins.
5317 (do_compile): Call invoke_plugin_callbacks.
5318 (toplev_main): Call invoke_plugin_callbacks.
5319 * common.opt: Add -fplugin= and -fplugin-arg-.
5320 * gcc-plugin.h: New public header file for plugins to include.
5321 * plugin.c: New source file.
5322 * plugin.h: New internal header file.
5323 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 5324
68a607d8
DN
5325 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5326
53272009-04-14 Diego Novillo <dnovillo@google.com>
5328
5329 * doc/plugins.texi: New.
5330 * doc/gccint.texi: Add reference to Plugins chapter.
5331 * doc/invoke.texi: Document -fplugin and -fplugin-arg
5332 * diagnostic.c (diagnostic_report_diagnostic): Warn about
5333 loaded plugins, if any.
5334 * timevar.def (TV_PLUGIN_INIT): Define.
5335 (TV_PLUGIN_RUN): Define.
5336 * plugin.c: Include timevar.h
5337 (plugins_active_p): New.
5338 (dump_active_plugins): New.
5339 (debug_active_plugins): New.
5340
50617257
JM
53412009-04-14 Joseph Myers <joseph@codesourcery.com>
5342
5343 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5344 library paths.
5345 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5346
b32f6fff
KH
53472009-04-14 Kazu Hirata <kazu@codesourcery.com>
5348
5349 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5350 the same as a minus without a shift.
5351
85d04fa2
NC
53522009-04-14 Nick Clifton <nickc@redhat.com>
5353
5354 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5355 comparisons with small integers will always produce a short
5356 branch.
5357
e495a0c8
RAE
53582009-04-14 Rafael Avila de Espindola <espindola@google.com>
5359
5360 Merge:
e495a0c8
RAE
5361 2008-12-19 Diego Novillo <dnovillo@google.com>
5362
532bfb0a 5363 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 5364
ad41bd84 53652009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
5366
5367 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5368 verification.
5369 (verify_gimple_assign_binary): Likewise. Handle shifts and
5370 rotates correctly.
5371 (verify_gimple_phi): Print the mismatched argument position.
5372 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5373 Fix types.
5374 (vect_update_init_of_dr): Likewise.
5375 * matrix-reorg.c (transform_access_sites): Do what the
5376 comment suggests.
5377 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5378
60839f5d 53792009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
5380
5381 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5382 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5383 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 5384 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
5385 remove duplicate config
5386
b0e2d008
DR
53872009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
5388
5389 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5390 file_name:line_number type locator of the call site.
2ba9daa7 5391
1244a8b7
VM
53922009-04-13 Vladimir Makarov <vmakarov@redhat.com>
5393
5394 * genautomata.c: Put blank after comma.
5395 (automaton_decls): New.
5396 (struct unit_usage): Add comments to member next.
5397 (store_alt_unit_usage): Keep the list ordered.
5398 (unit_present_on_list_p, equal_alternatives_p): New.
5399 (check_regexp_units_distribution): Check units distribution
5400 correctness correctly.
5401 (main): Don't write automata if error is found. Return correct
5402 exit code.
2ba9daa7 5403
1244a8b7
VM
5404 * config/m68k/cf.md (cfv4_ds): Remove.
5405 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5406 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5407
5408 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5409 power4-load-ext, power4-store, power4-store-update,
5410 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5411 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5412 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5413 power4-sqrt, power4-isync): Modify reservation to make correct
5414 unit distribution to automata.
5415
5416 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5417 power5-store-update, power5-two, power5-three, power5-lmul,
5418 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 5419
f7dd1864
AN
54202009-04-13 Adam Nemet <anemet@caviumnetworks.com>
5421
5422 * except.c (pass_set_nothrow_function_flags): Set name and add
5423 TODO_dump_func.
5424 (set_nothrow_function_flags): Mention in the dump file when
5425 changing a function to nothrow.
5426
59a1171f
OS
54272009-04-13 Ozkan Sezer <sezeroz@gmail.com>
5428
5429 PR/39066
5430 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5431 instead of unsigned long.
5432
934c2060
RR
54332009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5434
f7dd1864
AN
5435 * config/arm/arm.c (return_used_this_function): Remove.
5436 (arm_output_function_prologue): Remove use of
934c2060 5437 return_used_this_function.
f7dd1864 5438 (output_return_instruction): Replace use of
934c2060
RR
5439 return_used_this_function
5440 by cfun->machine->return_used_this_function.
f7dd1864
AN
5441 (arm_output_epilogue): Likewise.
5442 (arm_output_function_epilogue): Likewise.
5443 (thumb_unexpanded_epilogue): Likewise.
5444 * config/arm/arm.h (struct machine_function):
934c2060 5445 New member return_used_this_function.
f7dd1864 5446
ae5cc016
MM
54472009-04-12 Mark Mitchell <mark@codesourcery.com>
5448
5449 * doc/install.texi: Correct description of default directory for
5450 --with-gxx-include-dir.
5451
a0ce68df 54522009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
5453
5454 * fold-const.c (build_range_check): Properly deal with enumeral and
5455 boolean base types.
5456
3906a4a1
SB
54572009-04-12 Steven Bosscher <steven@gcc.gnu.org>
5458
5459 * doc/invoke.texi (max_gcse_passes): Remove documentation.
5460 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5461 * params.h (MAX_GCSE_PASSES): Remove.
5462 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5463 in sequence. Remove ability to run multiple passes.
5464 (bypass_jumps): Report run as third CPROP pass.
5465
efaadb93
AN
54662009-04-12 Adam Nemet <anemet@caviumnetworks.com>
5467
5468 PR middle-end/39651
5469 * except.c (can_throw_external): Look at each insn in a SEQUENCE
5470 when deciding whether the whole SEQUENCE can throw.
5471
4c48007b
UB
54722009-04-12 Uros Bizjak <ubizjak@gmail.com>
5473
5474 PR target/39740
5475 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5476 offseted label references.
5477
b4104018
JH
54782009-04-11 Jan Hubicka <jh@suse.cz>
5479
5480 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5481
32848948
RG
54822009-04-11 Richard Guenther <rguenther@suse.de>
5483
5484 PR middle-end/39732
5485 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5486 return variables as TREE_ADDRESSABLE.
5487
8810712e
RG
54882009-04-11 Richard Guenther <rguenther@suse.de>
5489
5490 PR tree-optimization/39713
5491 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5492 reference trees have SSA_NAME operands.
5493
fa78c0c1
RG
54942009-04-11 Richard Guenther <rguenther@suse.de>
5495
5496 PR c/39712
5497 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5498 address expressions.
5499
4d722130
DK
55002009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
5501
5502 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
5503 match changes in Cygwin 1.7
5504 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5505 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
5506
567a90f5
PB
55072009-04-10 Paolo Bonzini <bonzini@gnu.org>
5508
5509 PR tree-optimization/39701
5510 * doc/invoke.texi (Optimization Options): Document change in
5511 meaning and initialization of -fdelete-null-pointer-checks.
5512
1ad2f450
L
55132009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5514
5515 PR middle-end/39701
5516 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5517
5518 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5519 here.
5520
5521 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5522
1afc5373
CF
55232009-04-10 Chao-ying Fu <fu@mips.com>
5524
5525 * doc/tm.texi (Instruction Output): Document
5526 TARGET_ASM_FINAL_POSTSCAN_INSN.
5527 * target.h (final_postscan_insn): New field in asm_out.
5528 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5529 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5530 * final.c (final_scan_insn): Call
5531 targetm.asm_out.final_postscan_insn after outputting
5532 an asm macro and a normal instruction.
5533
5534 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
5535 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
5536 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
5537 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
5538 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5539
4d35e75c
PB
55402009-04-10 Paolo Bonzini <bonzini@gnu.org>
5541
5542 PR middle-end/39701
1ad2f450
L
5543 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
5544 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 5545
62c49b83
L
55462009-04-10 H.J. Lu <hongjiu.lu@intel.com>
5547
5548 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
5549
80558628
L
55502009-04-09 H.J. Lu <hongjiu.lu@intel.com>
5551
5552 PR target/39678
5553 * config/i386/i386.c (classify_argument): Handle SCmode with
5554 (bit_offset % 64) != 0.
5555
8c70d28b
SL
55562009-04-09 Sandra Loosemore <sandra@codesourcery.com>
5557
5558 * doc/invoke.texi (Optimize Options): Add cross-reference to
5559 -Q --help=optimizers examples.
5560
e1ff19bf
BE
55612009-04-10 Ben Elliston <bje@au.ibm.com>
5562
5563 PR target/36800
5564 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
5565 regalign for the reg == fpr and TDmode case.
5566
52daca75
DA
55672009-04-09 David Ayers <ayers@fsfe.org>
5568
5569 PR objc/29200
5570 * objc/objc-act.c (warn_with_method): Remove helper function.
5571 (check_duplicates): Call warning and inform directly.
5572 (really_start_method): Likewise.
5573
b45f0e58
PB
55742009-04-09 Paolo Bonzini <bonzini@gnu.org>
5575
5576 * expmed.c (expand_divmod): Always use a comparison for a division
5577 by a large unsigned integer.
5578
1ad2f450
L
5579 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
5580 for things others than variables or functions as nonzero.
b45f0e58 5581
748086b7
JJ
55822009-04-09 Nick Clifton <nickc@redhat.com>
5583
5584 * unwind-compat.c: Change copyright header to refer to version
5585 3 of the GNU General Public License with version 3.1 of the
5586 GCC Runtime Library Exception and to point readers at the
7a715bba 5587 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
5588 * config/alpha/crtfastmath.c: Likewise.
5589 * config/alpha/linux-unwind.h: Likewise.
5590 * config/alpha/qrnnd.asm: Likewise.
5591 * config/alpha/vms-crt0-64.c: Likewise.
5592 * config/alpha/vms-crt0.c: Likewise.
5593 * config/alpha/vms-dwarf2.asm: Likewise.
5594 * config/alpha/vms-dwarf2eh.asm: Likewise.
5595 * config/alpha/vms-psxcrt0-64.c: Likewise.
5596 * config/alpha/vms-psxcrt0.c: Likewise.
5597 * config/alpha/vms_tramp.asm: Likewise.
5598 * config/arc/initfini.c: Likewise.
5599 * config/arc/lib1funcs.asm: Likewise.
5600 * config/arm/bpabi-v6m.S: Likewise.
5601 * config/arm/bpabi.S: Likewise.
5602 * config/arm/bpabi.c: Likewise.
5603 * config/arm/crti.asm: Likewise.
5604 * config/arm/crtn.asm: Likewise.
5605 * config/arm/ieee754-df.S: Likewise.
5606 * config/arm/ieee754-sf.S: Likewise.
5607 * config/arm/lib1funcs.asm: Likewise.
5608 * config/arm/libunwind.S: Likewise.
5609 * config/arm/linux-atomic.c: Likewise.
5610 * config/arm/mmintrin.h: Likewise.
5611 * config/arm/pr-support.c: Likewise.
5612 * config/arm/unaligned-funcs.c: Likewise.
5613 * config/arm/unwind-arm.c: Likewise.
5614 * config/arm/unwind-arm.h: Likewise.
5615 * config/avr/libgcc.S: Likewise.
5616 * config/bfin/crti.s: Likewise.
5617 * config/bfin/crtlibid.s: Likewise.
5618 * config/bfin/crtn.s: Likewise.
5619 * config/bfin/lib1funcs.asm: Likewise.
5620 * config/bfin/linux-unwind.h: Likewise.
5621 * config/cris/arit.c: Likewise.
5622 * config/cris/cris_abi_symbol.c: Likewise.
5623 * config/darwin-64.c: Likewise.
5624 * config/darwin-crt2.c: Likewise.
5625 * config/darwin-crt3.c: Likewise.
5626 * config/darwin.h: Likewise.
5627 * config/dbxelf.h: Likewise.
5628 * config/dfp-bit.c: Likewise.
5629 * config/dfp-bit.h: Likewise.
5630 * config/elfos.h: Likewise.
5631 * config/fixed-bit.c: Likewise.
5632 * config/fixed-bit.h: Likewise.
5633 * config/fp-bit.c: Likewise.
5634 * config/fp-bit.h: Likewise.
5635 * config/fr30/crti.asm: Likewise.
5636 * config/fr30/crtn.asm: Likewise.
5637 * config/fr30/lib1funcs.asm: Likewise.
5638 * config/freebsd-spec.h: Likewise.
5639 * config/frv/cmovd.c: Likewise.
5640 * config/frv/cmovh.c: Likewise.
5641 * config/frv/cmovw.c: Likewise.
5642 * config/frv/frvbegin.c: Likewise.
5643 * config/frv/frvend.c: Likewise.
5644 * config/frv/lib1funcs.asm: Likewise.
5645 * config/glibc-stdint.h: Likewise.
5646 * config/h8300/clzhi2.c: Likewise.
5647 * config/h8300/crti.asm: Likewise.
5648 * config/h8300/crtn.asm: Likewise.
5649 * config/h8300/ctzhi2.c: Likewise.
5650 * config/h8300/fixunssfsi.c: Likewise.
5651 * config/h8300/lib1funcs.asm: Likewise.
5652 * config/h8300/parityhi2.c: Likewise.
5653 * config/h8300/popcounthi2.c: Likewise.
5654 * config/i386/ammintrin.h: Likewise.
5655 * config/i386/att.h: Likewise.
5656 * config/i386/avxintrin.h: Likewise.
5657 * config/i386/biarch64.h: Likewise.
5658 * config/i386/bmmintrin.h: Likewise.
5659 * config/i386/cpuid.h: Likewise.
5660 * config/i386/cross-stdarg.h: Likewise.
5661 * config/i386/crtfastmath.c: Likewise.
5662 * config/i386/crtprec.c: Likewise.
5663 * config/i386/cygming-crtbegin.c: Likewise.
5664 * config/i386/cygming-crtend.c: Likewise.
5665 * config/i386/cygwin.asm: Likewise.
5666 * config/i386/emmintrin.h: Likewise.
5667 * config/i386/gmm_malloc.h: Likewise.
5668 * config/i386/gthr-win32.c: Likewise.
5669 * config/i386/i386.h: Likewise.
5670 * config/i386/immintrin.h: Likewise.
5671 * config/i386/linux-unwind.h: Likewise.
5672 * config/i386/linux64.h: Likewise.
5673 * config/i386/mm3dnow.h: Likewise.
5674 * config/i386/mmintrin-common.h: Likewise.
5675 * config/i386/mmintrin.h: Likewise.
5676 * config/i386/nmmintrin.h: Likewise.
5677 * config/i386/pmm_malloc.h: Likewise.
5678 * config/i386/pmmintrin.h: Likewise.
5679 * config/i386/smmintrin.h: Likewise.
5680 * config/i386/sol2-c1.asm: Likewise.
5681 * config/i386/sol2-ci.asm: Likewise.
5682 * config/i386/sol2-cn.asm: Likewise.
5683 * config/i386/sol2-gc1.asm: Likewise.
5684 * config/i386/tmmintrin.h: Likewise.
5685 * config/i386/unix.h: Likewise.
5686 * config/i386/w32-unwind.h: Likewise.
5687 * config/i386/wmmintrin.h: Likewise.
5688 * config/i386/x86-64.h: Likewise.
5689 * config/i386/x86intrin.h: Likewise.
5690 * config/i386/xmmintrin.h: Likewise.
5691 * config/ia64/crtbegin.asm: Likewise.
5692 * config/ia64/crtend.asm: Likewise.
5693 * config/ia64/crtfastmath.c: Likewise.
5694 * config/ia64/crti.asm: Likewise.
5695 * config/ia64/crtn.asm: Likewise.
5696 * config/ia64/fde-glibc.c: Likewise.
5697 * config/ia64/lib1funcs.asm: Likewise.
5698 * config/ia64/linux-unwind.h: Likewise.
5699 * config/ia64/quadlib.c: Likewise.
5700 * config/ia64/unwind-ia64.c: Likewise.
5701 * config/linux.h: Likewise.
5702 * config/m32c/m32c-lib1.S: Likewise.
5703 * config/m32c/m32c-lib2-trapv.c: Likewise.
5704 * config/m32c/m32c-lib2.c: Likewise.
5705 * config/m32r/initfini.c: Likewise.
5706 * config/m68hc11/larith.asm: Likewise.
5707 * config/m68hc11/m68hc11-crt0.S: Likewise.
5708 * config/m68k/cf.md: Likewise.
5709 * config/m68k/crti.s: Likewise.
5710 * config/m68k/crtn.s: Likewise.
5711 * config/m68k/lb1sf68.asm: Likewise.
5712 * config/m68k/linux-unwind.h: Likewise.
5713 * config/mcore/crti.asm: Likewise.
5714 * config/mcore/crtn.asm: Likewise.
5715 * config/mcore/lib1.asm: Likewise.
5716 * config/mips/linux-unwind.h: Likewise.
5717 * config/mips/loongson.h: Likewise.
5718 * config/mips/mips16.S: Likewise.
5719 * config/mmix/crti.asm: Likewise.
5720 * config/mmix/crtn.asm: Likewise.
5721 * config/pa/fptr.c: Likewise.
5722 * config/pa/hpux-unwind.h: Likewise.
5723 * config/pa/lib2funcs.asm: Likewise.
5724 * config/pa/linux-atomic.c: Likewise.
5725 * config/pa/linux-unwind.h: Likewise.
5726 * config/pa/milli64.S: Likewise.
5727 * config/pa/quadlib.c: Likewise.
5728 * config/pa/stublib.c: Likewise.
5729 * config/picochip/libgccExtras/adddi3.asm: Likewise.
5730 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
5731 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
5732 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
5733 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
5734 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
5735 * config/picochip/libgccExtras/divmod15.asm: Likewise.
5736 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
5737 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
5738 * config/picochip/libgccExtras/longjmp.asm: Likewise.
5739 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
5740 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
5741 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
5742 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
5743 * config/picochip/libgccExtras/setjmp.asm: Likewise.
5744 * config/picochip/libgccExtras/subdi3.asm: Likewise.
5745 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
5746 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
5747 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
5748 * config/rs6000/750cl.h: Likewise.
5749 * config/rs6000/altivec.h: Likewise.
5750 * config/rs6000/biarch64.h: Likewise.
5751 * config/rs6000/crtresfpr.asm: Likewise.
5752 * config/rs6000/crtresgpr.asm: Likewise.
5753 * config/rs6000/crtresxfpr.asm: Likewise.
5754 * config/rs6000/crtresxgpr.asm: Likewise.
5755 * config/rs6000/crtsavfpr.asm: Likewise.
5756 * config/rs6000/crtsavgpr.asm: Likewise.
5757 * config/rs6000/darwin-asm.h: Likewise.
5758 * config/rs6000/darwin-fallback.c: Likewise.
5759 * config/rs6000/darwin-fpsave.asm: Likewise.
5760 * config/rs6000/darwin-ldouble.c: Likewise.
5761 * config/rs6000/darwin-tramp.asm: Likewise.
5762 * config/rs6000/darwin-unwind.h: Likewise.
5763 * config/rs6000/darwin-vecsave.asm: Likewise.
5764 * config/rs6000/darwin-world.asm: Likewise.
5765 * config/rs6000/e500crtres32gpr.asm: Likewise.
5766 * config/rs6000/e500crtres64gpr.asm: Likewise.
5767 * config/rs6000/e500crtres64gprctr.asm: Likewise.
5768 * config/rs6000/e500crtrest32gpr.asm: Likewise.
5769 * config/rs6000/e500crtrest64gpr.asm: Likewise.
5770 * config/rs6000/e500crtresx32gpr.asm: Likewise.
5771 * config/rs6000/e500crtresx64gpr.asm: Likewise.
5772 * config/rs6000/e500crtsav32gpr.asm: Likewise.
5773 * config/rs6000/e500crtsav64gpr.asm: Likewise.
5774 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
5775 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
5776 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
5777 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
5778 * config/rs6000/eabi-ci.asm: Likewise.
5779 * config/rs6000/eabi-cn.asm: Likewise.
5780 * config/rs6000/eabi.asm: Likewise.
5781 * config/rs6000/linux-unwind.h: Likewise.
5782 * config/rs6000/linux64.h: Likewise.
5783 * config/rs6000/paired.h: Likewise.
5784 * config/rs6000/paired.md: Likewise.
5785 * config/rs6000/ppc64-fp.c: Likewise.
5786 * config/rs6000/ppu_intrinsics.h: Likewise.
5787 * config/rs6000/rs6000.h: Likewise.
5788 * config/rs6000/si2vmx.h: Likewise.
5789 * config/rs6000/sol-ci.asm: Likewise.
5790 * config/rs6000/sol-cn.asm: Likewise.
5791 * config/rs6000/spe.h: Likewise.
5792 * config/rs6000/spu2vmx.h: Likewise.
5793 * config/rs6000/sysv4.h: Likewise.
5794 * config/rs6000/tramp.asm: Likewise.
5795 * config/rs6000/vec_types.h: Likewise.
5796 * config/s390/linux-unwind.h: Likewise.
5797 * config/s390/tpf-unwind.h: Likewise.
5798 * config/score/crti.asm: Likewise.
5799 * config/score/crtn.asm: Likewise.
5800 * config/sh/crt1.asm: Likewise.
5801 * config/sh/crti.asm: Likewise.
5802 * config/sh/crtn.asm: Likewise.
5803 * config/sh/divtab-sh4-300.c: Likewise.
5804 * config/sh/divtab-sh4.c: Likewise.
5805 * config/sh/divtab.c: Likewise.
5806 * config/sh/lib1funcs-4-300.asm: Likewise.
5807 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
5808 * config/sh/lib1funcs.asm: Likewise.
5809 * config/sh/lib1funcs.h: Likewise.
5810 * config/sh/linux-atomic.asm: Likewise.
5811 * config/sh/linux-unwind.h: Likewise.
5812 * config/sh/shmedia.h: Likewise.
5813 * config/sh/sshmedia.h: Likewise.
5814 * config/sh/ushmedia.h: Likewise.
5815 * config/sparc/crtfastmath.c: Likewise.
5816 * config/sparc/linux-unwind.h: Likewise.
5817 * config/sparc/sol2-c1.asm: Likewise.
5818 * config/sparc/sol2-ci.asm: Likewise.
5819 * config/sparc/sol2-cn.asm: Likewise.
5820 * config/spu/divmodti4.c: Likewise.
5821 * config/spu/divv2df3.c: Likewise.
5822 * config/spu/float_disf.c: Likewise.
5823 * config/spu/float_unsdidf.c: Likewise.
5824 * config/spu/float_unsdisf.c: Likewise.
5825 * config/spu/float_unssidf.c: Likewise.
5826 * config/spu/mfc_multi_tag_release.c: Likewise.
5827 * config/spu/mfc_multi_tag_reserve.c: Likewise.
5828 * config/spu/mfc_tag_release.c: Likewise.
5829 * config/spu/mfc_tag_reserve.c: Likewise.
5830 * config/spu/mfc_tag_table.c: Likewise.
5831 * config/spu/multi3.c: Likewise.
5832 * config/spu/spu_internals.h: Likewise.
5833 * config/spu/spu_intrinsics.h: Likewise.
5834 * config/spu/spu_mfcio.h: Likewise.
5835 * config/spu/vec_types.h: Likewise.
5836 * config/spu/vmx2spu.h: Likewise.
5837 * config/stormy16/stormy16-lib2.c: Likewise.
5838 * config/svr4.h: Likewise.
5839 * config/sync.c: Likewise.
5840 * config/v850/lib1funcs.asm: Likewise.
5841 * config/vxlib-tls.c: Likewise.
5842 * config/vxlib.c: Likewise.
5843 * config/vxworks-dummy.h: Likewise.
5844 * config/xtensa/crti.asm: Likewise.
5845 * config/xtensa/crtn.asm: Likewise.
5846 * config/xtensa/ieee754-df.S: Likewise.
5847 * config/xtensa/ieee754-sf.S: Likewise.
5848 * config/xtensa/lib1funcs.asm: Likewise.
5849 * config/xtensa/lib2funcs.S: Likewise.
5850 * config/xtensa/linux-unwind.h: Likewise.
5851 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
5852 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
5853 * coretypes.h: Likewise.
5854 * crtstuff.c: Likewise.
5855 * defaults.h: Likewise.
5856 * dwarf2.h: Likewise.
5857 * emutls.c: Likewise.
5858 * gbl-ctors.h: Likewise.
5859 * gcov-io.h: Likewise.
5860 * ginclude/float.h: Likewise.
5861 * ginclude/iso646.h: Likewise.
5862 * ginclude/stdarg.h: Likewise.
5863 * ginclude/stdbool.h: Likewise.
5864 * ginclude/stddef.h: Likewise.
5865 * ginclude/stdfix.h: Likewise.
5866 * ginclude/stdint-gcc.h: Likewise.
5867 * ginclude/tgmath.h: Likewise.
5868 * gthr-aix.h: Likewise.
5869 * gthr-dce.h: Likewise.
5870 * gthr-gnat.c: Likewise.
5871 * gthr-gnat.h: Likewise.
5872 * gthr-lynx.h: Likewise.
5873 * gthr-mipssde.h: Likewise.
5874 * gthr-nks.h: Likewise.
5875 * gthr-posix.c: Likewise.
5876 * gthr-posix.h: Likewise.
5877 * gthr-posix95.h: Likewise.
5878 * gthr-rtems.h: Likewise.
5879 * gthr-single.h: Likewise.
5880 * gthr-solaris.h: Likewise.
5881 * gthr-tpf.h: Likewise.
5882 * gthr-vxworks.h: Likewise.
5883 * gthr-win32.h: Likewise.
5884 * gthr.h: Likewise.
5885 * libgcc2.c: Likewise.
5886 * libgcc2.h: Likewise.
5887 * libgcov.c: Likewise.
5888 * tsystem.h: Likewise.
5889 * typeclass.h: Likewise.
5890 * unwind-c.c: Likewise.
5891 * unwind-compat.h: Likewise.
5892 * unwind-dw2-fde-compat.c: Likewise.
5893 * unwind-dw2-fde-darwin.c: Likewise.
5894 * unwind-dw2-fde-glibc.c: Likewise.
5895 * unwind-dw2-fde.c: Likewise.
5896 * unwind-dw2-fde.h: Likewise.
5897 * unwind-dw2.c: Likewise.
5898 * unwind-dw2.h: Likewise.
5899 * unwind-generic.h: Likewise.
5900 * unwind-pe.h: Likewise.
5901 * unwind-sjlj.c: Likewise.
5902 * unwind.inc: Likewise.
5903 * config/arm/neon-gen.ml: Change generated copyright header to
5904 refer to version 3 of the GNU General Public License with
5905 version 3.1 of the GCC Runtime Library Exception and to point
5906 readers at the COPYING3 and COPYING3.RUNTIME files and the
5907 FSF's license web page.
5908 * config/arm/arm_neon.h: Regenerate.
5909
59102009-04-09 Jakub Jelinek <jakub@redhat.com>
5911
5912 * config/cris/cris.md: Change copyright header to refer to version
5913 3 of the GNU General Public License.
5914 * doc/install.texi2html: Change copyright header to refer to version
5915 3 of the GNU General Public License and to point readers at the
5916 COPYING3 file and the FSF's license web page.
5917 * config/vax/linux.h: Likewise.
5918
4a77c72b
PB
59192009-04-09 Paolo Bonzini <bonzini@gnu.org>
5920
1ad2f450
L
5921 * config/i386/i386.md (cmpcc): New.
5922 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
5923 (sync_compare_and_swap_cc*): Delete.
5924
5925 * config/s390/s390.c (s390_compare_emitted): Remove.
5926 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
5927 s390_compare_emitted used to be handled. Assert that modes match.
5928 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
5929 refer to sync_compare_and_swap_ccsi.
5930 * config/s390/s390.h (s390_compare_emitted): Remove.
5931 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
5932 instead of s390_compare_emitted.
5933 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
5934 instead of s390_compare_emitted.
5935 * config/s390/s390.md (cmpcc): New.
5936 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
5937 CC_REGNUM, do not pretend it's set.
5938 (sync_compare_and_swap_cc*): Delete.
5939 * config/s390/predicates.md (cc_reg_operand): New.
5940
5941 * expr.c (sync_compare_and_swap_cc): Delete.
5942 * optabs.h (sync_compare_and_swap_cc): Delete.
5943 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
5944 is being used with can_compare_p.
5945 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
5946 (find_cc_set): New.
5947 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
5948 look for a MODE_CC set instead. Use emit_store_flag.
5949 (expand_compare_and_swap_loop): Likewise, with some additional
5950 complication to avoid a force_reg when useless. Use
5951 emit_cmp_and_jump_insns.
5952 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
5953 * doc/md.texi (sync_compare_and_swap_cc): Merge with
5954 sync_compare_and_swap documentation.
4a77c72b 5955
0c0efb33
JH
59562009-04-09 Jan Hubicka <jh@suse.cz>
5957
5958 * except.c (find_prev_try): Break out from ....
5959 (duplicate_eh_regions): ... here; properly update prev_try pointers
5960 when duplication part of tree.
5961 (dump_eh_tree): Improve dumping.
5962 (verify_eh_region): New.
5963 (verify_eh_tree): Use it.
5964
22a65a54
RG
59652009-04-06 Richard Guenther <rguenther@suse.de>
5966
5967 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
5968 &ARRAY addresses by adjusting their types and prepending
5969 a conversion.
5970 * tree-cfg.c (verify_gimple_assign_single): Verify that
5971 addresses are correct.
5972
f76968e6
RG
59732009-04-09 Richard Guenther <rguenther@suse.de>
5974
5975 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
5976 indices into an array reference if possible.
5977 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
5978 Fold POINTER_PLUS_EXPR statements with invariant address.
5979
c90c5fb5
AM
59802009-04-09 Alan Modra <amodra@bigpond.net.au>
5981
5982 PR target/39634
5983 * config.gcc (powerpc64-*-linux*): Always build biarch.
5984
17cede2e
JM
59852009-04-09 Joseph Myers <joseph@codesourcery.com>
5986
5987 PR c/39613
5988 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5989 it and pedwarn if this results in an INTEGER_CST.
5990
a3337ea2
KG
59912009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5992
5993 * doc/install.texi: Update minimum GMP version. Remove obsolete
5994 text in MPFR section.
5995
ce9ba79b
JJ
59962009-04-08 Jakub Jelinek <jakub@redhat.com>
5997
5998 * dwarf2out.c (class_scope_p): New static inline.
5999 (class_or_namespace_scope_p): Use it.
6000 (gen_variable_die): Use DW_TAG_member tag for static data member
6001 declarations instead of DW_TAG_variable.
6002
4f0ae266
JJ
6003 PR middle-end/39573
6004 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
6005 variables.
6006
d27f0ddc
RG
60072009-04-08 Richard Guenther <rguenther@suse.de>
6008
6009 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
6010 valueize random data.
6011
557cc596
DE
60122009-04-08 David Edelsohn <edelsohn@gnu.org>
6013
6014 * config.gcc (aix tm_file): Add aix-stdint.h.
6015 (aix tm clause use_gcc_stdint): Set to wrap.
6016 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 6017
75ccc1e7
RG
60182009-04-08 Richard Guenther <rguenther@suse.de>
6019
6020 PR middle-end/36291
6021 * tree-dfa.c (add_referenced_var): Do not recurse into
6022 global initializers.
6023 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
6024 exposed variables.
6025 (fold_const_aggregate_ref): Likewise.
6026
c6963675
PB
60272009-04-08 Paolo Bonzini <bonzini@gnu.org>
6028
6c44cf79
L
6029 * recog.c (ordered_comparison_operator): New.
6030 * gensupport.c (std_preds): Add it.
c6963675
PB
6031 * doc/md.texi (Machine-Independent Predicates): Document it.
6032
6d07ad98
JH
60332009-04-08 Jan Hubicka <jh@suse.cz>
6034
6035 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
6036 * function.h (rtl_eh): Remove exception_handler_label_map.
6037 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
6038 remove_exception_handler_label, for_each_eh_label_1): Remove.
6039 (rtl_remove_unreachable_regions): Remove.
6040 (convert_from_eh_region_ranges): Do not remove unreachable regions.
6041 (find_exception_handler_labels): Don't build the hashtable.
6042 (maybe_remove_eh_handler): Remove.
6043 (for_each_eh_label): Rewrite to walk the tree.
6044 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
6045 * except.h (maybe_remove_eh_handler): Remove.
6046 * passes.c (init_optimization_passes): Schedule second EH cleanup
6047 before out-of-ssa.
6048 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
6049 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
6050
7ddf71e3
PB
60512009-04-08 Paolo Bonzini <bonzini@gnu.org>
6052
6053 * genoutput.c (validate_optab_operands): New.
6054 (gen_insn, gen_expand): Call it.
6055
6056 * genflags.c (gen_insn): Detect misused iterators.
6057 (main): Pass line_no to gen_insn, exit with status 1 on error.
6058
6059 * genextract.c (line_no): Make global.
6060 (VEC_safe_set_locstr): Change assertion to error message.
6061 (main): Exit with status 1 on error.
6062
4d84fe7c
JM
60632009-04-08 Joseph Myers <joseph@codesourcery.com>
6064
6065 PR c/39614
6066 PR c/39673
6067 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6068 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6069 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
6070 * c-convert.c (convert): Do not call fold on results of conversion
6071 functions when the result is a C_MAYBE_CONST_EXPR.
6072 * c-parser.c (c_parser_postfix_expression): Do not fold condition
6073 of __builtin_choose_expr.
6074 * c-typeck.c (remove_c_maybe_const_expr): New.
6075 (build_unary_op, build_conditional_expr, build_compound_expr,
6076 build_binary_op, c_objc_common_truthvalue_conversion): Call
6077 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
6078 integer operands.
6079
60839f5d 60802009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 6081
2ba9daa7 6082 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 6083 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 6084
8e481a2c
DS
60852009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
6086
6087 PR bootstrap/39660
6088 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
6089 mix declarations and code.
6090
ee618c17
BE
60912009-04-08 Ben Elliston <bje@au.ibm.com>
6092
6093 * gcc.c: Replace `CC' with `GCC' throughout.
6094
f2a758a2
L
60952009-04-07 H.J. Lu <hongjiu.lu@intel.com>
6096
6097 * doc/invoke.texi: Document Atom support.
6098
6ea2bd47
JM
60992009-04-07 Jason Merrill <jason@redhat.com>
6100
6101 PR c++/25185
6102 * c-common.h, c-common.c: Add flag_pretty_templates.
6103 * c-opts.c (c_common_handle_option): Set it.
6104 * c.opt: Add -fno-pretty-templates.
6105 * doc/invoke.texi (C++ Dialect Options): Likewise.
6106
fcb82ab0
UB
61072009-04-07 Uros Bizjak <ubizjak@gmail.com>
6108
6109 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
6110 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
6111 (ia64_expand_builtin): Likewise.
6112
dc5e7298
MJ
61132009-04-07 Martin Jambor <mjambor@suse.cz>
6114
6115 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
6116 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
6117 ADDR_EXPRS are include too.
6118
0609b355
RG
61192009-04-07 Richard Guenther <rguenther@suse.de>
6120
6121 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
6122 decls are only used if passes as parameters or if they are
6123 local statics and the call is not to a builtin.
6124 (call_may_clobber_ref_p_1): Likewise.
6125
d8e535fa
PB
61262009-04-07 Paolo Bonzini <bonzini@gnu.org>
6127
6128 * expr.c (do_store_flag): Remove last argument. Simplify code
6129 to avoid duplication of tests already done by can_compare_p.
6130 (expand_expr_real_1): Adjust caller.
6131
c3c64f50
PB
61322009-04-07 Paolo Bonzini <bonzini@gnu.org>
6133
fcb82ab0
UB
6134 * optabs.c (can_compare_p): Test the predicate of a
6135 cbranch and cstore pattern.
c3c64f50 6136
9a53bc17
PB
61372009-04-07 Paolo Bonzini <bonzini@gnu.org>
6138
fcb82ab0
UB
6139 * expr.c (convert_move): Use emit_store_flag instead of
6140 "emulating" it.
9a53bc17 6141
67b8f1c1
PB
61422009-04-07 Paolo Bonzini <bonzini@gnu.org>
6143
fcb82ab0
UB
6144 * config/i386/i386.c (ix86_compare_emitted): Remove.
6145 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
6146 ix86_compare_op0 like ix86_compare_emitted used to be handled.
6147 * config/i386/i386.h (ix86_compare_emitted): Remove.
6148 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
6149 instead of ix86_compare_emitted.
6150 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 6151
44509946
AS
61522009-04-07 Andrew Stubbs <ams@codesourcery.com>
6153
6154 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
6155 Add t-sysroot-suffix to tmake_file.
6156 * config/print-sysroot-suffix.sh: New file.
6157 * config/t-sysroot-suffix: New file.
6158
ca22d882
BE
61592009-04-07 Ben Elliston <bje@au.ibm.com>
6160
6161 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
6162 as the latter produces a warning when the target does not support
6163 infinity.
6164
95aac11b
BE
61652009-04-07 Ben Elliston <bje@au.ibm.com>
6166
6167 * dfp.c: Replace type punning assignments with memcpy throughout.
6168 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 6169
633dd061
AM
61702009-04-07 Alan Modra <amodra@bigpond.net.au>
6171
6172 PR target/39634
6173 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
6174 Include soft-fp/t-softfp after rs6000/t-linux64.
6175
fe0a25ec
EB
61762009-04-06 Eric Botcazou <ebotcazou@adacore.com>
6177
6178 * stor-layout.c (set_sizetype): Use the full precision of their
6179 machine mode for bitsize types.
6180
0c011bc3
L
61812009-04-06 H.J. Lu <hongjiu.lu@intel.com>
6182
6183 * config/i386/i386.md: Revert 2 accidental checkins.
6184
b6837b94 61852009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 6186 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
6187 H.J. Lu <hongjiu.lu@intel.com>
6188
6189 Atom pipeline model, tuning and insn selection.
6190 * config.gcc (atom): Add atom config options and target.
6191
6192 * config/i386/atom.md: New.
6193
6194 * config/i386/i386.c (atom_cost): New cost.
6195 (m_ATOM): New macro flag.
6196 (initial_ix86_tune_features): Set m_ATOM.
6197 (x86_accumulate_outgoing_args): Likewise.
6198 (x86_arch_always_fancy_math_387): Likewise.
6199 (processor_target): Add Atom cost.
6200 (cpu_names): Add Atom cpu name.
6201 (override_options): Set Atom ISA.
6202 (ix86_issue_rate): New case PROCESSOR_ATOM.
6203 (ix86_adjust_cost): Likewise.
6204
6205 * config/i386/i386.h (TARGET_ATOM): New target macro.
6206 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
6207 (TARGET_OPT_AGU): New target option.
6208 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
6209 (processor_type): Add PROCESSOR_ATOM.
6210
6211 * config/i386/i386.md (cpu): Add new value "atom".
6212 (use_carry, movu): New attr.
6213 (atom.md): Include atom.md.
6214 (adddi3_carry_rex64): Set attr "use_carry".
6215 (addqi3_carry): Likewise.
6216 (addhi3_carry): Likewise.
6217 (addsi3_carry): Likewise.
6218 (*addsi3_carry_zext): Likewise.
6219 (subdi3_carry_rex64): Likewise.
6220 (subqi3_carry): Likewise.
6221 (subhi3_carry): Likewise.
6222 (subsi3_carry): Likewise.
6223 (x86_movdicc_0_m1_rex64): Likewise.
6224 (*x86_movdicc_0_m1_se): Likewise.
6225 (x86_movsicc_0_m1): Likewise.
6226 (*x86_movsicc_0_m1_se): Likewise.
6227 (*adddi_1_rex64): Emit add insn as much as possible.
6228 (*addsi_1): Likewise.
6229 (return_internal): Set atom_unit.
6230 (return_internal_long): Likewise.
6231 (return_pop_internal): Likewise.
6232 (*rcpsf2_sse): Set atom_sse_attr attr.
6233 (*qrt<mode>2_sse): Likewise.
6234 (*prefetch_sse): Likewise.
6235
6236 * config/i386/i386-c.c (ix86_target_macros_internal): New case
6237 PROCESSOR_ATOM.
6238 (ix86_target_macros_internal): Likewise.
6239
6240 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
6241 (*prefetch_sse_rex): Likewise.
6242 (sse_rcpv4sf2): Likewise.
6243 (sse_vmrcpv4sf2): Likewise.
6244 (sse_sqrtv4sf2): Likewise.
6245 (<sse>_vmsqrt<mode>2): Likewise.
6246 (sse_ldmxcsr): Likewise.
6247 (sse_stmxcsr): Likewise.
6248 (*sse_sfence): Likewise.
6249 (sse2_clflush): Likewise.
6250 (*sse2_mfence): Likewise.
6251 (*sse2_lfence): Likewise.
6252 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
6253 (<sse>_movup<ssemodesuffixf2c>): Likewise.
6254 (avx_movdqu<avxmodesuffix>): Likewise.
6255 (avx_lddqu<avxmodesuffix>): Likewise.
6256 (sse2_movntv2di): Change attr "type" to "ssemov".
6257 (sse2_movntsi): Likewise.
6258 (rsqrtv8sf2): Change attr "type" to "sseadd".
6259 (sse3_addsubv2df3): Set attr "atom_unit".
6260 (sse3_h<plusminus_insn>v4sf3): Likewise.
6261 (*sse2_pmaddwd): Likewise.
6262 (*vec_extractv2di_1_rex64): Likewise.
6263 (*vec_extractv2di_1_avx): Likewise.
6264 (sse2_psadbw): Likewise.
6265 (ssse3_phaddwv8hi3): Likewise.
6266 (ssse3_phaddwv4hi3): Likewise.
6267 (ssse3_phadddv4si3): Likewise.
6268 (ssse3_phadddv2si3): Likewise.
6269 (ssse3_phaddswv8hi3): Likewise.
6270 (ssse3_phaddswv4hi3): Likewise.
6271 (ssse3_phsubwv8hi3): Likewise.
6272 (ssse3_phsubwv4hi3): Likewise.
6273 (ssse3_phsubdv4si3): Likewise.
6274 (ssse3_phsubdv2si3): Likewise.
6275 (ssse3_phsubswv8hi3): Likewise.
6276 (ssse3_phsubswv4hi3): Likewise.
6277 (ssse3_pmaddubsw128): Likewise.
6278 (sse3_pmaddubsw: Likewise.
6279 (ssse3_palignrti): Likewise.
6280 (ssse3_palignrdi): Likewise.
6281
53e350d3
GP
62822009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
6283
6284 * doc/install.texi (Specific): Fix two cross-references to MinGW.
6285
439ef907
RG
62862009-04-06 Richard Guenther <rguenther@suse.de>
6287
6288 PR tree-optimization/28868
6289 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6290 of which PHI results we inserted.
6291 (insert_into_preds_of_block): Record inserted PHIs.
6292 (eliminate): Eliminate redundant PHI nodes.
6293 (init_pre): Init inserted_phi_names.
6294
4bad83f5
RG
62952009-04-06 Richard Guenther <rguenther@suse.de>
6296
6297 PR tree-optimization/39643
6298 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6299 IMAGPART_EXPRs of complex constants.
6300 (execute_fold_all_builtins): If we folded a call queue
6301 TODO_update_address_taken.
6302
570c4247
JH
63032009-04-06 Jan Hubicka <jh@suse.cz>
6304
6305 PR middle-end/39659
6306 * except.c (remove_unreachable_regions): Propagate may_contain_throw
6307 flag.
6308
a460d7a1
AS
63092009-04-06 Andrew Stubbs <ams@codesourcery.com>
6310
6311 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6312 delay slot.
6313 (ic_invalidate_array): Likewise.
6314
60839f5d 63152009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
6316
6317 * calls.c (emit_library_call_value_1): Fix a problem with parameter
6318 alignment for library calls.
6319
7d253f6e
DS
63202009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
6321
6322 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
6323 (mingw32 tm clause use_gcc_stdint): Set to wrap.
6324 * config/i386/mingw-stdint.h: New file.
6325
941c3614
RB
63262009-04-05 Richard Guenther <rguenther@suse.de>
6327
6328 PR tree-optimization/39648
6329 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6330 our &A vs. &A[0] IL deficiencies.
6331
12633413
JH
63322009-04-04 Jan Hubicka <jh@suse.cz>
6333
941c3614
RB
6334 * except.c (sjlj_find_directly_reachable_regions): Be ready for
6335 removed toplevel regions.
12633413
JH
6336 (sjlj_mark_call_sites): Likewise.
6337
bb2aaded
DK
63382009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
6339
6340 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
6341 (cygwin tm clause use_gcc_stdint): Set to wrap.
6342 * config/i386/cygwin-stdint.h: New file.
6343
86290011
RG
63442009-04-04 Richard Guenther <rguenther@suse.de>
6345
6346 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6347 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6348 single-argument PHIs if we are in loop-closed SSA form.
6349 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6350 for the pre-condition.
6351 (slpeel_tree_peel_loop_to_edge): Likewise.
6352 (vect_build_loop_niters): Take an optional sequence to append stmts.
6353 (vect_generate_tmps_on_preheader): Likewise.
6354 (vect_do_peeling_for_loop_bound): Take extra guards for the
6355 pre-condition.
6356 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
6357 the cost model check.
6358 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 6359 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
6360 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6361 (vect_do_peeling_for_loop_bound): Likewise.
6362 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6363 loop bound only record extra pre-conditions, do not apply loop
6364 versioning.
6365
5eeeac64
RG
63662009-04-04 Richard Guenther <rguenther@suse.de>
6367
6368 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6369 renaming code.
6370
1ff7d06b
JH
63712009-04-04 Jan Hubicka <jh@suse.cz>
6372
6373 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6374 last_basic_block for size of bb->index indexed array.
6375 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6376 compute_out, link_btr_uses, build_btr_def_use_webs,
6377 build_btr_def_use_webs, migrate_btr_defs): Likewise.
6378
14925fcd
JH
63792009-04-04 Jan Hubicka <jh@suse.cz>
6380
6381 * except.c (remove_eh_handler_and_replace): Break out from ...
6382 (remove_eh_handler): ... here.
6383 (bring_to_root): New function.
6384 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6385 handled ones, bring others to root of tree.
6386
4e6d1743
JH
63872009-04-04 Jan Hubicka <jh@suse.cz>
6388
4cb735f7
JH
6389 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6390 (all_phis_safe_to_merge): New function.
6391 (update_info): New structure.
6392 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6393 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 6394
c6803d43
RG
63952009-04-04 Richard Guenther <rguenther@suse.de>
6396
6397 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6398 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6399 (append_vuse): Likewise.
6400
54f5943c
JJ
64012009-04-04 Jakub Jelinek <jakub@redhat.com>
6402
6403 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6404 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6405 instead of REG_UNSAVED for DW_CFA_undefined.
6406 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6407 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6408 outermost frame.
6409
aad2bccb
RE
64102009-04-04 Richard Earnshaw <rearnsha@arm.com>
6411
6412 PR target/39501
6413 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6414 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6415 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6416
aa7069aa
RG
64172009-04-04 Richard Guenther <rguenther@suse.de>
6418
6419 PR tree-optimization/8781
6420 PR tree-optimization/37892
6421 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6422 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6423 (valueize_refs): Call it for *& valueizations.
6424 (shared_reference_ops_from_ref): Rename to ...
6425 (valueize_shared_reference_ops_from_ref): ... this and valueize.
6426 (shared_reference_ops_from_call): Rename to ...
6427 (valueize_shared_reference_ops_from_call): ... this and valueize.
6428 (vn_reference_lookup): Update.
6429 (visit_reference_op_call): Likewise.
6430 * tree-ssa-pre.c (phi_translate_1): Fold *&.
6431 (eliminate): Value-replace the call address in call statements.
6432
cd15ad3e
RG
64332009-04-04 Richard Guenther <rguenther@suse.de>
6434
6435 PR tree-optimization/39636
6436 * tree-ssa-forwprop.c
6437 (forward_propagate_addr_into_variable_array_index): Check for
6438 GIMPLE_ASSIGN before accessing the rhs code.
6439
462f3262
JM
64402009-04-03 Jason Merrill <jason@redhat.com>
6441
6442 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6443
6adb807e
SE
64442009-04-03 Steve Ellcey <sje@cup.hp.com>
6445
6446 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6447 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6448 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6449 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6450 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6451 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6452 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6453 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6454 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6455 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6456 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6457 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6458 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6459 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6460 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6461 Use fr_reg_or_fp01_operand instead of fr_register_operand
6462
6463 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6464 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6465 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6466
174b3107
VM
64672009-04-03 Vladimir Makarov <vmakarov@redhat.com>
6468
b844e5d8
L
6469 PR rtl-optimization/39607
6470 PR rtl-optimization/39631
7a715bba
UB
6471
6472 Revert:
2ba9daa7 6473
174b3107
VM
6474 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
6475 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6476 instead of DF_LR_OUT.
6477 * ira-lives.c (process_bb_node_lives): Ditto.
6478 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6479 instead of DF_LR_{OUT,IN}.
6480 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6481 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6482
535b544a
SB
64832009-04-03 Steven Bosscher <steven@gcc.gnu.org>
6484
6485 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6486 (execute_lower_omp): Always run but take the short way out if -fopenmp
6487 is not given.
6488 (gate_lower_omp): Remove, forcing the pass manager to always run the
6489 pass and always set PROP_gimple_lomp.
6490 (pass_lower_omp): Remove gate function.
6491 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6492 PROP_trees. Instead, require it.
6493 * ipa-cp.c (pass_ipa_cp): Likewise.
6494 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6495 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6496 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6497 and PROP_gimple_leh.
6498
5006671f
RG
64992009-04-03 Richard Guenther <rguenther@suse.de>
6500
6501 PR middle-end/13146
6502 PR tree-optimization/23940
6503 PR tree-optimization/33237
6504 PR middle-end/33974
6505 PR middle-end/34093
6506 PR tree-optimization/36201
6507 PR tree-optimization/36230
6508 PR tree-optimization/38049
6509 PR tree-optimization/38207
6510 PR tree-optimization/38230
6511 PR tree-optimization/38301
6512 PR tree-optimization/38585
6513 PR middle-end/38895
6514 PR tree-optimization/38985
6515 PR tree-optimization/39299
6516 * tree-ssa-structalias.h: Remove.
6517 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6518 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6519 (struct vuse_element_d): Remove.
6520 (struct vuse_vec_d): Likewise.
6521 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6522 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6523 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6524 VUSE_ELEMENT_VAR): Likewise.
6525 (struct voptype_d): Likewise.
6526 (NUM_VOP_FREE_BUCKETS): Likewise.
6527 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6528 (struct stmt_operands_d): Remove.
6529 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6530 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6531 VDEF_NUM, VDEF_VECT): Likewise.
6532 (copy_virtual_operands): Remove.
6533 (operand_build_cmp): Likewise.
6534 (create_ssa_artificial_load_stmt): Likewise.
6535 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
6536 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
6537 vuse_index and mayuse_index members. Pack and move done and iter_type
6538 members to the front.
6539 (SSA_OP_VMAYUSE): Remove.
6540 (SSA_OP_VIRTUAL_USES): Adjust.
6541 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
6542 (unlink_stmt_vdef): Declare.
6543 (add_to_addressable_set): Remove.
6544 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
6545 (vrp_visit_stmt): Likewise.
6546 * doc/tree-ssa.texi (Alias analysis): Update.
6547 * doc/invoke.texi (max-aliased-vops): Remove docs.
6548 (avg-aliased-vops): Likewise.
6549 * tree-into-ssa.c (syms_to_rename): Remove.
6550 (need_to_update_vops_p): Likewise.
6551 (need_to_initialize_update_ssa_p): Rename to ...
6552 (update_ssa_initialized_fn): ... this. Track function we are
6553 initialized for.
6554 (symbol_marked_for_renaming): Simplify.
6555 (add_new_name_mapping): Do not set need_to_update_vops_p.
6556 (dump_currdefs): Use SYMS_TO_RENAME.
6557 (rewrite_update_stmt): Always walk all uses/defs.
6558 (dump_update_ssa): Adjust.
6559 (init_update_ssa): Take function argument. Track what we are
6560 initialized for.
6561 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
6562 (create_new_def_for): Initialize for cfun, assert we are initialized
6563 for cfun.
6564 (mark_sym_for_renaming): Simplify.
6565 (mark_set_for_renaming): Do not initialize update-ssa.
6566 (need_ssa_update_p): Simplify. Take function argument.
6567 (name_mappings_registered_p): Assert we ask for the correct function.
6568 (name_registered_for_update_p): Likewise.
6569 (ssa_names_to_replace): Likewise.
6570 (release_ssa_name_after_update_ssa): Likewise.
6571 (update_ssa): Likewise. Use SYMS_TO_RENAME.
6572 (dump_decl_set): Do not print a newline.
6573 (debug_decl_set): Do it here.
6574 (dump_update_ssa): And here.
6575 * tree-ssa-loop-im.c (move_computations): Adjust.
6576 (movement_possibility): Likewise.
6577 (determine_max_movement): Likewise.
6578 (gather_mem_refs_stmt): Likewise.
6579 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
6580 or NAME_MEMORY_TAG.
6581 * tree-complex.c (update_all_vops): Remove.
6582 (expand_complex_move): Adjust.
6583 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
6584 Simplify test for memory referencing statement. Exclude
6585 non-invariant ADDR_EXPRs.
6586 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
6587 * tree-loop-distribution.c (generate_memset_zero): Adjust.
6588 (rdg_flag_uses): Likewise.
6589 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
6590 related code.
6591 (tree_optimize_tail_calls_1): Also split the
6592 edge from the entry block if we have degenerate PHI nodes in
6593 the first basic block.
6594 * tree.c (init_ttree): Remove memory-tag related code.
6595 (tree_code_size): Likewise.
6596 (tree_node_structure): Likewise.
6597 (build7_stat): Re-write to be build6_stat.
6598 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
6599 (SSA_VAR_P): Adjust.
6600 (struct tree_memory_tag): Remove.
6601 (struct tree_memory_partition_tag): Likewise.
6602 (union tree_node): Adjust.
6603 (build7): Re-write to be build6.
6604 * tree-pass.h (pass_reset_cc_flags): Remove.
6605 (TODO_update_address_taken): New flag.
6606 (pass_simple_dse): Remove.
6607 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
6608 * params.h (MAX_ALIASED_VOPS): Remove.
6609 (AVG_ALIASED_VOPS): Likewise.
6610 * omp-low.c (expand_omp_taskreg): Update SSA form.
6611 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
6612 aliases the lhs in a copy stmt.
6613 * tree-ssa-dse.c (struct address_walk_data): Remove.
6614 (memory_ssa_name_same): Likewise.
6615 (memory_address_same): Likewise.
6616 (get_kill_of_stmt_lhs): Likewise.
6617 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
6618 unused stores. Look through PHI nodes into post-dominated regions.
6619 (dse_optimize_stmt): Simplify. Properly remove stores.
6620 (tree_ssa_dse): Compute dominators.
6621 (execute_simple_dse): Remove.
6622 (pass_simple_dse): Likewise.
6623 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
6624 gimple_loaded_syms and gimple_stored_syms computation.
6625 * toplev.c (dump_memory_report): Dump alias and pta stats.
6626 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
6627 (vn_reference_eq): Likewise.
6628 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
6629 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
6630 valueize_vuses): Remove.
6631 (get_def_ref_stmt_vuses): Simplify. Rename to ...
6632 (get_def_ref_stmt_vuse): ... this.
6633 (vn_reference_lookup_2): New function.
6634 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
6635 walking equivalent vuses. Simplify.
6636 (vn_reference_lookup): Likewise.
6637 (vn_reference_insert): Likewise.
6638 (vn_reference_insert_pieces): Likewise.
6639 (visit_reference_op_call): Simplify.
6640 (visit_reference_op_load): Likewise.
6641 (visit_reference_op_store): Likewise.
6642 (init_scc_vn): Remove shared_lookup_vuses initialization.
6643 (free_scc_vn): Remove shared_lookup_vuses freeing.
6644 (sort_vuses, sort_vuses_heap): Remove.
6645 (get_ref_from_reference_ops): Export.
6646 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
6647 vector with single vuse pointer.
6648 (vn_reference_lookup_pieces, vn_reference_lookup,
6649 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
6650 (shared_vuses_from_stmt): Remove.
6651 (get_ref_from_reference_ops): Declare.
6652 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
6653 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
6654 memory-tag related code.
6655 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
6656 (likely_value): Add comment, skip static-chain of call statements.
6657 (surely_varying_stmt_p): Adjust.
6658 (gimplify_and_update_call_from_tree): Likewise.
6659 (execute_fold_all_builtins): Do not rebuild alias info.
6660 (gimplify_and_update_call_from_tree): Properly update VOPs.
6661 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
6662 (copy_ref_info): Remove memory-tag related code.
6663 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
6664 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
6665 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
6666 computation.
6667 * tree-ssa-dom.c (gimple_p): Remove typedef.
6668 (eliminate_redundant_computations): Adjust.
6669 (record_equivalences_from_stmt): Likewise.
6670 (avail_expr_hash): Likewise.
6671 (avail_expr_eq): Likewise.
7a715bba 6672 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
6673 (stmt_makes_single_load): Likewise.
6674 (stmt_makes_single_store): Likewise.
6675 * tree-ssa-alias.c: Rewrite completely.
6676 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
6677 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
6678 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
6679 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
6680 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
6681 Remove public functions.
6682 (pass_reset_cc_flags): Remove.
6683 (pass_build_alias): Move ...
6684 * tree-ssa-structalias.c (pass_build_alias): ... here.
6685 * tree-ssa-alias.c (may_be_aliased): Move ...
6686 * tree-flow-inline.h (may_be_aliased): ... here.
6687 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
6688 count_uses_and_derefs): Move ...
6689 * gimple.c: ... here.
6690 * gimple.h (count_uses_and_derefs): Declare.
6691 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
6692 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
6693 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
6694 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
6695 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
6696 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
6697 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
6698 New functions.
6699 * tree-dfa.c (refs_may_alias_p): Move ...
6700 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
6701 * tree-ssa-alias.h: New file.
6702 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
6703 (statement_sink_location): Likewise.
6704 * opts.c (decode_options): Do not adjust max-aliased-vops or
6705 avg-aliased-vops values.
6706 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
6707 (TV_CALL_CLOBBER): Likewise.
6708 (TV_FLOW_SENSITIVE): Likewise.
6709 (TV_FLOW_INSENSITIVE): Likewise.
6710 (TV_MEMORY_PARTITIONING): Likewise.
6711 (TV_ALIAS_STMT_WALK): New timevar.
6712 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
6713 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
6714 (get_address_description): Remove memory-tag related code.
6715 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
6716 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
6717 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
6718 and immediate uses in statements. Document.
6719 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
6720 (dump_symbols): Remove.
6721 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
6722 * alias.c (get_deref_alias_set): New function split out from ...
6723 (get_alias_set): ... here.
6724 * alias.h (get_deref_alias_set): Declare.
6725 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
6726 type parameter. Remove restrict pointer handling. Create a
6727 ref-all pointer in case type-based alias sets do not conflict.
6728 (vect_analyze_data_refs): Remove SMT related code.
6729 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
6730 (vectorizable_load): Likewise.
6731 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
6732 (DR_SYMBOL_TAG, DR_VOPS): Remove.
6733 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
6734 Ignore vops and SMTs.
6735 (dr_analyze_alias): Likewise..
6736 (free_data_ref): Likewise.
6737 (create_data_ref): Likewise.
6738 (analyze_all_data_dependences): Likewise.
6739 (get_references_in_stmt): Adjust.
6740 * tree-flow-inline.h (gimple_aliases_computed_p,
6741 gimple_addressable_vars, gimple_call_clobbered_vars,
6742 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
6743 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
6744 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
6745 gimple_mem_ref_stats): Remove.
6746 (gimple_vop): New function.
6747 (op_iter_next_use): Remove vuses and mayuses cases.
6748 (op_iter_next_def): Remove vdefs case.
6749 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
6750 (clear_and_done_ssa_iter): Do not set removed fields.
6751 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
6752 Assert we are not iterating over vuses or vdefs if not also
6753 iterating over uses or defs.
6754 (op_iter_init_use): Likewise.
6755 (op_iter_init_def): Likewise.
6756 (op_iter_next_vdef): Remove.
6757 (op_iter_next_mustdef): Likewise.
6758 (op_iter_init_vdef): Likewise.
6759 (compare_ssa_operands_equal): Likewise.
6760 (link_use_stmts_after): Handle vuse operand.
6761 (is_call_used): Use is_call_clobbered.
6762 (is_call_clobbered): Global variables are always call clobbered,
6763 query the call-clobbers bitmap.
6764 (mark_call_clobbered): Ignore global variables.
6765 (clear_call_clobbered): Likewise.
6766 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
6767 virtual operands sanity check.
6768 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
6769 Remove.
6770 (TARGET_MEM_REF): Remove TMR_TAG operand.
6771 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
6772 Remove call-clobber related code.
6773 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
6774 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
6775 partitions or escape reason.
6776 (get_single_def_stmt, get_single_def_stmt_from_phi,
6777 get_single_def_stmt_with_phi): Remove.
6778 (dump_referenced_vars): Tidy.
6779 (get_ref_base_and_extent): Allow bare decls.
6780 (collect_dfa_stats): Adjust.
6781 * graphite.c (rename_variables_in_stmt): Adjust.
6782 (graphite_copy_stmts_from_block): Likewise.
6783 (translate_clast): Likewise.
6784 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
6785 (EXPR_DIES): New.
6786 (translate_vuse_through_block): Use the oracle.
6787 (phi_translate_1): Adjust.
6788 (value_dies_in_block_x): Use the oracle. Cache the outcome
6789 in EXPR_DIES.
6790 (valid_in_sets): Check if the VUSE for
6791 a REFERENCE is available.
6792 (eliminate): Do not remove stmts during elimination,
6793 instead queue and remove them afterwards.
6794 (do_pre): Do not rebuild alias info.
6795 (pass_pre): Run TODO_rebuild_alias before PRE.
6796 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
6797 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
6798 (mark_all_v_defs_stmt): Remove.
6799 (mark_all_v_defs_seq): Adjust.
6800 (sra_replace): Likewise.
6801 (scalarize_use): Likewise.
6802 (scalarize_copy): Likewise.
6803 (scalarize_init): Likewise.
6804 (scalarize_ldst): Likewise.
6805 (todoflags): Remove.
6806 (tree_sra): Do not rebuild alias info.
6807 (tree_sra_early): Adjust.
6808 (pass_sra): Run TODO_update_address_taken before SRA.
6809 * tree-predcom.c (set_alias_info): Remove.
6810 (prepare_initializers_chain): Do not call it.
6811 (mark_virtual_ops_for_renaming): Adjust.
6812 (mark_virtual_ops_for_renaming_list): Remove.
6813 (initialize_root_vars): Adjust.
6814 (initialize_root_vars_lm): Likewise.
6815 (prepare_initializers_chain): Likewise.
6816 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
6817 (may_propagate_copy_into_stmt): Likewise.
6818 (merge_alias_info): Do nothing for now.
6819 (propagate_tree_value_into_stmt): Adjust.
6820 (stmt_may_generate_copy): Likewise.
6821 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
6822 not mark symbols for renaming.
6823 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
6824 with the same statement, make sure to update the new pointed-to one.
6825 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
6826 call statements, do not mark symbols for renaming.
6827 (mark_operand_necessary): Dump something.
6828 (ref_may_be_aliased): New function.
6829 (mark_aliased_reaching_defs_necessary_1): New helper function.
6830 (mark_aliased_reaching_defs_necessary): Likewise.
6831 (mark_all_reaching_defs_necessary_1): Likewise.
6832 (mark_all_reaching_defs_necessary): Likewise.
6833 (propagate_necessity): Do not process virtual PHIs. For
6834 non-aliased loads mark all reaching definitions as necessary.
6835 For aliased loads and stores mark the immediate dominating
6836 aliased clobbers as necessary.
6837 (visited): New global static.
6838 (perform_tree_ssa_dce): Free visited bitmap after propagating
6839 necessity.
6840 (remove_dead_phis): Perform simple dead virtual PHI removal.
6841 (remove_dead_stmt): Properly unlink virtual operands when
6842 removing stores.
6843 (eliminate_unnecessary_stmts): Schedule PHI removal after
6844 stmt removal.
6845 * tree-ssa-ter.c (is_replaceable_p): Adjust.
6846 (process_replaceable): Likewise.
6847 (find_replaceable_in_bb): Likewise.
6848 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
6849 based on the single gimple vop.
6850 (verify_flow_insensitive_alias_info): Remove.
6851 (verify_flow_sensitive_alias_info): Likewise.
6852 (verify_call_clobbering): Likewise.
6853 (verify_memory_partitions): Likewise.
6854 (verify_alias_info): Likewise.
6855 (verify_ssa): Adjust..
6856 (execute_update_addresses_taken): Export. Update SSA
6857 manually. Optimize only when optimizing. Use a local bitmap.
6858 (pass_update_address_taken): Remove TODO_update_ssa, add
6859 TODO_dump_func.
6860 (pass_update_address_taken): Just use TODO_update_address_taken.
6861 (init_tree_ssa): Do not initialize addressable_vars.
6862 (verify_ssa): Verify new VUSE / VDEF properties.
6863 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
6864 Do not call verify_alias_info.
6865 (delete_tree_ssa): Clear the VUSE, VDEF operands.
6866 Do not free the loaded and stored syms bitmaps. Reset the escaped
6867 and callused solutions. Do not free addressable_vars.
6868 Remove memory-tag related code.
6869 (warn_uninitialized_var): Aliases are always available.
6870 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
6871 * lambda-code.c (can_put_in_inner_loop): Adjust.
6872 (can_put_after_inner_loop): Likewise.
6873 (perfect_nestify): Likewise.
6874 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
6875 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
6876 (vectorizable_conversion): Do not mark symbols for renaming.
6877 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
6878 (expand_call_inline): Unlink the calls virtual operands before
6879 replacing it.
6880 (tree_function_versioning): Do not call update_ssa if we are not
6881 updating clones. Simplify.
6882 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
6883 (propagate_with_phi): Likewise..
6884 * tree-outof-ssa.c (create_temp): Remove memory tag and call
6885 clobber code. Assert we are not aliased or global.
6886 * tree-flow.h: Include tree-ssa-alias.h
6887 (enum escape_type): Remove.
6888 (struct mem_sym_stats_d): Likewise.
6889 (struct mem_ref_stats_d): Likewise.
6890 (struct gimple_df): Add vop member. Remove global_var,
6891 call_clobbered_vars, call_used_vars, addressable_vars,
6892 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
6893 escaped and callused members.
6894 (struct ptr_info_def): Remove all members, add points-to solution
6895 member pt.
6896 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
6897 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
6898 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
6899 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
6900 (tree-ssa-alias.o): Likewise.
6901 (toplev.o): Add tree-ssa-alias.h
6902 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
6903 * gimple.c (gimple_set_bb): Fix off-by-one error.
6904 (is_gimple_reg): Do not handle memory tags.
6905 (gimple_copy): Also copy virtual operands.
6906 Delay updating the statement. Do not reset loaded and stored syms.
6907 (gimple_set_stored_syms): Remove.
6908 (gimple_set_loaded_syms): Likewise.
6909 (gimple_call_copy_skip_args): Copy the virtual operands
6910 and mark the new statement modified.
6911 * tree-ssa-structalias.c (may_alias_p): Remove.
6912 (set_uids_in_ptset): Take the alias set to prune with as
6913 parameter. Fold in the alias test of may_alias_p.
6914 (compute_points_to_sets): Compute whether a ptr is dereferenced
6915 in a local sbitmap.
6916 (process_constraint): Deal with &ANYTHING on the lhs, reject all
6917 other ADDRESSOF constraints on the lhs.
6918 (get_constraint_for_component_ref): Assert that we don't get
6919 ADDRESSOF constraints from the base of the reference.
6920 Properly generate UNKNOWN_OFFSET for DEREF if needed.
6921 (struct variable_info): Remove collapsed_to member.
6922 (get_varinfo_fc): Remove.
6923 (new_var_info): Do not set collapsed_to.
6924 (dump_constraint): Do not follow cycles.
6925 (dump_constraint_graph): Likewise.
6926 (build_pred_graph): Likewise.
6927 (build_succ_graph): Likewise.
6928 (rewrite_constraints): Likewise.
6929 (do_simple_structure_copy): Remove.
6930 (do_rhs_deref_structure_copy): Remove.
6931 (do_lhs_deref_structure_copy): Remove.
6932 (collapse_rest_of_var): Remove.
6933 (do_structure_copy): Re-implement.
6934 (pta_stats): New global variable.
6935 (dump_pta_stats): New function.
6936 (struct constraint_expr): Make offset signed.
6937 (UNKNOWN_OFFSET): Define special value.
6938 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
6939 (solution_set_expand): New helper function split out from ...
6940 (do_sd_constraint): ... here.
6941 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
6942 (do_ds_constraint): Likewise.
6943 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
6944 and CALLUSED = *CALLUSED.
6945 (set_union_with_increment): Make inc argument signed.
6946 (type_safe): Remove.
6947 (get_constraint_for_ptr_offset): Handle unknown and negative
6948 constant offsets.
6949 (first_vi_for_offset): Handle offsets before start. Bail
6950 out early for offsets beyond the variable extent.
6951 (first_or_preceding_vi_for_offset): New function.
6952 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
6953 Together with ESCAPED = *ESCAPED this properly computes reachability.
6954 (find_what_var_points_to): New function.
6955 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
6956 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
6957 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
6958 pt_solutions_intersect): New functions.
6959 (compute_call_used_vars): Remove.
6960 (compute_may_aliases): New main entry into PTA computation.
6961 * gimple.h (gimple_p): New typedef.
6962 (struct gimple_statement_base): Remove references_memory_p.
6963 (struct gimple_statement_with_memory_ops_base): Remove
6964 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
6965 members.
6966 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
6967 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
6968 gimple_set_references_memory): Remove.
6969 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
6970 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
6971 New functions.
6972 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
6973 (verify_expr): Allow RESULT_DECL.
6974 (gimple_duplicate_bb): Do not copy virtual operands.
6975 (gimple_duplicate_sese_region): Adjust.
6976 (gimple_duplicate_sese_tail): Likewise.
6977 (mark_virtual_ops_in_region): Remove.
6978 (move_sese_region_to_fn): Do not call it.
6979 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
6980 and pass_simple_dse.
6981 (execute_function_todo): Handle TODO_update_address_taken,
6982 call execute_update_addresses_taken for TODO_rebuild_alias.
6983 (execute_todo): Adjust.
6984 (execute_one_pass): Init dump files early.
6985 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
6986 call-clobbered.
6987 (create_general_new_stmt): Clear vops.
6988 * tree-ssa-reassoc.c (get_rank): Adjust.
6989 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
6990 symbols for renaming.
6991 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
6992 (PARAM_AVG_ALIASED_VOPS): Likewise.
6993 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
6994 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 6995 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
6996 (operand_build_cmp, copy_virtual_operands,
6997 create_ssa_artificial_load_stmt, add_to_addressable_set,
6998 gimple_add_to_addresses_taken): Remove public functions.
6999 (unlink_stmt_vdef): New function.
7000
457d1d00
AM
70012009-04-03 Alan Modra <amodra@bigpond.net.au>
7002
7003 * config.gcc (powerpc-*-linux*): Merge variants.
7004
e19da24c 70052009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 7006 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
7007
7008 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
7009 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
7010 cop0_sp_offset.
7011 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
7012 keep_interrupts_masked_p, use_debug_exception_return_p.
7013 (mips_attribute_table): Add interrupt, use_shadow_register_set,
7014 keep_interrupts_masked, use_debug_exception_return.
7015 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
7016 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
7017 New functions.
7018 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
7019 (mips_print_operand): Process COP0 registers to print $0 .. $31
7020 correctly for GAS to process.
7021 (mips_interrupt_extra_call_saved_reg_p): New function.
7022 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
7023 extra registers.
7024 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
7025 (mips_compute_frame_info): Add supports for interrupt context that
7026 includes doubleword accumulators and COP0 registers.
7027 (mips_for_each_saved_acc): New function.
7028 (mips_for_each_saved_gpr_and_fpr): Change the function name from
7029 mips_for_each_saved_reg.
7030 (mips_save_reg): Save accumulators.
7031 (mips_kernel_reg_p): A new for_each_rtx callback.
7032 (mips_expand_prologue): Support interrupt handlers.
7033 (mips_restore_reg): Restore accumulators.
7034 (mips_expand_epilogue): Support interrupt handlers.
7035 (mips_can_use_return_insn): Return false for interrupt handlers.
7036 (mips_epilogue_uses): New function.
7037 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
7038 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
7039 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
7040 cop0_move): New instructions.
7041 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
7042 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
7043 defines.
7044 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
7045 New defines.
7046 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
7047 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
7048 interrupt handlers, we use K0 as the temporary register.
7049 (EPILOGUE_USES): Change to a function call.
7050 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
7051 handlers, we use K0 as the temporary register.
2ba9daa7 7052
e19da24c
CF
7053 * doc/extend.texi (Function Attributes): Document interrupt,
7054 use_shadow_register_set, keep_interrupts_masked,
7055 use_debug_exception_return for MIPS attributes.
7056
aa1ca044
AM
70572009-04-03 Alan Modra <amodra@bigpond.net.au>
7058
7059 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
7060 Remove a number of t-files from tmake_file.
7061 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
7062 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
7063 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7064 target_prototype, not TARGET_PROTOTYPE.
7065 (LINK_OS_GNU_SPEC): Define.
7066 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
7067 and darwin-ldoubdle.c.
7068
14fdc613
MM
70692009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
7070
7071 PR driver/39293
7072 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
7073 (cpp_options): Ditto.
7074 (default_compilers): Ditto.
7075 (display_help): Ditto.
7076 (process_command): Ditto.
7077 (do_spec_1): Ditto.
7078 (set_input): Use lbasename instead of duplicate code.
7079 (save_temps_prefix): New static for -save-temps=obj.
7080 (save_temps_length): Ditto.
2ba9daa7 7081
14fdc613
MM
7082 * doc/invoke.texi (-save-temps=obj): Document new variant to
7083 -save-temps switch.
7084
d3aa398e
JL
70852009-04-02 Jeff Law <law@redhat.com>
7086
7087 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
7088 variable.
7089
83f0ccb8
L
70902009-04-02 H.J. Lu <hongjiu.lu@intel.com>
7091
7092 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
7093 * configure: Regenerated.
7094
dcb6e951
RAE
70952009-04-02 Rafael Avila de Espindola <espindola@google.com>
7096
7097 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
7098 share the argument list.
7099
d85478c2
RAE
71002009-04-02 Rafael Avila de Espindola <espindola@google.com>
7101
7102 Merge
7103
7104 2009-02-12 Diego Novillo <dnovillo@google.com>
7105
83f0ccb8
L
7106 * varpool.c (debug_varpool): New.
7107 * cgraph.h (debug_varpool): Declare.
d85478c2 7108
34f42a49
JH
71092009-04-02 Jan Hubicka <jh@suse.cz>
7110
7111 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
7112 pass.
7113
a4747b4a
L
71142009-04-02 H.J. Lu <hongjiu.lu@intel.com>
7115
7116 * config/i386/i386.c (ix86_abi): Move initialization to ...
7117 (override_options): Here.
7118
63a9de54
CB
71192009-04-02 Christian Bruel <christian.bruel@st.com>
7120
7121 * config/sh/sh.c (sh_dwarf_register_span): New function.
7122 (TARGET_DWARF_REGISTER_SPAN): Define.
7123 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 7124
2f0fa28e
IR
71252009-04-02 Ira Rosen <irar@il.ibm.com>
7126
7127 PR tree-optimization/39595
2ba9daa7 7128 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
7129 interleaved loads group is not greater than the SLP group size.
7130
bbf7ce11
RAE
71312009-04-02 Rafael Avila de Espindola <espindola@google.com>
7132
7133 * builtins.c (is_builtin_name): New.
7134 (called_as_built_in): Use is_builtin_name.
7135 * tree.h (is_builtin_name): New.
7136 * varasm.c (incorporeal_function_p): Use is_builtin_name
7137
47e4dfcf
AS
71382009-04-02 Andrew Stubbs <ams@codesourcery.com>
7139
7140 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
7141
d0940d56
DS
71422009-04-02 Dodji Seketeli <dodji@redhat.com>
7143
7144 PR c++/26693
532bfb0a 7145 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
7146 * c-common.c (set_underlying_type): ... here.
7147 Also, make sure the function properly sets TYPE_STUB_DECL() on
7148 the newly created typedef variant type.
7149 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
7150 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
7151 points.
d0940d56 7152
bf1cbdc6
RG
71532009-04-02 Richard Guenther <rguenther@suse.de>
7154
7155 PR tree-optimization/37221
7156 * tree-flow.h (degenerate_phi_result): Declare.
7157 * tree-ssa-dom.c (degenerate_phi_result): Export.
7158 * tree-scalar-evolution.c (analyze_initial_condition): If
7159 the initial condition is defined by a degenerate PHI node
7160 use the degenerate value.
7161
87cfb32c
EB
71622009-04-01 Eric Botcazou <ebotcazou@adacore.com>
7163
7164 PR rtl-optimization/39588
7165 * combine.c (merge_outer_ops): Do not set the constant when this
7166 is not necessary.
7167 (simplify_shift_const_1): Do not modify it either in this case.
7168
bbb6eae8
SB
71692009-04-01 Steven Bosscher <steven@gcc.gnu.org>
7170
7171 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
7172 tuning is deprecated if -mtune value is set to an Itanium1 variant.
7173
839a3b8a
JJ
71742009-04-01 Janis Johnson <janis187@us.ibm.com>
7175
7176 PR c/29027
7177 * c-lex.c (interpret_float): Default (no suffix) is double.
7178
667e8acb
XDL
71792009-04-1 Xinliang David Li <davidxl@google.com>
7180
7181 * config/i386/i386.c (legitimate_constant_p): Recognize
7182 all one vector constant.
7183
60839f5d 71842009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7185
60839f5d 7186 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
7187 Change #include order to silence two warnings.
7188
60839f5d 71892009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7190
60839f5d 7191 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
7192 (ASM_SPEC): Pass -k to the assembler for PIC code.
7193
60839f5d 71942009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7195
60839f5d
EB
7196 * config.gcc: Add vax-*-linux* to the switch.
7197 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
7198 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
7199
60839f5d 72002009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7201
60839f5d 7202 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 7203 Use predicate macros instead of GET_CODE() == foo.
60839f5d 7204 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
7205 ashlsi3, rotrsi3, <unnamed>): Likewise.
7206
60839f5d 72072009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7208
60839f5d 7209 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 7210 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d
EB
7211 * config/vax/constraints.md: Likewise.
7212 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7213 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
7214 * config/vax/predicates.md: Likewise.
7215 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 7216 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
7217 * config/vax/vax.h: Likewise.
7218 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 7219
60839f5d 72202009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7221
60839f5d 7222 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
7223 (indirectable_address_p, adjacent_operands_p): Add spaces around
7224 braces.
60839f5d 7225 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 7226
60839f5d 72272009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7228
60839f5d 7229 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
7230 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
7231 index_term_p, reg_plus_index_p, legitimate_address_p,
7232 vax_mode_dependent_address_p): Update comments to match functions
7233 modified by the recent int->bool conversion.
7234
60839f5d 72352009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7236
60839f5d
EB
7237 * config/vax/builtins.md: Update copyright message.
7238 * config/vax/constraints.md: Likewise.
7239 * config/vax/netbsd-elf.h: Likewise.
7240 * config/vax/predicates.md: Likewise.
7241 * config/vax/vax-protos.h: Likewise.
7242 * config/vax/vax.c: Likewise.
7243 * config/vax/vax.h: Likewise.
7244 * config/vax/vax.md: Likewise.
7245 * config/vax/vax.opt: Likewise.
c4e75102 7246
60839f5d 72472009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 7248
60839f5d 7249 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 7250 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
7251 * config/vax/constraints.md (B, R): Likewise.
7252 * config/vax/predicates.md (external_memory_operand,
c4e75102 7253 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
7254 * config/vax/vax.c (vax_output_int_add): Likewise.
7255 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
7256 untyped_call): Likewise.
7257
60839f5d 72582009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 7259
7a715bba
UB
7260 * config/vax/predicates.md: New file.
7261 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
7262 external_const_operand, nonsymbolic_operand, external_memory_operand,
7263 indirect_memory_operand, indexed_memory_operand,
7264 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7265 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7266 predicate.
7a715bba
UB
7267 * config/vax/constraints.md: New file.
7268 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7269 New constraint.
7270 * config/vax/builtins.md: New file.
7271 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7272 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7273 jbbccisi): Define.
c4e75102
MT
7274 * config/vax/vax.opt (mqmath): Add option.
7275 * config/vax/vax.md (isfx): Extend with DI.
7276 (VAXintQH, VAXintQHSD): Define.
7277 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7278 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7279 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7280 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7281 (movdi): Update constraints and use vax_output_int_move().
7282 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7283 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7284 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7285 nonlocal_goto): New.
7286 (mov<mode>): Extend accepted operand types.
7287 (subdi3_old): Rename from subdi3, change update constraints and use
7288 a new implementation.
60839f5d 7289 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
7290 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7291 MOVE_RATIO, CLEAR_RATIO): Define.
7292 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7293 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7294 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 7295 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
7296 (split_quadword_operands): Make static and really allow variable
7297 splitting.
7298 (print_operand_address): Update for PIC generation.
7299 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7300 indexable_address_p, fixup_mathdi_operand,
7301 vax_expand_addsub_di_operands, adjacent_operands_p): New.
7302 (vax_float_literal, legitimate_constant_p,
7303 indirectable_constant_address_p, index_term_p,
7304 reg_plus_index_p): Return bool instead of int.
7305 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7306 where needed.
7307 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7308 generation.
7309 (vax_output_conditional_branch): Indent.
7310 (legitimate_constant_address_p, indirectable_constant_address_p,
7311 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7312 vax_mode_dependent_address_p): Return bool instead of int, update for
7313 PIC generation.
7314 * config/vax/vax-protos.h (legitimate_constant_address_p,
7315 legitimate_constant_p, legitimate_address_p,
7316 vax_mode_dependent_address_p): Change declaration to bool.
7317 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7318 vax_expand_addsub_di_operands, vax_output_int_subtract,
7319 vax_output_movmemsi): Declare.
7320 (split_quadword_operands, vax_float_literal): Delete declaration.
7321 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7322 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7323 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7324 ASM_OUTPUT_DWARF_PCREL): Define.
7325 (ASM_SPEC): Change definition to allow PIC generation.
7326
9332c6eb
L
73272009-04-01 Steve Ellcey <sje@cup.hp.com>
7328
7329 * doc/sourcebuild.texi: Update front-end requirements.
7330
d93e052c
JJ
73312009-04-01 Jakub Jelinek <jakub@redhat.com>
7332
7333 PR target/39226
7334 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7335 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7336 (booldi3_internal3): Use boolean_or_operator instead of
7337 boolean_operator.
7338
6ccb2a4a
JM
73392009-04-01 Joseph Myers <joseph@codesourcery.com>
7340
7341 PR c/39605
7342 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7343 declarator whose size is not an integer constant expression but
7344 folds to an integer constant, then treat it as a constant
7345 subsequently.
7346
299b87f8
RG
73472009-04-01 Richard Guenther <rguenther@suse.de>
7348
7349 * fold-const.c (fold_plusminus_mult_expr): Do not fold
7350 i * 4 + 2 to (i * 2 + 1) * 2.
7351
b85eb797
JJ
73522009-04-01 Jakub Jelinek <jakub@redhat.com>
7353
7354 PR c/37772
7355 * c-parser.c (c_parser_asm_statement): Skip until close paren and
7356 return if c_parser_asm_string_literal returned NULL.
7357
235e1fe8
NC
73582009-04-01 Nick Clifton <nickc@redhat.com>
7359
7360 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7361 already defined.
7362 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7363 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
7364 other typedefs to avoid conflicts with libgcc2.c. Define labels
7365 to gain 16-bit bit-manipulation functions from libgcc2.c and then
7366 include it.
7367 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
7368 to gain 16-bit trapping arithmetic functions from libgcc2.c and
7369 then include it.
7370
d6868399
RAE
73712009-04-01 Rafael Avila de Espindola <espindola@google.com>
7372
7a715bba
UB
7373 * varasm.c (default_function_rodata_section): Declare DOT as
7374 const char*.
d6868399 7375
73d21f56 73762009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 7377 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
7378
7379 PR/39492
7380 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7381 Make object_name unique for each process.
7382
03742a9b
JJ
73832009-04-01 Jakub Jelinek <jakub@redhat.com>
7384
7385 PR other/39591
7386 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7387 addressable variables in the parallel that could go out of scope while
7388 running queued tasks.
7389
4223ff5f
AS
73902009-04-01 Anatoly Sokolov <aesok@post.ru>
7391
7392 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7393 (CASE_VALUES_THRESHOLD): Redefine.
7394 * config/avr/avr.c (avr_override_options): Remove initialization of
7395 avr_case_values_threshold variable.
7396 (avr_case_values_threshold): Remove variable. Add new function.
7397 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7398 * config/avr/avr.opt (mno-tablejump): Remove option.
7399 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7400
e893f6f3
DD
74012009-04-01 DJ Delorie <dj@redhat.com>
7402
7403 * varasm.c (default_function_rodata_section): Don't assume
7404 anything about where the first '.' in the section name is.
7405
b246d100
AM
74062009-04-01 Alan Modra <amodra@bigpond.net.au>
7407
7408 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7409 rs6000_emit_stack_tie.
7410
d3e37a9e
ILT
74112009-03-31 Ian Lance Taylor <iant@google.com>
7412
7413 * tree-eh.c (tree_remove_unreachable_handlers): Compare
7414 gimple_code with GIMPLE_RESX, not RESX.
7415
c1b61fca
JM
74162009-03-31 Joseph Myers <joseph@codesourcery.com>
7417
7418 * c-common.c (c_get_ident): New.
7a715bba 7419 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 7420
c2d2ad48
BE
74212009-04-01 Ben Elliston <bje@au.ibm.com>
7422
7423 * config/rs6000/sysv4.opt (msdata): Improve option description.
7424
13d1a6e7
SE
74252009-03-31 Steve Ellcey <sje@cup.hp.com>
7426
7427 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7428 (divdf3_internal_lat): Remove.
7429 (divxf3_internal_lat): Remove.
7430 (divxf3_internal_thr): Remove.
7431 (divxf): Use divxf3_internal.
7432 * config/ia64/div.md (divsf3_internal_lat): New.
7433 (divdf3_internal_lat): New.
7434 (divxf3_internal): New.
7435
207bf79d
JM
74362009-03-31 Joseph Myers <joseph@codesourcery.com>
7437
7438 PR c/448
7439 * Makefile.in (USE_GCC_STDINT): Define.
7440 (stmp-int-hdrs): Install stdint.h if applicable.
7441 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7442 if known.
7443 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7444 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7445 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7446 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7447 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7448 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7449 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7450 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7451 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7452 (c_common_nodes_and_builtins): Initialize
7453 underlying_wchar_type_node. Do not initialize
7454 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
7455 nodes for new types.
7456 (c_stddef_cpp_builtins): Define macros for new types.
7457 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7458 Remove.
7459 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7460 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7461 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7462 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7463 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7464 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7465 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7466 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7467 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7468 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7469 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7470 int16_type_node, int32_type_node, int64_type_node,
7471 uint8_type_node, uint16_type_node, c_uint32_type_node,
7472 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7473 int_least32_type_node, int_least64_type_node,
7474 uint_least8_type_node, uint_least16_type_node,
7475 uint_least32_type_node, uint_least64_type_node,
7476 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7477 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7478 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7479 uintptr_type_node): Define.
7480 * c-cppbuiltin.c (builtin_define_constants,
7481 builtin_define_type_minmax): New.
7482 (builtin_define_stdint_macros): Define more macros.
7483 (c_cpp_builtins): Define more limit macros.
7484 (type_suffix): New.
7485 (builtin_define_type_max): Define in terms of
7486 builtin_define_type_minmax. Remove is_long parameter. All
7487 callers changed.
7488 * config.gcc (use_gcc_stdint): Define.
7489 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7490 Add newlib-stdint.h for generic targets.
7491 * config/glibc-stdint.h, config/newlib-stdint.h,
7492 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7493 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7494 * config/score/score.h (UINTPTR_TYPE): Define.
7495 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7496 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7497 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7498 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7499 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7500 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7501 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7502 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7503 * config/spu/spu.h (STDINT_LONG32): Define.
7504 * configure.ac (use_gcc_stdint): Substitute.
7505 * configure: Regenerate.
7506 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7507 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7508 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7509 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7510 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7511 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7512 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7513 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7514 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7515 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7516 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7517 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7518 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7519 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7520 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7521 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7522 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7523 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7524 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7525 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7526 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7527 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7528 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7529 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7530 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7531 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7532 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7533 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7534 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
7535
ed853664
BS
75362009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
7537
7538 * loop-iv.c (suitable_set_for_replacement): Renamed from
7539 simplify_using_assignment; changed to return bool and to accept new
7540 args DEST and SRC. Return true iff we find a source/destination pair
7541 that can be used to make a replacement, and fill SRC and DEST if so.
7542 Remove arg ALTERED. Don't deal with altered regs here. All callers
7543 changed.
7544 (simplify_using_initial_values): Deal with altered regs here and track
7545 more precisely the effect they have on the validity of our expression.
7546
1569e190
BS
7547 * loop-iv.c (simplify_using_condition): A condition of the form
7548 (EQ REG CONST) can be used to simply make a substitution.
7549 (simplify_using_initial_values): Keep track of conditions we have seen
7550 and keep using them to simplify new expressions, while applying the
7551 same substitutions to them as to the expression.
7552
1d1eb80c
BS
7553 * simplify-rtx.c (simplify_relational_operation_1): Simplify
7554 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
7555 GEU/LTU reversed.
7556
28af33b0
BS
7557 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
7558 changed. Use this when trying to improve the upper bound.
7559 Generate the comparison by using simplify_gen_relational.
7560
b30321cd
BS
7561 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
7562
60081874
BS
7563 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
7564 functions.
2ba9daa7 7565 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
7566 replace_in_expr to make replacements. Call replace_single_def_regs
7567 once on the initial version of the expression.
7568
bebc6e07
RR
75692009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7570
fcb82ab0 7571 PR target/27237
bebc6e07 7572 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 7573
6b12efe9
RG
75742009-03-31 Richard Guenther <rguenther@suse.de>
7575
7576 PR middle-end/31029
7577 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
7578 equality comparisons. Fold C - X CMP X if C % 2 == 1.
7579
108f6c2f
RG
75802009-03-31 Richard Guenther <rguenther@suse.de>
7581
7582 * tree.h (div_if_zero_remainder): Declare.
7583 * fold-const.c (div_if_zero_remainder): Export.
7584 * tree-ssa-forwprop.c
7585 (forward_propagate_addr_into_variable_array_index): Handle
7586 constant array index addition outside of the variable index.
7587
8f612190
JM
75882009-03-31 Joseph Myers <joseph@codesourcery.com>
7589
7590 PR target/39592
7591 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
7592 define_splits, floatunssi<mode>2): Require x87 conversions from
7593 DImode to be permitted.
7594
47580d22
JM
75952009-03-31 Joseph Myers <joseph@codesourcery.com>
7596
7597 PR preprocessor/15638
7598 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
7599
ba4d8f9d
RG
76002009-03-31 Richard Guenther <rguenther@suse.de>
7601
7602 PR middle-end/23401
7603 PR middle-end/27810
7604 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
7605 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
7606 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
7607 a separate statement.
7608 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
7609 (lookup_tmp_var): Likewise.
7610 (is_gimple_formal_tmp_or_call_rhs): Remove.
7611 (is_gimple_reg_or_call_rhs): Rename to ...
7612 (is_gimple_reg_rhs_or_call): ... this.
7613 (is_gimple_mem_or_call_rhs): Rename to ...
7614 (is_gimple_mem_rhs_or_call): ... this.
7615 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
7616 DECL_GIMPLE_REG_P only if is_formal is true.
7617 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
7618 for non-proper post-modify expression gimplification.
7619 (gimplify_self_mod_expr): For post-modify expressions gimplify
7620 the lvalue to a minimal lvalue.
7621 (rhs_predicate_for): Remove formal temp case.
7622 (gimplify_modify_expr_rhs): Likewise.
7623 (gimplify_addr_expr): Use is_gimple_reg.
7624 (gimplify_expr): Remove formal temp cases.
7625 (gimple_regimplify_operands): Likewise.
7626 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
7627 and FILTER_EXPR like constants.
7628 * gimple.c (walk_gimple_op): Fix val_only initialization, use
7629 is_gimple_reg.
7630 (is_gimple_formal_tmp_rhs): Remove.
7631 (is_gimple_reg_rhs): Remove special casing.
7632 (is_gimple_mem_rhs): Fix.
7633 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
7634 (is_gimple_formal_tmp_var): Remove.
7635 (is_gimple_formal_tmp_reg): Likewise.
7636 (is_gimple_min_lval): Allow invariant component ref parts.
7637 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
7638 is_gimple_formal_tmp_reg): Remove declarations.
7639 * tree-cfg.c (verify_expr): Verify that variables with address
7640 taken do not have DECL_GIMPLE_REG_P set.
7641 * tree-mudflap.c (mf_build_check_statement_for): Use
7642 force_gimple_operand instead of gimplify_expr.
7643
8de9b877
AZ
76442009-03-31 Ayal Zaks <zaks@il.ibm.com>
7645
7646 * modulo-sched.c (sms_schedule_by_order): Pass the actual
7647 schedulable rows to compute_split_row.
7648
b5e3caf2
BE
76492009-03-31 Ben Elliston <bje@au.ibm.com>
7650
7651 PR target/31635
7652 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
7653 OPT_mvrsave.
7654
9752c4ad
AM
76552009-03-31 Alan Modra <amodra@bigpond.net.au>
7656
7657 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
7658 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
7659 * configure: Regenerate.
7660 * config.in: Regenerate.
7661 * config/rs6000/rs6000.opt (mtls-markers): Add.
7662 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
7663 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
7664 (tls_ld_aix, tls_ld_sysv): Likewise.
7665 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
7666 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
7667
b597d1b6
AM
76682009-03-31 Alan Modra <amodra@bigpond.net.au>
7669
7670 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
7671
a203a221
JH
76722009-03-30 Jan Hubicka <jh@suse.cz>
7673
b597d1b6
AM
7674 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
7675 out of RESX.
7676 (tree_remove_unreachable_handlers): Cleanup EH predecestor
7677 detection and label handling.
a203a221 7678
5b0c0b2c
VM
76792009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7680
7681 * ira-int.h (ira_allocno): Rename left_conflicts_num to
7682 left_conflicts_size.
7683 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
7684 ALLOCNO_LEFT_CONFLICTS_SIZE.
7685
7686 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
7687 remove_allocno_from_bucket_and_push,
7688 allocno_spill_priority_compare, push_allocnos_to_stack,
7689 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7690 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
7691 (setup_allocno_left_conflicts_num): Ditto. Rename to
7692 setup_allocno_left_conflicts_size.
7693 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
7694 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
7695 setup_allocno_left_conflicts_size instead of
7696 setup_allocno_left_conflicts_num.
7697
7698 * ira-build.c (ira_create_allocno): Use
7699 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
7700 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 7701
9a48a93f
VM
77022009-03-30 Vladimir Makarov <vmakarov@redhat.com>
7703
7704 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
7705 instead of DF_LR_OUT.
7706
7707 * ira-lives.c (process_bb_node_lives): Ditto.
7708
7709 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
7710 instead of DF_LR_{OUT,IN}.
7711
7712 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
7713
7714 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
7715
4c936d4f
JH
77162009-03-30 Jan Hubicka <jh@suse.cz>
7717
7718 * except.c (label_to_region_map): Fix thinko.
7719
f4d9f129
SE
77202009-03-30 Steve Ellcey <sje@cup.hp.com>
7721
7722 PR middle-end/38237
7723 * tree.h (tree_find_value): New declaration.
7724 * tree.c (tree_find_value): New function.
7725 * varasm.c (assemble_external): Avoid duplicate entries on lists.
7726
b3f27c15
JJ
77272009-03-30 Jakub Jelinek <jakub@redhat.com>
7728
7729 PR debug/39563
7730 * c-decl.c (struct c_binding): Add locus field.
7731 (bind): Add locus argument, set locus field from it.
7732 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
7733 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
7734 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
7735 implicitly_declare, undeclared_variable, lookup_label,
7736 declare_label, c_make_fname_decl, c_builtin_function,
7737 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
7738 bind callers.
7739
ad41bd84 77402009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
7741
7742 PR target/38781
7743 * config/i386/i386.c (classify_argument): Check total size of
7744 structure.
7745
133f9369
MJ
77462009-03-30 Martin Jambor <mjambor@suse.cz>
7747
7748 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
7749 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
7750 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
7751 respectively.
7752
7753 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
7754 seen_variable_array_ref while also traversing a union.
7755
7756 * tree-inline.c (optimize_inline_calls): Do not call
7757 cgraph_node_remove_callees.
7758 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
7759 (pass_remove_cgraph_callee_edges): New variable.
7760 * passes.c (init_optimization_passes): Add
7761 pass_remove_cgraph_callee_edges after early inlining and before all
7762 late intraprocedural passes.
7763
7764 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
7765
1190f2eb
PB
77662009-03-30 Paolo Bonzini <bonzini@gnu.org>
7767
7768 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
7769 Fix typos in names.
7770
fedc1775
PB
77712009-03-30 Paolo Bonzini <bonzini@gnu.org>
7772
fcb82ab0
UB
7773 * combine.c (simplify_comparison): Use have_insn_for.
7774 * dojump.c (do_jump): Likewise.
fedc1775 7775
65c5ae8b
PB
77762009-03-30 Paolo Bonzini <bonzini@gnu.org>
7777
7778 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
7779 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
7780 sparc_compare_op0 like sparc_compare_emitted used to be handled.
7781 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
7782 instead of sparc_compare_emitted.
7783 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
7784 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
7785 instead of sparc_compare_emitted.
7786
d25aa7ab
PB
77872009-03-30 Paolo Bonzini <bonzini@gnu.org>
7788
7789 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
7790 enter/exit cfglayout mode.
7791 (pass_partition_block): Require it.
7792 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
7793 (combine_instructions): Track basic blocks instead of labels.
7794 (update_cfg_for_uncondjump): New.
7795 (try_combine): Use it. Update jumps after rescanning.
7796 (pass_combine): Require PROP_cfglayout.
7797 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
7798
9c9e26f5
PB
77992009-03-30 Paolo Bonzini <bonzini@gnu.org>
7800
fcb82ab0
UB
7801 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
7802 Provide/destroy PROP_cfglayout respectively.
7803 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
7804 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 7805
28ddeea1
PB
78062009-03-30 Paolo Bonzini <bonzini@gnu.org>
7807
7808 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
7809 fold_convert_const_fixed_from_fixed,
7810 fold_convert_const_fixed_from_int,
7811 fold_convert_const_fixed_from_real, fold_negate_const): Do not
7812 set TREE_CONSTANT_OVERFLOW.
7813 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
7814 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
7815
ebfd146a
IR
78162009-03-30 Ira Rosen <irar@il.ibm.com>
7817
7818 * tree-vect-loop-manip.c: New file.
7819 * tree-vectorizer.c: Update documentation and included files.
7820 (vect_loop_location): Make extern.
7821 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
7822 (rename_variables_in_bb, rename_variables_in_loop,
7823 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
7824 slpeel_update_phi_nodes_for_guard1,
7825 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
7826 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
7827 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 7828 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
7829 find_loop_location): Likewise.
7830 (new_stmt_vec_info): Move to tree-vect-stmts.c.
7831 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
7832 get_vectype_for_scalar_type, vect_is_simple_use,
7833 supportable_widening_operation, supportable_narrowing_operation):
7834 Likewise.
7835 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
7836 (new_loop_vec_info, destroy_loop_vec_info,
7837 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
7838 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
7839 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
7840 (vect_supportable_dr_alignment): Likewise.
7841 * tree-vectorizer.h (tree-data-ref.h): Include.
7842 (vect_loop_location): Declare.
7843 Reorganize function declarations according to the new file structure.
7844 * tree-vect-loop.c: New file.
2ba9daa7 7845 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
7846 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
7847 * tree-vect-data-refs.c: New file.
7848 * tree-vect-patterns.c (timevar.h): Don't include.
7849 * tree-vect-stmts.c: New file.
2ba9daa7 7850 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 7851 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
7852 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
7853 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
7854 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
7855 (tree-vect-analyze.o): Remove.
7856 (tree-vect-transform.o): Likewise.
7857 (tree-vect-data-refs.o): Add rule.
2ba9daa7 7858 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
7859 tree-vect-slp.o): Likewise.
7860 (tree-vect-patterns.o): Remove redundant dependencies.
7861 (tree-vectorizer.o): Likewise.
7862 * tree-vect-slp.c: New file.
7863
40a1cfba
RW
78642009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7865
7866 * optc-gen.awk: Warn if an option flag has multiple different
7867 help strings.
7868
a9a7a9a2
SP
78692009-03-30 Sebastian Pop <sebastian.pop@amd.com>
7870
7871 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
7872 -floop-block): Document dependences on PPL, CLooG and Graphite.
7873
8ce94e44
JM
78742009-03-30 Joseph Myers <joseph@codesourcery.com>
7875
7876 PR rtl-optimization/323
7877 * c-common.c (c_fully_fold, convert_and_check,
7878 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
7879 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
7880 * c-common.def (EXCESS_PRECISION_EXPR): New.
7881 * c-cppbuiltin.c (builtin_define_float_constants): Define
7882 constants with enough digits for long double.
7883 * c-lex.c (interpret_float): Interpret constant with excess
7884 precision where appropriate.
7885 * c-opts.c (c_common_post_options): Set
7886 flag_excess_precision_cmdline. Give an error for
7887 -fexcess-precision=standard for C++ for processors where the
7888 option is significant.
7889 * c-parser.c (c_parser_conditional_expression): Handle excess
7890 precision in condition.
7891 * c-typeck.c (convert_arguments): Handle arguments with excess
7892 precision.
7893 (build_unary_op): Move excess precision outside operation.
7894 (build_conditional_expr): Likewise.
7895 (build_compound_expr): Likewise.
7896 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
7897 (build_modify_expr): Handle excess precision in RHS.
7898 (convert_for_assignment): Handle excess precision in converted
7899 value.
7900 (digest_init, output_init_element, process_init_element): Handle
7901 excess precision in initializer.
7902 (c_finish_return): Handle excess precision in return value.
7903 (build_binary_op): Handle excess precision in operands and add
7904 excess precision as needed for operation.
7905 * common.opt (-fexcess-precision=): New option.
7906 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
7907 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7908 For standard excess precision, output explicit conversion to and
7909 truncation from XFmode.
7910 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
7911 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
7912 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
7913 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
7914 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
7915 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
7916 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
7917 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
7918 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
7919 define_splits, sqrt<mode>2): Disable where appropriate for
7920 standard excess precision.
7921 * convert.c (convert_to_real): Do not shorten arithmetic to type
7922 for which excess precision would be used.
7923 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
7924 * doc/invoke.texi (-fexcess-precision=): Document option.
7925 (-mfpmath=): Correct index entry.
7926 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
7927 flag_excess_precision): New.
7928 * langhooks.c (lhd_post_options): Set
7929 flag_excess_precision_cmdline.
7930 * opts.c (common_handle_option): Handle -fexcess-precision=.
7931 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
7932 init_excess_precision): New.
7933 (lang_dependent_init_target): Call init_excess_precision.
7934 * tree.c (excess_precision_type): New.
7935 * tree.h (excess_precision_type): Declare.
7936
1e57bf47
JM
79372009-03-30 Joseph Myers <joseph@codesourcery.com>
7938
7939 PR c/35235
7940 * c-typeck.c (build_component_ref): Do not copy qualifiers from
7941 non-lvalue to component.
7942
148e4216
JM
79432009-03-29 Joseph Myers <joseph@codesourcery.com>
7944
7945 PR preprocessor/34695
7946 * Makefile.in (c-opts.o): Depend on c-tree.h.
7947 * c-common.c: Move down include of diagnostic.h.
7948 (done_lexing, c_cpp_error): New.
7949 * c-common.h (done_lexing): Declare.
7950 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
7951 (parse_in).
7952 * c-opts.c: Include c-tree.h.
7953 (c_common_init_options): Set preprocessor error callback.
7954 (c_common_handle_option): Do not set preprocessor
7955 inhibit_warnings, warnings_are_errors, warn_system_headers,
7956 pedantic_errors or inhibit_warnings flags.
7957 (c_common_post_options): Do not check cpp_errors (parse_in).
7958 (c_common_finish): Do not output dependencies if there were
7959 errors. Do not check return value of cpp_finish.
7960 * c-ppoutput.c (pp_file_change): Set input_location.
7961 * c-tree.h (c_cpp_error): Declare.
7962 * diagnostic.c (diagnostic_set_info_translated): Also initialize
7963 override_column.
7964 (diagnostic_build_prefix): Check override_column.
7965 * diagnostic.h (diagnostic_info): Add override_column field.
7966 (diagnostic_override_column): Define.
7967
2ec5deb5
PB
79682009-03-28 Paolo Bonzini <bonzini@gnu.org>
7969
ba20e309
UB
7970 * c-common.c (c_expand_expr, c_staticp): Remove.
7971 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
7972 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
7973 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
7974 * c-gimplify.c (gimplify_compound_literal_expr,
7975 optimize_compound_literals_in_ctor): Remove.
7976 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
7977 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
7978 * c-semantics.c (emit_local_var): Remove.
7979
7980 * langhooks-def.h (lhd_expand_expr): Remove.
7981 * langhooks.c (lhd_expand_expr): Remove.
7982 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
7983
7984 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
7985 handling from c-semantics.c; don't call into langhook.
7986 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
7987 * gimplify.c (gimplify_compound_literal_expr,
7988 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
7989 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
7990 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
7991 as was done in c-gimplify.c.
7992 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
7993 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
7994 Move from c-common.h.
7995 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
7996
7997 * tree.c (staticp): Do not call langhook.
7998 * langhooks.c (lhd_staticp): Delete.
7999 * langhooks-def.h (lhd_staticp): Delete prototype.
8000 (LANG_HOOKS_STATICP): Delete.
8001 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
8002
ba20e309
UB
8003 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
8004 instead of DECL_STMTs.
2ec5deb5 8005
928c19bb
JM
80062009-03-29 Joseph Myers <joseph@codesourcery.com>
8007
8008 PR c/456
8009 PR c/5675
8010 PR c/19976
8011 PR c/29116
8012 PR c/31871
8013 PR c/35198
8014 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
8015 void_type_node.
8016 (fold_call_expr): Return a NOP_EXPR from folding rather than the
8017 contained expression.
ba20e309 8018 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
8019 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
8020 conditional expressions for C.
8021 (decl_constant_value_for_optimization): Move from
ba20e309 8022 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
8023 whether optimizing and that the expression is a VAR_DECL not of
8024 array type instead of doing such checks in the caller. Do not
8025 check pedantic. Call gcc_unreachable for C++.
8026 * c-common.def (C_MAYBE_CONST_EXPR): New.
8027 * c-common.h (c_fully_fold, c_save_expr,
8028 decl_constant_value_for_optimization): New prototypes.
8029 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8030 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8031 EXPR_INT_CONST_OPERANDS): Define.
8032 * c-convert.c (convert): Strip nops from expression.
8033 * c-decl.c (groktypename): Take extra parameters expr and
8034 expr_const_operands. Update call to grokdeclarator.
8035 (start_decl): Update call to grokdeclarator. Add statement for
8036 expressions used in type of decl.
8037 (grokparm): Update call to grokdeclarator.
8038 (push_parm_decl): Update call to grokdeclarator.
8039 (build_compound_literal): Add parameter non_const and build a
8040 C_MAYBE_COSNT_EXPR if applicable.
8041 (grokdeclarator): Take extra parameters expr and
8042 expr_const_operands. Track expressions used in declaration
8043 specifiers and declarators. Fold array sizes and track whether
8044 they are constant expressions and whether they are integer
8045 constant expressions.
8046 (parser_xref_tag): Set expr and expr_const_operands fields in
8047 return value.
8048 (grokfield): Update call to grokdeclarator.
8049 (start_function): Update call to grokdeclarator.
8050 (build_null_declspecs): Set expr and expr_const_operands fields in
8051 return value.
8052 (declspecs_add_type): Handle expressions in typeof specifiers.
8053 * c-parser.c (c_parser_declspecs): Set expr and
8054 expr_const_operands fields for declaration specifiers.
8055 (c_parser_enum_specifier): Likewise.
8056 (c_parser_struct_or_union_specifier): Likewise.
8057 (c_parser_typeof_specifier): Likewise. Update call to
8058 groktypename. Fold expression as needed. Return expressions with
8059 type instead of adding statements.
8060 (c_parser_attributes): Update calls to c_parser_expr_list.
8061 (c_parser_statement_after_labels): Fold expression before passing
8062 to objc_build_throw_stmt.
8063 (c_parser_condition): Fold expression.
8064 (c_parser_asm_operands): Fold expression.
8065 (c_parser_conditional_expression): Use c_save_expr. Update call
8066 to build_conditional_expr.
8067 (c_parser_alignof_expression): Update call to groktypename.
8068 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
8069 original_code. Fold expression argument of va_arg. Create
8070 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
8071 argument to va_arg. Update calls to groktypename. Fold array
8072 index for offsetof. Verify that first argument to
8073 __builtin_choose_expr has integer type.
8074 (c_parser_postfix_expression_after_paren_type): Update calls to
8075 groktypename and build_compound_literal. Handle expressions with
8076 side effects in type name.
8077 (c_parser_postfix_expression_after_primary): Update call to
8078 c_parser_expr_list. Set original_code for calls to
8079 __builtin_constant_p.
8080 (c_parser_expr_list): Take extra parameter fold_p. Fold
8081 expressions if requested.
8082 (c_parser_objc_type_name): Update call to groktypename.
8083 (c_parser_objc_synchronized_statement): Fold expression.
8084 (c_parser_objc_receiver): Fold expression.
8085 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
8086 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
8087 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
8088 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
8089 (struct c_typespec): Add elements expr and expr_const_operands.
8090 (struct c_declspecs): Add elements expr and expr_const_operands.
8091 (groktypename, build_conditional_expr, build_compound_literal):
8092 Update prototypes.
8093 (in_late_binary_op): Declare.
8094 * c-typeck.c (note_integer_operands): New function.
8095 (in_late_binary_op): New variable.
8096 (decl_constant_value_for_broken_optimization): Move to c-common.c
8097 and rename to decl_constant_value_for_optimization.
8098 (default_function_array_conversion): Do not strip nops.
8099 (default_conversion): Do not call
8100 decl_constant_value_for_broken_optimization.
8101 (build_array_ref): Do not fold result.
8102 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
8103 result when operand is a VLA.
8104 (c_expr_sizeof_type): Update call to groktypename. Handle
8105 expressions included in type name. Use C_MAYBE_CONST_EXPR for
8106 result when operand names a VLA type.
8107 (build_function_call): Update call to build_compound_literal.
8108 Only fold result for calls to __builtin_* functions. Strip
8109 NOP_EXPR from INTEGER_CST returned from such functions. Fold
8110 the function designator.
8111 (convert_arguments): Fold arguments. Update call to
8112 convert_for_assignment.
8113 (build_unary_op): Handle increment and decrement of
8114 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
8115 decrement earlier. Fold operand of increment and decrement.
8116 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
8117 built for integer operand. Wrap returns that are INTEGER_CSTs
8118 without being integer constant expressions or that have integer
8119 constant operands without being INTEGER_CSTs.
8120 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
8121 (build_conditional_expr): Add operand ifexp_bcp. Track whether
8122 result is an integer constant expression or can be used in
8123 unevaluated parts of one and avoid folding and wrap as
8124 appropriate. Fold operands before possibly doing -Wsign-compare
8125 warnings.
8126 (build_compound_expr): Wrap result for C99 if operands can be used
8127 in integer constant expressions.
8128 (build_c_cast): Update call to digest_init. Do not ignore
8129 overflow from casting floating-point constants to integers. Wrap
8130 results that could be confused with integer constant expressions,
8131 null pointer constants or floating-point constants.
8132 (c_cast_expr): Update call to groktypename. Handle expressions
8133 included in type name.
8134 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
8135 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
8136 Update calls to convert_for_assignment.
8137 (convert_for_assignment): Take new parameter
8138 null_pointer_constant. Do not strip nops or call
8139 decl_constant_value_for_broken_optimization. Set
8140 in_late_binary_op for conversions to boolean.
8141 (store_init_value): Update call to digest_init.
8142 (digest_init): Take new parameter null_pointer_constant. Do not
8143 call decl_constant_value_for_broken_optimization. pedwarn for
8144 initializers not constant expressions. Update calls to
8145 convert_for_assignment.
8146 (constructor_nonconst): New.
8147 (struct constructor_stack): Add nonconst element.
8148 (really_start_incremental_init, push_init_level, pop_init_level):
8149 Handle constructor_nonconst and nonconst element.
8150 (set_init_index): Call constant_expression_warning for array
8151 designators.
8152 (output_init_element): Fold value. Set constructor_nonconst as
8153 applicable. pedwarn for initializers not constant expressions.
8154 Update call to digest_init. Call constant_expression_warning
8155 where constant initializers are required.
8156 (process_init_element): Use c_save_expr.
8157 (c_finish_goto_ptr): Fold expression.
8158 (c_finish_return): Fold return value. Update call to
8159 convert_for_assignment.
8160 (c_start_case): Fold switch expression.
8161 (c_process_expr_stmt): Fold expression.
8162 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 8163 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
8164 (build_binary_op): Track whether results are integer constant
8165 expressions or may occur in such, disable folding and wrap results
8166 as applicable. Fold operands for -Wsign-compare warnings unless
8167 in_late_binary_op.
8168 (c_objc_common_truthvalue_conversion): Handle results folded to
8169 integer constants that are not integer constant expressions.
8170 * doc/extend.texi: Document when typeof operands are evaluated,
8171 that condition of __builtin_choose_expr is an integer constant
8172 expression, and more about use of __builtin_constant_p in
8173 initializers.
8174
5babbcc0
RG
81752009-03-29 Richard Guenther <rguenther@suse.de>
8176
8177 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8178 propagate addresses of array references.
8179
0340f2ba
SB
81802009-03-29 Steven Bosscher <steven@gcc.gnu.org>
8181
8182 * regmove.c (perhaps_ends_bb_p): Remove.
8183 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
8184 from INSN and check that the main loop stays within that basic block.
8185 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
8186 (regmove_forward_pass): Split out from regmove_optimize. Use
8187 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
8188 (regmove_backward_pass): Split out from regmove_optimize. Use
8189 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
8190 (regmove_optimize): Simplify.
8191
eeae74a1
L
81922009-03-29 H.J. Lu <hongjiu.lu@intel.com>
8193
8194 PR target/39545
8195 * config/i386/i386.c (classify_argument): Ignore flexible array
8196 member in struct and warn ABI change.
8197
a24078b2
L
81982009-03-29 H.J. Lu <hongjiu.lu@intel.com>
8199
8200 * config/i386/i386-protos.h (ix86_agi_dependent): New.
8201
8202 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
8203 (ix86_adjust_cost): Updated.
8204
a8da523f
JH
82052009-03-29 Jan Hubicka <jh@suse.cz>
8206
8207 PR middle-end/28850
8208 * tree-pass.h (pass_cleanup_eh): New function.
8209 (remove_unreachable_regions): Break code handling RTL
8210 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
8211 that can not be reached by runtime.
8212 (can_be_reached_by_runtime): New function.
8213 (label_to_region_map): New function.
8214 (num_eh_regions): New function.
8215 (rtl_remove_unreachable_regions): New function.
8216 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
8217 (remove_eh_region): New function.
8218 * except.h: Include sbitmap and vecprim.
8219 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
8220 num_eh_regions): Declare.
8221 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 8222 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
8223 * tree-eh.c (tree_remove_unreachable_handlers): New function.
8224 (tree_empty_eh_handler_p): New function.
8225 (cleanup_empty_eh): New function.
8226 (cleanup_eh): New function.
8227 (pass_cleanup_eh): New function.
8228
98f358e5
JH
82292009-03-29 Jan Hubicka <jh@suse.cz>
8230
8231 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
8232 for removed regions.
8233
13a9fa44
JH
82342009-03-29 Jan Hubicka <jh@suse.cz>
8235
8236 * except.c (dump_eh_tree): Dump all datastructures.
8237
e38cf733
JH
82382009-03-29 Jan Hubicka <jh@suse.cz>
8239
8240 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
8241 (duplicate_eh_regions_1): Likewise.
8242 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
8243 vector; call EH verification.
8244 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8245 Be ready for region being removed.
8246
12802c2b
JH
82472009-03-29 Jan Hubicka <jh@suse.cz>
8248
8249 * bitmap.c (bitmap_last_set_bit): New function.
8250 * bitmap.h (bitmap_last_set_bit): Declare.
8251
4ea80a41
DA
82522009-03-29 David Ayers <ayers@fsfe.org>
8253
8254 PR objc/27377
8255 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8256 by calling objc_compare_types and surpress warnings about
8257 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 8258
4ea80a41 82592009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
8260
8261 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8262 call initialize_inline_failed.
8263 (initialize_inline_failed): Move it from here ...
8264 * cgraph.c (initialize_inline_failed): ... to here.
8265 (cgraph_create_edge): Call initialize_inline_failed rather than
8266 setting inline_failed directly.
8267
7fb0ee07
BE
82682009-03-29 Ben Elliston <bje@au.ibm.com>
8269
8270 PR target/32542
8271 * sysv4.opt (msdata): Improve comment.
8272 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8273 * sysv4.h (SVR4_ASM_SPEC): Likewise.
8274
0be77bf2
BE
82752009-03-29 Ben Elliston <bje@au.ibm.com>
8276
8277 PR target/30451
8278 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8279 load and store attributes.
8280
593812b6
BE
82812009-03-29 Ben Elliston <bje@au.ibm.com>
8282
8283 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8284 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8285 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8286 * doc/extend.texi (X86 Built-in Functions): Add index entries for
8287 __builtin_infq and __builtin_huge_valq.
8288
8272d11d
AS
82892009-03-28 Anatoly Sokolov <aesok@post.ru>
8290
8291 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8292 atmega8m1 devices.
8293 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8294 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8295
74fe548b
XDL
82962009-03-28 Xinliang David Li <davidxl@google.com>
8297
2ba9daa7 8298 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
8299 (do_dbg_cnt): New function.
8300
33977f81
JH
83012009-03-28 Jan Hubicka <jh@suse.cz>
8302
8303 Merge from pretty-ipa:
8304
8305 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 8306
33977f81
JH
8307 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8308 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8309 * passes.c (function_called_by_processed_nodes_p): New.
8310 * ipa-pure-const.c (check_call): Fix handling of operands.
8311 (analyze_function): Dump debug output for skipped bodies.
8312 (local_pure_const): Use function_called_by_processed_nodes_p.
8313 * dwarf2out.c (reference_to_unused): Use output.
8314 * passes.c (do_per_function_toporder): Likewise.
8315
8316 2008-11-12 Jan Hubicka <jh@suse.cz>
8317
8318 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8319 * ipa-pure-const.c (funct_state_d): Add can throw field; make
8320 state_set_in_source enum
8321 (check_decl): Ignore memory tags; do not set fake looping flags;
8322 dump diagnostics.
8323 (check_operand, check_tree, check_rhs_var, check_lhs_var,
8324 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8325 (check_call, analyze_function): Rewrite.
8326 (check_stmt): New.
8327 (add_new_function): Update call of analyze_function.
8328 (generate_summary): Add call of analyze_function.
8329 (propagate): Propagate can_throw; handle state_set_in_source correctly.
8330 (local_pure_const): New function.
8331 (pass_local_pure_const): New pass.
8332 * ipa-inline.c (inline_transform): Set after_inlining.
8333 * tree-eh.c (stmt_can_throw_external): New.
8334 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8335 work with aliasing built.
8336 * tree-flow.h (stmt_can_throw_external): New.
8337 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8338 and local pure/const pass in early and late optimization queue.
ba20e309 8339
617f3897
MJ
83402009-03-28 Martin Jambor <mjambor@suse.cz>
8341
8342 * fold-const.c (get_pointer_modulus_and_residue): New parameter
8343 allow_func_align.
8344 (fold_binary): Allow function decl aligment consideration is the
8345 second argument is integer constant one.
8346 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8347 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8348 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8349
fe89fbc5
JH
83502009-03-28 Jan Hubicka <jh@suse.cz>
8351
8352 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8353 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8354 * function.h (rtl_data): Add nothrow flag.
8355 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8356 set DECL_NOTHROW for AVAILABLE functions.
8357
574872ff
JJ
83582009-03-28 Jakub Jelinek <jakub@redhat.com>
8359
b3bf8855
JJ
8360 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8361 following vector keyword has expansion starting with pixel or bool
8362 keyword, expand vector to __vector and pixel or bool to __pixel or
8363 __bool.
8364
574872ff
JJ
8365 PR c++/39554
8366 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8367 warn_if_disallowed_function_p): Removed.
8368 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8369 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8370 warning_if_disallowed_function_p.
8371 * flags.h (warn_if_disallowed_function_p,
8372 warn_disallowed_functions): Removed.
8373 * common.opt (Wdisallowed-function-list=): Removed.
8374 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8375
b005da11
RG
83762009-03-28 Richard Guenther <rguenther@suse.de>
8377
8378 PR tree-optimization/38723
8379 * tree-ssa-pre.c (compute_avail): Add all default definitions to
8380 the entry block.
8381
1de812a6
JH
83822009-03-28 Jan Hubicka <jh@suse.cz>
8383
8384 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8385 test introduced by my previous patch.
8386
fbb789d4
RG
83872009-03-28 Richard Guenther <rguenther@suse.de>
8388
8389 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8390 the PHIs value undefined.
8391
6f1873a1
JH
83922009-03-28 Jan Hubicka <jh@suse.cz>
8393
8394 * tree-pass.h (pass_fixup_cfg): New pass.
8395 * ipa-inline.c (inline_transform): Set
8396 always_inline_functions_inlined/after_inlining.
8397 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8398 (pass_fixup_cfg): New pass.
8399 * passes.c (init_optimization_passes): Add fixup_cfg.
8400
17021bc8
RG
84012009-03-28 Richard Guenther <rguenther@suse.de>
8402
8403 PR tree-optimization/38458
8404 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8405 argument use the arguments copy-of value.
8406
e8114fba
RG
84072009-03-28 Richard Guenther <rguenther@suse.de>
8408
8409 PR tree-optimization/38180
8410 * tree-ssa-ccp.c (get_default_value): Simplify.
8411 (likely_value): Likewise.
8412 (surely_varying_stmt_p): Properly handle VOP case.
8413 (ccp_initialize): Likewise.
8414 (ccp_fold): Handle propagating through *&.
8415 (fold_const_aggregate_ref): Also handle decls.
8416
257eb6e3
JH
84172009-03-28 Jan Hubicka <jh@suse.cz>
8418
8419 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8420 * cgraph.h (cgraph_node): Likewise.
8421 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8422 (cgraph_reset_node): Use process flag.
8423 (cgraph_mark_functions_to_output): Likewise.
8424 (cgraph_expand_function): Likewise.
8425 (cgraph_expand_all_functions): Likewise.
8426 (cgraph_output_in_order): Likewise.
8427 * dwarf2out.c (reference_to_unused): Likewise.
8428 * passes.c do_per_function_toporder): Likewise.
8429
61a05df1
JH
84302009-03-28 Jan Hubicka <jh@suse.cz>
8431
8432 Bring from lto-branch:
ba20e309 8433
61a05df1
JH
8434 2008-09-03 Doug Kwan <dougkwan@google.com>
8435
8436 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8437 enums instead of reason strings.
8438 * cgraph.c (cgraph_create_edge): Same.
8439 (cgraph_inline_failed_string): New function.
8440 * cgraph.h (cgraph_inline_failed_t): New enum type.
8441 (cgraph_inline_failed_string): New prototype.
8442 (struct cgraph_edge): Change type of INLINED_FAILED from constant
8443 char pointer to cgraph_inline_failed_t.
8444 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8445 (cgraph_default_inline_p): Ditto.
60839f5d 8446 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
8447 to cgraph_inline_failed_t pointer.
8448 * cif-code.def: New file.
8449 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8450 reason string.
8451 (cgraph_check_inline_limits): Change type of REASON to pointer to
8452 cgraph_inline_failed_t. Replace reason strings with enums.
8453 (cgraph_default_inline_p): Ditto.
8454 (cgraph_recursive_inlining_p): Ditto.
8455 (update_caller_keys): Change type of FAILED_REASON to
8456 cgraph_inline_failed_t.
8457 (cgraph_set_inline_failed): Change type of REASON to pointer to
8458 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
8459 convert enums to strings for text output.
8460 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8461 to be of type cgraph_inline_failed_t. Replace reason strings with
8462 enums. Call cgraph_inline_failed_string to covert enums
8463 to strings for text output.
8464 (cgraph_decide_inlining): Replace reason strings with enums.
8465 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8466 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
8467 for text output.
8468 * tree-inline.c (expand_call_inline): Change type of REASON
8469 to cgraph_inline_failed_t. Replace reason strings with enums.
8470 Call cgraph_inline_failed_string for text output.
8471 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8472 (cgraph.o): Ditto.
8473
144e8aac
JH
84742009-03-28 Jan Hubicka <jh@suse.cz>
8475
8476 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8477 cgraph_clone_node): Remove master clone handling.
8478 (cgraph_is_master_clone, cgraph_master_clone): Remove.
8479 * cgraph.h (master_clone): Remove.
8480 (cgraph_is_master_clone, cgraph_master_clone): Remove.
8481 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8482 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8483
4a371c8d
JH
84842009-03-28 Jan Hubicka <jh@suse.cz>
8485
8486 * cgraph.c (cgraph_function_body_availability): Functions declared
8487 inline are always safe to assume that it is not going to be replaced.
8488
6cdb0ee3
RG
84892009-03-28 Richard Guenther <rguenther@suse.de>
8490
8491 PR tree-optimization/38513
8492 * tree-ssa-pre.c (eliminate): Remove redundant stores.
8493 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8494 EXC_PTR_EXPR and FILTER_EXPR.
8495 (get_ref_from_reference_ops): Likewise.
8496
8ca1fd76
RG
84972009-03-28 Richard Guenther <rguenther@suse.de>
8498
8499 PR tree-optimization/38968
8500 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8501 Use FLOOR_MOD_EXPR to compute misalignment.
8502
a254e44d
RG
85032009-03-28 Richard Guenther <rguenther@suse.de>
8504
8505 PR tree-optimization/37795
8506 * tree.h (combine_comparisons): Declare.
8507 * fold-const.c (combine_comparisons): Export.
8508 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8509 comparisons.
8510 (ifcombine_iforif): Use combine_comparisons.
8511
a8ee227c
JH
85122009-03-28 Jan Hubicka <jh@suse.cz>
8513
8514 * tree-eh.c (inlinable_call_p): New function.
8515 (make_eh_edges): Use it.
8516 (verify_eh_edges): Use it.
8517 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8518 * except.c (reachable_next_level): Add inlinable_function argument
8519 (sjlj_find_directly_reachable_regions): Update.
8520 (add_reachable_handler): Do not set saw_any_handlers.
8521 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8522 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8523 Add new inlinable call parameter.
8524 (can_throw_internal, can_throw_external): Update.
8525 * except.h (can_throw_internal_1, can_throw_external_1,
8526 foreach_reachable_handler): Update declaration.
8527
52c0e446
JM
85282009-03-28 Joseph Myers <joseph@codesourcery.com>
8529
8530 * config/arm/t-arm-coff, config/h8300/coff.h,
8531 config/i386/i386-aout.h, config/i386/i386-coff.h,
8532 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8533 config/pdp11/2bsd.h, config/rs6000/aix41.h,
8534 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
8535 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
8536 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
8537 sys-types.h: Remove.
8538 * Makefile.in: Remove protoize and fixproto support and references
8539 in comments.
8540 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
8541 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
8542 Remove.
8543 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
8544 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
8545 unprotoize$(exeext).
8546 (rest.encap): Don't depend on $(STMP_FIXPROTO)
8547 (.PHONY): Don't depend on proto.
8548 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
8549 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
8550 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
8551 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
8552 build/gen-protos.o, build/scan.o, xsys-protos.h,
8553 build/fix-header$(build_exeext), build/fix-header.o,
8554 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
8555 stmp-install-fixproto): Remove.
8556 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
8557 SYSCALLS.c or fixproto files.
8558 (install-common): Don't install protoize.
8559 (install-headers-tar, install-headers-cpio, install-headers-cp):
8560 Don't depend on $(STMP_FIXPROTO).
8561 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
8562 install fixproto files or write out fixproto settings.
8563 (uninstall): Don't uninstall protoize.
8564 * config.gcc (use_fixproto): Remove.
8565 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
8566 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
8567 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
8568 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
8569 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
8570 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
8571 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
8572 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
8573 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
8574 * config/t-vxworks (STMP_FIXPROTO): Remove.
8575 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
8576 STMP_FIXPROTO): Remove.
8577 * config.in, configure: Regenerate.
8578 * crtstuff.c (gid_t, uid_t): Don't undefine.
8579 * doc/install.texi: Change m68k-coff to m68k-elf in example.
8580 (arm-*-coff, arm-*-aout: Remove target entries.
8581 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
8582 Remove mention of AIX 4.1.
8583 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
8584 * doc/invoke.texi (Running Protoize): Remove.
8585 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
8586 (Protoize Caveats): Remove.
8587 * tsystem.h: Update comments on headers assumed to exist.
8588
20a07f44
VM
85892009-03-27 Vladimir Makarov <vmakarov@redhat.com>
8590
8591 * genautomata.c: Add a new year to the copyright. Add a new
8592 reference.
8593 (struct insn_reserv_decl): Add comments for member bypass_list.
8594 (find_bypass): Remove.
8595 (insert_bypass): New.
8596 (process_decls): Use insert_bypass.
8597 (output_internal_insn_latency_func): Output all bypasses with the
8598 same input insn in one switch case.
8599
8600 * rtl.def (define_bypass): Describe bypass choice.
8601 * doc/md.texi (define_bypass): Ditto.
8602
3a0d06c1
RB
86032009-03-27 Richard Guenther <rguenther@suse.de>
8604
8605 * gimplify.c (mark_addressable): Export.
8606 * tree-flow.h (mark_addressable): Declare.
8607 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
8608 * tree-ssa.c (verify_phi_args): Verify that address taken
8609 variables have TREE_ADDRESSABLE set.
8610
86112009-03-27 Richard Guenther <rguenther@suse.de>
8612
8613 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
8614 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
8615 Do not mark decls TREE_ADDRESSABLE.
8616 (build_fold_addr_expr): Adjust.
8617 (fold_addr_expr): Remove.
8618 (fold_unary): Use build_fold_addr_expr.
8619 (fold_comparison): Likewise.
8620 (split_address_to_core_and_offset): Likewise.
8621 * coverage.c (tree_coverage_counter_addr): Mark the array decl
8622 TREE_ADDRESSABLE.
8623 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
8624 (gimplify_modify_expr_to_memcpy): Mark source and destination
8625 addressable.
8626 * omp-low.c (create_omp_child_function): Mark the object decl
8627 TREE_ADDRESSABLE.
8628 (lower_rec_input_clauses): Mark the var we take the address of
8629 TREE_ADDRESSABLE.
8630 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
8631
2ac26e15
L
86322009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8633
8634 PR middle-end/39315
8635 * cfgexpand.c (expand_one_stack_var_at): Change alignment
8636 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
8637
472c7fbd
RG
86382009-03-27 Richard Guenther <rguenther@suse.de>
8639
8640 PR tree-optimization/39120
8641 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
8642 constraints.
8643 (handle_lhs_call): Process return constraints. Add escape
8644 constraints if necessary.
8645 (handle_const_call): Fill out return constraints. Make nested
8646 case more precise. Avoid consttmp if possible.
8647 (handle_pure_call): Fill out return constraints. Avoid
8648 callused if possible.
8649 (find_func_aliases): Simplify call handling.
8650
86512009-03-27 Richard Guenther <rguenther@suse.de>
8652
8653 PR tree-optimization/39120
8654 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
8655 as a representative.
8656 (solve_graph): Do propagate CALLUSED.
8657 (handle_pure_call): Use a scalar constraint from CALLUSED for
8658 the return value.
8659 (find_what_p_points_to): CALLUSED shall not appear in poins-to
8660 solutions.
8661
d9223014
L
86622009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8663
8664 PR c/39323
8665 * c-common.c (handle_aligned_attribute): Properly check alignment
8666 overflow. Use (1U << i) instead of (1 << i).
8667
ba20e309 8668 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
8669
8670 * expr.h (get_mem_align_offset): Updated.
8671
8672 * tree.h (tree_decl_common): Change align to "unsigned int" and
8673 move it before pointer_alias_set.
8674
689b689c
L
86752009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8676 Jakub Jelinek <jakub@redhat.com>
8677
8678 PR target/38034
8679 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
8680 gr_register_operand with gr_reg_or_0_operand.
8681 (cmpxchg_rel_di): Likewise.
8682 (sync_lock_test_and_set<mode>): Likewise.
8683
c619e982
L
86842009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8685
8686 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
8687 (true_regnum): Likewise.
8688
8689 * rtlanal.c (subreg_info): Moved to ...
8690 * rtl.h (subreg_info): Here. New.
8691 (subreg_get_info): New.
8692
8693 * rtlanal.c (subreg_get_info): Make it extern.
8694
51212b32
L
86952009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8696
8697 PR target/39472
8698 * config/i386/i386.c (ix86_abi): New.
8699 (override_options): Handle -mabi=.
ba20e309 8700 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
8701 (ix86_call_abi_override): Likewise.
8702 (init_cumulative_args): Likewise.
8703 (function_arg_advance): Likewise.
8704 (function_arg_64): Likewise.
8705 (function_arg): Likewise.
8706 (ix86_pass_by_reference): Likewise.
8707 (ix86_function_value_regno_p): Likewise.
8708 (ix86_build_builtin_va_list_abi): Likewise.
8709 (setup_incoming_varargs_64): Likewise.
8710 (is_va_list_char_pointer): Likewise.
8711 (ix86_init_machine_status): Likewise.
ba20e309 8712 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
8713 (ix86_function_type_abi): Return enum calling_abi. Rewrite
8714 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 8715 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
8716 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
8717 with ix86_abi.
8718 (ix86_fn_abi_va_list): Updated.
8719
8720 * config/i386/i386.h (ix86_abi): New.
8721 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
8722 (CONDITIONAL_REGISTER_USAGE): Likewise.
8723 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
8724 (machine_function): Likewise.
8725
8726 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
8727 with ix86_abi.
8728 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
8729 (STACK_BOUNDARY): Likewise.
8730 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
8731
8732 * config/i386/i386.opt (mabi=): New.
8733
8734 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
8735 return enum calling_abi.
8736 (ix86_function_type_abi): Likewise.
8737 (ix86_function_abi): Removed.
8738
8739 * doc/invoke.texi: Document -mabi= option for x86.
8740
7338ea63
KG
87412009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8742
8743 * builtins.c (real_dconstp): Delete.
8744 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
8745
68599f33
DS
87462009-03-27 Dodji Seketeli <dodji@redhat.com>
8747 Jakub Jelinek <jakub@redhat.com>
8748
8749 PR debug/37959
8750 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
8751 (gen_subprogram_die): When a function is explicit, generate the
8752 DW_AT_explicit attribute.
8753 * langhooks.h (struct lang_hooks_for_decls): Add
8754 function_decl_explicit_p langhook.
8755 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
8756 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
8757
9f5e9983
JJ
87582009-03-27 Jakub Jelinek <jakub@redhat.com>
8759
64d7685c
JJ
8760 * builtins.c (fold_builtin_memory_op): Optimize memmove
8761 into memcpy if we can prove source and destination don't overlap.
8762
9f5e9983
JJ
8763 * tree-inline.c: Include gt-tree-inline.h.
8764 (clone_fn_id_num): New variable.
8765 (clone_function_name): New function.
8766 (tree_function_versioning): Use it.
8767 * Makefile.in (GTFILES): Add tree-inline.c.
8768
e54d52a8
MM
87692009-03-27 Mark Mitchell <mark@codesourcery.com>
8770
8771 * BASE-VER: Change to 4.5.0.
8772
e9d51dc6
XDL
87732009-03-27 Xinliang David Li <davidxl@google.com>
8774
8775 PR tree-optimization/39557
8776 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
8777
4577cea1
XDL
87782009-03-27 Xinliang David Li <davidxl@google.com>
8779
8780 PR tree-optimization/39548
2ba9daa7 8781 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
8782 candidate check.
8783
0f7464f4
L
87842009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8785
8786 * c-common.c (pointer_int_sum): Use %wd on return from
8787 tree_low_cst.
8788
a8847a7f
L
87892009-03-27 H.J. Lu <hongjiu.lu@intel.com>
8790
8791 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
8792 on return from tree_low_cst.
8793
b0957daf
AP
87942009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
8795
8796 PR c++/36799
ba20e309
UB
8797 * ginclude/stdarg.h (va_copy): Define also for
8798 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 8799
a5f805df
MLI
88002009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8801
8802 PR c++/35652
8803 * builtins.h (c_strlen): Do not warn here.
8804 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
8805 * c-common.c (pointer_int_sum): Take an explicit location.
8806 Warn about offsets out of bounds.
8807 * c-common.h (pointer_int_sum): Adjust declaration.
8808
6f401211
RW
88092009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8810
a5f805df
MLI
8811 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
8812 markup glitch.
6f401211 8813
5a59b39e
JJ
88142009-03-26 Jakub Jelinek <jakub@redhat.com>
8815
8816 PR c++/39554
8817 * opts.c (warn_if_disallowed_function_p): Don't assume
8818 get_callee_fndecl must return non-NULL.
8819
d5f89b53
VM
88202009-03-26 Vladimir Makarov <vmakarov@redhat.com>
8821
8822 PR rtl-optimization/39522
8823 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
8824 when reg_reloaded_valid is set.
8825
61238a79
UW
88262009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8827
8828 * config/spu/divv2df3.c: New file.
8829 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
8830 (DPBIT_FUNCS): Filter out _div_df.
8831
03f8829b
BS
88322009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
8833
8834 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
8835 a jump insn, count that jump in the distance to the loop start.
8836
9fdcdc74
KK
88372009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
8838
8839 PR target/39523
8840 * config/sh/sh.c (calc_live_regs): Fix condition for global
8841 registers except PIC_OFFSET_TABLE_REGNUM.
8842
46994828
KT
88432009-03-25 Kai Tietz <kai.tietz@onevision.com>
8844
8845 PR/39518
8846 * doc/invoke.texi (-mconsole): New.
8847 (-mcygwin): New.
8848 (-mno-cygwin): New.
8849 (-mdll): New.
8850 (-mnop-fun-dllimport): New.
8851 (-mthread): New.
8852 (-mwin32): New.
8853 (-mwindows): New.
8854 (sub section "i386 and x86-64 Windows Options"): New.
8855
60839f5d 88562009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
8857
8858 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
8859 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
8860
ae560440
RG
88612009-03-25 Richard Guenther <rguenther@suse.de>
8862
8863 PR middle-end/39497
8864 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
8865 of -Wno-error.
8866
cd510f15
AM
88672009-03-25 Andrey Belevantsev <abel@ispras.ru>
8868
8869 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
8870 neither of haifa/selective schedulers are working.
8871
44ab0f0e
RW
88722009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8873
8874 * doc/invoke.texi (Debugging Options): Fix description of
8875 -fno-merge-debug-strings.
8876
ad9646c7
HPN
88772009-03-24 Hans-Peter Nilsson <hp@axis.com>
8878
e6142656
HPN
8879 * config/cris/libgcc.ver: New version-script.
8880 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
8881
ad9646c7
HPN
8882 * configure.ac <GAS features, nop mnemonic>: Add pattern
8883 crisv32-*-* for "nop".
ba20e309 8884 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
8885 * configure: Regenerate.
8886
09ac4473
IR
88872009-03-24 Ira Rosen <irar@il.ibm.com>
8888
8889 PR tree-optimization/39529
8890 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
8891 mark_sym_for_renaming for the tag copied to the new vector
8892 pointer.
8893
d94a427e
AL
88942009-03-24 Arthur Loiret <aloiret@debian.org>
8895
ba20e309 8896 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
8897 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
8898 EXTRA_SPEC_FUNCTIONS.
8899 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
8900 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
8901 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
8902 -march and -mtune options.
8903
60839f5d 89042009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
8905
8906 * config/m68k/t-rtems: Add m5329 multilib.
8907
603f5959
DS
89082009-03-24 Dodji Seketeli <dodji@redhat.com>
8909 Jakub Jelinek <jakub@redhat.com>
8910
8911 PR debug/39524
8912 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
8913 nodes.
8914
c5cdb03f
JJ
89152009-03-23 Jakub Jelinek <jakub@redhat.com>
8916
8917 PR c/39495
8918 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
8919 instead of c_parser_expression_conv, if original_code isn't one of the
8920 4 allowed comparison codes, fail.
8921
3691626c
RG
89222009-03-23 Richard Guenther <rguenther@suse.de>
8923
8924 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
8925 * tree.h (struct tree_type): Likewise.
8926 * reload.h (struct insn_chain): Likewise.
8927 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
8928 * function.h (struct function): Likewise.
8929 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
8930
88ccb72a
JJ
89312009-03-23 Jakub Jelinek <jakub@redhat.com>
8932
8933 PR tree-optimization/39516
8934 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
8935
60839f5d 89362009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 8937
2ba9daa7 8938 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
8939 should be set true if BITS_PER_WORD of target is bigger than 32
8940
f82162f8
HPN
89412009-03-22 Hans-Peter Nilsson <hp@axis.com>
8942
8943 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
8944 Translate -B-options to -rpath-link. Correct existing
8945 rpath-link and conditionalize on !nostdlib.
8946
048fd785
RW
89472009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8948
8949 * doc/extend.texi (Function Attributes, Variable Attributes):
8950 Fix typos.
8951 * doc/invoke.texi (Debugging Options, Optimize Options)
8952 (i386 and x86-64 Options, MCore Options): Likewise.
8953
6e75c1a9
JJ
89542009-03-20 Jakub Jelinek <jakub@redhat.com>
8955
8956 PR debug/37890
8957 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
8958 it for block local namespace aliases.
8959 (gen_decl_die): Pass context_die to gen_namespace_die.
8960
ea1199ee
JJ
89612009-03-19 Jakub Jelinek <jakub@redhat.com>
8962
8963 PR c/39495
8964 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
8965 minimum or maximum value.
8966
58929c10
AO
89672009-03-19 Alexandre Oliva <aoliva@redhat.com>
8968
8969 * reginfo.c (globalize_reg): Recompute derived reg sets.
8970
60839f5d 89712009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
8972
8973 PR target/39063
8974 * libgcc2.c (mprotect): Do not use signed arguments for
8975 VirtualProtect, use DWORD arguments. Also fix the 'may
8976 be used uninitialized' warning for the np variable.
8977
f57c2f04
JJ
89782009-03-19 Jakub Jelinek <jakub@redhat.com>
8979
8980 PR target/39496
8981 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
8982 functions using regparm calling conventions when not optimizing.
8983 (ix86_function_sseregparm): Similarly for sseregparm calling
8984 conventions.
8985
9e517d61
LF
89862009-03-19 Li Feng <nemokingdom@gmail.com>
8987
8988 PR middle-end/39500
8989 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
8990 dependence if the first conflict is after niter iterations.
8991
8ef20026
HPN
89922009-03-19 Hans-Peter Nilsson <hp@axis.com>
8993
8994 PR middle-end/38609
8995 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
8996 functions with dynamic stack-pointer adjustments.
8997
64e4a1a6
BE
89982009-03-19 Ben Elliston <bje@au.ibm.com>
8999
9000 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
9001 option; change to -msdata=data.
9002
9a0f3e86
RW
90032009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9004
9005 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
9006 and -fopenmp.
9007
09bc5979
EB
90082009-03-18 Eric Botcazou <ebotcazou@adacore.com>
9009
9010 PR target/35180
9011 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
9012
332459cd
SL
90132009-03-18 Sandra Loosemore <sandra@codesourcery.com>
9014
9015 * doc/invoke.texi (Code Gen Options): Expand discussion of
9016 -fno-common.
9017
8f5929e1
JJ
90182009-03-18 Jakub Jelinek <jakub@redhat.com>
9019
9020 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
9021 * matrix-reorg.c (struct matrix_info): Likewise.
9022 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
9023 * rtl.h (struct mem_attrs): Likewise.
9024 * df.h (struct df): Likewise.
9025 * tree-data-ref.h (struct data_dependence_relation): Likewise.
9026 * ira-int.h (struct ira_allocno): Likewise.
9027 * df-scan.c (struct df_collection_rec): Likewise.
9028 * ira.c (struct equivalence): Likewise.
9029 * function.c (struct temp_slot): Likewise.
9030 * cfgloop.h (struct loop): Likewise.
9031
d130d647
JJ
9032 PR debug/39485
9033 * function.c (use_register_for_decl): When not optimizing, disregard
9034 register keyword for variables with types containing methods.
9035
9968d233
SP
90362009-03-18 Sebastian Pop <sebastian.pop@amd.com>
9037
9038 PR middle-end/39447
9039 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
9040 (is_simple_operand): Call contains_component_ref_p before calling data
9041 reference analysis that would fail on COMPONENT_REFs.
9042
9043 * tree-vrp.c (search_for_addr_array): Fix formatting.
9044
69484bfd
RG
90452009-03-18 Richard Guenther <rguenther@suse.de>
9046
9047 * tree-vect-transform.c (vect_loop_versioning): Fold the
9048 generated comparisons.
9049 * tree-vectorizer.c (set_prologue_iterations): Likewise.
9050 (slpeel_tree_peel_loop_to_edge): Likewise.
9051
66811228
RW
90522009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9053
0631b69f
RW
9054 PR middle-end/37805
9055 * opts.c (print_specific_help): In addition to `undocumented',
9056 accept `separate' and `joined' flags if passed alone. Describe
9057 output by the first matched one of those.
9058 (common_handle_option): Skip over empty strings.
9059 * gcc.c (display_help): Fix help string for `--help='.
9060 * doc/invoke.texi (Option Summary, Overall Options): With
9061 `--help=', classes and qualifiers can both be repeated, but
9062 only the latter can be negated. One should not pass only
9063 negated qualifiers. Fix markup and examples.
9064
66811228
RW
9065 Revert
9066 2008-10-14 Jakub Jelinek <jakub@redhat.com>
9067 PR middle-end/37805
9068 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
9069 and -fhelp=separate.
9070
3c072c6b
JY
90712009-03-17 Jing Yu <jingyu@google.com>
9072
9073 PR middle-end/39378
80c65208
JY
9074 * function.h (struct rtl_data): Move is_thunk from here...
9075 (struct function): ...to here.
9076 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
9077 * varasm.c (assemble_start_function): Change is_thunk from crtl to
9078 cfun.
80c65208
JY
9079 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
9080 cfun.
9081 (alpha_does_function_need_gp, alpha_start_function): Likewise.
9082 (alpha_output_function_end_prologue): Likewise.
9083 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
9084 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
9085 (rs6000_output_function_epilogue): Likewise.
9086 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 9087
9ade279b
UB
90882009-03-17 Uros Bizjak <ubizjak@gmail.com>
9089
9090 PR target/39482
9091 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
9092 from different units in a single alternative.
9093 (*truncdfsf_i387): Ditto.
9094 (*truncxfsf2_mixed): Ditto.
9095 (*truncxfdf2_mixed): Ditto.
9096
16e60c17
JJ
90972009-03-17 Jakub Jelinek <jakub@redhat.com>
9098
98381eb4
JJ
9099 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
9100 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
9101
df5deb18
JJ
9102 PR debug/39474
9103 * tree-ssa-live.c (remove_unused_locals): Don't remove local
9104 unused non-artificial variables when not optimizing.
9105
a3f596ba
JJ
9106 PR debug/39471
9107 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
9108 DW_TAG_imported_module even if decl is IMPORTED_DECL with
9109 NAMESPACE_DECL in its DECL_INITIAL.
9110
6b2b8871
JJ
9111 PR middle-end/39443
9112 * optabs.c (set_user_assembler_libfunc): New function.
9113 * expr.h (set_user_assembler_libfunc): New prototype.
9114 * c-common.c: Include libfuncs.h.
9115 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
9116 for memcmp, memset, memcpy, memmove and abort.
9117 * Makefile.in (c-common.o): Depend on libfuncs.h.
9118
16e60c17
JJ
9119 PR debug/39412
9120 * dwarf2out.c (gen_inlined_enumeration_type_die,
9121 gen_inlined_structure_type_die, gen_inlined_union_type_die,
9122 gen_tagged_type_instantiation_die): Removed.
9123 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
9124 do nothing.
9125
4d936aca
JJ
91262009-03-17 Janis Johnson <janis187@us.ibm.com>
9127
9128 PR testsuite/38526
9129 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
9130 its use.
9131 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
9132 (check-parallel-%): Ditto.
9133 (check-consistency): Ditto.
9134
4e9b2e50
KT
91352009-03-17 Kai Tietz <kai.tietz@onevision.com>
9136
9137 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
9138 local variable rhs by NULL_TREE.
9139
21440b2d
L
91402009-03-17 H.J. Lu <hongjiu.lu@intel.com>
9141
9142 PR target/39477
9ade279b 9143 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 9144
d8905c6a
L
91452009-03-17 H.J. Lu <hongjiu.lu@intel.com>
9146
9147 PR target/39476
9ade279b 9148 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
9149
91502009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
9151
9152 PR target/39473
9153 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
9154 for ms->sysv ABI calls only in 64bit mode.
9155
9156 * config/i386/i386.md (untyped_call): Support 32bit.
9157
cdcabece
L
91582009-03-16 H.J. Lu <hongjiu.lu@intel.com>
9159
9160 * doc/extend.texi: Replace x86_65 with x86_64.
9161
97b4ba9f
JJ
91622009-03-16 Jakub Jelinek <jakub@redhat.com>
9163
9164 PR tree-optimization/39455
9165 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
9166 mismatches for POINTER_TYPE_P (type).
9167 (number_of_iterations_le): Likewise.
9168
60839f5d 91692009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
9170
9171 * config/picochip/picochip.c: Removed profiling support.
9172 * config/picochip/picochip.md: Removed profiling instruction.
9173 * config/picochip/picochip.h: Removed profiling builtin.
9174
f38095f3
JM
91752009-03-16 Joseph Myers <joseph@codesourcery.com>
9176
9177 * doc/install.texi (--with-host-libstdcxx): Document.
9178
2cb4817b
AS
91792009-03-14 Anatoly Sokolov <aesok@post.ru>
9180
9181 PR target/34299
9182 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
9183 generate a warning if the function name does not begin with
9184 "__vector" and the function has either the 'signal' or 'interrupt'
9185 attribute, from here to ...
9186 (avr_declare_function_name): ...here. New function.
9187 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
9188 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
9189
39b2ac74
JJ
91902009-03-14 Jakub Jelinek <jakub@redhat.com>
9191
9192 PR bootstrap/39454
9193 * cse.c (fold_rtx): Don't modify original const_arg1 when
9194 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
9195 separate variable instead.
9196 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
9197 from out of range shift counts.
9198 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
9199
ad41bd84 92002009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 9201
60839f5d 9202 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
9203 diagnostic.h with $(DIAGNOSTIC_H).
9204
ad41bd84 92052009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
9206
9207 PR target/39431
9208 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
9209 predicate.
9210 * config/i386/sync.md (sync_compare_and_swap<mode>,
9211 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
9212 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
9213 into a register.
9214 (sync_double_compare_and_swapdi_pic,
9215 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
9216 cmpxchg8b_pic_memory_operand instead of just memory_operand.
9217
122c59c7
L
92182009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9219
9220 PR target/39445
9ade279b 9221 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 9222
cec8874f
L
92232009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9224
9225 PR target/39327
9226 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9227 (avx_addsubv4df3): Likewise.
9228 (*avx_addsubv4sf3): Likewise.
9229 (sse3_addsubv4sf3): Likewise.
9230
bbb52802
L
92312009-03-12 H.J. Lu <hongjiu.lu@intel.com>
9232
9233 PR target/38824
9ade279b 9234 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 9235
a812fb07
VM
92362009-03-12 Vladimir Makarov <vmakarov@redhat.com>
9237
9238 PR debug/39432
9239 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
9240 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9241 registers for allocnos created from user-defined variables.
9242
4caab5ba
UW
92432009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9244
9245 PR target/39181
9246 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
9247 of non-integer mode as well.
9248
498e51ca
AN
92492009-03-11 Adam Nemet <anemet@caviumnetworks.com>
9250
9251 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
9252 for functions for which the parameter types are unknown.
9253
9bfaf89d
JJ
92542009-03-11 Jakub Jelinek <jakub@redhat.com>
9255
9256 PR target/39137
9ade279b 9257 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
9258 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9259 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9260 * config/i386/i386.c (ix86_local_alignment): For
9261 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9262 long long variables on the stack to avoid dynamic realignment.
9263 Allow the first argument to be a decl rather than type.
9264 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9265
18a3bdcb
NC
92662009-03-11 Nick Clifton <nickc@redhat.com>
9267
9268 PR target/5362
40190a76
NC
9269 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9270 options.
9271 Add description to mno-lsim option.
9272 * config/mcore/mcore.h: Remove comment about deprecated m4align
9273 option.
9274 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9275 * doc/invoke.texi: Add description of mno-lsim and
9276 mstack-increment options.
9277
18a3bdcb
NC
9278 * config/fr30/fr30.opt: Document the -mno-lsim option.
9279 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9280 and -mno-lsim options.
9281
dc215785
UW
92822009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9283
9284 * fold-const.c (fold_comparison): Only call fold_inf_compare
9285 if the mode supports infinities.
9286
7716876b
JM
92872009-03-11 Jason Merrill <jason@redhat.com>
9288
9289 PR debug/39086
9290 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9291 end already did. Notice GIMPLE_CALL modifications of the result.
9292 Don't copy debug information from an ignored decl or a decl from
9293 another function.
9294
ddef83d2
RG
92952009-03-10 Richard Guenther <rguenther@suse.de>
9296 Nathan Froyd <froydnj@codesourcery.com>
9297
9298 PR middle-end/37850
9ade279b 9299 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
9300 (__divMODE3): Likewise.
9301
9a9ba8d9
JJ
93022009-03-09 Jakub Jelinek <jakub@redhat.com>
9303
9304 PR tree-optimization/39394
9305 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9306 DECL_SIZE_UNIT of variable length FIELD_DECLs.
9307
929b7fc3
AK
93082009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9309
9310 * recog.c (verfiy_changes): Disallow renaming of hard regs in
9311 inline asms for register asm ("") declarations.
9312
1803581d
EB
93132009-03-09 Eric Botcazou <ebotcazou@adacore.com>
9314
9315 * fold-const.c (fold_unary): Fix comment.
9316
8454d27e
JH
93172009-03-07 Jan Hubicka <jh@suse.cz>
9318
9319 PR target/39361
969a5433
JJ
9320 * tree-inline.c (setup_one_parameter): Do replacement of const
9321 argument by constant in SSA form.
8454d27e 9322
3a695389
UW
93232009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9324
9325 PR middle-end/38028
9326 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9327 determine alignment passed to assign_stack_local.
9328 (assign_parms_unsplit_complex): Likewise.
9329 * except.c (sjlj_build_landing_pads): Likewise.
9330
9f0e7885
JJ
93312009-03-06 Jakub Jelinek <jakub@redhat.com>
9332
65401a0b
JJ
9333 PR middle-end/39360
9334 * tree-flow.h (add_referenced_var): Return bool instead of void.
9335 * tree-dfa.c (add_referenced_var): Return result of
9336 referenced_var_check_and_insert call.
9337 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9338 of referenced_var_check_and_insert.
9339
9f0e7885 9340 PR debug/39372
9ade279b 9341 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
9342 (gen_variable_die): Emit DW_AT_location on abstract static variable's
9343 DIE, don't emit it if abstract origin already has it.
9344 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9345 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9346
3b664bd1
JBG
93472009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
9348
ba20e309 9349 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
9350 detection.
9351 (write_tm_constrs_h): Indent generated code.
9352
d8f8ca80
RR
93532009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9354
9355 * doc/extend.texi (Function Attributes): Add documentation
9356 for isr attributes.
9357
6c3d550c
JJ
93582009-03-06 Jakub Jelinek <jakub@redhat.com>
9359
9360 PR debug/39387
9361 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9362 take locus from its DECL_SOURCE_LOCATION instead of input_location.
9363
f9e96751
BS
93642009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
9365
9366 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9367 the loop as bad.
9368
ee0ee7e2
JJ
93692009-03-05 Jakub Jelinek <jakub@redhat.com>
9370
9371 PR debug/39379
9372 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9373 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9374
6c6094f1
UB
93752009-03-05 Uros Bizjak <ubizjak@gmail.com>
9376
9377 * config/i386/i386.md (R8_REG, R9_REG): New constants.
9378 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9379 constants instead of magic numbers.
9380 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9381 (QI_REG_P): Ditto.
9382 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9383 (x86_64_ms_abi_int_parameter_registers): Ditto.
9384 (x86_64_int_return_registers): Ditto.
09f8a8d3 9385 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
9386 (ix86_expand_call): Ditto for clobbered_registers array.
9387 (ix86_hard_regno_mode_ok): Ditto.
9388 (x86_extended_QIreg_mentioned_p): Ditto.
9389
b267bd41
R
93902009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
9391
6c6094f1 9392 PR tree-optimization/39349
1f3ad3f0
R
9393 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9394
b267bd41
R
9395 * combine.c (gen_lowpart_for_combine): Use omode when generating
9396 clobber.
9397
1242bc9d
R
93982009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
9399
6c6094f1 9400 PR rtl-optimization/39235
1242bc9d
R
9401 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9402
48f03606
ZD
94032009-03-04 Zdenek Dvorak <ook@ucw.cz>
9404
9405 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9406
b505e785
RG
94072009-03-04 Richard Guenther <rguenther@suse.de>
9408
9409 PR tree-optimization/39362
9410 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9411 that occur in abnormal PHIs should be varying.
9412
f017bf5e
ZD
94132009-03-04 Zdenek Dvorak <ook@ucw.cz>
9414
9415 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9416 Extend comments.
9417 (simple_iv): Take loop as an argument instead of statement.
9418 * tree-scalar-evolution.h (simple_iv): Declaration changed.
9419 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9420 to simple_iv.
9421 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9422 Ditto.
9423 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9424 * matrix-reorg.c (analyze_transpose): Ditto.
9425 * tree-data-ref.c (dr_analyze_innermost): Ditto.
9426 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9427 * tree-predcom.c (ref_at_iteration): Ditto.
9428 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9429
6a66f28e
RG
94302009-03-04 Richard Guenther <rguenther@suse.de>
9431
9432 PR tree-optimization/39358
9433 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9434 escaped_id and callused_id.
9435 (solve_graph): Likewise.
9436
57e454ee
RG
94372009-03-04 Richard Guenther <rguenther@suse.de>
9438
9439 PR tree-optimization/39339
9440 * tree-sra.c (try_instantiate_multiple_fields): Make it
9441 no longer ICE on the above.
9442
a6fe9ed4
JM
94432009-03-03 Joseph Myers <joseph@codesourcery.com>
9444
9445 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9446 that fits within Pmode.
9447
dc672951
SE
94482009-03-03 Steve Ellcey <sje@cup.hp.com>
9449
9450 PR middle-end/10109
9451 * tm.texi (LIBCALL_VALUE): Update description.
9452
8b9d598f
SE
94532009-03-03 Steve Ellcey <sje@cup.hp.com>
9454
9455 PR middle-end/34443
9456 * doc/extend.texi (section): Update description.
9457
13e4e36e
L
94582009-03-03 H.J. Lu <hongjiu.lu@intel.com>
9459
9460 PR middle-end/39345
9461 * tree-inline.c (remapped_type): New.
9462 (can_be_nonlocal): Call remapped_type instead of remap_type.
9463
067dd3c9
JJ
94642009-03-03 Jakub Jelinek <jakub@redhat.com>
9465
9466 PR fortran/39354
9467 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9468 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9469
9bd9f738
RG
94702009-03-03 Richard Guenther <rguenther@suse.de>
9471
9472 PR middle-end/39272
9473 * tree.c (tree_nonartificial_location): New function.
9474 * tree.h (tree_nonartificial_location): Declare.
9475 * builtins.c (expand_builtin_memory_chk): Provide location
9476 of the call location for artificial function pieces.
9477 (maybe_emit_chk_warning): Likewise.
9478 (maybe_emit_sprintf_chk_warning): Likewise.
9479 (maybe_emit_free_warning): Likewise.
9480 * expr.c (expand_expr_real_1): Likewise.
9481
f07049c8
JJ
94822009-03-03 Jakub Jelinek <jakub@redhat.com>
9483
9484 PR tree-optimization/39343
9485 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9486 COMPONENT_REF t has ARRAY_TYPE.
9487
7d4fba4a
SP
94882009-03-02 Sebastian Pop <sebastian.pop@amd.com>
9489
9490 PR middle-end/39335
9491 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9492 when the type precision of the induction variable should be
9493 larger than the type precision of nit.
9494 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9495 * graphite.c (graphite_loop_normal_form): Same.
9496 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9497
78168632
UB
94982009-03-02 Uros Bizjak <ubizjak@gmail.com>
9499
9500 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9501 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 9502 numbers to describe clobbered registers.
78168632 9503 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
9504 * config/i386/mmx.md (mmx_emms): Ditto.
9505 (mmx_femms): Ditto.
78168632 9506
63553059
RS
95072009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
9508
9509 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9510 of ABI_64.
9511
500a1f85
UW
95122009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9513
9514 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9515 (spu_section_type_flags): New function.
9516
962aae34
UB
95172009-03-02 Uros Bizjak <ubizjak@gmail.com>
9518
9519 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9520 reg_class_contents of FLOAT_REGS into a temporary.
9521
6dfb529c 95222009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 9523 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
9524
9525 PR tree-optimization/39318
9526 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9527 information to the vectorized statement.
9528
6b5629db
UB
95292009-03-01 Uros Bizjak <ubizjak@gmail.com>
9530
434426d2
UB
9531 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9532 variable. Use defined names instead of magic constants for REX SSE
9533 registers.
6b5629db 9534
14e5b285
RG
95352009-03-01 Richard Guenther <rguenther@suse.de>
9536
9537 PR tree-optimization/39331
9538 * omp-low.c (lower_send_shared_vars): Do not receive new
9539 values for the reference of DECL_BY_REFERENCE parms or results.
9540
526d73ab
JH
95412009-03-01 Jan Hubicka <jh@suse.cz>
9542
9543 PR debug/39267
9544 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
9545 BLOCK_NONLOCALIZED_VAR): New macros.
9546 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
9547 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
9548 gen_decl_die): Add origin argument. Allow generation of die with
9549 origin at hand only.
526d73ab 9550 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
9551 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
9552 of gen_*.
526d73ab
JH
9553 (gen_block_die): Fix checking for unused blocks.
9554 (process_scope_var): Break out from .... ; work with origins only.
9555 (decls_for_scope) ... here; process nonlocalized list.
9556 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
9557 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
9558 vars.
526d73ab
JH
9559 (dump_scope_block): Dump them.
9560 * tree-inline.c (remap_decls): Handle nonlocalized vars.
9561 (remap_block): Likewise.
9562 (can_be_nonlocal): New predicate.
9563 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
9564
7a9d3fe8
RW
95652009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9566
9567 * configure: Regenerate.
9568
b3cdf3cb
RW
95692009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9570
a16d1645 9571 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 9572 Reuse help texts for duplicate options which do not have any.
a16d1645 9573
1156c176
RW
9574 * gcc.c (display_help): Document --version.
9575
033505fc
RW
9576 * gcc.c (main): If print_help_list and verbose_flag, ensure
9577 driver output comes before subprocess output.
9578
4d077054
RW
9579 * optc-gen.awk: Assign all remaining fields to help string,
9580 space-separated, for multi-line help in *.opt.
9581
a072f1cf
RW
9582 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
9583 -Wno-pedantic-ms-format is for MinGW targets only.
9584
b3cdf3cb
RW
9585 * doc/options.texi (Option file format): Fix bad indentation,
9586 restoring dropped sentence.
9587
a3aadcc5
JH
95882009-02-28 Jan Hubicka <jh@suse.cz>
9589
9590 * tree-inline.c (tree_function_versioning): Output debug info.
9591
1cf5abb3
JH
95922009-02-28 Jan Hubicka <jh@suse.cz>
9593
9594 PR debug/39267
9595 * tree-inline.c (setup_one_parameter): Do not copy propagate
9596 arguments when not optimizing.
9597
c4d3f42f
L
95982009-02-28 H.J. Lu <hongjiu.lu@intel.com>
9599
9600 PR target/39327
9601 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9602 (avx_addsubv4df3): Likewise.
9603 (*avx_addsubv4sf3): Likewise.
9604 (sse3_addsubv4sf3): Likewise.
9605 (*avx_addsubv2df3): Likewise.
9606 (sse3_addsubv2df3): Likewise.
9607 (avx_unpckhps256): Correct item selectors.
9608 (avx_unpcklps256): Likewise.
9609 (avx_unpckhpd256): Likewise.
9610 (avx_unpcklpd256): Likewise.
9611
eb50f5f4
JH
96122009-02-28 Jan Hubicka <jh@suse.cz>
9613
9614 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
9615 static vars.
9616 (copy_arguments_for_versioning): If var is declared don't declare it.
9617 (tree_function_versioning): First setup substitutions and then copy
9618 args.
9619
26140130
JH
96202009-02-27 Jan Hubicka <jh@suse.cz>
9621
9622 PR debug/39267
9623 * cgraph.h (varpool_output_debug_info): Remove.
9624 * cgraphunit.c (varpool_output_debug_info): Remove.
9625 * dwarf2out.c (deferred_locations_struct): New struct
9626 (deferred_locations): New type.
9627 (deferred_locations_list): New static var.
9628 (deffer_location): New function.
9629 (gen_variable_die): Use it.
9630 (decls_for_scope): Output info on local static vars.
9631 (dwarf2out_finish): Process deferred locations.
9632 * varpool.c (varpool_output_debug_info): Remove.
9633
cff7525f
JH
96342009-02-27 Jan Hubicka <jh@suse.cz>
9635
9636 PR debug/39267
9637 * tree.h (TREE_PROTECTED): Fix comment.
9638 (BLOCK_HANDLER_BLOCK): Remove.
9639 (struct tree_block): Remove handler_block add body_block.
9640 (inlined_function_outer_scope_p): New.
9641 (is_body_block): Remove.
9642 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
9643 * dwarf2out.c (is_inlined_entry_point): Remove.
9644 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
9645 (gen_block_die): Use is_inlined_entry_point check. Remove body block
9646 code.
cff7525f
JH
9647 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
9648 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
9649 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
9650 block with multiple subblocks.
cff7525f
JH
9651 (dump_scope_block): Prettier output; dump more flags and info.
9652 (dump_scope_blocks): New.
9653 (remove_unused_locals): Use dump_scope_blocks.
9654 * tree-flow.h (dump_scope_blocks): Declare.
9655 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
9656 * stmt.c (is_body_block): Remove.
9657 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
9658 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
9659
c20993b9
SP
96602009-02-27 Sebastian Pop <sebastian.pop@amd.com>
9661
9662 PR middle-end/39308
2ba9daa7 9663 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
9664 number_of_iterations_exit from a gcc_assert.
9665
e3cba5e5
AK
96662009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9667
60839f5d 9668 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
9669 jumps if COND is NULL.
9670 (find_cond_jump): New function.
9671 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 9672 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 9673
9dadeeb8
UB
96742009-02-26 Uros Bizjak <ubizjak@gmail.com>
9675
9676 * config/alpha/alpha.h (alpha_expand_mov): Return false if
9677 force_const_mem returns NULL_RTX.
9678
625d3251
EB
96792009-02-26 Jan Hubicka <jh@suse.cz>
9680
9681 PR debug/39267
9682 * cgraph.h (varpool_output_debug_info): Remove.
9683 * cgraphunit.c (varpool_output_debug_info): Remove.
9684 * dwarf2out.c (deferred_locations_struct): New struct
9685 (deferred_locations): New type.
9686 (deferred_locations_list): New static var.
9687 (deffer_location): New function.
9688 (gen_variable_die): Use it.
9689 (decls_for_scope): Output info on local static vars.
9690 (dwarf2out_finish): Process deferred locations.
9691 * varpool.c (varpool_output_debug_info): Remove.
9692
38432148 96932009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
9694
9695 PR rtl-optimization/39241
9696 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
9697 to subreg_offset_representable_p.
9698
62d049cf
PB
96992009-02-25 Paolo Bonzini <bonzini@gnu.org>
9700
9701 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
9702 execute function prototype. Get f and nregs from max_reg_num
9703 and get_insns. Remove the first backward pass as it's dead,
9704 guard the forward pass by flag_expensive_optimizations.
9705 (rest_of_handle_regmove): Delete.
9706 (pass_regmove): Replace it with regmove_optimize.
9707
f618d33e
MJ
97082009-02-25 Martin Jambor <mjambor@suse.cz>
9709
9710 PR tree-optimization/39259
9711 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 9712 calls_alloca function flags.
f618d33e
MJ
9713 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
9714 calls are detected.
9715
c8a05f7c
PB
97162009-02-25 Paolo Bonzini <bonzini@gnu.org>
9717
9718 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
9719 flags_set_1_rtx, flags_set_1_set): Delete.
9720 (regmove_optimize): Do not call mark_flags_life_zones.
9721
6d2538f5
JB
97222009-02-24 Julian Brown <julian@codesourcery.com>
9723
9724 PR target/35965
9725 * config/arm/arm.c (require_pic_register): Only set
9726 cfun->machine->pic_reg once per function.
9727
a2fa6772
SL
97282009-02-24 Sandra Loosemore <sandra@codesourcery.com>
9729
9730 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 9731 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 9732
5472de36
SE
97332009-02-24 Steve Ellcey <sje@cup.hp.com>
9734
9735 PR target/33785
9736 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
9737
844216f3
RG
97382009-02-24 Richard Guenther <rguenther@suse.de>
9739
9740 PR debug/39285
9741 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
9742
71adbef3 97432009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 9744 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
9745
9746 PR tree-optimization/39233
9747 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
9748 from converting them to a generic type.
9749
f1a558e0
SP
97502009-02-23 Sebastian Pop <sebastian.pop@amd.com>
9751
9752 PR tree-optimization/39260
9753 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
9754 contains a condition with a real type.
9755 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
9756
d8028f2c
JM
97572009-02-23 Jason Merrill <jason@redhat.com>
9758
9759 PR c++/38880
9760 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
9761 narrowing_initializer_constant_valid_p.
2ba9daa7 9762 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
9763 null_pointer_node for adding a pointer to itself.
9764
9283b513
JH
97652009-02-23 Jan Hubicka <jh@suse.cz>
9766
9767 PR c/12245
9dadeeb8
UB
9768 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
9769 resizing.
9283b513 9770
61e04322
JH
97712009-02-23 Jan Hubicka <jh@suse.cz>
9772
9dadeeb8
UB
9773 PR tree-optimization/37709
9774 * tree.c (block_ultimate_origin): Move here from dwarf2out.
9775 * tree.h (block_ultimate_origin): Declare.
9776 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
9777 * tree-ssa-live.c (remove_unused_scope_block_p):
9778 Eliminate blocks containig no instructions nor live variables nor
9779 nested blocks.
9780 (dump_scope_block): New function.
9781 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 9782 enable dumping at TDF_DETAILS.
61e04322 9783
38432148 97842009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
9785
9786 * config/i386/i386.c (classify_argument): Don't allow COImode
9787 and OImode.
9788 (function_arg_advance_32): Don't allow OImode.
9789 (function_arg_32): Likewise.
9790 (function_value_32): Likewise.
9791 (return_in_memory_32): Likewise.
9792 (function_arg_64): Remove OImode comment.
9793
38432148 97942009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
9795
9796 PR target/39261
9797 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
9798 ix86_expand_vector_set for V4DImode in 64bit mode only.
9799 (ix86_expand_vector_init_one_var): Likewise.
9800
dcd739a6
SP
98012009-02-21 Sebastian Pop <sebastian.pop@amd.com>
9802
9803 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
9804
6c3b938d
RS
98052009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9806
8e361f23 9807 PR bootstrap/39257
6c3b938d
RS
9808 * loop-iv.c: Revert last change.
9809 * emit-rtl.c: Likewise.
9810
38432148 98112009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
9812
9813 PR target/39256
9814 * config/i386/i386.c (type_natural_mode): Remove an extra
9815 space in the warning message.
9816 (function_value_32): Handle 32-byte vector modes.
9817 (return_in_memory_32): Likewise.
9818
2ec62529
RS
98192009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
9820
9821 * loop-iv.c (truncate_value): New function.
9822 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
9823 of lowpart_subreg.
9824 (lowpart_subreg): Move to...
9825 * emit-rtl.c: ...here.
9826
ecb8c3cc 98272009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 9828
ecb8c3cc
DS
9829 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
9830 accidental and undocumented change at revision 140860.
9831
ae46a823
JM
98322009-02-21 Joseph Myers <joseph@codesourcery.com>
9833
9834 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
9835 take gimple_seq * arguments.
9836 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
9837 types_compatible_p langhook.
9838
07d8efe3 98392009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 9840 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
9841
9842 * config/arm/arm.c (arm_builtin_va_list): New function.
9843 (arm_expand_builtin_va_start): Likewise.
9844 (arm_gimplify_va_arg_expr): Likewise.
9845 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
9846 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
9847 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
9848 (va_list_type): New variable.
9849 (arm_mangle_type): Mangle va_list_type appropriately.
9850
b1fb9f56
JJ
98512009-02-20 Jakub Jelinek <jakub@redhat.com>
9852
9853 PR middle-end/39157
9854 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
9855 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
9856 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
9857 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
9858 parameter to 1000 for -O1 by default.
9859 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
9860 parameter.
9861 * loop-invariant.c: Include params.h.
9862 (move_loop_invariants): Don't call move_single_loop_invariants on
9863 very large loops.
9864
5bc0807c
JM
98652009-02-20 Jaka Mocnik <jaka@xlab.si>
9866
9867 * calls.c (emit_library_call_value_1): Use slot_offset instead of
9868 offset when calculating bounds for indexing stack_usage_map. Fixes
9869 a buffer overflow with certain target setups.
9870
c69cd1f5
JJ
98712009-02-20 Jakub Jelinek <jakub@redhat.com>
9872
9873 PR target/39240
9874 * calls.c (expand_call): Clear try_tail_call if caller and callee
9875 disagree in promotion of function return value.
9876
09812622
JJ
98772009-02-19 Jakub Jelinek <jakub@redhat.com>
9878
9879 PR target/39175
9880 * c-common.c (c_determine_visibility): If visibility changed and
9881 DECL_RTL has been already set, call make_decl_rtl to update symbol
9882 flags.
9883
68017cb4
L
98842009-02-19 H.J. Lu <hongjiu.lu@intel.com>
9885
9886 PR c++/39188
9887 * varasm.c (assemble_variable): Don't check DECL_NAME when
9888 globalizing a variable.
9889
ab4194da
JM
98902009-02-19 Joseph Myers <joseph@codesourcery.com>
9891
9892 PR c/38483
9893 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
9894 expression before any __builtin_trap call.
9895 * c-typeck.c (build_function_call): Convert and check function
9896 arguments before generating a call to a trap. Evaluate the
9897 function arguments before the trap.
9898
6b67572e
UB
98992009-02-19 Uros Bizjak <ubizjak@gmail.com>
9900
9901 PR target/39228
9902 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
9903 (UNSPEC_FXAM_MEM): New unspec.
9904 (fxam<mode>2_i387_with_temp): New insn and split pattern.
9905 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
9906 memory using fxam<mode>2_i387_with_temp to remove excess precision.
9907
9e39dba6
RG
99082009-02-19 Richard Guenther <rguenther@suse.de>
9909
9910 PR tree-optimization/39207
9911 PR tree-optimization/39074
9912 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
9913 storedanything_tree): New.
9914 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 9915 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
9916 (build_succ_graph): Add edges from STOREDANYTHING to all
9917 non-direct nodes.
9918 (init_base_vars): Initialize STOREDANYTHING.
9919 (compute_points_to_sets): Free substitution info after
9920 building the succ graph.
9921 (ipa_pta_execute): Likewise.
9922
9923 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
9924 field.
9925 (do_ds_constraint): Do not add to special var or non-pointer
9926 field solutions.
9927 (type_could_have_pointers): Split out from ...
9928 (could_have_pointers): ... here. For arrays use the element type.
9929 (create_variable_info_for): Initialize may_have_pointers.
9930 (new_var_info): Likewise.
9931 (handle_lhs_call): Make the HEAP variable unknown-sized.
9932 (intra_create_variable_infos): Use a type with pointers for
9933 PARM_NOALIAS, make it unknown-sized.
9934
fd7b2603
L
99352009-02-18 H.J. Lu <hongjiu.lu@intel.com>
9936
9937 PR target/39224
6b67572e 9938 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 9939
98b80692
JM
99402009-02-18 Jason Merrill <jason@redhat.com>
9941
9942 PR target/39179
9943 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
9944 value if DECL_EXTERNAL.
9945 * tree-sra.c (sra_walk_gimple_assign): Likewise.
9946 * target.h (gcc_target::binds_local_p): Clarify "module".
9947 * tree.h (TREE_PUBLIC): Clarify "module".
9948
0705d3f4
L
99492009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
9950
9951 PR target/38891
9952 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
9953 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
9954
bce08d50
L
99552009-02-17 H.J. Lu <hongjiu.lu@intel.com>
9956
9957 PR target/39082
9958 * c.opt (Wabi): Support C and ObjC.
9959 (Wpsabi): New.
9960
9961 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
9962
9963 * config/i386/i386.c (classify_argument): Warn once about the ABI
9964 change when passing union with long double.
9965
9966 * doc/invoke.texi: Update -Wabi for warning psABI changes.
9967
5600f233
JM
99682009-02-18 Joseph Myers <joseph@codesourcery.com>
9969
9970 PR c/35447
9971 * c-parser.c (c_parser_compound_statement): Always enter and leave
9972 a scope.
9973
8cd01fe6
JDA
99742009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9975
9976 PR target/34587
9977 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
9978
418df9d7
JJ
99792009-02-18 Jakub Jelinek <jakub@redhat.com>
9980
9981 PR tree-optimization/36922
9982 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
9983 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
9984 Likewise.
9985
082d2ebb
RS
99862009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9987
9988 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
9989 to 0 for EABI64.
9990
17de576c
RS
99912009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9992
9993 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
9994
6d8d5435
RS
99952009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
9996
9997 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
9998 tree sharing.
9999
e69ff910
RB
100002009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
10001 Richard Sandiford <rdsandiford@googlemail.com>
10002
10003 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
10004 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
10005 (loongson_biadd): ...this.
10006
6b24ee26
RG
100072009-02-17 Richard Guenther <rguenther@suse.de>
10008
10009 PR tree-optimization/39202
10010 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
10011 a var make sure to follow existing collapses.
10012
91ab2c86
RG
100132009-02-17 Richard Guenther <rguenther@suse.de>
10014
10015 PR middle-end/39214
10016 * langhooks.c (lhd_print_error_function): Check for NULL block.
10017
73a63870
RG
100182009-02-17 Richard Guenther <rguenther@suse.de>
10019
10020 PR tree-optimization/39204
10021 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
10022 of the PHI arg.
10023
0e08f686
UB
100242009-02-17 Uros Bizjak <ubizjak@gmail.com>
10025
10026 * config/soft-fp/double.h: Update from glibc CVS.
10027
a60b7ddb
RG
100282009-02-17 Richard Guenther <rguenther@suse.de>
10029
10030 PR tree-optimization/39207
10031 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
10032 strict-aliasing warnings for pointers pointing to NULL.
10033
a47e20fd
JM
100342009-02-16 Joseph Myers <joseph@codesourcery.com>
10035
10036 PR c/35446
10037 * c-parser.c (c_parser_braced_init): Call pop_init_level when
10038 skipping until next close brace.
10039
50aab7dc
L
100402009-02-16 H.J. Lu <hongjiu.lu@intel.com>
10041
10042 PR target/37049
10043 * config/i386/i386.c (ix86_expand_push): Set memory alignment
10044 to function argument boundary.
10045
68e53db0
HS
100462009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
10047
10048 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
10049 in the lea_add. Reload eventually constraints it properly.
0d50d55a 10050 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
10051 "b", since it is not needed anymore.
10052
09e361bb
JJ
100532009-02-16 Jakub Jelinek <jakub@redhat.com>
10054
10055 * gthr-dce.h: Uglify function parameter and local variable names.
10056 * gthr-gnat.h: Likewise.
10057 * gthr-mipssde.h: Likewise.
10058 * gthr-nks.h: Likewise.
10059 * gthr-posix95.h: Likewise.
10060 * gthr-posix.h: Likewise.
10061 * gthr-rtems.h: Likewise.
10062 * gthr-single.h: Likewise.
10063 * gthr-solaris.h: Likewise.
10064 * gthr-tpf.h: Likewise.
10065 * gthr-vxworks.h: Likewise.
10066 * gthr-win32.h: Likewise.
10067
47f5a48f
L
100682009-02-15 H.J. Lu <hongjiu.lu@intel.com>
10069
10070 PR target/39196
10071 * config/i386/i386.md: Restrict the new peephole2 to move
10072 between MMX/SSE registers.
10073
68c9ab45
RG
100742009-02-15 Richard Guenther <rguenther@suse.de>
10075
10076 Revert
10077 2009-02-13 Richard Guenther <rguenther@suse.de>
10078
10079 * configure.ac: Enable LFS.
10080 * configure: Re-generate.
10081 * config.in: Likewise.
10082
d7815554
UW
100832009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10084
10085 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
10086 spu_srqwbyte, spu_srqwbytebc): Define.
10087 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
10088 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
10089 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
10090 "shrqby_<mode>"): New insn-and-split patterns.
10091 * config/spu/spu.c (expand_builtin_args): Determine and return
10092 number of operands using spu_builtin_description data.
10093 (spu_expand_builtin_1): Use it.
10094
c208436c
SE
100952009-02-13 Steve Ellcey <sje@cup.hp.com>
10096
10097 PR target/38056
10098 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
10099 TARGET_CONST_GP.
10100
c2e7ba7e
L
101012009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10102
10103 PR target/39149
10104 * config/i386/i386.c (override_options): Correct warning
6c6094f1 10105 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 10106
72f4e3a7
L
101072009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10108
10109 PR target/39152
10110 * config/i386/i386.md: Restrict the new peephole2 to move
10111 between the general purpose registers.
10112
53f648e2
L
101132009-02-13 H.J. Lu <hongjiu.lu@intel.com>
10114
10115 PR target/39162
10116 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 10117 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
10118 (function_arg_advance): Updated.
10119 (function_arg): Likewise.
10120 (ix86_function_value): Likewise.
10121 (ix86_return_in_memory): Likewise.
10122 (ix86_sol10_return_in_memory): Likewise.
10123 (ix86_gimplify_va_arg): Likewise.
10124 (function_arg_32): Don't warn ABX ABI change here.
10125 (function_arg_64): Likewise.
10126
38432148 101272009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
10128
10129 * loop-iv.c (implies_p): In the final case, test that operands 0
10130 of the two comparisons match.
10131
dd2139e7
BS
10132 * config/bfin/bfin.c (find_prev_insn_start): New function.
10133 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
10134 (find_next_insn_start): Move.
10135
601b3e1a
RG
101362009-02-13 Richard Guenther <rguenther@suse.de>
10137
10138 * configure.ac: Enable LFS.
10139 * configure: Re-generate.
10140 * config.in: Likewise.
10141
f007042e
JM
101422009-02-13 Joseph Myers <joseph@codesourcery.com>
10143
10144 PR c/35444
10145 * c-parser.c (c_parser_parms_list_declarator): Discard pending
10146 sizes on syntax error after some arguments have been parsed.
10147
3f238e8b
JJ
101482009-02-12 Jakub Jelinek <jakub@redhat.com>
10149
10150 * doc/invoke.texi (-fira): Remove.
10151
328e13b7
L
101522009-02-12 H.J. Lu <hongjiu.lu@intel.com>
10153
10154 * caller-save.c: Replace regclass.c with reginfo.c in comments.
10155 * recog.c: Likewise.
10156 * rtl.h: Likewise.
10157
c252db20
L
101582009-02-12 Uros Bizjak <ubizjak@gmail.com>
10159
10160 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
10161 (umul_ppmm): Likewise.
10162 (count_leading_zeros): Likewise.
10163 (count_trailing_zeros): Likewise.
10164 (UMUL_TIME): Likewise.
10165
101662009-02-12 H.J. Lu <hongjiu.lu@intel.com>
10167
ba181049
UB
10168 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
10169 soft-fp/t-softfp to tmake_file.
c252db20
L
10170
10171 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
10172 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
10173 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
10174 IA64_BUILTIN_INFQ]: New.
c252db20
L
10175 (ia64_init_builtins): Initialize __builtin_infq,
10176 __builtin_fabsq and __builtin_copysignq if not HPUX.
10177 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
10178 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
10179
10180 * config/ia64/lib1funcs.asm (__divtf3): Define only if
10181 SHARED is defined.
10182 (__fixtfti): Likewise.
10183 (__fixunstfti): Likewise.
10184 (__floattitf): Likewise.
10185
10186 * config/ia64/libgcc-glibc.ver: New.
10187 * config/ia64/t-fprules-softfp: Likewise.
10188 * config/ia64/sfp-machine.h: Likewise.
10189
10190 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
10191 (LIBGCC2_TF_CEXT): Likewise.
10192 (TF_SIZE): Likewise.
10193 (TARGET_INIT_LIBFUNCS): Likewise.
10194
ba181049 10195 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 10196 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 10197
f13eae6a
L
101982009-02-12 H.J. Lu <hongjiu.lu@intel.com>
10199
10200 * config/i386/i386.c (construct_container): Rewrite processing
10201 BLKmode with X86_64_SSE_CLASS.
10202
12019aec
L
102032009-02-12 Paolo Bonzini <bonzini@gnu.org>
10204
10205 PR target/39152
10206 * config/i386/i386.md: Replace simplify_replace_rtx with
10207 replace_rtx in the new peephole2.
10208
28c11eb3
NS
102092009-02-12 Nathan Sidwell <nathan@codesourcery.com>
10210
10211 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
10212 loop unrolling do not happen at -O2.
10213
c7b94907
MM
102142009-02-12 Michael Matz <matz@suse.de>
10215
10216 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
10217
61e98967
JJ
102182009-02-12 Jakub Jelinek <jakub@redhat.com>
10219
10220 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
10221 for -g3.
10222
a2a237b5
BE
102232009-02-12 Ben Elliston <bje@au.ibm.com>
10224
10225 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
10226 patterns when updating the back chain. Missed in the 2009-02-10
10227 change.
10228
853eda8d
JJ
102292009-02-11 Janis Johnson <janis187@us.ibm.com>
10230
10231 * doc/extend.texi (Decimal Floating Types): Update identifier of
10232 draft TR and list of missing support.
10233
3ad6b266
JJ
102342009-02-11 Jakub Jelinek <jakub@redhat.com>
10235
10236 PR middle-end/39154
10237 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
10238 bit to variable length decl's flags, add it also to its
10239 pointer replacement variable.
10240
b058b753
UB
102412009-02-11 Uros Bizjak <ubizjak@gmail.com>
10242 Jakub Jelinek <jakub@redhat.com>
10243
10244 PR target/39118
10245 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
10246 (memory_blockage): New expander.
10247 (*memory_blockage): New insn pattern.
10248 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
10249 instead of general blockage at the end of function prologue when
10250 frame pointer is used to access red zone area. Do not emit blockage
10251 when profiling, it is emitted in generic code.
10252 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
10253 function epilogue when frame pointer is used to access red zone area.
10254
bab64f23
PB
102552009-02-11 Paolo Bonzini <bonzini@gnu.org>
10256
0ce6dcfa 10257 PR target/38824
bab64f23
PB
10258 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10259 by arithmetic with memory operands.
10260 * config/i386/predicates.md (commutative_operator): New.
10261
8fd94bda
JJ
102622009-02-10 Janis Johnson <janis187@us.ibm.com>
10263
10264 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10265 bulleted lists.
10266
794511d2
EB
102672009-02-10 Eric Botcazou <ebotcazou@adacore.com>
10268
10269 * alias.h (record_alias_subset): Declare.
10270 * alias.c (record_alias_subset): Make global.
10271
6da7fc87
NC
102722009-02-10 Nick Clifton <nickc@redhat.com>
10273
10274 * tree-parloops.c: Change license to GPLv3.
10275 * ipa-struct-reorg.c: Change license to GPLv3.
10276 * ipa-struct-reorg.h: Change license to GPLv3.
10277
a03813c8
SE
102782009-02-10 Steve Ellcey <sje@cup.hp.com>
10279
10280 PR c/39084
10281 * c-decl.c (start_struct): Return NULL on error.
10282
fc3103e7
JJ
102832009-02-10 Jakub Jelinek <jakub@redhat.com>
10284
9b43d37b
JJ
10285 PR middle-end/39124
10286 * cfgloopmanip.c (remove_path): Call remove_bbs after
10287 cancel_loop_tree, not before it.
10288
fc3103e7 10289 PR target/39139
b058b753 10290 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
10291 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10292 VAR_DECLs were seen.
10293 * tree-ssa-live.c (remove_unused_locals): Recompute
10294 cfun->has_local_explicit_reg_vars.
10295 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10296 copies or clearings if cfun->has_local_explicit_reg_vars.
10297
dbf9ee15
UB
102982009-02-10 Uros Bizjak <ubizjak@gmail.com>
10299
10300 PR target/39118
10301 * config/i386/i386.c (expand_prologue): Emit blockage at the end
10302 of function prologue when frame pointer is used to access
10303 red zone area.
10304
bdec4dc7
RG
103052009-02-10 Richard Guenther <rguenther@suse.de>
10306
10307 PR middle-end/39127
10308 * gimplify.c (gimple_regimplify_operands): Always look if
10309 we need to create a temporary.
10310
7cae94fc
RG
103112009-02-10 Richard Guenther <rguenther@suse.de>
10312
10313 PR tree-optimization/39132
10314 * tree-loop-distribution.c (todo): New global var.
10315 (generate_memset_zero): Trigger TODO_rebuild_alias.
10316 (tree_loop_distribution): Return todo.
10317
a8800687
L
103182009-02-10 H.J. Lu <hongjiu.lu@intel.com>
10319
10320 PR target/39119
10321 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10322 (x86_64_reg_class_name): Removed.
10323 (classify_argument): Return 0 if bytes > 32. Return 0 if the
10324 first one isn't X86_64_SSE_CLASS or any other ones aren't
10325 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
10326 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10327 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
10328 and 3 X86_64_SSEUP_CLASS.
10329 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
10330 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10331
d4bacef0
BE
103322009-02-10 Ben Elliston <bje@au.ibm.com>
10333
10334 * config/rs6000/rs6000.md (allocate_stack): Always use an update
10335 form instruction to update the stack back chain word, even if the
10336 user has disabled the generation of update instructions.
10337 (movdi_<mode>_update_stack): New.
10338 (movsi_update_stack): Likewise.
10339 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10340 always use an update form instruction to update the stack back
10341 chain word.
10342
01d7d2f3
SP
103432009-02-09 Sebastian Pop <sebastian.pop@amd.com>
10344
10345 PR middle-end/38953
b058b753
UB
10346 * graphite.c (if_region_set_false_region): After moving a region in
10347 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
10348 (gloog): Remove wrong fix for PR38953.
10349
e41e2ab4
UW
103502009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10351
10352 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10353 generation due to implicit sign extension.
10354
4bb07c5d
EB
103552009-02-09 Eric Botcazou <ebotcazou@adacore.com>
10356
10357 PR middle-end/38981
10358 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10359 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10360
f060a261
RG
103612009-02-09 Richard Guenther <rguenther@suse.de>
10362
10363 PR middle-end/35202
10364 * convert.c (convert_to_real): Disable (float)fn((double)x)
10365 to fnf(x) conversion if errno differences may occur and
10366 -fmath-errno is set.
10367
5a7e237c
AS
103682009-02-07 Anatoly Sokolov <aesok@post.ru>
10369
10370 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10371 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10372 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10373
feab5a67
JM
103742009-02-06 Joseph Myers <joseph@codesourcery.com>
10375
10376 PR c/35434
10377 * c-common.c (handle_alias_attribute): Disallow attribute for
10378 anything not a FUNCTION_DECL or VAR_DECL.
10379
90ef2296
JJ
103802009-02-06 Janis Johnson <janis187@us.ibm.com>
10381
10382 PR c/39035
10383 * real.c (do_compare): Special-case compare of zero against
10384 decimal float value.
10385
1de2c900
JM
103862009-02-06 Joseph Myers <joseph@codesourcery.com>
10387
10388 PR c/36432
10389 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10390 as indicating flexible array members unless the field itself is
10391 being declarared as the incomplete array.
10392
e901811a
JH
103932009-02-06 Jan Hubicka <jh@suse.cz>
10394
10395 PR tree-optimization/38844
10396 * ipa-inline.c (try_inline): Stop inlining recursion when edge
10397 is already inlined.
10398
3cfa762b
RG
103992009-02-06 Richard Guenther <rguenther@suse.de>
10400
10401 PR middle-end/38977
10402 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10403 fork because we may expand it as __gcov_fork.
10404
8506528c
NC
104052009-02-06 Nick Clifton <nickc@redhat.com>
10406
dbf9ee15 10407 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 10408
85169114
PB
104092009-02-06 Paolo Bonzini <bonzini@gnu.org>
10410
10411 PR tree-optimization/35659
10412 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10413 vn_phi_eq): Shortcut if hashcode does not match.
10414 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10415 NULL operands.
10416 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10417 and avoid iterative_hash_expr.
10418 (FOR_EACH_VALUE_ID_IN_SET): New.
10419 (value_id_compare): Remove.
10420 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10421 sort expressions by value id.
10422
6d39673d
KK
104232009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
10424
10425 PR target/38991
10426 * config/sh/predicates.md (general_movsrc_operand): Don't check
10427 the subreg of system registers here.
10428
e6e1c050
JJ
104292009-02-05 Jakub Jelinek <jakub@redhat.com>
10430
10431 PR c++/39106
10432 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10433 on the copied decl.
10434
65a74b5d
PB
104352009-02-05 Paolo Bonzini <bonzini@gnu.org>
10436
10437 PR rtl-optimization/39110
10438 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10439 addresses, not aligned ones.
10440
08e14b2a
DB
104412009-02-05 Daniel Berlin <dberlin@dberlin.org>
10442 Richard Guenther <rguenther@suse.de>
10443
10444 PR tree-optimization/39100
10445 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10446 comment says and add edges.
10447
5006381c
JM
104482009-02-05 Joseph Myers <joseph@codesourcery.com>
10449
10450 PR c/35435
10451 * c-common.c (handle_tls_model_attribute): Ignore attribute for
10452 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10453
2ba9daa7 104542009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
10455
10456 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10457 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10458 register_bb_in_sese, new_sese, free_sese): Moved.
10459 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10460 outermost_loop_in_scop, build_scop_iteration_domain,
10461 expand_scalar_variables_ssa_name, get_vdef_before_scop,
10462 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10463 Use loop_in_sese_p instead of loop_in_scop_p.
10464 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10465 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10466 (scopdet_basic_block_info): Fix bug in scop detection.
10467 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10468 eq_loop_to_cloog_loop): Remove.
10469 (nb_loops_around_loop_in_scop, nb_loop
10470 ref_nb_loops): Moved here...
10471 * graphite.h (ref_nb_loops): ... from here.
10472 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10473 (loop_domain_dim, loop_iteration_vector_dim): Remove.
10474 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10475 * testsuite/gcc.dg/graphite/scop-19.c: New
10476
48e8382e
PB
104772009-02-04 Paolo Bonzini <bonzini@gnu.org>
10478 Hans-Peter Nilsson <hp@axis.com>
10479
10480 PR rtl-optimization/37889
10481 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10482 Move offset handling from PLUS to before the switch. Use new
10483 arguments when considering SYMBOL_REFs too.
10484 (rtx_addr_can_trap_p): Pass dummy offset and size.
10485 (enum may_trap_p_flags): Remove.
10486 (may_trap_p_1): Pass size from MEM_SIZE.
10487
10488 PR rtl-optimization/38921
10489 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10490 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10491 * rtlanal.c (may_trap_after_code_motion_p): Delete.
10492 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10493
69349ea5
L
104942009-02-04 H.J. Lu <hongjiu.lu@intel.com>
10495
10496 AVX Programming Reference (January, 2009)
10497 * config/i386/sse.md (*vpclmulqdq): New.
10498
b545e411
JJ
104992009-02-04 Jakub Jelinek <jakub@redhat.com>
10500
10501 PR tree-optimization/38977
10502 PR gcov-profile/38292
bf9b2cc9 10503 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 10504
5b43bf05
HS
105052009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
10506
10507 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10508 non-indexable addresses even before reload.
10509
062c4bb3
JM
105102009-02-03 Joseph Myers <joseph@codesourcery.com>
10511
10512 PR c/29129
10513 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10514 as having variable size. Do not give an error for unnamed
10515 parameters with [*] declarators. Give a warning for type names
10516 with [*] declarators and mark them as variable size.
10517 * c-parser.c (c_parser_sizeof_expression): Do not give an error
10518 for sizeof applied to [*] type names.
10519
6175f578
AP
105202009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
10521
10522 PR C++/36607
10523 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10524
d4f4bc84
JJ
105252009-02-03 Jakub Jelinek <jakub@redhat.com>
10526
10527 * gcc.c (process_command): Update copyright notice dates.
10528 * gcov.c (print_version): Likewise.
10529 * gcov-dump.c (print_version): Likewise.
10530 * mips-tfile.c (main): Likewise.
10531 * mips-tdump.c (main): Likewise.
10532
f6294de7
JM
105332009-02-03 Joseph Myers <joseph@codesourcery.com>
10534
10535 PR c/35433
10536 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
10537 for composite type involving a zero-length array type.
10538
754ccf7c
JJ
105392009-02-03 Jakub Jelinek <jakub@redhat.com>
10540
70f16287
JJ
10541 PR target/35318
10542 * function.c (match_asm_constraints_1): Skip over
10543 initial optional % in the constraint.
10544
754ccf7c
JJ
10545 PR inline-asm/39059
10546 * c-parser.c (c_parser_postfix_expression): If fixed point is not
10547 supported, don't accept FIXED_CSTs.
10548 * c-decl.c (finish_declspecs): Error if fixed point is not supported
10549 and _Sat is used without _Fract/_Accum. Set specs->type to
10550 integer_type_node for cts_fract/cts_accum if fixed point is not
10551 supported.
10552
965fdadf
CM
105532009-02-02 Catherine Moore <clm@codesourcery.com>
10554
dbf9ee15 10555 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 10556
2e8a796f
RS
105572009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
10558
10559 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
10560 (ABI_HAS_64BIT_SYMBOLS): Use it.
10561 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
10562
e0079468
PB
105632009-02-02 Paul Brook <paul@codesourcery.com>
10564
10565 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
10566
eca72963
JJ
105672009-02-02 Jakub Jelinek <jakub@redhat.com>
10568
10569 PR inline-asm/39058
10570 * recog.h (asm_operand_ok): Add constraints argument.
10571 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
10572 recurse on matching constraint.
10573 (check_asm_operands): Pass constraints as 3rd argument to
10574 asm_operand_ok. Don't look up matching constraint here.
10575 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
10576 to asm_operand_ok.
10577
b5bde9ff
BE
105782009-02-02 Ben Elliston <bje@au.ibm.com>
10579
10580 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
10581 TARGET_NARROW_VOLATILE_BITFIELD macro names.
10582
30f3e427
JDA
105832009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10584
be7659ba
JDA
10585 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
10586 information. Remove some obsolete information. Reorganize.
10587
30f3e427
JDA
10588 * config/pa/fptr.c: Revert license to GPL 2.
10589 * config/pa/milli64.S: Likewise.
10590
3cbfaf98
DK
105912009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10592
10593 PR target/38904
10594 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
10595 LIBRARY name in, instead of hard-coding it.
10596 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
10597 extra target make frag to tmake_files according to EH model.
10598 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10599 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
10600 frags that define makefile variable EH_MODEL appropriately.
10601 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
10602 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
10603 to "-sjlj" according to type of EH configured.
10604 (LIBGCC_SONAME): Concatenate it to shared library base name.
10605 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
10606 to "_sjlj" according to type of EH configured.
10607 (LIBGCC_SONAME): Concatenate it to shared library base name.
10608 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
10609 (SHLIB_LINK): Add missing semicolon to if-else construct.
10610 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10611 string value of "pe_dll" command-line option.
10612 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
10613 (SHLIB_SONAME): Use it when overriding t-cygming default.
10614 (SHLIB_IMPLIB): Override t-cygming default.
10615 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
10616 string value of "pe_dll" command-line option.
10617
8d0b6068
DK
106182009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
10619
10620 PR target/38952
10621 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 10622 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 10623
14c28276
RG
106242009-01-31 Richard Guenther <rguenther@suse.de>
10625
10626 PR tree-optimization/38937
10627 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
10628 computing the transitive closure.
10629
5f4d82c2
RG
106302009-01-30 Richard Guenther <rguenther@suse.de>
10631
10632 PR tree-optimization/39041
10633 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
10634 Propagate variable indices only if the types match for this stmt.
10635
d0728ae0
JJ
106362009-01-30 Jakub Jelinek <jakub@redhat.com>
10637
10638 PR target/39013
10639 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
10640 inline but never defined.
10641
6b67572e 106422009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
10643
10644 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
10645 (*insv_h_di_reg_extimm): New insn.
10646 (*insv_l<mode>_reg_extimm): New insn.
10647
106482009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
10649
10650 * config/picochip/picochip.c (flag_conserve_stack): set
10651 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
10652 fconserve-stack. Reduce call-overhead used by inliner.
10653
9fec758d 106542009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
10655
10656 PR/38157
10657 * common.opt (flag_conserve_stack): Initialised to zero.
10658
7f1c539c
KT
106592009-01-30 Kai Tietz <kai.tietz@onevision.com>
10660
10661 PR/39002
10662 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
10663 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
10664 method.
10665
3631be48
L
106662009-01-29 H.J. Lu <hongjiu.lu@intel.com>
10667
10668 * ira-color.c (allocno_reload_assign): Update comments.
10669 * regmove.c (regmove_optimize): Likewise.
10670
10671 * ra.h: Removed.
10672
416ac4d4
RM
106732009-01-29 Robert Millan <rmh@aybabtu.com>
10674
60839f5d
EB
10675 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
10676 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 10677 `MD_UNWIND_SUPPORT'.
60839f5d 10678 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 10679
d5e54bc1
KH
106802009-01-29 Kazu Hirata <kazu@codesourcery.com>
10681
10682 PR tree-optimization/39007
10683 * tree-loop-distribution.c (generate_builtin): Use
10684 recompute_dominator to compute the immediate dominator of the
10685 basic block just after the loop.
10686
38432148 106872009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
10688
10689 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
10690 (ASM_OUTPUT_DWARF_PCREL): Define.
10691
38432148 106922009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
10693
10694 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
10695 * doc/passes.texi: Remove entries about regclass, local-alloc, and
10696 global. Modify entries about regmove and IRA.
10697
10698 * ra-conflict.c: Remove the file.
10699
10700 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
10701
10702 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
10703 (pass_regclass_init): Rename to pass_reginfo_init.
10704
10705 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
10706
10707 * toplev.h (flag_ira): Remove.
10708
10709 * caller-save.c (setup_save_areas): Remove flag_ira.
10710
bf9b2cc9 10711 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
10712
10713 * global.c: Remove the file.
10714
ba20e309 10715 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
10716
10717 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
10718
10719 * regmove.c: Modify file description.
10720 (find_use_as_address, try_auto_increment): Define them only if
10721 AUTO_INC_DEC is defined.
10722 (replacement_quality, replace_in_call_usage, fixup_match_1,
10723 stable_and_no_regs_but_for_p): Remove.
10724 (reg_set_in_bb): Make it static.
10725 (regmove_optimize): Remove flag_ira and code which worked for
10726 !flag_ira.
10727
10728 * local-alloc.c: Remove the file.
10729
10730 * common.opt (fira): Remove.
10731
10732 * ira.c: Include except.h.
10733 (eliminable_regset): Move from global.c.
10734 (mark_elimination): Ditto. Remove flag_ira.
10735 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
10736 equiv_mem_modified, validate_equiv_mem_from_store,
10737 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
10738 contains_replace_regs, memref_referenced_p, memref_used_between_p,
10739 no_equiv, recorded_label_ref): Move from local-alloc.c.
10740 (update_equiv_regs): Ditto. Make it static.
10741 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 10742 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
10743 (build_insn_chain): Ditto. Make it static.
10744 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
10745 Rename to init_live_subregs.
10746 (gate_ira): Remove flag_ira.
10747
10748 * regclass.c: Rename reginfo.c. Change file description.
10749 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 10750 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
10751 (init_reg_sets_1): Remove code for evaluation of
10752 reg_class_superclasses and losing_caller_save_reg_set.
10753 (init_regs): Remove init_reg_autoinc.
10754 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
10755 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 10756 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
10757 (pass_regclass_init): Rename to pass_reginfo_init. Modify
10758 corresponding entries.
10759 (dump_regclass, record_operand_costs, scan_one_insn,
10760 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
10761 record_address_regs, auto_inc_dec_reg_p): Remove.
10762 (gt-regclass.h): Rename to gt-reginfo.h.
10763
10764 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 10765 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
10766
10767 * Makefile.in (RA_H): Remove.
10768 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
10769 Rename regclass.o to reginfo.o.
10770 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
10771 gt-reginfo.h.
10772 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
10773 (GTFILES): Rename regclass.c to reginfo.c.
10774
10775 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 10776 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
10777
10778 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
10779 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
10780 Remove flag_ira.
6b67572e 10781 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 10782
c95b2534 107832009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
10784
10785 PR middle-end/35854
10786 * doc/invoke.texi (rtl debug options): Complete rewrite.
10787 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
10788 to auto_inc_dec".
10789 * mode-switching.c (pass_mode_switching): Rename pass from
10790 "mode-sw" to "mode_sw".
10791 * except.c (pass_convert_to_eh_ranges): Rename pass from
10792 "eh-ranges" to "eh_ranges".
10793 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
10794 to "subreg1".
2ba9daa7
AS
10795
10796
72a54528
AM
107972009-01-29 Andrey Belevantsev <abel@ispras.ru>
10798 Alexander Monakov <amonakov@ispras.ru>
10799
10800 PR middle-end/38857
10801 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
10802 register.
10803 (move_exprs_to_boundary): Change return type and pass through
10804 should_move from move_op. Relax assert. Update usage ...
10805 (schedule_expr_on_boundary): ... here. Use should_move instead of
10806 cant_move.
10807 (move_op_orig_expr_found): Indicate that insn was disconnected from
10808 stream.
10809 (code_motion_process_successors): Do not call after_merge_succs
10810 callback if original expression was not found when traversing any of
10811 the branches.
10812 (code_motion_path_driver): Change return type. Update prototype.
10813 (move_op): Update comment. Add a new parameter (should_move). Update
10814 prototype. Set *should_move based on indication provided by
10815 move_op_orig_expr_found.
10816
001b9eb6
PH
108172009-01-28 Pat Haugen <pthaugen@us.ibm.com>
10818
10819 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
10820 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
10821 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
10822 * config/rs6000/rs6000.c (rs6000_override_options): Default
10823 avoid-indexed-addresses on for Power6, off for everything else.
10824 (avoiding_indexed_address_p): New function.
10825 (rs6000_legitimize_address): Use it.
10826 (rs6000_legitimate_address): Likewise.
10827 * config/rs6000/rs6000.md (movXX_updateX): Likewise
10828
59dc4898
KH
108292009-01-28 Kazu Hirata <kazu@codesourcery.com>
10830
10831 PR tree-optimization/38997
10832 * tree-loop-distribution.c (generate_memset_zero): Use
10833 POINTER_PLUS_EXPR for a pointer addition.
10834
07da44ab
AK
108352009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
10836
10837 * config/s390/s390.md (bswap<mode>2): New pattern added.
10838
cdc15d23
WG
108392009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10840
10841 * config/s390/s390.md (*tls_load_31): Added type attribute.
10842
d46f24b6
WG
108432009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10844
10845 * config/s390/s390.md: Fix a few comments.
10846
729e750f
WG
108472009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
10848
10849 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
10850 (*tm<mode>_full): Fixed z10prop attribute.
10851 (*tst<mode>_extimm): Fixed z10prop attribute.
10852 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
10853 (*tstqiCCT_cconly): Fixed z10prop attribute.
10854 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
10855 (*movsi_larl): Fixed z10prop attribute.
10856 (*movsi_zarch): Fixed z10prop attribute.
10857 (*movsi_eas): Fixed z10prop attribute.
10858 (*movhi): Fixed z10prop attribute.
10859 (*movqi): Fixed z10prop attribute.
10860 (*movstrictqi): Fixed z10prop attribute.
10861 (*mov<mode>): Fixed z10prop attribute.
10862 (*movcc): Fixed z10prop attribute.
10863 (*sethighpartdi_64): Fixed z10prop attribute.
10864 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
10865 (*negdi2_sign_cc): Fixed z10prop attribute.
10866 (*negdi2_sign): Fixed z10prop attribute.
10867 (*absdi2_sign_cc): Fixed z10prop attribute.
10868 (*absdi2_sign): Fixed z10prop attribute.
10869 (*negabsdi2_sign_cc): Fixed z10prop attribute.
10870 (*negabsdi2_sign): Fixed z10prop attribute.
10871 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
10872 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
10873 (doloop_si64): Fixed z10prop attribute.
10874 (doloop_si31): Fixed z10prop attribute.
10875 (doloop_long): Fixed z10prop attribute.
10876 (indirect_jump): Fixed z10prop attribute.
10877 (nop): Fixed z10prop attribute.
10878 (main_base_64): Fixed z10prop attribute.
10879 (reload_base_64): Fixed z10prop attribute.
10880
c7789bfb
JJ
108812009-01-28 Jakub Jelinek <jakub@redhat.com>
10882
10883 PR rtl-optimization/38740
6b67572e
UB
10884 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
10885 if !optimize.
c7789bfb
JJ
10886 * config/mips/mips.c (mips_reorg): Likewise.
10887
de081cfd
RG
108882009-01-28 Richard Guenther <rguenther@suse.de>
10889
10890 PR tree-optimization/38926
10891 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
10892 with the correct value id to a value.
10893 (do_regular_insertion): Use the value number of edoubleprime
10894 for the value number of the expr.
10895
10896 Revert
10897 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 10898
d748c406
UB
10899 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
10900 a PHI ask VN if it is already available.
10901 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
10902 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 10903
a9d386a1
JJ
109042009-01-28 Jakub Jelinek <jakub@redhat.com>
10905
10906 PR middle-end/38934
10907 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
10908 set to varying whenever max has TREE_OVERFLOW set, similarly
10909 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
10910
97a170cd
RG
109112009-01-28 Richard Guenther <rguenther@suse.de>
10912
10913 PR middle-end/38908
10914 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
10915 uninitialized aggregate uses in call arguments.
10916
89ebafc6
PB
109172009-01-28 Paolo Bonzini <bonzini@gnu.org>
10918
10919 PR tree-optimization/38984
10920 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
10921 the nothing_id variable if -fno-delete-null-pointer-checks.
10922
bef3c57b
UB
109232009-01-28 Uros Bizjak <ubizjak@gmail.com>
10924
10925 PR target/38988
10926 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
10927 (set_got_offset_rex64): Ditto.
10928
0c6390fa
L
109292009-01-27 H.J. Lu <hongjiu.lu@intel.com>
10930
10931 PR target/38941
10932 * doc/extend.texi: Improve local variable with asm reg.
10933
bee6fa6d
AN
109342009-01-27 Adam Nemet <anemet@caviumnetworks.com>
10935
10936 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
10937 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
10938 was not supplied then set warn_packed_bitfield_compat to the
10939 default value of 1.
10940 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
10941 against 1.
10942
b5c3dfbb
RG
109432009-01-27 Richard Guenther <rguenther@suse.de>
10944
10945 PR tree-optimization/38503
10946 * cfgexpand.c (expand_gimple_basic_block): Ignore
10947 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
10948 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
10949 variables that cannot have TBAA applied.
10950 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
10951 statements.
10952
d748c406 109532009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
10954
10955 PR middle-end/38969
10956 * calls.c (initialize_argument_information): Do not wrap complex
10957 arguments in SAVE_EXPR.
10958
9112bb38
AT
109592009-01-26 Andreas Tobler <a.tobler@schweiz.org>
10960
10961 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 10962 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 10963
4757704f
RG
109642009-01-26 Richard Guenther <rguenther@suse.de>
10965
10966 PR tree-optimization/38745
10967 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
10968 from special handling.
10969
e3e6cff4
RG
109702009-01-26 Richard Guenther <rguenther@suse.de>
10971
10972 PR tree-optimization/38745
10973 * tree-ssa.c (execute_update_addresses_taken): Do not include
10974 variables that cannot possibly be a register in not_reg_needs.
10975 Do not clear TREE_ADDRESSABLE on vars that may not become
10976 registers.
10977 * tree-ssa.c (update_alias_info_1): Include those in the set
10978 of addressable vars.
10979
dc874b53
RG
109802009-01-26 Richard Guenther <rguenther@suse.de>
10981
10982 PR middle-end/38851
10983 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
10984 * tree-ssa-dse.c: Include langhooks.h
10985 (execute_simple_dse): Remove stores with zero size.
10986
849421a3
JJ
109872009-01-24 Jakub Jelinek <jakub@redhat.com>
10988
10989 PR c/38957
10990 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
10991 as PLUS_EXPR.
10992
82f70421
JB
109932009-01-24 Julian Brown <julian@codesourcery.com>
10994
10995 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
10996 config/arm/linux-atomic.c.
10997 * config/arm/linux-atomic.c: New.
10998
863412d6
EB
109992009-01-24 Eric Botcazou <ebotcazou@adacore.com>
11000
11001 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
11002 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
11003 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
11004
8c684300
L
110052009-01-24 H.J. Lu <hongjiu.lu@intel.com>
11006
11007 PR c/38938
93f1527a 11008 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
11009 properly.
11010
b840fb02
SP
110112009-01-24 Sebastian Pop <sebastian.pop@amd.com>
11012
11013 PR tree-optimization/38953
11014 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
11015 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
11016 (gloog): Split the exit of the scop when the scop exit is a loop exit.
11017 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
11018 changed the CFG.
11019
ecee559f
PB
110202009-01-24 Paul Brook <paul@codesourcery.com>
11021
11022 * config/arm/neon.md (neon_type): Move to arm.md.
11023 (neon_mov<VSTRUCT>): Add neon_type attribute.
11024 * config/arm/arm.md (neon_type): Move to here.
11025 (conds): Add "unconditioal" and use as default for NEON insns.
11026
61ad0914
BE
110272009-01-24 Ben Elliston <bje@au.ibm.com>
11028
11029 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
11030 void *' warning from -Wc++-compat.
11031 * Makefile.in (dominance.o-warn): Remove.
11032
38432148 110332009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
11034
11035 PR tree-optimization/38932
11036 * fold-const.c (fold_unary_ignore_overflow): New.
11037 * tree.h (fold_unary_ignore_overflow): Declare.
11038 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
11039 * tree-ssa-sccvn.c (visit_reference_op_load,
11040 simplify_unary_expression): Likewise.
11041
2cd36c22
AN
110422009-01-22 Adam Nemet <anemet@caviumnetworks.com>
11043
11044 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
11045 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
11046 regardless of their type.
11047 * c-common.c (handle_packed_attribute): Don't ignore packed on
11048 bitfields.
11049 * c.opt (Wpacked-bitfield-compat): New warning option.
11050 * stor-layout.c (place_field): Warn if offset of a field changed.
11051 * doc/extend.texi (packed): Mention the ABI change.
11052 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
11053 (Warning Options): Add it to the list.
11054
e4e624ab
L
110552009-01-22 H.J. Lu <hongjiu.lu@intel.com>
11056
11057 * c-opts.c (c_common_post_options): Fix a typo in comments.
11058
d0ea0759
SE
110592009-01-22 Steve Ellcey <sje@cup.hp.com>
11060
11061 PR middle-end/38615
11062 * gimplify.c (gimplify_init_constructor): Fix promotion of const
11063 variables to static.
11064 * doc/invoke.texi (-fmerge-all-constants): Update description.
11065
87673f84
UB
110662009-01-22 Uros Bizjak <ubizjak@gmail.com>
11067
11068 PR target/38931
11069 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
11070 (*movdi_1_rex64): Use type "mmx" for alternative 5.
11071
96339268
RE
110722009-01-22 Richard Earnshaw <rearnsha@arm.com>
11073
11074 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
11075 a word boundary.
11076 (LOCAL_ALIGNMENT): Similarly.
11077
442dc742 110782009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 11079 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
11080
11081 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
11082 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
11083 * config/arm/arm-tune.md: Regenerate.
11084 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
11085 -march=iwmmxt2.
11086
9b34732e
MS
110872009-01-22 Mark Shinwell <shinwell@codesourcery.com>
11088
11089 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
11090 version number to five.
11091
03c2a308
DS
110922009-01-22 Dodji Seketeli <dodji@redhat.com>
11093
11094 PR c++/38930
ba20e309 11095 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
11096 * c-common.c (set_underlying_type): Likewise.
11097 (is_typedef_decl ): Likewise
11098 * tree.h: Likewise
11099 (set_underlying_type): Likewise.
11100 (is_typedef_type): Likewise.
11101
1240d76e
VM
111022009-01-21 Vladimir Makarov <vmakarov@redhat.com>
11103
11104 PR middle-end/38587
11105 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
11106 crossing setjmps.
11107
b8a1087d
DK
111082009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
11109
11110 PR bootstrap/37660
11111 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
11112 (LIBGCC_SPEC): Don't define.
11113 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
11114
435da628
UB
111152009-01-21 Uros Bizjak <ubizjak@gmail.com>
11116
11117 PR rtl-optimization/38879
11118 * alias.c (base_alias_check): Unaligned access via AND address can
11119 alias all surrounding object types except those with sizes equal
11120 or wider than the size of unaligned access.
11121
d597b3ce
DS
111222009-01-21 Dodji Seketeli <dodji@redhat.com>
11123
11124 PR c++/26693
ba20e309 11125 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 11126 * c-common.c (set_underlying_type): ... here.
435da628 11127 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
11128 the newly created typedef variant type.
11129 (is_typedef_decl ): New entry point.
11130 * tree.h: Added a new member member_types_needing_access_check to
11131 struct tree_decl_non_common.
11132 (set_underlying_type): New entry point.
11133 (is_typedef_type): Likewise.
11134
71a6fe66
BM
111352009-01-21 Bingfeng Mei <bmei@broadcom.com>
11136
11137 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
11138 Check whether two instructions have memory references that
11139 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
11140 are helper functions for traversing.
11141 * alias.h (insn_alias_sets_confilict_p): New prototypes.
11142 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
11143 not to draw dependency edge for instructions with non-conflicting
11144 alias sets.
11145
5a248274
JM
111462009-01-20 Joseph Myers <joseph@codesourcery.com>
11147
11148 PR other/38758
6b67572e
UB
11149 * longlong.h: Update copyright years. Use soft-fp license notice.
11150 Sync __clz_tab declaration with glibc.
5a248274 11151
4b84f3de
SE
111522009-01-20 Steve Ellcey <sje@cup.hp.com>
11153
11154 PR target/30687
11155 * doc/extend.texi (syscall_linkage): New.
11156 (version_id): Modify.
11157
37348bf1 111582009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 11159 Richard Guenther <rguenther@suse.de>
37348bf1
AP
11160
11161 PR tree-optimization/38747
11162 PR tree-optimization/38748
11163 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
11164 conversion if the base address is an indirect reference and the
11165 aliasing sets could cause issues.
11166
d0a58904
SP
111672009-01-20 Sebastian Pop <sebastian.pop@amd.com>
11168
2ba9daa7 11169 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
11170 explaining why these options are not documented.
11171
71e7afb2
SP
111722009-01-20 Sebastian Pop <sebastian.pop@amd.com>
11173
11174 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
11175 gimple_call_lhs is NULL.
11176
38432148 111772009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
11178
11179 PR target/38868
11180 * emit-rtl.c (adjust_address_1): Make sure memref is never
11181 overwritten.
11182
cbb8dee3
BE
111832009-01-20 Ben Elliston <bje@au.ibm.com>
11184
11185 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 11186 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
11187 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
11188 const qualifier from arg 2.
11189
72c66596
IS
111902009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
11191
435da628 11192 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 11193
f68211cd
VM
111942009-01-19 Vladimir Makarov <vmakarov@redhat.com>
11195
11196 PR c/38869
11197 * rtl.h (reinit_regs): New prototype.
11198 * regclass.c: Include ira.h.
11199 (reinit_regs): New.
11200 * Makefile.in (regclass.o): Add ira.h.
11201 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
11202
6e4f1168
L
112032009-01-18 H.J. Lu <hongjiu.lu@intel.com>
11204
11205 PR target/38736
11206 * c-common.c (handle_aligned_attribute): Use
11207 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
11208 default alignment value.
11209
11210 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
11211
11212 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
11213 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
11214
11215 * doc/extend.texi: Update __attribute__ ((aligned)). Document
11216 __BIGGEST_ALIGNMENT__.
11217
11218 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
11219
890065bf
RG
112202009-01-18 Richard Guenther <rguenther@suse.de>
11221
11222 PR tree-optimization/38819
11223 * tree-flow.h (operation_could_trap_helper_p): Declare.
11224 * tree-eh.c (operation_could_trap_helper_p): Export.
11225 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
11226 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
11227 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
11228 are about to insert a possibly trapping instruction and fail
11229 in this case.
11230
a729d731
AS
112312009-01-18 Andreas Schwab <schwab@suse.de>
11232
11233 * doc/install.texi (Configuration): Remove obsolete paragraph
11234 about use of --with-gnu-ld with --with-gnu-as.
11235
a640c13b
KH
112362009-01-18 Kazu Hirata <kazu@codesourcery.com>
11237
11238 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
11239 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
11240 Follow spelling conventions.
11241
dba2cc0c
BE
112422009-01-18 Ben Elliston <bje@au.ibm.com>
11243
11244 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
11245 C++ warning about implicit conversion from void * to struct
11246 bitmap_head_def *.
11247 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 11248 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 11249
2207a498
DK
112502009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
11251
11252 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
11253
8137e465
SP
112542009-01-17 Sebastian Pop <sebastian.pop@amd.com>
11255 Tobias Grosser <tobi.grosser@amd.com>
11256
11257 * graphite.c (graphite_trans_scop_block): Do not block single
11258 nested loops.
11259
5be1c58c
AO
112602009-01-16 Alexandre Oliva <aoliva@redhat.com>
11261
11262 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11263 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11264 test with assertion.
11265
786ce82d
RG
112662009-01-16 Richard Guenther <rguenther@suse.de>
11267
11268 PR tree-optimization/38835
11269 PR middle-end/36227
11270 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11271 and INT + PTR -> (INT)(PTR p+ INT) folding.
11272 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11273
c1cb09ad
AN
112742009-01-16 Adam Nemet <anemet@caviumnetworks.com>
11275
11276 PR target/38554
11277 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11278 the subreg from a lowpart subreg if it is also casting the value.
11279
bcab4e19
SP
112802009-01-16 Sebastian Pop <sebastian.pop@amd.com>
11281 Tobias Grosser <tobi.grosser@amd.com>
11282
11283 * graphite.c (compare_prefix_loops): New.
11284 (build_scop_canonical_schedules): Rewritten.
11285 (graphite_transform_loops): Move build_scop_canonical_schedules
11286 after build_scop_iteration_domain.
11287
0b040072
SP
112882009-01-16 Sebastian Pop <sebastian.pop@amd.com>
11289 Tobias Grosser <tobi.grosser@amd.com>
11290
2ba9daa7 11291 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
11292 the dimension of the iteration domain. Do copy the domain
11293 only when it exists.
11294 (build_scop_conditions_1): Do not call add_conditions_to_domain.
11295 (add_conditions_to_constraints): New.
11296 (can_generate_code_stmt, can_generate_code): Removed.
11297 (gloog): Do not call can_generate_code.
11298 (graphite_transform_loops): Call add_conditions_to_constraints
11299 after building the iteration domain.
11300
56c6a499
JJ
113012009-01-16 Jakub Jelinek <jakub@redhat.com>
11302
11303 PR tree-optimization/38789
11304 * tree-ssa-threadedge.c
11305 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11306 __builtin_constant_p.
11307
c95b2534 113082009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
11309
11310 * dce.c (delete_unmarked_insns): Reversed the order that insns are
11311 examined before deleting them.
2ba9daa7 11312
c433cb14
RE
113132009-01-16 Richard Earnshaw <rearnsha@arm.com>
11314
11315 * function.c (aggregate_value_p): Correctly extract the function
11316 type from CALL_EXPR_FN lookup.
11317
c95b2534 113182009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
11319
11320 * config/picochip/picochip.c (picochip_override_options): Revert
11321 CFI asm flag disable commited previously.
11322
c77bb78f
SP
113232009-01-15 Sebastian Pop <sebastian.pop@amd.com>
11324 Tobias Grosser <tobi.grosser@amd.com>
11325 Jan Sjodin <jan.sjodin@amd.com>
11326
11327 * graphite.c (scan_tree_for_params): On substractions negate
11328 all the coefficients of the term.
11329 (clast_to_gcc_expression_red): New. Handle reduction expressions
11330 of more than two operands.
11331 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11332 (get_vdef_before_scop): Handle also the case of default definitions.
11333
574af2d6
RS
113342009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
11335
11336 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11337 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11338 Also use them when walking CALL_INSN_FUNCTION_USAGE.
11339
e939805b
L
113402009-01-15 H.J. Lu <hongjiu.lu@intel.com>
11341 Joey Ye <joey.ye@intel.com>
11342
11343 PR middle-end/37843
11344 * cfgexpand.c (expand_stack_alignment): Don't update stack
11345 boundary nor check incoming stack boundary here.
11346 (gimple_expand_cfg): Update stack boundary and check incoming
11347 stack boundary here.
11348
c95b2534 113492009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 11350
435da628 11351 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 11352
0196c95e
JJ
113532009-01-14 Jakub Jelinek <jakub@redhat.com>
11354
11355 PR rtl-optimization/38245
11356 * calls.c (expand_call): Add stack arguments to
11357 CALL_INSN_FUNCTION_USAGE even for pure calls (when
11358 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11359 in regs and partially in memory or BLKmode arguments.
11360 (emit_library_call_value_1): Add stack arguments to
11361 CALL_INSN_FUNCTION_USAGE even for pure calls (when
11362 ACCUMULATE_OUTGOING_ARGS).
11363 * dce.c: Include tm_p.h.
11364 (find_call_stack_args): New function.
11365 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
11366 argument.
11367 (mark_insn): Call find_call_stack_args for CALL_Ps.
11368 (prescan_insns_for_dce): Walk insns backwards in bb rather than
11369 forwards. Allocate and free arg_stores bitmap if needed, pass it
11370 down to deletable_insn_p, don't mark stores set in arg_stores
11371 bitmap, clear the bitmap at the beginning of each bb.
11372 * Makefile.in (dce.o): Depend on $(TM_P_H).
11373
6df6bcfa
MM
113742009-01-14 Michael Meissner <gnu@the-meissners.org>
11375
11376 PR target/22599
435da628
UB
11377 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11378 to make sure the insn is a conditional test (bug 22599). Reformat a
11379 few long lines.
6df6bcfa 11380
765ec70c
SP
113812009-01-14 Sebastian Pop <sebastian.pop@amd.com>
11382
11383 PR middle-end/38431
11384 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11385 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11386 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 11387 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
11388 scops have been code generated.
11389
7de2b688
BS
113902009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
11391 * doc/gty.texi (Invoking the garbage collector): Added new node
11392 and section documenting ggc_collect.
11393
10bd6c5c
RG
113942009-01-14 Richard Guenther <rguenther@suse.de>
11395
11396 PR tree-optimization/38826
11397 PR middle-end/38477
11398 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11399 initialization notes only if we actually emitted a warning.
11400 (intra_create_variable_infos): Add constraints for a result decl
11401 that is passed by hidden reference.
11402 (build_pred_graph): Mark all related variables non-direct on
11403 address-taking.
11404
9c7c70ee
NC
114052009-01-14 Nick Clifton <nickc@redhat.com>
11406
11407 * ira-conflicts.c: Include addresses.h for the definition of
11408 base_reg_class.
435da628
UB
11409 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11410 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 11411
cf0c2a60
VM
114122009-01-13 Vladimir Makarov <vmakarov@redhat.com>
11413
11414 PR target/38811
11415 * Makefile.in (ira-lives.o): Add except.h.
11416
11417 * ira-lives.c: Include except.h.
11418 (process_bb_node_lives): Process can_throw_internal.
11419
d3302fd3
JJ
114202009-01-13 Jakub Jelinek <jakub@redhat.com>
11421
11422 PR rtl-optimization/38774
11423 * combine.c (simplify_set): When undoing cc_use change, don't do
11424 PUT_CODE on the newly created comparison, but instead put back the
11425 old comparison.
11426
7ab23fd0
JM
114272009-01-13 Joseph Myers <joseph@codesourcery.com>
11428
11429 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11430 values. Remove duplicate arm8 entry.
11431
f9344488
SP
114322009-01-13 Sebastian Pop <sebastian.pop@amd.com>
11433
11434 PR tree-optimization/38786
11435 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11436 the SSA_NAME case of expand_scalar_variables_expr.
11437 Set the type of an expression to the type of its assign statement.
11438 (expand_scalar_variables_expr): Also gather the scalar computation
11439 used to index the memory access. Do not pass loop_p.
11440 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
11441 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
11442 the gimple_stmt_iterator where it inserts new code.
11443 Do not pass loop_p.
f9344488
SP
11444 (copy_bb_and_scalar_dependences): Do not pass loop_p.
11445 (translate_clast): Update call to copy_bb_and_scalar_dependences.
11446
2d8bb84d
SP
114472009-01-13 Sebastian Pop <sebastian.pop@amd.com>
11448
11449 * graphite.h (debug_value): Removed.
11450 * graphite.c (debug_value): Removed.
11451
ff128632
RE
114522009-01-13 Richard Earnshaw <rearnsha@arm.com>
11453
435da628
UB
11454 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11455 ldrd/strd with two 32-bit instructions.
ff128632 11456
d5a0a47b
RE
114572009-01-13 Richard Earnshaw <rearnsha@arm.com>
11458
435da628
UB
11459 * config/arm/arm.c (struct processors): Pass for speed down into
11460 cost helper functions.
d5a0a47b
RE
11461 (const_ok_for_op): Handle COMPARE and inequality nodes.
11462 (arm_rtx_costs_1): Rewrite.
11463 (arm_size_rtx_costs): Update prototype.
11464 (arm_rtx_costs): Pass speed down to helper functions.
11465 (arm_slowmul_rtx_costs): Rework cost calculations.
11466 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11467 (arm_9e_rtx_costs): Likewise.
11468
26d5bf5b
UB
114692009-01-13 Uros Bizjak <ubizjak@gmail.com>
11470
11471 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 11472 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
11473 (alpha_legitimize_address): Do not split local symbols wider than
11474 UNITS_PER_WORD into HIGH/LO_SUM parts.
11475
5d14e3d5
DS
114762009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
11477
11478 PR bootstrap/38580
11479 * gcc.c (process_command): Replace call to execvp with calls
11480 to pex_one and exit.
11481
33faafca
AS
114822009-01-03 Anatoly Sokolov <aesok@post.ru>
11483
11484 PR target/29141
11485 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11486 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11487 variant for devices with 3-byte PC.
ba20e309 11488 (__tablejump_elpm__): New.
33faafca 11489
634b5df5
JJ
114902009-01-12 Jakub Jelinek <jakub@redhat.com>
11491
11492 PR c/32041
11493 * c-parser.c (c_parser_postfix_expression): Allow `->' in
11494 offsetof member-designator, handle it as `[0].'.
11495
2842bb86
JDA
114962009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11497
11498 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11499 function when not using named sections on targets with named sections
11500 if branch distance is less than 262132.
11501
76ee70f6
RE
115022009-01-12 Richard Earnshaw <rearnsha@arm.com>
11503
11504 * combine.c (combine_instructions): Recompute
11505 optimize_this_for_speed_p for each BB in the main combine loop.
11506
f56e675d
TB
115072009-01-12 Tomas Bily <tbily@suse.cz>
11508
11509 PR middlend/38385
26d5bf5b
UB
11510 * tree-loop-distribution.c (prop_phis): New function.
11511 (generate_builtin): Call prop_phis.
11512 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
f56e675d 11513
c2152239
JJ
115142009-01-12 Jakub Jelinek <jakub@redhat.com>
11515
11516 PR tree-optimization/38807
11517 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11518 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11519
0e510b3e
AN
115202009-01-11 Adam Nemet <anemet@caviumnetworks.com>
11521
11522 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11523 subreg of op0 to the original op0.
11524
c95b2534 115252009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
11526
11527 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 11528
53a7ff9a
MS
115292009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
11530
11531 PR debug/7055
60839f5d 11532 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
11533 starting with digits.
11534
b3a796bc
JJ
115352009-01-10 Jakub Jelinek <jakub@redhat.com>
11536
11537 PR target/38695
11538 * config/arm/arm.c (arm_is_long_call_p): Don't call
11539 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
11540
b21b850e
SB
115412009-01-09 Steven Bosscher <steven@gcc.gnu.org>
11542
11543 * regrename.c (regrename_optimize): Fix dumping.
11544 (find_oldest_value_reg): Preserve REG_POINTER.
11545 (copy_hardreg_forward_1): Likewise.
11546
e0e10d3a
DN
115472009-01-09 Diego Novillo <dnovillo@google.com>
11548
bf9b2cc9 11549 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
11550 the restrictions on its use.
11551 (gimple_uid): Tidy.
11552 (gimple_set_uid): Tidy.
11553
c9da2ae8
JJ
115542009-01-09 Jakub Jelinek <jakub@redhat.com>
11555
11556 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
11557 zero guard even if align_bytes != 0 and count is smaller than
11558 size_needed.
11559
38432148 115602009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
11561
11562 PR rtl-optimization/38495
26d5bf5b 11563 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
11564 (add_range_and_copies_from_move_list): Print all added ranges.
11565 Add ranges to memory optimized destination.
11566
260fda3d
JJ
115672009-01-09 Jakub Jelinek <jakub@redhat.com>
11568
6f6278ad
JJ
11569 PR target/38686
11570 PR target/38708
11571 * config/i386/i386.c (override_options): Reject
11572 -mstringop-strategy=rep_8byte with -m32.
11573 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
11574 to 1. Do count comparison against epilogue_size_needed at compile
11575 time even when count_exp was constant forced into register. For
11576 size_needed don't jump to epilogue, instead just avoid aligning
11577 and invoke the body algorithm. If need_zero_guard, add zero guard
11578 even if count is non-zero, but smaller than size_needed + number of
11579 bytes that could be stored for alignment.
11580 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
11581 to 1. If need_zero_guard, add zero guard even if count is non-zero,
11582 but smaller than size_needed + number of bytes that could be stored
11583 for alignment. Compare size_needed with epilogue_size_needed instead
11584 of desired_align - align, don't adjust size_needed, pass
11585 epilogue_size_needed to the epilogue expanders.
11586
260fda3d 11587 PR c/35742
26d5bf5b 11588 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 11589
67b846fa
JDA
115902009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11591
11592 * pa.c (last_address): Change to unsigned.
11593 (update_total_code_bytes): Change argument to unsigned. Don't
11594 check if insn addresses are set.
11595 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
11596 addresses are not set.
11597 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
11598
91c82473
NC
115992009-01-09 Nick Clifton <nickc@redhat.com>
11600
11601 * config/sh/symbian.c: Replace uses of DECL_INLINE with
11602 DECL_DECLARED_INLINE_P.
11603
4017e262
JJ
116042009-01-09 Jakub Jelinek <jakub@redhat.com>
11605
0a49e5c2
JJ
11606 PR middle-end/38347
11607 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
11608 GET_MODE (op0) in operand_subword_force calls.
11609
4017e262
JJ
11610 PR middle-end/38771
11611 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
11612 fold_convert arg0 operands to TREE_TYPE (op0) first.
11613
7cd06356
VM
116142009-01-08 Vladimir Makarov <vmakarov@redhat.com>
11615
11616 * params.def (ira-max-conflict-table-size): Decrease default value
11617 to 1000.
11618
96867bbd
JJ
116192009-01-08 Jakub Jelinek <jakub@redhat.com>
11620
11621 PR tree-optimization/37031
11622 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
11623 on parameter_set.
11624 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
11625 allocate it using gc instead of heap, use VEC_quick_push instead of
11626 VEC_safe_push.
11627 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
11628 instead of heap, use VEC_quick_push instead of VEC_safe_push.
11629 * tree-data-ref.h (struct access_matrix): Change matrix to gc
11630 allocated vector from heap allocated.
11631 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
11632 * tree-loop-linear.c (linear_transform_loops): Allocate nest
11633 vector only after perfect_loop_nest_depth call.
11634
68f61c3d
SP
116352009-01-08 Sebastian Pop <sebastian.pop@amd.com>
11636 Jan Sjodin <jan.sjodin@amd.com>
11637
11638 PR tree-optimization/38559
11639 * graphite.c (debug_value, copy_constraint,
11640 swap_constraint_variables, scale_constraint_variable, ): New.
11641 (get_lower_bound, get_upper_bound): Removed.
11642 (graphite_trans_bb_strip_mine): Clean up this code that works
11643 only for constant number of iterations. Fully copy upper and
11644 lower bound constraints, not only the constant part of them.
11645 * graphite.h (debug_value): Declared.
11646
82567e33
IR
116472009-01-08 Ira Rosen <irar@il.ibm.com>
11648
11649 PR tree-optimization/37194
11650 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 11651 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
11652 outside cost in case of known number of iterations.
11653
7da13f1d
NF
116542009-01-07 Nathan Froyd <froydnj@codesourcery.com>
11655 Alan Modra <amodra@bigpond.net.au>
11656
11657 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
11658 non-word-aligned REG+CONST addressing.
11659
c0f64575
UB
116602009-01-07 Uros Bizjak <ubizjak@gmail.com>
11661
11662 PR target/38706
11663 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
11664 free_after_compilation when outputting a thunk.
11665 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
11666 Do not call free_after_compilation here.
11667
301b6a4e
UB
116682009-01-07 Uros Bizjak <ubizjak@gmail.com>
11669
11670 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
11671 (ix86_valid_target_attribute_inner_p): Ditto.
11672
6a114766
JS
116732009-01-07 Jan Sjodin <jan.sjodin@amd.com>
11674
11675 PR tree-optimization/38492
11676 PR tree-optimization/38498
11677 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
11678 * tree-chrec.h (scev_is_linear_expression): Declared.
11679 * graphite.c (graphite_cannot_represent_loop_niter): New.
11680 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
11681 (graphite_loop_normal_form): Use gcc_assert.
11682 (scan_tree_for_params): Use CASE_CONVERT.
11683 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
11684 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
11685 Use gcc_assert. Discard scops that contain unhandled cases.
11686 (build_scop_conditions): Return a boolean status for unhandled cases.
11687 (strip_mine_profitable_p): Print the loop number, not its depth.
11688 (is_interchange_valid): Pass the depth of the loop nest, don't
11689 recompute it wrongly.
11690 (graphite_trans_bb_block): Same.
11691 (graphite_trans_bb_block): Print tentative of loop blocking.
11692 (graphite_trans_scop_block): Do not print that the loop has been
11693 blocked.
11694 (graphite_transform_loops): Do not handle scops that contain condition
11695 scalar phi nodes.
11696
65b82caa
L
116972009-01-07 H.J. Lu <hongjiu.lu@intel.com>
11698
11699 AVX Programming Reference (December, 2008)
11700 * config/i386/avxintrin.h (_mm256_stream_si256): New.
11701 (_mm256_stream_pd): Likewise.
11702 (_mm256_stream_ps): Likewise.
11703
11704 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
11705 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
11706 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
11707 (bdesc_special_args): Add __builtin_ia32_movntdq256,
11708 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
11709 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
11710 (ix86_expand_special_args_builtin): Likewise.
11711
11712 * config/i386/sse.md (AVXMODEDI): New.
11713 (avx_movnt<mode>): Likewise.
11714 (avx_movnt<mode>): Likewise.
11715 (<sse>_movnt<mode>): Remove AVX support.
11716 (sse2_movntv2di): Likewise.
11717
cef158f9
RG
117182009-01-07 Richard Guenther <rguenther@suse.de>
11719
11720 PR middle-end/38751
11721 * fold-const.c (extract_muldiv): Remove obsolete comment.
11722 (fold_plusminus_mult_expr): Undo MINUS_EXPR
11723 to PLUS_EXPR canonicalization for the canonicalization.
11724
246cb5be
GP
117252009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
11726
11727 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
11728 hosted cross-compilers generating less efficient code.
11729
84b9b872
RS
117302009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11731
11732 * function.h (rtl_data): Add a dbr_scheduled_p field.
11733 * reorg.c (dbr_schedule): Set it.
11734 (gate_handle_delay_slots): Check it.
11735 * config/mips/mips.c (mips_base_delayed_branch): Delete.
11736 (mips_reorg): Check flag_delayed_branch instead of
11737 mips_base_delayed_branch.
11738 (mips_override_options): Don't set mips_base_delayed_branch
11739 or flag_delayed_branch.
11740
ace984c8
RS
117412009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
11742
11743 PR rtl-optimization/38426.
11744 * ira.c (ira): Set current_function_is_leaf earlier.
11745
7ad7809b
JJ
117462009-01-06 Jakub Jelinek <jakub@redhat.com>
11747
11748 PR rtl-optimization/38722
11749 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
11750 too early, only set a flag and modify after last possible
11751 undo_all point.
11752
c52ec948
JJ
117532009-01-06 Janis Johnson <janis187@us.ibm.com>
11754
11755 PR c/34252
11756 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
11757 * real.c (decimal_single_format): Correct values of emin and emax.
11758 (decimal_double_format): Ditto.
11759 (decimal_quad_format): Ditto.
11760 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
11761 computation of DECnn_MIN and DECnn_MAX for corrected values of
11762 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
11763 __DECnn_MIN__, and adjust its computation for the corrected value
11764 of emin.
11765
300240e1
JH
117662009-01-06 Jan Hubicka <jh@suse.cz>
11767
11768 PR target/38744
435da628 11769 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 11770
271c069e
GP
117712009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
11772
11773 * doc/contrib.texi (Contributors): Slightly adjust the end note.
11774 Add Robert Clark to the list of testers.
11775
64e4c301 117762009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11777 Kai Tietz <kai.tietz@onevision.com>
64e4c301 11778
435da628
UB
11779 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
11780 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 11781
7650b83e 117822009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11783 Kai Tietz <kai.tietz@onevision.com>
7650b83e 11784
435da628
UB
11785 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
11786 for w64 ABI.
11787 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
11788 (ix86_nsaved_regs): Count only general purpose regs.
11789 (ix86_nsaved_sseregs): New.
11790 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
11791 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
11792 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
11793 general purpose regs.
7650b83e
JH
11794 (ix86_emit_save_sse_regs_using_mov): New.
11795 (ix86_expand_prologue): Save SSE regs if needed.
11796 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
11797 (ix86_emit_restore_sse_regs_using_mov): New.
11798 (ix86_expand_epilogue): Save SSE regs if needed.
11799
9aa5c1b2 118002009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 11801 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 11802
435da628
UB
11803 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
11804 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
11805 functions when accumulate outgoing args is off.
9aa5c1b2 11806
f7556aae
L
118072009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11808
11809 PR bootstrap/38742
11810 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
11811 before using pseudos_have_intersected_live_ranges_p.
11812
11813 * ira-int.h (ira_assert): Always define.
11814
e47b7d04
L
118152009-01-06 H.J. Lu <hongjiu.lu@intel.com>
11816
11817 AVX Programming Reference (December, 2008)
11818 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
11819 (_mm256_permute2_pd): Likewise.
11820 (_mm_permute2_ps): Likewise.
11821 (_mm256_permute2_ps): Likewise.
11822 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
11823 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
11824
11825 * config/i386/i386.c (ix86_builtins): Remove
11826 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
11827 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
11828 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
11829 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
11830 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
11831 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
11832 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
11833 __builtin_ia32_vpermil2ps256.
11834 (ix86_init_mmx_sse_builtins): Updated.
11835 (ix86_expand_args_builtin): Likewise.
11836
44b86471
JDA
118372009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11838
e47b7d04
L
11839 * pa.c (output_call): Relocate non-jump insns in the delay slot of
11840 long absolute calls when generating PA 2.0 code.
44b86471 11841
311aab06
VM
118422009-01-05 Vladimir Makarov <vmakarov@redhat.com>
11843
11844 PR rtl-optimization/38583
11845 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
11846
11847 * params.def (ira-max-conflict-table-size): New.
11848
11849 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 11850
311aab06 11851 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 11852
311aab06
VM
11853 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
11854 table. Report this. Return result of building.
11855 (ira_build_conflicts): Use ira_conflicts_p. Check result of
11856 building conflict table.
11857
301b6a4e 11858 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 11859 (ira_color): Use ira_conflicts_p.
2ba9daa7 11860
311aab06
VM
11861 * global.c: Include ira.h.
11862 (pseudo_for_reload_consideration_p, build_insn_chain): Use
11863 ira_conflicts_p.
11864
11865 * Makefile.in (global.o): Add ira.h.
2ba9daa7 11866
311aab06
VM
11867 * ira-build.c (mark_all_loops_for_removal,
11868 propagate_some_info_from_allocno): New.
11869 (remove_unnecessary_allocnos): Call
11870 propagate_some_info_from_allocno.
11871 (remove_low_level_allocnos): New.
11872 (remove_unnecessary_regions): Add parameter. Call
11873 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
11874 parameter to remove_unnecessary_regions.
11875 (ira_build): Remove all regions but root if the conflict table was
11876 not built. Update conflict hard regs for allocnos crossing calls.
11877
11878 * ira.c (ira_conflicts_p): New global.
11879 (ira): Define and use ira_conflicts_p.
11880
11881 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11882 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 11883 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 11884
5641785f
BE
118852009-01-06 Ben Elliston <bje@au.ibm.com>
11886
11887 * gengtype-lex.l (YY_NO_INPUT): Define.
11888
e4e5261f
AP
118892009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
11890
11891 PR c/34911
5641785f
BE
11892 * c-common.c (handle_vector_size_attribute): Also reject
11893 BOOLEAN_TYPE types.
e4e5261f 11894
7b10257f
SP
118952009-01-05 Sebastian Pop <sebastian.pop@amd.com>
11896
11897 PR tree-optimization/38492
11898 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
11899 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
11900 rename_map_elt_info, eq_rename_map_elts,
11901 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
11902 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
11903 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
11904 (sese_build_livein_liveouts): New.
11905 (new_sese, free_sese): New.
11906 (new_scop): Call new_sese.
11907 (free_scop): Call free_sese.
11908 (rename_variables_from_edge, rename_phis_end_scop): Removed.
11909 (register_old_new_names): Renamed register_old_and_new_names.
11910 (register_scop_liveout_renames, add_loop_exit_phis,
11911 insert_loop_close_phis, struct igp,
11912 default_liveout_before_guard, add_guard_exit_phis,
11913 insert_guard_phis, copy_renames): New.
11914 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
11915 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
11916 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
11917 (scop_adjust_phis_for_liveouts): New.
11918 (gloog): Call scop_adjust_phis_for_liveouts.
11919
11920 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 11921 num_ver and livein.
7b10257f
SP
11922 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
11923 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
11924 (struct scop): Added field liveout_renames.
11925 (SCOP_LIVEOUT_RENAMES): New.
11926
9761fcc7
HJ
119272009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
11928
11929 PR tree-optimization/38510
11930 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
11931 (translate_clast): Call recompute_all_dominators before
11932 graphite_verify.
11933 (gloog): Call recompute_all_dominators before graphite_verify.
11934
119352009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 11936 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
11937
11938 PR tree-optimization/38500
11939 * graphite.c (create_sese_edges): Call fix_loop_structure after
11940 splitting blocks.
11941
c95b2534 119422009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
11943
11944 * config.gcc: Add m32r*-*-rtems*.
11945 * config/m32r/rtems.h: New file.
11946
fc0cd180
BE
119472009-01-05 Ben Elliston <bje@au.ibm.com>
11948
11949 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
11950 (.po.pox): Likewise.
11951 (po/gcc.pot): Likewise.
11952
3106d8e5
DM
119532009-01-04 David S. Miller <davem@davemloft.net>
11954
11955 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
11956 (STARTING_FRAME_OFFSET): Always set to zero.
11957
0009b473
RS
119582009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11959
11960 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
11961 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
11962 fixed-point types, and vectors of the same.
11963
4f24c6d6
RS
119642009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
11965
11966 * config/mips/sync.md (*mb_barrier): Rename to...
11967 (*memory_barrier): ...this.
11968
1df48f5c
JW
119692009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
11970
11971 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 11972 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
11973 and put in alphabetical order. Fix 'target' name and put in order.
11974 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
11975 typos.
11976
1a8c13b3
UB
119772009-01-04 Uros Bizjak <ubizjak@gmail.com>
11978
11979 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
11980 (memory_barrier): Expand as unspec instead of unspec_volatile.
11981 Remove mem:BLK from insn operands. Use Pmode scratch register.
11982 (*memory_barrier): Define as unspec instead of unspec_volatile.
11983 Use (match_dup 0) as input operand.
11984
11985 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
11986 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
11987 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
11988 scratch register. Remove operand 1.
11989 (*stbar): Define as unspec instead of unspec_volatile.
11990 Use (match_dup 0) as input operand, remove (const_int 8).
11991 (*membar): Define as unspec instead of unspec_volatile.
11992 Use (match_dup 0) as input operand, remove input operand 2.
11993
11994 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
11995 (memory_barrier): Expand as unspec instead of unspec_volatile.
11996 Remove mem:BLK from insn operands. Use Pmode scratch register.
11997 (*memory_barrier): Define as unspec instead of unspec_volatile.
11998 Use (match_dup 0) as input operand.
11999
12000 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
12001 Remove mem:BLK from insn operands. Use Pmode scratch register.
12002 Set volatile flag on operand 0.
12003 (*memory_barrier): New insn pattern.
12004
12005 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
12006 insn operands.
12007 (*memory_barrier): Use (match_dup 0) as input operand.
12008
12009 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
12010 Remove mem:BLK from insn operands. Use Pmode scratch register.
12011 Set volatile flag on operand 0.
301b6a4e 12012 (*mb_internal): New insn pattern.
1a8c13b3
UB
12013
12014 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
12015
fb0703f7
SB
120162009-01-04 Steven Bosscher <steven@gcc.gnu.org>
12017
12018 PR middle-end/38586
12019 * function.c (struct temp_slot): Move to the section of the file
12020 that deals with temp slots. Remove field 'address'.
12021 (temp_slot_address_table): New hash table of address -> temp slot.
12022 (struct temp_slot_address_entry): New struct, items for the table.
12023 (temp_slot_address_compute_hash, temp_slot_address_hash,
12024 temp_slot_address_eq, insert_temp_slot_address): Support functions
12025 for the new table.
12026 (find_temp_slot_from_address): Rewrite to use the new hash table.
12027 (remove_unused_temp_slot_addresses): Remove addresses of temp
12028 slots that have been made available.
12029 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
12030 worker function for remove_unused_temp_slot_addresses.
12031 (assign_stack_temp_for_type): Don't clear the temp slot address list.
12032 Add the temp slot address to the address -> temp slot map.
12033 (update_temp_slot_address): Update via insert_temp_slot_address.
12034 (free_temp_slots): Call remove_unused_temp_slot_addresses.
12035 (pop_temp_slots): Likewise.
12036 (init_temp_slots): Allocate the address -> temp slot map, or empty
12037 the map if it is already allocated.
12038 (prepare_function_start): Initialize temp slot processing.
12039
b5a430f3
SB
120402009-01-04 Steven Bosscher <steven@gcc.gnu.org>
12041
12042 PR middle-end/38584
12043 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
12044 Calculate the size of all stack vars assuming no packing of stack
12045 vars will happen, replacing a quadratic algorithm with a linear one.
12046
5d560619
JJ
120472009-01-03 Jakub Jelinek <jakub@redhat.com>
12048
12049 PR target/38707
12050 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
12051 can't be used.
12052
953a7caa
DN
120532009-01-03 Diego Novillo <dnovillo@google.com>
12054
12055 * doc/contrib.texi: Update contributions.
12056
5f26a230
JJ
120572009-01-03 Jakub Jelinek <jakub@redhat.com>
12058
493aa551
JJ
12059 PR c++/38705
12060 * builtins.c (fold_builtin_memory_op): Give up if either operand
12061 is volatile. Set srctype or desttype to non-qualified version
12062 of the other type.
12063
5f26a230
JJ
12064 PR c/38700
12065 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
12066 and FUNCTION_DECLs.
12067
c95b2534 120682009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
12069
12070 PR rtl-optimization/35805
12071 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
12072 problem if fast dce is able to remove any instructions.
12073 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 12074
0b355794
MM
120752009-01-02 Mark Mitchell <mark@codesourcery.com>
12076
12077 PR 33649
12078 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
12079
0cf0d02b
JJ
120802009-01-02 Jakub Jelinek <jakub@redhat.com>
12081
12082 PR middle-end/38690
12083 * tree-flow.h (op_code_prio, op_prio): New prototypes.
12084 * tree-pretty-print.c (op_code_prio): New function.
12085 (op_prio): No longer static. Use op_code_prio.
12086 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
12087 Use op_prio and op_code_prio to determine if () should be
12088 printed around operand(s) or not.
12089
12090 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
12091 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
12092 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
12093 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
12094 pp_character instead of pp_string for single letter printing.
12095
e3606f3b
RS
120962009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
12097
12098 * doc/extend.texi: Fix '#pragma GCC option' typo.
12099
c95b2534 121002009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 12101
a5f061dc
RG
12102 * doc/install.texi (--enable-checking): Mention different
12103 default for stage1.
12104 (--enable-stage1-checking): Document.
00f39bd5 12105
26de0bcb
AP
121062009-01-01 Andrew Pinski <pinskia@gmail.com>
12107
12108 PR middle-end/30142
12109 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
12110 case to be an error.
12111
7a7d8fab
BE
121122009-01-02 Ben Elliston <bje@au.ibm.com>
12113
12114 * config/fp-bit.h (pack_d): Constify argument.
12115 * config/fp-bit.c (makenan): Constify return type. Remove casts.
12116 (isnan): Constify argument.
12117 (isinf): Likewise.
12118 (iszero): Likewise.
12119 (pack_d): Likewise.
12120 (_fpadd_parts): Constify return type.
12121 (_fpmul_parts): Likewise.
12122 (_fpdiv_parts): Likewise.
12123
b295aee2
JJ
121242009-01-01 Jakub Jelinek <jakub@redhat.com>
12125
12126 PR c/36489
12127 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
12128 warn about overwriting initializer with side-effects or
12129 -Woverride-init if !IMPLICIT.
12130 (output_init_element): Likewise. Pass IMPLICIT down to
12131 add_pending_init.
12132 (process_init_element): Add IMPLICIT argument. Pass it down
12133 to output_init_element.
12134 (push_init_element, pop_init_level, set_designator): Adjust
12135 process_init_element callers.
12136 (set_nonincremental_init, set_nonincremental_init_from_string):
12137 Adjust add_pending_init callers.
12138 (output_pending_init_elements): Adjust output_init_element callers.
12139 * c-tree.h (process_init_element): Adjust prototype.
12140 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
12141 process_init_element callers.
ad41bd84
JM
12142
12143\f
12144Copyright (C) 2009 Free Software Foundation, Inc.
12145
12146Copying and distribution of this file, with or without modification,
12147are permitted in any medium without royalty provided the copyright
12148notice and this notice are preserved.